Header 1

Our future, our universe, and other weighty topics

Thursday, November 21, 2013

Get Addicted and Get Rich: A Career for the Future

This is the time of year when millions of 17-year-olds are starting to send in their college applications. Many of them are wondering: what the hell should I do with my life? You don't have to decide that by the time you are 17, but it certainly helps to have an idea of your future career when you are considering which college to apply to.

In this post I will discuss what I think is a very sound career choice for the average 17-year old: the career of software development. I'll include some inside information that you won't get from the average career guide.

Software development is a career that can pay very well. If you live in a major city and have three to five years experience, you can easily make between 40 and 60 dollars an hour doing software development. But what is it really like to work as a software developer, how can you get into the field, and what kind of person will make a good software developer?

First, let's consider: what type of person makes a good software developer? Even though software development involves working almost constantly with computer languages, do not worry if you did poorly when studying languages in school. I worked for a long time as a software developer, and got abysmal grades when studying Latin and Spanish in high school. Computer languages are very different from natural languages such as English and German, and your skill with such languages has nothing to do with your probable success with computer languages.

It is also perfectly possible to be a successful software developer if you are poor in math. I flunked trigonometry in high school, but still worked a long time as a software developer. Nowadays almost all computer languages have “on the shelf” functionality that allows a computer programmer to perform almost any mathematical task more or less effortlessly. So even someone who is “all thumbs” in math can very easily do all kinds of mathematical tasks in a computer program he is writing.

What is the single greatest predictor of your ability to succeed as a software developer? The answer is: creativity. If you are a very creative person, you will probably enjoy being a software developer, and will probably succeed at the job. If I were a hiring manager hiring someone for a software developer job, I would be more likely to hire someone who had written a novel or a collection of short stories than I would be to hire someone who got A grades studying math or foreign languages.

Why is creativity so important in software development? Because when you write code you are again and again facing a blank page that you are supposed to fill in by using your own creativity. To some people that blank page is terrifying. But to other people, particularly creative people, that blank page is enthralling.

How can you get into the field of software development? Nowadays you will see almost all job specifications for software developers asking for a BS degree in Computer Science. However, my experience has been that almost no one cares where you may have got your degree in Computer Science, and probably a large fraction of hiring managers don't really care whether you have a major in Computer Science. There have been very many successful programmers who did not have bachelor's degrees, and very many successful programmers who majored in something other than Computer Science. You can probably get by with a minor in Computer Science or Information Science, although a major in Computer Science might give you the best chance of getting a job.

Hiring managers for software development jobs care about how much coding you have done, and how well you are able to answer technical questions about the details of the type of programming you are doing. They don't seem to care much about where you went to college. Therefore it may be a bad idea to borrow money to go to some prestigious college and study Computer Science. A person who goes to an unglamorous state college (and who knows a computer technology very, very well) may have a better chance of getting a job than someone who went to a prestigious university and does not know the technology very well.

How is it is that you can try out whether software development is a good career for you, before spending a large amount of money on a Computer Science degree? What you need to do is to start writing some computer programs. Try it and see whether you love it or hate it.

You can write simple computer programs very easily by using the fairly simple HTML and Javascript languages. You can just write a program in any text editor such as Notepad, and load the file in your web browser. Once you have tried that, you can move on to the bigger step of downloading an IDE (integrated development environment) that includes a compiler. 

After you try writing a few programs, one of two things may happen. You will either love the work you are doing, or you will hate it. It's pretty much that simple. If you love the task of creating computer programs, there is a good chance that you will get addicted to software development. That can be a very lucrative addiction.

What is it like to have a job developing software? It is a great job for introverts and shy people. A typical programmer spends 90% of his time working by himself, and a small fraction of his time attending meetings or talking on the phone. Many people love that type of ratio.

Developing software is basically a highly pleasurable activity. The best description I ever heard about the joy of software programming was one I heard uttered spontaneously many years ago by a programmer. He said, “Programming is a great job because every day it's make your own gadget.” That sums it up exactly. When you program, you are always making small changes in your program that add a little bit more functionality. You get a very pleasurable feeling of achievement when you try out your newly developed functionality, and see it working correctly.

Young software developers often have to work long hours, but they mostly don't mind. When you are in the middle of a software development project, it can often be the case that you would rather stay working for a few hours more than to go home at 5:00 PM. This is because of the addictive nature of software development. A stock analyst might be miserable working between 5:00 PM and 8:00 PM, but a software developer will typically be as happy as someone playing a video game late into the night.

About the only negative I can think of in regard to software development is that it is very much a young man's game. There is tremendous age discrimination that will tend to kick in when you reach the age of 50. But that's not much of a worry for a 17-year old considering a career, as it still leaves you decades of high-paying employment.

So my advice to a 17-year-old looking for a career is: if you are a creative person, try your hand at writing some computer programs. If you catch the programming addiction, you can get rich from that addiction.