Practicing programming isn’t like studying for a test – anything that requires flash cards or lots of memorization is likely a waste of time. “The best way to learn to program is by doing it.” Don’t memorize; build.
There’s a long and well-written article here written by a man who believes using Anki (with flash cards & lots of memorization) is a superior way to learn programming. He claims that using this method “any intelligent and disciplined reader can achieve proficiency in a given field of programming (e.g. web applications, iPhone applications) in less than 12 months.”
Note that he also advocates learning by doing (“pick a project”) so the two approaches are NOT mutually exclusive.
12 months to proficiency? I’d expect a person to pick up web development, for instance, in six months, just by working full time. (At least, I did.) The article didn’t say whether that was working full time or not, though.
I think it depends on what you mean by proficiency. An often quoted figure is 10,000 hours to master any certain domain. Working 8 hours a day non-stop, that would amount to 1,250 days or about 3.5 years if you worked every single day of the year.
It depends on the starting point. Someone who had been developing, say, Windows Forms GUI applications in C# for three years, switching to PHP doing web applications, should not take 3.5 years to be considered proficient. Maybe a week for the language and a passing familiarity with the basic libraries you’ll be using, at which point you can make your first useful commit. A month and you’ll be reasonably fast. Six and you shouldn’t be consulting documentation very often at all. At 3.5 years, you should be an expert.
But if you’re starting with no programming knowledge at all, then you’ll need those ten thousand hours. Or to put it in more practical terms, college plus three years job experience. But college is inefficient and inconsistent for this purpose.
There’s a long and well-written article here written by a man who believes using Anki (with flash cards & lots of memorization) is a superior way to learn programming. He claims that using this method “any intelligent and disciplined reader can achieve proficiency in a given field of programming (e.g. web applications, iPhone applications) in less than 12 months.”
Note that he also advocates learning by doing (“pick a project”) so the two approaches are NOT mutually exclusive.
12 months to proficiency? I’d expect a person to pick up web development, for instance, in six months, just by working full time. (At least, I did.) The article didn’t say whether that was working full time or not, though.
I think it depends on what you mean by proficiency. An often quoted figure is 10,000 hours to master any certain domain. Working 8 hours a day non-stop, that would amount to 1,250 days or about 3.5 years if you worked every single day of the year.
It depends on the starting point. Someone who had been developing, say, Windows Forms GUI applications in C# for three years, switching to PHP doing web applications, should not take 3.5 years to be considered proficient. Maybe a week for the language and a passing familiarity with the basic libraries you’ll be using, at which point you can make your first useful commit. A month and you’ll be reasonably fast. Six and you shouldn’t be consulting documentation very often at all. At 3.5 years, you should be an expert.
But if you’re starting with no programming knowledge at all, then you’ll need those ten thousand hours. Or to put it in more practical terms, college plus three years job experience. But college is inefficient and inconsistent for this purpose.