

To Learn How to Program, It Has To Fulfill A Need - djblue2009
http://djchung.tumblr.com/post/40104231149/to-learn-how-to-program-it-has-to-fulfill-a-need

======
Aardwolf
Heh, in my case when I started to learn how to program, the need was "having
fun" I guess.

~~~
djblue2009
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.

~~~
Aardwolf
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".

------
kyllo
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.

~~~
djblue2009
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.

------
short_circut
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.

With out a problem you don't explore.

------
ryanlchan
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.

~~~
djblue2009
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.

------
freework
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.

~~~
Peaker
So you will never dare to lose sight of shore to reach new lands?

~~~
freework
Why search for new land when you have no need to leave the land you're already
on?

~~~
Peaker
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.

------
djblue2009
Also, there is nothing like the pressure of having to deliver on a project
that someone is paying you for. Necessity is the best teacher.

------
thoughtpalette
Ambition & Passion are great drivers as well. In the end, you should love what
you do.

~~~
djblue2009
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.

------
rhokstar
Yep. I'm learning Python so I can program for Leap Motion

