That really depends on your definition of "learn."
I started with C++, then I used C# and Python and some Erlang (I think) for about a year and a half, then I learned Haskell. There were other languages in the meantime, but those would be the ones that really changed the way I think.
So, about 2 years to consider myself rather proficient?
Name:
Anonymous2011-01-28 23:35
Learning "how to program" takes less than a week (the basic concepts). Learning a language to implement your ideas take less than a week too(I recently learned python in 2 days). I'm not saying you'll be a fucking engineer, but with the right technologies you could easily tinker something quickly.
But it takes years to learn how to design any form of software (desktop, embedded or web, whatever) without fucking everything you do up with shitty workaround and horrible ideas. You learn through experience. Most developers actually suck at coding(especially those with 15+ years experience) and just add stupid shit all over the code just to make it work asap.
Software engineering is hard, coding itself is easy.
Learning to code took maybe two weeks, after which I knew that I could look it up if I ever ran into a problem I hadn't foreseen (you run into a lot of those early on) but learning to code well? I'm still not there.
Name:
Anonymous2011-01-29 21:57
learning how to PROGRAM takes no time at all. the languages these days though have a large number of APIs. take java for example, tons of built in shit. learning to program in java is going to take a considerably less amount of time than memorizing all these APIs. you see where im going with this? a lot of languages today are more about learning built in APIs than learning how to use the language itself.
Name:
Anonymous2011-01-29 22:25
Well, would me being able to add bits and pieces of code together to create a functioning script/program that I don't `` really " understand how it all works together but have a basic knowledge of the individual parts and a vague knowledge of how it all works together mean I have `` learned to program "?