I’ve only been a professional software engineer for about a year, but one of the questions I’m frequently asked by friends and strangers alike is, “How do I get started with programming?”
To their question, I’d almost always give an answer that I think they find unsatisfying (as if satisfaction was what they were really hoping to get by asking the question!).
To get started with programming, you shouldn’t start by picking the “right” programming language and jumping into learning it immediately.
Programming is really just a means to an end, and if you don’t know what shape and size the end might look like, well, you’re probably not going to get there. Sorry my friend, tough love is the only real love!
Picking a programming language to learn before knowing why you want to learn is like putting the cart before the horse. You and your horse are going to crash.
First, we must ask ourselves a simple question that I believe will determine our success in really getting started with programming.
Start with the most important question
To get started, the most important thing is to ask yourself:
Why do I want to learn to program?
- build my own project for fun
- start my own software-based company
- help in my cutting-edge research work
- start my own company that needs a website
- become a better colleague and/or manager at work by learning to communicate more deeply with programmers
- general desire to be “code literate,” readying for an increasingly tech-powered workplace and society
If you’re wondering why I think this is the most important question to ask and, indeed, the best way to get started with programming, here’s the reason:
I don’t want to do you a disservice by sugar-coating a fact: programming is hard.
It is easy to give up on learning programming, especially at the start as many of my friends and I can attest to with our own failures.
I never went to university to study Computer Science. Without the benefit of a degree to structure (read: force) my continuous and persistent learning, as well as provide at least some guidance, I’m left to struggle with my willpower. And if I don’t have a good reason to want to learn to program, I always find my way to the exit.
Each time a tough problem or difficult to grasp concept comes along, I toil (often times alone in my study) and give up learning programming altogether.
I’ve gone through this 1) start, 2) get stuck, 3) quit cycle about three times in my life before I finally took the leap in 2016 to try to become a professional software engineer.
Each time I gave up, I felt more helpless than the last. Not to mention guiltier. I’ve already tried this before and it didn’t work out. Maybe programming is just not for me… I suck!
That’s why a solid personal or professional reason is crucial to your success in learning to program.
I highly recommend that before diving into a language, start with writing a list of possible reasons that you want to get started with programming. Then, pick the most compelling one to keep in your mind.
Treat this reason, which is your purpose of wanting to learn to program, like the family photograph that a soldier carries into the battlefield. Keep it on you while you march into the potentially treacherous but also potentially tremendously satisfying jungle of programming!
Okay, I may have sounded too melodramatic there, but I genuinely believe that in order to sustain one’s learning, one needs a good reason to rough out the hard times.
With this reflection in the rearview mirror (what a queer analogy), you are primed to get started with programming!
Stay tuned tomorrow for part 2 of this post on How to get started with programming. March on!
EDIT: Part 2 is out! Read it here.
Bite Size Programming is a segment where I discuss programming one bite-sized topic at a time in plain English. My goal is to share tips, lessons, and ideas from my work as a software engineer, and through that, make programming accessible and fun for anyone who is curious about programming. Join the mailing list to get the latest post delivered to your inbox so you can read on the go.
Also published on Medium.