So, you’re thinking of becoming a software developer? That’s awesome - an awesome profession and awesome that you are considering whether it is right for you. I also think it is awesome that you would consider my advice (that is why you’re here, right?).

Software development is a dynamic profession that isn’t right for everyone. For me, overall it has been pretty great. It’s provided a fulfilling career for me and a comfortable livelihood for my family for over 20 years now. But it shouldn’t matter to you how great it has been for me, or anyone else. What we want to figure out is whether it could be great for you.

Let’s start by asking this question: Why are you interested in writing software? Let’s start with a good reason NOT to be interested in writing software: Because you like computers.

This is a false association. I don’t mean that people who like technology won’t like writing software - rather, that you will need a better reason than this one to support your goal.

Lots of people assume they’d be interested in writing software because they enjoy using computers and the applications on them. But the activity of creating software is not much at all like the activity of using software. Making this correlation is like assuming that because you like living in a house you should become a carpenter, or because you like to eat food you should become a farmer, or because you like to watch NASCAR on TV you should become a mechanic.

Particularly, many young people think they want to become software developers because they like playing video games. I’ll say it again: Writing software, even video game software, is nothing like playing video games. In fact, writing video game software shares way more in common with writing a web server than it does with playing video games.

So how can you tell if you would like writing software then? Here are some tips.

  • You like math. Writing software is all about math. Not necessarily arithmetic math or algebraic math, although there’s a lot of that too. But there’s other kinds of math involved in writing software, like logic, patterns, sequences, and recursion. Computer programs are full of functions, which in essence are each some type of mathematical transform. If you hate math, and especially if you are reading this paragraph thinking “I can’t believe there are even people who like math at all!” then writing software is not for you. But if you enjoy math you might like writing software too.
  • You like solving problems. Writing software has a lot to do with solving problems. In fact, writing software often means that you are trying to solve a problem for which there isn’t a known solution, or at least one that will work for you. A non-trivial amount of what software engineers do is to sit and think, draw pictures, and discuss problems with others. Many software developers find it exhilarating to get together with other smart people, brainstorm, and come up with a solution to a problem. If you enjoy that also, you might like being a software developer too.
  • You like organizing things. Not all software developers are neat and tidy, mind you. But if you are an organized person you might enjoy writing software. The process of creating software is the process of taking something that is unorganized and making a system out of it. It’s the process of automating things so they are predictable and efficient. If you always know exactly where your car keys are or tend to keep an extra tube of toothpaste in the cupboard, that may mean you tend to create systems for yourself in order to keep your life predictable and in order. Writing software is all about creating systems that bring order.
  • You like to create. Writing software is all about creating. As a software developer you will constantly be creating something new. Writing software is a particularly magical type of creation, too, because once you have a computer all you need is time and your imagination and you can create almost anything seemingly out of pure thought matter. If you like building things, whether it be a new backyard deck or a new LEGO set, and particularly if you’ve ever looked at something and thought, “What would really be fun would be to build one of those myself,” you might enjoy writing software.

If some number of those items describe you, AND none of them sounds like an absolute turn-off, then you may be right to think being a software developer could be a good career for you - especially, after all that, if you love computers and computer software.

But still - how do you know for sure?

This is the best part - what makes being a software developer different from so many other careers: You simply try it out for yourself.

Some careers you just can’t really try out beforehand, like being a dentist. Others you could possibly try out beforehand, but it is just really expensive, like being a homebuilder. But if you think you want to write software for a living, all you need is access to a computer and you can try it out for a while and see if you like it.

I recommend you start by learning Python. Python is a great first language and one that promises to be useful throughout your software development career no matter what direction you choose. The website you want to use to help you is Learn Python the Hard Way. Don’t worry - what they really mean is to learn Python the correct way.

As you start out, let me help set your expectations. This journey toward being an accomplished software developer is a hard journey. When it gets tough - and it will get tough - I want to be sure you remember why you are pursuing this goal and that you knew it would be hard at the start. You shouldn’t assume that it being hard to achieve means it is not right for you. Nothing worth having is easy to obtain, and I believe that if you want it bad enough you can learn to do anything. So as you are working through the tutorial, if you find that it is hard, just know that means you are learning something worthwhile. However, if you find that you hate it, and that even after you figure something out you still hate it, then this might not be the thing for you.

So try out that tutorial for a while. If you work through the exercises and find yourself fascinated and coming back for more, that’s a good sign, and you can move on to the next post in this series (when it is available).