To Learn How to Program, It Has To Fulfill A Need
One response from my last post about how learning to program changed the way I think was the following:
Have fallen off the “learn to program band-wagon” many times myself, maybe due to me setting unrealistic goals for myself or learning the wrong way. Could you walk us through how you disciplined your self to stay focused and concentrate on learning how to program?
This is a great question. I have fallen off the “learn to program band wagon” a few times as well. What was the difference this time? Necessity.
When I committed myself to learn iOS, I had recently shut down an online business I was running and was living off savings. If I couldn’t learn how to program, learn how to acquire freelance clients and learn how to execute projects, I’d run out of money and would have had to move on to plan B. I didn’t have a plan B. In my mind, I had to make this work.
This may seem dramatic and reckless, but trust me when I say that it was a calculated risk. First of all, I had enough savings to last me six months (living frugally). Second, I knew there was a big upside to learning iOS given the market demand, especially where I live, San Francisco. Third, one of my good friends, Steve, had already done exactly what I was trying to do and was a huge help - I was/am in the perfect environment (here’s my post about my environment). In my mind, the success of this new adventure was dependent on my execution. It’s the type of calculated risk I will (hopefully) take 100% of the time. I will always take a chance on myself. If you don’t believe in yourself, who will? Also, I knew the worst case scenario was that I’d have to find something else to do and I knew I would at least pick up a new skill.
I’m not suggesting that you have to put all of your eggs in the programming basket to stick with it, but rather that programming has to fulfill a need.
Do you need to learn how to program to make a living?
Do you need to learn how to program to solve a math problem?
Do you need to learn how to program to build a fun website you’ve been thinking about?
There are varying degrees of “need” and it’s different for everyone, but my guess is that the stronger the need, the more pain, frustration and punches you’re willing to take on the never ending journey of learning how to program.
My experience with learning for the sake of learning has been miserable. When I first tried to learn how to program, I started because my close friends were programmers - I just wanted to be in the club. I did every tutorial out there on Python/Django and Ruby on Rails. They were helpful in getting a basic understanding, but I never really made much progress beyond the tutorials and fell off within a few weeks. I just didn’t really need it.
This may be a topic for another post, but when you’re actually going through the process of learning how to program, once you’ve done a few tutorials and have a basic grasp of fundamental concepts, you need a project. You have to try to build something. You have to try to get something out there, whether it’s a silly website for your group of close friends (here’s mine) or a simple app to keep score for bar games (again, here’s mine). Otherwise, you just don’t need to learn how to program.