So you want to be a programmer?

If you're anything like me, you have always wanted to learn a programming language, do an awesome application and get filthy rich. To achieve this goal you find plenty of resources available online. But all articles on how to become a programmer really boil down to just 2 letters:

do

That sums it up pretty well. You won't become a good programmer unless you'll write code. It's as simple as that. But as putting out just 2 letters for a guide might seem arrogant, I summed up 3 points which I find very helpful in learning a programming language.

learn the theory

It's still true that you have to write code, but that doesn't save you from learning some basics about programming. Just choose a language (at this point of time my suggestion would be Ruby, JavaScript or Java) buy a beginner's book and get started. Just knowing the concept of variables, conditions, I/O and loops combined with some basic mathematical arithmetics can get you very far.
If you get stuck: ask someone (if you already have a friend who knows how to code: perfect. Otherwise just consult an online community for example stackoverflow).

find a purpose and get started

When I started programming about 10 years ago I found this the hardest part. I already knew some basic concepts and was confident but I couldn't think of a way to apply these skills (the first program I ever got around to write was a simple program that helped me to calculate fractions). If you already have an idea: perfect. If you don't get inspiration. You could for example join an open source project. Or you could refer to some programming quiz sites, which describe a problem and leave its solution to the programmer. The most famous collection of programming quizes is Project Euler. Another one I can suggest is the Facebook Engineering Puzzles site or Ruby Quiz for more intermediate puzzles. For a detailed list of puzzle sites I suggest this blog post. So the possibilities to find a purpose are endless. You just need to get started. And remember (as before) if you get stuck: ask someone.

go public

Say now you've achieved a great piece of software or you've just found an amazing way to find the sum of all the multiples of 3 or 5 below 1000. Don't keep it to yourself. Publish it. If it is the next Facebook and you think you will get filthy rich with it: great! If you think "anyone could have achieved this code" you're not only wrong, you should definitely publish it anyway. The possibilities are (again) endless. My first suggestion would be a project hosting site like github, google code or sourceforge (or any other site mentioned here). If you've got something to say about your code, write a blog post about it and publish you're code there. The best part of it is: it's all free. Just don't let it rot on your hard disc because it's just more likely to get lost there. Over time you will establish quite a nice history of your projects. You will only benefit from it. For example when applying for a job in IT you will most definitely be asked what you've achieved so far. You will then always be able to pull out your favourite pieces of code and show them to your (future) employer. But the best thing I can think of in utilizing these pieces of code is showing them to an advanced programmer for review. Most programmers will be happy to help and advise you. If you've written a program and need some advice/help I will be glad to assist. Just get in touch.

That's it! You're on the right way to become an awesome programmer. Finally just remember one thing:

never stop learning

New stuff is coming out all the time, some of it is worth knowing, some is just hype and will vanish over time. But there is definitely stuff out there that will be interesting to you. Usually learning a new thing will help you in some way. In fact I will hook you up with some concepts and technologies that will definitely come in handy one day:

That's all for now. As mentioned above, if you have any questions, feel free to contact me.

picture by Peter Hellberg/CC BY-SA 2.0