So you want to be a programmer?

I recently spoke to a couple high-school students who were eager to learn how to become programmers. They wanted to jump into it without any indication on where or how to start, which made me realize how difficult it can be for people without any prior experience. This inspired me to write this post and share my thoughts on what any programmer initiate should know and realize. This is not a programming tutorial by any means, just a set of guidelines which I would follow myself, knowing what I know today.

1. Programming knows no no age, gender nor sexual orientation

Contrary to what other may tells you, you’re never too old/young to learn new things. It’s all in you and your dedication to doing something. You can become a proficient programmer at the age of 50 if you really want to and there’s no lower age limit – the sooner you start, the better! People may tell you that you can’t be a programmer, because you’re a woman. Yes, the industry is dominated by men but that in no way should hinder your goals. Remember – programming is a mental work, so being able to do it is all, literally, in your head.

2. Programming requires more practice than talent

This may be an unpopular idea but I strongly believe that programming requires little to no talent. Like every skill that we are not born with, it requires a lot of practice to master. No talent. Just practice. Some people may have better predespositions to thinking with numbers, math or numerical analysis in general but that does not make them good programmers out of the box. Coding is a craft and as such needs to be polished constantly. Work on your skills. Read and write code. With enough practice, you will flourish as a programmer.

3. Learn coding by doing something

When I first got into programming, the most difficult part was coming up with ideas on how to improve my skills. I was a teenager in mid-90s with no Internet access and as such – no ideas to be inspired by. Fast-forward 20 years later and I’m now surrounded by ideas all over. Once you get past the basic “Hello world” examples, the best thing you can do is start working on an idea for a program of your own. Knowledge is assimilated the easiest when it’s put to a real test and when it has to solve a real problem. Want to make an application that draws an image on the screen? Look up loading binary data and basic graphics. Feel like implementing a sorting algorithm? Get a good book on the topic and translate the idea to code. It’ll be a rough ride at first as you discover new features of the programming language of your choice but with experience things will start to get a bit more smooth. The best part about writing your own code is that it’s a challenge every time you try something new. Enjoy that feeling!

4. Talk to other programmers. Work with others. Get on Twitter!

What better way to further your knowledge than to talk to other people in the field? This is by far the fastest way to learn new tricks, experienced developers may also show you which things to avoid if you don’t want to get into a trap. If you don’t know any programmers in your area, join Twitter and follow people. It’s an excellent tool for this and has helped me many times – many programmers will also be happy to meet you if you’re in the area, so that’s an extra plus. Join programming forums, read newsletters, read everything related to the topic of programming that you find interesting! If you want to find collaborators, be sure to checkout Github and Bitbucket – a lot of people will be happy to work on something together! A word of warning though – don’t get depressed if someone’s knowledge overwhelms you. Remember that there is always someone better at programming than you and always will be, once you accept that fact it will become easier for you to learn and communicate with others. This may also motivate you to become even better at what you do!

5. Prepare to learn new things and forget everything you already know

Computer science is an extremely dynamic field. Be prepared to shuffle what you already know and learn new things. Over the course of your career you will see technologies coming and going – same with programming languages. Think of yourself as a craftsman who has to change his/her tools once in a while. Your basic skills remain but it’ll take some time to learn how to use your new hammer! Of course, this applies only to those programmers who don’t want to stick to a particular technology for the entirety of their careers, something that rarely happens nowadays.

6. Learn what’s under the hood

If you truly want to be a master programmer, learn how the computer works. What happens when an instruction is executed? How is your code translated for the CPU? How does memory behave when you run the program? What about the Operating System? All of this and much more constitute the driving mechanism for your program – once you understand how it works, you’ll be able to write more efficient applications.

I like to think that programmers are constantly “on the road to knowledge” – there’s never a point in your career when you can say that you know enough (let alone everything!). This is probably what keeps me doing what I do. If you’re still willing to follow that path, be ready for some rough moments as you learn. In the end, it will be worth your while. 🙂