App developer

How to make an app for your small business

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).

5. Iterate!

Simple, right? Well, as simple as it can be, anyway. Let’s move on to Step 1.

Pick a programming language

Possibly the most baffling decision a new coder can make is the selection of a programming language and accompanying framework. Every language has its advantages and disadvantages, and—to make matters more confusing—old concepts about the proper role of a given language are breaking down, so it’s no longer all that easy to pigeonhole a language into a narrow purpose. For example, JavaScript, typically known as a front-end language for browser-side effects, is now widely used on the back end.

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:

  • JavaScript – Essential scripting language for front-end/UI development, but also growing in popularity as a back-end language
  • 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 worth pointing out that the commonly accepted or intended uses for a given language are by no means written in stone. Thanks to a growing body of available multi-platform frameworks, you can build iPhone or Android mobile apps from code written in just about any popular language. A good example is PhoneGap, which compiles your HTML, CSS, and JavaScript into native apps for iOS, Android, or Windows Phone.

Programming language
Get tutorials on several different programming languages before you decide on a primary one for your app.

Most app development today happens within the context of a development framework—a software platform that organizes your code and gives structure to your app, and typically automates a lot of routine tasks. Some common examples include Rails for the Ruby programming language, Ember for JavaScript, and Django for Python. Because frameworks take a holistic approach to building an app based on pragmatic design principles, they’ll require you to learn at least a little about some supporting scripting languages. So even if you decide you want to focus on Ruby or Python as your core programming language, you’ll end up learning some HTML, CSS, and JavaScript or CoffeeScript (a separate, simpler language that compiles into JavaScript—it’s pretty awesome) along the way. (In general, you should think of HTML and CSS as basic skills, no matter what language and framework you’re using.)

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.

Subscribe to the Business Brief Newsletter

Comments