One of the questions I am asked all the time is how I learned to write software. That question is always followed by “will you teach me?” Creating applications is a complicated process, but that doesn’t mean you can’t learn. You may already have some of the skills needed.
It All Starts with An Idea
My computer days date back to the early ’80s, when my mom bought me a Timex/Sinclair 1000 computer. I wrote a couple of games, but mostly wrote programs for doing my math homework. Fast forward to the ’90s. Working as a technician, I needed a way to track inventory and print work orders, so I wrote a program using CA Clipper to accomplish that task.
In each of those situations, I had a problem to solve. When I get asked by someone how to get started, I ask them what their motivation is. Sometimes it’s a career path they want to take, but the majority of the time it’s because they have a time consuming task, or some other problem, and they want to make their life easier.
Ask yourself what app you would like to use on a regular basis, and go from there. It doesn’t matter if a similar app already exists; you are writing this for yourself.
I Have An Idea…
Great! Time to get started. Decide what your platform of choice is. Are you writing a Web app, a phone/tablet app, or even a Windows 8 Store application?
Books are indispensable when it comes to programming. One good reference book is sometimes all you need. And not just books on how to write code, but books on good programming habits, user interface (UI) design, and object-oriented principles are all valuable to have in your arsenal. Most will be available electronically, but I recommend a physical book. I do not recommend, however, sitting down and trying to read a 600-page book. With most programming reference books, you go directly to the chapter that covers the information you need right there and then.
It’s time now to set up your development environment. The way you do this will depend on the platform for which you’ve chosen to develop. Check out the developers’ section of the website for that platform. Some platforms, such as Apple’s iOS and Windows Phone, have an integrated development environment (IDE) available for download. The IDE is where you’ll actually spend time writing code. Other platforms, such as Android, are more open and allow you to chose an IDE. Eclipse is a popular IDE for creating Android apps.
You’ll also need the Software Development Kit, or SDK, for the platform you choose. As with the IDE, you’ll find the SDK in the developers section of the platform’s website. Follow the instructions on how to set up your IDE, and properly install the SDK.
OK, I’m All Set Up
Time to finally write some code. Think of writing code as learning to speak a new language. Whether you develop for Windows, iOS, Android, BlackBerry, etc. your code is going to look a little different. It’s important to note though that, while your code may look different, your goal should remain the same, and that is to write clean, efficient code. You’ll thank me any time you need to debug your code, or add features to your application.
Look for sample applications similar to your idea and review the code. No matter which platform you choose, sample applications with full source code will be available. In most cases, you can use these samples as a good starting point for your own app. These sample applications will also guide you in how to structure your project and are great learning tools.
Start with a couple of small apps to get a feel for things. One of the first programs I create when learning something new is a simple, one-form application. It contains a text box and a button. Clicking the button will show a popup dialog with whatever text was entered. It’s simple, but there is something satisfying when you see your application do the things you told it to do.
Next: code, test, code, test… This is how you’ll live most of the time while writing the app. You’ll make many mistakes along the way, and run into road blocks. Don’t get frustrated. Use your favorite search engine and search for the issues you are having to overcome these hurdles. Chances are that someone has had the same problem as you. Keep at it; the more experience you have, the easier each issue will be resolved. Before you know it, you’ll be reusing your code in other applications, and each app will almost write itself.
I hope this short guide has encouraged you to give software development a try. Whether you are writing a small personal application for yourself, or the next number one selling on the App Store, it can be a very rewarding experience.
My name is Nick Alonge, and I’ve been a software developer for the last 20 years, creating everything from websites, traditional desktop applications, and most recently mobile applications. I started my own business five years ago after working in a corporate environment for 12 years.
Image: Hello, World by oskay (via Flickr)