That's a valid point. Did you start programming at an early age? I only ask because I'm coming from the perspective of picking up programming a little later in life (well, after graduating college). I think as we get older and we get preoccupied with career, friends, etc - it's a little harder to stick with new skills or hobbies just for fun.
Yes, I started when I was 12 or so. In QBasic. When I discovered you could make graphics with it, the fun just did not stop. Somehow I managed to make a space shooter game by modifying the code of "gorillas.bas".
I agree, with the qualifier that the "need" can be something that you made up.
Like you, I started learning programming after college, and I worked through courses, books, lecture slides, tutorials, read library docs, etc. but I learn the most at times when I actually sit down and go through the whole process of designing and building a complete application that does something useful. This year I've made it a goal to write code every day, with the intention of this culminating in launching at least one complete web application this year as a side business for extra income. I have a couple of solid ideas that I think I can build (and sell), but the only way to learn how to build something is by trying to build it.
Tutorials and courses are great and are necessary up front, but your fingers really need to be typing code that is generated by your brain, often, in order for it to stick.
completely agree. Also, learning to read documentation is such an invaluable skill. Just doing tutorials removes the need to figure out how to find things yourself. Until you try to build something that requires you to go beyond what you've learned in those tutorials, you won't learn how to read the docs.
I absolutely agree. If it doesn't fulfill some need then it doesn't get used. If it doesn't get used I never practice it or get better and thus forget it. This is why everytime I have a problem best solved by python I have to relearn it.
This reminds me: I'd love to see how many of CodeYear's sign-ups completed a term.
I have lots of friends who want to "learn to code" but get frustrated and quit. It's too easy to give up if you don't have "something bigger" continually pushing you forward.
I think those sorts of things (I include Codeacademy in there as well) are good to just expose people to programming and a way of thinking. I'm not so sure those "learn to program" programs will produce many professional software engineers, but I think they're great introductions.
This describes why I have such a hard time learning new languages. I want to learn Haskell, but I always end up giving up, because whatever I'm trying to do in Haskell, I can do in Python very easily.
I thought you recognized such a need by wanting to learn a new language and ideas..
I did Python for 7 years before I realized Haskell had huge advantages I find very important and it took an extra two years of gradual transition until I had dropped Python completely.
I agree to some degree. I think ambition is absolutely necessary, but I think passion is something that can be developed over time. I've had some false starts in trying to learn how to program and each time I did have some thoughts that maybe I'm not "passionate" about programming. But I found that my passion, appreciate, love, etc for programming grew when I stuck with it, got better and realized what all I could do with it. Maybe this was the case for me because programming just didn't click for me in the beginning. I'd argue that we don't just have predisposed passions, but rather passions develop as we go beyond the surface level of our interests.