It is cliche to say a journey of a thousand miles begins with a single step. Nevertheless, starting a journey to become a software developer is going to take awhile. Therefore, my advice is you start today.
When I related how my journey began when I was ten years old, it isn’t to scare you into believing that you only have a few decades to go. Not every moment of every day of that time was spent improving as a developer. I gave up on the whole thing for a few stints of years at a time. Then I became reinvigorated and got a few jobs. Next thing you know, it’s a career.
What I believe you must do is begin immersing yourself in the discipline. This doesn’t mean immersion as in fanatic devotion. It means that you should do what you can to start listening to voices in the development community. It means you should try to build some meaningful application. It means you should code.
It’s amazing how easy it is to get started. If you are on a Windows PC, you can probably hit the Start button and type “notepad”. This should find the Notepad application on your machine. You can simply create the following file and save it somewhere convenient (the Desktop isn’t a bad spot). Call it firstpage.html.
You can probably double click on the file and it will open in your web browser. If you’ve never written a line of code before, then congratulations are in order. You created a web page.
What should your first app be?
I think you should build apps you want to use. Avoid building too many demo apps or following too many tutorials. At some point you have to struggle through a problem.
You can build something small for yourself to keep track of recipes or shopping lists. Keep track of your car’s mileage or make a catalog for your movie collection.
It can be very hard to come up with an idea for that first application. On this blog, I’m going to focus on building games. Sometimes they’ll be simple and sometimes they won’t be. If you have an idea for a simple game, it’s not a bad thing to try and build it. Just work at keeping your idea small. You don’t want to get discouraged.
Hitting the brick wall
Not too long into your first project, you will run into a brick wall. This is because you are trying to do something practical and all the demos and tutorials you read are (probably) just trying to teach you programming languages through simple examples. This isn’t because the authors are terrible. It’s because the real-world problems won’t become apparent until you try to solve them.
In the past, I’ve told myself and others that I needed a project to learn some new technology, language, or environment. There is nothing quite like being thrown into the thick of it to be forced to learn what you have to.
At least today we have search engines at our fingertips to help us when we get stuck. Before that I used to crawl through bookstore stacks hoping to find a clue in the table of contents of books that if I just bought THIS book, I’d have the answer I needed.
Learn to finish
There is a skill to finishing software and giving it to the world. It doesn’t matter that you achieve perfection (or even greatness). It’s okay if you are even slightly embarrassed by the product. Many a wise developer has said that if you aren’t embarrassed by version one of a product you waited too long to release it. Those last few steps include squashing the last few huge bugs, writing some basic documentation (even a paragraph or two) so your users know what to do, and letting the world judge your work.
In the end, finish… and resolve to move on to a new project.