‘Learning by solving tests’ – a website we could do with?

I’ve often wondered why we don’t see more test-driven websites which test our knowledge of the subject matter.  A great example is the Python Challenge website, Nadav Samet built a great tool to test our Python knowledge – you have to be able to code (only some of the tests really need Python) to solve each stage of the tests.

To do well in that Challenge you have to enjoy problem solving and keep hacking away, you can’t cheat so you just have to be persistent.

Why don’t we see this sort of site more frequently?  How about one for learning to code?  In the Python Challenge you set your answer to be the url of the next question – if you get it right you progress – but you never submit any code.

Why about using something like Crunchy to let me submit snippets of Python which run either locally or perhaps remotely in a secured, cut-down Python environment where my code is uploaded and evaluated.  Sure, it gets hard if the code is non-trivial, but many learner-level problems can be solved with relatively trivial code snippets.  Wouldn’t this help people learn faster?  Having feedback when you get it wrong pointing at articles or example answers would be lovely to help you progress.

I often feel stupid when I realise that arguably the world’s most popular programming language – Javascript – is entirely foreign to me.  I can solve hard A.I. problems and have just spent 4 years working on one for the physics industry (using Python, Matlab and C++) but I can’t write a single line of Javascript.  I don’t ‘need’ Javascript so I never set out to learn it, I would love to have at least a passing ability to read and write it though.

If the above ‘challenge’ idea was applied to a site where talented people wrote interesting tests, I’m sure many of us would join (and pay?) to advance our knowledge.  We’d do it for fun and the intellectual stimulation, knowing that I’m learning on an ad-hoc basis and solving tasks (and gaining points and rep?) would be a nice motivator.

I suspect that if I could submit my own challenges and they were rated as ‘challenging and good’ by others, I’d also earn a useful reputation for myself (a bit like Stack Overflow does for problem solving).

Maybe the challenges could be embedded into your own site, ShowMeDo.com might use them to introduce people to the basics of programming where the tutorial videos helped people answer the questions.

Maybe you’d use the challenges to force people to prove their competence at certain topics before e.g. they could join certain forums.

If you have an opinion of whether this is a crazy idea (or not), I’d love to hear it…


Ian applies Data Science as an AI/Data Scientist for companies in ModelInsight and in his Mor Consulting, sign-up for Data Science tutorials in London. He also founded the image and text annotation API Annotate.io, lives in London and is a consumer of fine coffees.

1 Comment

  • Jane
    What you describe is the method that I've used offline to help people learn SQL. I prepared what I called a learning pack which consisted of a question and a set of resources (i.e. links to places to learn more). There was no time limit or even really any marking, but advice and assistance was on offer at all times. My plan was to create these for all relevant subjects but, as with a lot of other crazy ideas, time got the better of me.