Creating your own custom apps has never been easier than it is today. Thanks to an abundance of smart frameworks for Web, desktop, and mobile development, anyone with the right mindset, focus, and determination can build cool, data-driven apps for almost any platform. But getting started can be daunting for a would-be coder. In this article, we’ll explore how to get started in app development.
First, a few caveats: Programming isn’t for everyone. Although it’s now relatively easy to get started, it’s unrealistic to expect to produce world-class, professional-quality apps right out of the gate. So set your ambitions accordingly, and expect to spend a few months learning a language and framework before producing anything remotely useful.
And be prepared for the fact that your first apps aren’t likely to be quite as sophisticated, efficient, and polished as those created by experienced developers. But with some planning and dedication, you can create very useful apps for yourself, your business, and your customers. As we’ll discuss further below, development is an iterative process, and you’ll have ample opportunity to refine and improve your apps as you go along.
What to expect when you’re expecting to code
Software development is all about process, and the process of learning to code and creating an app looks like this:
1. Choose a language and framework.
2. Get some training.
3. Plan your app.
4. Make an MVP (minimum viable product).
Simple, right? Well, as simple as it can be, anyway. Let’s move on to Step 1.
Pick a programming language
Fully exploring the range of languages and frameworks is an undertaking that falls outside the scope of this article, but here’s a quick rundown of some good options:
- Python – Versatile language for desktop and Web apps that’s also great for scripting
- PHP – Popular server-side language for Web apps, essential for tinkering in blog platforms like WordPress
- Ruby – Easy-to-learn language commonly used for Web apps
- Java – Versatile language commonly used for Android apps
- Objective-C – General-purpose language based on C, the core language for iOS apps
It’s a good idea to get a little hands-on feel for a few languages before settling on one as your primary focus. I suggest taking some basic tutorials for a spin on a learning site like Codecademy to see which language resonates with you most.
Get some dev training
Once you’ve figured out where you’d like to start, it’s time for some training. There are tons of great options out there for dev training, ranging from live classes to online courses and books. When in doubt, do all three.
It’s a good idea to invest some time in online courses before devoting time and money to an in-person class. Sites like Code School, Codecademy, and Treehouse offer rich interactive primers on a variety of programming languages and development frameworks at very low cost. Codeacademy’s free courses are an excellent place to start getting a feel for coding without dipping into your training budget. My personal favorite of the three, Treehouse, offers an incredible range of courses and tutorials designed to take new coders from the very basics to building advanced projects with sophisticated social media features.
In-person programming courses like those offered by San Francisco-based Marakana or Denver-based Pragmatic Studio can give you a hands-on coding crash course in one week for about $2500, depending on the course. These classes focus explicitly on one programming language or framework, such as iOS or Android for mobile, or HTML5 or Ruby on Rails for the Web. Typically you’ll get a guided experience building some simple project throughout the week, such as a blog, a Twitter clone or a To-Do app.
The main benefit live courses offer over online tutorials is a chance to ask questions and interact with a seasoned developer who can coach you and give you a sense of perspective about the challenges you’re facing as a new coder. But be prepared to move quickly: Most of the students in these courses will be experienced developers looking to expand their skills, and dabblers can fall behind fast. So be sure to take the time to acquaint yourself with the basics of the language or framework you’ll be learning ahead of time.