Codesonic will turn you into a faster, smarter, more knowledgeable programmer.
codesonic.com
codesonic.com
For those of you who are unfamiliar with Anki, I highly recommend it as a free -- for web & desktop clients, though the iOS app is pricey -- alternative to the above. It also uses a spaced retention algorithm, and I've become accustomed to simply keeping it open at all times. Whenever I learn something new, I add it to the relevant Anki deck. This is the best way I've discovered to fight the erosion of my knowledge in the face of the growing proliferation of frameworks/languages.
The dev is super responsive. I've used a lot of flash card apps and have settled on Anki specifically because it's cross platform.
The Android app (third party) is still subpar in my opinion but that might change if it revs with Anki 2.
It's another free, well supported, SRS system that runs on a multitude of platforms.
I used it daily.
About 18 months ago I was preparing to do an honours project and it was necessary to prepare project proposals to circulate amongst professors at my university. I prepared four. One of them was to develop a system like this one and to test it on first year students.
My hypothesis was that, like natural language, artificial languages require a command of grammar (syntax) and vocabulary (reserved words, library methods) to create "fluency".
I proposed to test that hypothesis by dividing a first year class into two groups, one using a spaced-repetition tool and one learning on their own. Learning performance would be tested in two ways: looking at the scores of the two groups, and applying various size metrics (SLOCs, gzipped size, Halstead's etc) to their submitted code. The latter because presumably, a student who knew the standard library well wouldn't reinvent too many wheels.
I didn't pursue the project because it wouldn't have been feasible to do in a single year. There were also potential problems with contamination between groups, non-compliance of the tool-using group and of course it would need to go to the ethics board and the academic board. One professor suggested that it would make a workable Masters project.
edit: I'd be happy to forward the proposal to anyone who wanted a squiz.
edit 2: Or not. I pretty much just summarised it above. The other proposals were more interesting reads IMO.
Grab unanswered questions off the top of the page to work on breadth of recall, grab older questions with bounties to work on more depth in more complex topics. You work on real problems and write real code, which I doubt any repetition of planned exercises can match.
It drills you on the syntax, classes and methods of your favorite languages and frameworks so you remember them forever.
I don't think this will make anyone an expert programmer.However, an interactive class like CodeSonic might work to get the basics down.
For me, at least, when I learn a foreign language having the basic vocab, phrases, and syntactic structures down to automatic is the most important step. Sure, I won't compose great poetry or write the great $national novel in it. But once you can start automatically thinking or writing in the language, that's when you get to start building cool things with it.
Of course, it all depends on CodeSonic's implementation, which is everything. I give it a 3:1 chance of being a CodeAcademy you've got to pay for. But I signed up for emails anyway, on the off chance it actually is good, new, and worth paying for.
Codecademy etc. are focused on increasing reach because of their business model and goals. I def think there is room for more specialized paid services(that run as profitable operations with a smaller goal than Codecademy).
“What are the parameters that redirect_to will accept?“
I've read numerous horror/funny stories about such questions actually being asked on a job interview. Luckily, I never had to go through this.
Solving the real problems, learning to dig for the relevant information and grokking new concepts (in this very order, I believe) is what turns you into a faster, smarter and more knowledgeable programmer. Of course I would love to stop confusing setInterval with setTimeout but I would still rather spend my time and money on learning something new.
I've always felt the same about learning foreign languages. Repeating words in a vocabulary gets me nowhere. I memorize some of them but this memory is short-lived. It actually takes you to “get” the language by actually using it (reading, writing, listening and talking). When you are ready, there is no conscious memorizing involved.
By the way, French isn't likely to change much in fifty years. Will the current redirect_to signature last a year?
I wonder.
First, the super-memo algorithm has been proven effective for more than 20 years, and can be very effective for building a wide base of programming knowledge.
Second, much of learning has to do with cognitive load. Having a wider knowledge of the capabilities of a language can reduce the cognitive load of solving individual problems. Compare the ease of solving fizzbuzz with modulo vs a home brewed solution. If the system can assist in building a base of concepts then it might make individual tasks easier.
I'm also hesitant about the price... for $10 a month this service should support a large variety of languages and offer a lot of in-depth questions for each language. I can get the same knowledge elsewhere for free, so if I'm going to pay for this, it should be worth it.
I was basically ready to open my wallet and at least try it for a few days, but just throwing a signup form means I'm pretty much going to forget about and never look again having been let down once already.
Fluency requires mastery of grammar and vocabulary. Sure you can look up everything you need on Google. You can also "speak" French with a translator's dictionary.
Having stuff at immediate recall is an enormously powerful enabler of creativity.
The pricing/business model does not work with this especially when there are so many free alternatives.
"Please note: Codesonic concedes inferiority only to the lingering sparkle of an eroding afternoon daydream."
+1 for funny, +1 for unexpected, and +1 for capturing my imagination