Getting Into the Software Industry

I got this LinkedIn message the other day:

Hi Dylan,

I am a recent high school graduate and I learnt and developed a love and passion for programming through all of your conferences at ndc, art of code and plain text were definitely my favourites.

I’m wondering how I can try to get into the software industry as I’m given to understand it is quite saturated. Most of my experience in recent times is in low level development but I love all forms of software. Any advice is greatly appreciated

and, well, I figure there’s maybe a few other people out there who might appreciate my advice on this, so here goes.

Caveats: I’m an able-bodied English-speaking cishet white guy, which means I get to play life on the easiest difficulty setting. It’s also coming up on three decades since I was a high school graduate, and the last time I had a job interview, one of the questions was about WAP phones.

“Getting into tech” boils down to exactly three things:

  1. You have something to offer
  2. Somebody needs that thing
  3. That person knows who you are and what you can do

First, you have something to offer.

What can you do? What problems do you know how to solve? People often ask me how to get into programming, or how to “learn to code”… I say build something. Finish it, then build something else. Create a website for your friend’s band. Build Tetris. Write a ray-tracer. Write an adventure game. Write a Sudoku solver. Download all the data from IMDB and build a tool that’ll play “Six Degrees of Kevin Bacon”.

Like Jeff Atwood once said: do it in public. Get used to the idea of putting stuff out there which isn’t perfect. Software is never finished, so learn how to tell when it’s good enough to release, and when it’s good enough to put to one side for a while and pick up the next thing.

You also need to realise that it never ends. When I first started programming, when I was about eight years old, I spent hours every week learning how to make the computer do stuff I’d never done before. Nearly forty years later, I still spend hours every single week learning how to make the computer do stuff I’ve never done before. There’s no point where you get to stop and go “that’s it, I’m done. I know programming now. I can stop learning.” Technology is a vast, constantly evolving landscape of problems and solutions, tools, patterns, ideas: some of those turn out to be timeless, some of them will be gone by the weekend.

Second: somebody needs that thing

You want to do this for money? Look at who has money, and what problems they’ve got.