As part of my new job, I’ve been exploring how modern devs learn new skills. Traditionally, you would pick up a dead-trees form factor and page through it, maybe install the sample code from a CD or a web site, and tinker with the platform until you felt like you wouldn’t sound like an idiot during an interview. More recently, with sites like Microsoft Virtual Academy and edX, you watch some talking heads in a video and do some online “assessments” (quizzes), and maybe get a certificate on your LinkedIn.
App devs have a harder time of it. There are a number of online test and contest providers, e.g., Techgig, TestDome, and Tests for Geeks, These are great, but timed tests stress me out. I’d like something more leisurely. There are quite a few online compilers, like codepad and IDEOne, but they’re too free-form to learn from; I need a structured curriculum.
Exercism hits the sweet spot: it has enough structure to direct your learning, with a full social experience built in, and you proceed at your own rate. It gives you problem sets for 30 different programming languages, from C# to Swift, and it provides unit tests for each problem. You build up your implementation to pass the unit tests. At any time, you can post your solutions and get feedback from the community. It’s a nice feeling when all of your unit tests show green.
I started with the C# track. For convenience, I created a Visual Studio solution to hold all of the exercises. Feel free to clone the repo: ExercismCSharp. The Exercism site nicely showcases your code, and you can browse and comment on other people’s solutions. Mine are here. If you create an online repo for your solutions, they provide a nice addition to your LinkedIn profile, in the Projects section.