Are you patient, focused, analytical? Do you enjoy building and fixing stuff? Can you sit still and obsess over tiny details for hours on end? Then you might enjoy computer programming! Take our quick assessment and check out the interview with a computer programmer below to see if this is the calling for you.
- Computer programmers create, modify, and test the code that allow computer applications to run.
- There are about 296,000 computer programmers in the US.
- There have been 15,000 new jobs for computer programmers since 2012. That’s 5% growth—really solid.
- Roughly 14,600 computer programmers get hired each month.
- Median wages are $38 per hour ($79,000 per year), but you could earn a lot more depending on location and experience.
- You probably need a bachelor’s degree.
Interview With a Computer Programmer
1. What kind of computer programming do you do?
I program the embedded software for satellite communications equipment. (Embedded just means that it’s already in the equipment, not on a disc or something you download.) The software sends data over satellite, and then there are three things the software needs to do with that data: error correction, compression, and encryption.
2. What degree or training did you get?
I got a computer science degree, but I’ve been programming since third grade.
3. How did you find your career?
I got first an internship and then a job at Microsoft. It was a total fluke. I really shouldn’t have gotten that internship. But I happened to have taken a C++ class in high school right before and I hit it off with my first interviewer who (it turns out) really liked C++.
4. What sort of skills do your need to do your job?
You need to be good at abstraction: identifying similar patterns and concepts, giving them a name, then using that at a more abstract level, etc.
Here’s an example of abstraction: When my son was just a baby, we’d be driving and he’d point at some cars and say: “Same.” He was seeing the Toyota symbol on other cars, and we drove a Toyota. Our car and that car were “same.” That’s abstraction.
Two other things that tie into this sort of abstract thinking: music and math. It’s common to find people who read music and play an instrument in the programming field. With all three, you’re working with a lot of constraints. You can’t just throw notes or numbers in; you have to be creative within a framework.
5. What tools do you use in your job?
My entire office is my laptop. Any computer will do. You can program perfectly well on a $300 laptop. I learned the programming language on my HP48 calculator when I was in college.
The other tool is Google. That’s because of the explosion of programming languages; I can be programming in C++ today, and Perl tomorrow, and Python the next day. I may not have programmed in Python or Perl in six months, but I type it into Google. You can learn a language fast that way, which means all the books on my desk are really just decoration.
6. What do you love about your job?
Beautifully working code gets me juiced the most. I like to write code that is elegant so that the solution just falls out, but that usually takes a second pass and you usually don’t get one. Most of the time, you get the code almost completely written and then go, “Oh, that’s the way we should have done it.”
Also, I like learning new languages. If you don’t like to constantly learn new stuff, then you don’t want to be a computer programmer. You have to evolve. You have to use the latest design methods, tools, languages—they are all constantly changing. You should be drawn to that as opposed to seeing it a problem; you get to learn new and better ways of doing things.
7. What are the biggest challenges of your job?
You’re always working on something you’ve never done before. Also, there are so many programming languages, each with different strengths, so it’s easy to get distracted by the code’s abilities as opposed to the task at hand.
8. What kind of person would you hire as a computer programmer?
A clear, consistent thinker. If you have a good thinker, experience doesn’t matter that much. At Microsoft, if we found someone smart, it didn’t matter if they had a college degree—we hired people straight out of high school.
Programmers have to be independent and self-driven. Nobody wants a programmer they have to micromanage. The mark of a professional programmer is that you can “fire and forget.” You hand them a task and know it’ll get done.
9. What is the work environment like at a larger company like Microsoft?
It’s quiet. You have to like alone time. For me, there are few things more enjoyable than being bored by myself—because you aren’t bored; it’s a license for your brain to play. On the other hand, if you are a doer—someone who needs to put their hands to something—then a work environment like that would drive you crazy.
10. Any recommendations for someone who thinks this might be the right field for them?
I highly recommend that people do on-the-job training. What you learn in school and the school environment itself can be very different from the actual job and job environment. You should find someone to sit down with and actually be in their office.