Thinking of a Career in Software Development?

by Darren Collins
Monday, 8 July 2002

I was recently asked by a university computer science student what he should know if he wanted to be successful in his software development career. Here are some of the things I think are important — feel free to email me if you'd like to add some more. I'll add any follow-ups to the bottom of this page.

First and foremost, love programming. If you don't like it now, why do you think spending all day (and many nights!) staring at a computer monitor sounds like a good career? Only people passionate about programming will have the drive to learn more and more and eventually become truly competent programmers. If you don't enjoy your computer classes right now, you're gonna hate doing this stuff every day for the rest of your working life!

Don't worry about which languages and/or operating systems you know when you graduate. I'm sure the languages you learned at university will be an adequate starting point for most employers looking to hire graduates. If they wanted a guru in a particular language or technology, they wouldn't be interviewing graduates. You should, though, make sure you've learned as much as you can about those languages you have studied. Know their strengths and weaknesses. Find out how and why people use them in the real world.

Because you most likely don't have much programming experience, it helps to have written some non-trivial programs in your spare time. This tells the interviewer a few things — you're programming because you enjoy it, not just to pass your course and earn lots of money. You also have initiative and motivation, and can probably work well independantly. You've got experience solving real-world problems, not just contrived academic ones. Make sure you point this stuff out in your interviews!

A big chunk of the average programmer's time is spent relating to people — your boss, other programmers, managers, customers, support staff, etc. You need to know how to communicate and relate to other people. Be patient and attentive in your interviews. A little public speaking experience is nice. It'd be great if you could show some samples of technical articles you've written, whether for a university newspaper, your own web site, or an online ezine or newsletter. Programmers with good spelling, grammar and expression are as rare as hens' teeth!

Show a willingness to learn new things. If you had to learn a new programming language for a final-year project, or you taught yourself HTML and JavaScript to develop your own web site, point that out! Again, it isn't important which languages you learned. What's important is that you demonstrate your curiosity, hunger and ability to learn.

Even if you're stuck in a dead-end Cobol job for a while, keep learning. Pick up a book on Smalltalk, Java, Perl, Dylan, Python or anything else and begin to play around with that language. Sometimes you'll learn stuff that will help with current problems, and other times your curiosity will wind up leading you in a new career direction. If nothing else, at least you stay fresh and develop marketable skills!

Be humble. You may be the smartest cookie in your database class, but how many classes has the department run before this one? Every one of them had a "top dog" too. Don't try to make out that you know everything, but pitch in when you do know a way to help someone. Listen and learn when you get to work with people more knowledgeable than yourself. Don't waste the opportunity.


Related Articles
- Links - General Programming
- Avoiding Hacker Mode
- Thinking of a Career in Software Development?

This site Copyright 1999-2005 Darren Collins.