Nerdy geeks with huge coke bottle glasses and big bald foreheads. That's the image that comes to mind when most people are asked to visualize the average computer programmer. Well, I'm far from bald and speccy, and I've been a programmer for four years, ever since I left university! When I was younger, programmers were up there with nuclear physicists and mathematicians in my vague understanding of the level of intelligence needed for a particular job. I never in a million years thought I'd become one myself! But here I am, and amazingly enough, I've grown to quite like my job. If you're considering a career as a programmer, this opinion may help you decide whether it's the right kind of job for you. I've tried to outline the qualities and characteristics that will make a good programmer, and the advantages and disadvantages of a career in this particular line of work. **** WHAT IS A COMPUTER PROGRAMMER? Computer programmers are the people who design and maintain the computer programs, applications and reports that computer users use every day, at home and at work. By manipulating the code that runs the programs, they may fix problems with these programs, make enhancements or create new programs entirely. Computer Programmers are also sometimes called analyst programmers, developers, or software designers. There are different types of programmers. Games Developer's design and create computer games for PC's and consoles. Applications Programmers create, maintain and debug business applications. Analyst Programmers work out exactly what is needed in a system, write their own specifications and then go on to develop the software. Sometimes the role of an applications and analyst Programmer will overlap somewhat. **** THE QUALITIES YOU NEED TO BE A GOOD PROGRAMMER There are plenty of bad programmers. There are also a lot of mediocre programmers. M
ost of us are fairly average. The idea that you need to be a math's wizard in order to be a programmer is a misconception. I have known two really good programmers in my four years in the industry, and neither of them was overwhelmingly good at maths. I myself only achieved a grade 'D' in GCSE mathematics. There are far more important qualities than mathematical ability that will make the difference between a good and a bad programmer. These are: * The ability to think logically and laterally Logic is the key. You need to be able to follow a problem through to its logical conclusion. I never used to think of myself as a particularly logical person, but I've realised that this is a quality I possess, and one that I continue to develop as a gain more experience as a programmer. If you're not a logical person, it will soon become apparent that programming is not the career for you. You will become hopelessly lost as you try to follow patterns within programs, and will almost never hit on the correct solution to a problem. A logical person can see 'through' problems. At the same time, it's important not to be too inflexible with your logic. If you've tried every logical solution to a problem and it still isn't achieving the desired result, you need to switch to 'lateral' thinking - a way of thinking around corners, lifting yourself above a situation and trying to approach it from another angle. Then, when you've finally found the key to the problem, it will make logical sense. * A very methodical approach and attention to detail Programmers spend vast amounts of time trawling through reams and reams of complicated code. They therefore need to be extremely methodical in their approach. Attention to detail is very important. Missing something as insignificant as a comma or a semicolon could lose you hours or even days. The best programmers write programs tha
t are easy for other people to read, and include lots of comments to indicate why they have coded their work a certain way, and what is going on in the program. You therefore need good communication skills and, it goes without saying, the ability to write in a coherent and structured way. * The ability to work on your own for long periods of time Programming can be a lonely and isolated type of work. It's not the kind of job that requires you to be a team player. Most of the work a programmer does involves sitting in front of a computer monitor, reading and writing code and working on documentation to explain the work they've done. If you're the kind of person who is happy to sit alone for hours reading a book and is happy with their own company, you'll probably suit a career as a programmer. Bear in mind that you need to be good at organising yourself and your work - your manager will set deadlines, but he or she's unlikely to have enough technical knowledge to help you tackle the work. You must be able to trust your judgement and ability to make decisions. * Design Skills These days, analysis and design are an important part of a programmer's job. You may have to design entire systems for a business, including the tables where information is stored, the screens where information is entered and the reports or other documents that may be printed as part of the process. You need to be good at listening to and interpreting the needs of a particular user, group of users and the business as a whole. Your programs must be easy to use and efficient. Any design and analysis skills will come in very useful. * Endless patience This is probably the quality I lack the most! The kind of problems a programmer has to solve aren't usually the kind that can be instantly resolved. It takes hours and hours of careful work to isolate the cause of a problem, and even then you could well be barkin
g up the wrong tree, and will have to backtrack and start again. Sometimes, when you feel like you?ve tried everything you can think of and the damn thing still doesn't work, it's tempting to pack it all in and head down the pub, but the problem will still be there when you reel in the next morning with a stinking hangover... **** THE ADVANTAGES OF A CAREER IN PROGRAMMING * Financial rewards Programming pays well. Even the lowliest junior programmer can expect a salary well above the national average. Senior programmers with certain skills can easily earn in excess of £60,000 in a permanent role. Contract rates of £70 - £150 per hour are common, although most people don?t move into contracting until they have a good deal of experience. On top of that, many companies are willing to offer superb benefit packages in order to attract staff, as there is such a shortage of skills. Expect large bonuses, superior pension schemes, free gym membership and health care. * Pick and choose your job As a programmer with a highly desired skillset you will be in high demand. There's plenty of work available and not enough skilled people to take it on. You may find, as I did, that you have to choose between several positions when looking for a change of workplace. It's nice to be able to pick and choose! * Job satisfaction Just as it can be very frustrating, programming can be a very satisfying job. Solving a problem that has caused chaos and misery to a business is very gratifying. Writing code is often good fun and in many ways a creative process - it's YOUR program and you can write it how you like, as long as it does the job. Testing your code can also be enjoyable - seeing all your hard work come together. Programming is often a mixture of large projects and quick bug fixes, and both have their own kinds of satisfaction - the sense of achievement of completing a large project compleme
nts the satisfaction of correcting a small programming bug and making some poor user's life easier. * Control of your own workload If you're the kind of person who hates being told what to do and prefers to manage his or her own workload, you'll love this aspect of programming. Your manager will give you tasks and may prioritize them, but it's up to you how you tackle the work. * Travel Programmers often get to travel to other countries, particularly if they work for companies with overseas offices. As a programmer for an auction house, I traveled to Geneva, Monte Carlo, Paris and Australia on sale support and got to enjoy the glamour and excitement of many different auctions. This is an aspect of my job that I really enjoy. **** THE DISADVANTAGES OF A CAREER IN PROGRAMMING * Can be very frustrating I've spent weeks trying to solve a problem and got absolutely nowhere, then found out that the fault in the program was caused by a missing full stop! It can be very frustrating trying to solve a problem when your manager's screaming deadlines and the problem concerned is getting worse and worse. I often feel like throwing my computer out of the window! Occasional frustration is inevitable - but in these circumstances, it's very satisfying when you finally solve the problem. * May have to work antisocial and long hours It's a rare programmer that finds himself able to stick rigidly to a 9 - 5 office routine. You may spend all day trying to solve a problem, only to hit on the solution at 5.45pm, with another two hours of coding necessary to completely correct the issue. If an urgent programming issue comes up that's preventing an entire company from receiving their salaries that month, you can't leave until it's solved. Consequently, you may find yourself having to work long and antisocial hours, often for no extra pay.
* It's never easy Programming is skilled work, and you always have to think as hard as you can and focus all your concentration on what you are doing. Sometimes I long for a mundane, easy job where I could do my work without having to think about it and leave it behind at the end of the day. Headaches and stress fatigue is common. I often find myself lying in bed at the end of the day writing code in my head, still trying to solve programming problems. If you want an easy, stress free life, don't become a programmer. **** HOW TO BECOME A PROGRAMMER Still interested in programming? Okay, here are some of the ways you can enter the profession: * Study Programming/IT at school/University Young people who aspire to become programmers can take a GCSE in IT and then go on to study for a degree in Computer Programming or IT. Either of these subjects will help you to enter the profession when you leave university. Be warned, however - programming languages go out of date at a very fast rate, and the programming languages you will learn at school and university may well be practically extinct by the time you leave. * Look around for low wage ?training? offers Do not think that you HAVE to have a relevant degree to become a programmer. I did a degree in English Literature, and still managed to land myself a programming job! These days, employers are looking for the right qualities rather than specific qualifications. Many companies are willing to take on unskilled people with a moderate salary and train them up, rather than fork out extortionate amounts of money for skilled staff. That's how I got my first job - £10,000 a year, but I got all the training I needed to be able to stay in programming and command much higher levels of pay. * Train Yourself I'd imagine that this is the hardest way to enter the profession - study a programming language in your spare ti
me, then once you have reached a level of proficiency, apply for jobs that require this knowledge. I have two problems with this approach : Firstly, it's nigh on impossible to learn everything you need to know about a programming language from a book. You need to be working with the language, solving actual problems, to become skilled in its use. Secondly : It must be incredibly difficult to land a programming role with no prior experience, other than that learned in ones own spare time. I doubt that many companies would take someone on this basis, even for a low salary. By all means learn something new, but don?t expect to automatically walk into a job when you?ve learnt it. * Request a transfer to the IT department Many companies have in-house IT departments, and are often happy to fill a vacant role with someone who's already working for the company. You probably won't get a pay rise initially, but you'll get the training you need and will eventually be able to demand a salary increase or move on to better things. If you're already in IT, as a computer operator or helpdesk assistant, for example, it should be even easier to cross over into programming. Keep your ears and eyes peeled for suitable vacancies. I hope this has helped give you an idea of what programming entails, whether it's a suitable profession for you, and how to get a foot in the door...See if you can answer the following question to see how much you've learnt... Q : How many programmers does it take to change a lightbulb? A : None - that's a hardware problem!