I signed up for a moderate-paced mooc through edX a few weeks ago, and while it’s not too late to join, you’d have to hustle to catch up at this point. It’s an intro to computer science, but its heavy focus on Python is what interested me.
Finding a Reason to Code
There are too many languages out there to bother trying to learn them all. Some are ancient but have a niche use. Others are well-established but not as exciting. Still others are “cutting edge” but will just fade into obscurity in a year.
Instead, it helps to find a reason to code, and let that reason drive the language you learn.
- Want to learn basic programming logic? Pick something well-established with plenty of good introductory tutorials like C#.
- Hear about a company you find attractive? Figure out what language(s) they use.
- Do you want to write automated tests? Try out Ruby and Cucumber.
- For statistics, check out R; for high availability, check out Erlang.
For me, the reason is currently a hobby. I want to do more with the Raspberry Pi, and although it supports a lot of languages, many tutorials (especially beginner ones) use Python. Doing a bunch of Google searches is slooow going, and an investment now will pay dividends later when I can just open PyCharm and run.
Staying Motivated
It was different when I was taking classes at a community college years ago. I had a part-time job, but studying was my main job, and I was paying good money for it. The possibility of wasting money is a decent motivator, but as it turns out it’s not the best. Sometimes we just give up. We get emotionally drained and aren’t thinking straight, and make poor decisions. It happened to me early on with a physics class… I just threw in the towel.
So what have I learned since then?
Figure out the end goal and keep it in sight.
With the physics class, the goal was (hopefully) a good career in mechanical or civil engineering. Instead, I lost sight of the forest for all the stupid theoretical trees and differential equation.. leaves… crowding in around me.
Point is, if you have a reason to program, whether it’s for a dream job or new position or just a hobby, it’s going to be a lot easier to stick with it.
Flex that learning muscle.
I hear people say, I couldn’t go back to school now after all these years. I just couldn’t have classes and books again, and go through all of that.
The more you try to learn, the better you’ll learn. It’s like a muscle that you need to flex. When it comes to working out, 30 minutes a day keeps you in shape. Going all crazy twice a month just gets you hurt.
- Read a few interesting articles each day. If you find an interesting blog, track it using Feedly.
- Find a course on edX or Coursera that piques your interest, and go for it.
- If you’re willing to drop a few bucks, check out Pluralsight or Treehouse (both have free trials).
- Consider finding a quiet place to learn and using a Pomodoro timer to stay focused for a solid block of time. Twitter, Facebook, news feeds, Netflix… distractions abound.
Keep on task.
The more I take on responsibilities in other areas of my life, like a career, house and kids, the more I’m able to take on other responsibilities… but ironically the less time and inclination I have to do so. You can only flex a muscle so much before fatigue sets in.
It’s easy to see shiny objects all around us and keep jumping from one thing to the next. That’s where I find some of these mooc’s help. The one I’m taking now has a set of readings and videos and exercises, a syllabus to follow, a forum staffed with TAs and other students… all of that makes it easier to keep up with the material and less likely I’ll drift off to something else.
I’ve also used other tools to keep myself focused. At one time, I put my goal for the week on my Google calendar. Now when I want to learn something new, I add it to a Trello board and forget about it for the time-being; as I finish one thing, I can pick what I want to tackle next.
How do you learn best? Do you have any tips or tricks you’ve found helpful?
I’d love to hear from you, leave a comment below!







