The hardest part of learning something completely new is getting started. So what’s the best way to get a flying start into learning programming? There are surely just as many answers as there are eager students. In my previous post I wrote about what made me so interested in programming and why I want to learn it. In this post I’ll share my four steps to get you started with coding, too.
No matter what you want to achieve or which language you want to learn, you need to consider certain aspects of coding before you embark on the amazing journey of learning all about it. Many questions can be answered before you start or during the early stages of learning. This will make the ride as smooth and fruitful as possible.
Here are the four first lessons I learned when I started teaching myself to code:
- Gather information about programming
- Understand why computers are so awesome
- Know how computers work
- Learn the boring stuff, too
1. Gather information about programming
A lot of it, to be clear. If you’re completely new to computer science or if it feels like the jargon is too much to handle, make sure you start with the very basics. It might first seem like none of it makes any sense, but you’ll get the hang of it soon!
What’s programming all about?
Computer programming can be defined as simply telling a computer what it should do for you. The individual instructions for specific tasks make up the programs you and me use every day. These instructions are given in a programming language and, as long as your program is bug-free, the computer does exactly what you tell it to do.
In other words, a computer never has a bad day and snap back at you. As long as you provide it with power and some instructions, it’ll do what it’s told.
Quite cool, huh?
Who can learn programming?
But who’s a good candidate for learning coding?
As long as you are interested, stay motivated, and share your success with others to encourage you further, you’re all set. Having an understanding of simple math, logical thinking, and some creativity will get you very far.
You don’t have to know how to calculate with binaries or what the Fibonacci sequence is about. It might just sound like a delicious pizza to you at this point. You’ll learn everything you need along the way.
It’s obvious that the skills needed to learn coding will change as years pass. As technical frameworks evolve, so does the demand for people using them. To emphasise how the requirements and expectations for developers have changed throughout the years, check out this Programmer Aptitude Test from IBM from 1969.
Not sure if I’d pass…
Computers need you!
Nowadays it seems like computers make the world go round, but they are in fact unbelievably stupid. They can’t do anything by themselves without a human giving them instructions first. Neither do they know how to deal with problems in a creative way when the instruction has an error in it.
What makes computers so great then? Read on!
2. Understand why computers are so awesome
What makes computers so powerful is the sheer speed of calculating the commands coming from the programmer. That’s you!
Let’s consider a simple example. Me and you both are capable of multiplying 2 x 2 and then multiplying the result with 2 again. We can make a list of numbers if we keep going, multiplying the next result with 2 again and adding it to our list. In no time, we’d have quite a long list already. Something like this:
4, 8, 16, 32, 64, 128, 256, 512, ...
Now if a computer was sitting next to us, doing the same thing, it would have generated a list with millions of items already before our fingers hit the keyboard.
Or just imagine you would need to find every phone number in the phone book that has the number 8 at the end. Not that it would be an exciting task to begin with, but you would probably rather see the phone book burn before long.
Even though the examples are very simple ones, they demonstrate the sheer speed computers have with calculations. Doing tedious multiplications or going through long lists are tasks computers are good at.
Not surprisingly, most programs consist mostly of instructions like these, letting computers do what they do best. In fact, most of the code I’ve written so far with Python, for example, is just like that. It’s based on commands to go through lists, finding specific items, and executing a desired action for them.
Having a computer generate a list for you with a million items in it for the first time is quite a jaw-dropper. I remember an exercise in Python Crash Course where I would first manually write a list of the first five integers squared. It took me 15 seconds, perhaps. Next, I would tell the computer to make a similar list but using the first 1,000 integers. It took 0.4 seconds. Here’s the list, enjoy!
3. Know how computers work
To get a good basic understanding of what’s actually happening inside a computer and how programming relates to it, I’d recommend a basic computer science course.
If the field is new to you, you might find my post about learning computer science basics helpful.
Now, browsing though different resources online can seem a bit overwhelming. There are online courses, boot camps, books, small groups for tutoring, and personal tutoring. And, of course, traditional degrees in computer science.
If you’re like me a while ago you probably don’t know too much about how computer hardware properties affect the performance of the code you’ll be writing. Therefore, take some time to understand the basics.
Just take a look at a few sites and find one that appeals to you. One I’d recommend looking into is the Computer Science 50 from Harvard College. In case binaries sound interesting, check out their great video about them. I’m not saying everyone needs to understand binaries, but the video is really interesting and helpful.
There’s also a great course available on Udacity called Intro to Computer Science. I took it after bumping into a few tricky questions while learning Python. Go check it out. It has some great video lessons about the history and practicalities of programming. Going through them will also get you familiarised with that Fibonacci sequence, by the way.
4. Learn the boring stuff, too
Going through a pure computer science course can easily be different from what you expect.
You might have a clear vision on you mind about what you ultimately want to create with programming. You really want to speed things up because you already have a list of some very specific questions you need answers for right away. Then, all of a sudden, you’re watching a video about how the different types of computer memory affect the speed of a program. Or perhaps how the location of a web server affects how fast a website is rendered onto your display.
Just keep watching!
Even though you won’t be using all the information and knowledge offered by online computer science courses on a daily basis in the future, it’s worth going through it. Understanding the most fundamental bits of what happens inside a computer will be of use eventually. It will also make you more aware of the dynamics and limitations of computers and the Internet, too.
Quite honestly, I know I won’t be doing too many calculations on how long it takes for webpage to load on my browser depending on the speed of light and the geographical location of the server. However, I think it’s a good idea to consider the history of computers and some technicalities. It can only help us to better understand the present.
I also assume you won’t be running around the server basement in the future with a nano stick in your hand either. Nevertheless, it could be a good way to help understand some of the more abstract concepts around computer science. If the concept of a nano stick is unfamiliar to you, check out the course on Udacity I mentioned above.
Eventually, you’ll find all the information and the answers you need. By then you probably have a ton of new questions on your mind already. Just tackle them one by one with patience and determination. Each answer will take you one step further.
However, get comfortable with not being able to grasp everything. Certain topics and details tend to be quite abstract – so don’t aim at learning everything. Otherwise you’ll get nothing done.
Now let’s get you started with coding!
Once you know what programming is all about and how computers work you’re good to go! By now you should have some idea of what you would like to do next and what you would like to achieve by learning how to program.
That said, go ahead and start thinking about your goals as a rookie programmer. Setting clear targets is the best way to keep you motivated and focused. What do you wish to create? What would you like to present to the world to make people’s lives easier or simply more fun?
Answering questions like these will guide you towards a field of programming that’s best suited for you. Think whether you want to develop and design websites, make mobile apps, or program video games. This will ultimately determine the choices for your first programming language.
I’m eager to hear how you initially started with programming. Please share your experiences and tips for us aspiring coders in the comments below!