Friday, October 20, 2006

So you want to be a computer programmer - part 1

This is the first installment of what I hope to be a long list of guides and tutorials for the aspiring beginner. I will not pretend to be all knowing, but instead I intend to share my personal experiences and insights to help out anyone looking to follow in my footsteps (god help you). The key for an absolute beginner to the programming world is mind numbingly obvious...

Start at the beginning

People are drawn to computer programming for many unique and different reasons, and I will guarantee that none of those reasons involve writing "Hello, World!" to an otherwise empty console. If you got lost there, don't stop reading! I'll do my best to explain everything, if not here then in a future installment. I'll take a guess and say that the reason most people want to be programmers is because of everyones favourite scapegoat: Video games! And why shouldn't they be? Video games provide hours of enjoyment at a level of involvement that spits in the face of non-interactive forms of entertainment such as television, movies, books, and music. In fact, video games combine all of those elements together and put you in control. The same thing that makes video games so great is the same thing that makes them hard to make, they're complex! If you want to be a programmer, don't go in with the hopes of making the next Counter-Strike or World of Warcraft any time soon. Becoming a good programmer takes a lot of time, a lot of work, and a lot of perseverance. Rushing in to attempt a complex game to start off will probably scare you away from the field completely. To become a good programmer, you must...

Be patient

I've mentioned how much time and work this field is, but I want to stress it some more. You will be faced with many challenges over your career and a lot of the time, most of the time, you won't have a clue on where to start on the problem. If you read some tutorials and begin to feel a little overwhelmed then take a deep breath and remember my words. Be Patient.

Be humble

I'll be the first to admit that my ego is not exactly small, but I imagine I'm not the only person who is confident in their ability. Being confident is important, but there is a distinction between confidence and pride. Pride will make your life as a programmer much more difficult than it needs to be. If you don't understand something or you need a little help, asking for it should be one of your first courses of action, not your last. Don't be ashamed to ask for assistance, it will save you hours and hours of work. One word of caution though, is not to exhaust those doing the helping! Always at least make an attempt at solving something yourself before picking someone else's brain, they'll thank you for it.

Make mistakes

This might seem a little strange, but after you get your feet wet a little you will understand it perfectly. You learn a lot more from your mistakes than you do from doing something perfectly the first time. In fact, if something I write compiles on the first try I feel uneasy, because even the best programmer in the world makes mistakes. As a beginner, I encourage you to intentionally make mistakes in order to get used to the error messages that compilers throw at you. Take your functioning code and start erasing parts of it to see what happens. You will understand the errors better if you know what's wrong before reading the message, instead of having something not work and having no clue what might be wrong. Making mistakes will save you a lot of time when your programs get to be big and complex.

That about does it for this installment of "So you want to be a computer programmer", and for those of you feeling a little let down about there not being any actual code to ingest, I'm sorry. I promise that there will be an actual tutorial down the road somewhat soon! Within the next one or two articles I will start an introduction to the C programming language to help get you on your way to being a computer programmer! Until next time, waffle! (pie)

No comments: