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.
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.
No comments:
Post a Comment