Coding is all the rage these days. Students of all ages and adults already in the workforce are increasingly encouraged to learn programming. Even President Obama said everyone should learn to code. 

There are countless resources that offer the opportunity to learn different skills. From free online classes through services like Codecademy to multi-thousand dollar programs that promise to turn you into a bona fide software engineer in nine weeks. 

But the question remains: Does everyone really need to learn to code?

The answer is no, at least if you’re not in an industry that relies on technology. But that pool of workers is gradually shrinking.

Gregg Pollack, founder of learn-to-code service Code School, says anyone who has to communicate with a developer at any point in their career should learn the basics of programming.

“If you learn some code, you’ll have a much better appreciation for what they do,” Pollack said. “Take the time to understand what it is and how to effectively communicate with programmers.” 

If your goal is to just understand programming concepts, you can play around with a few coding languages and see which one you prefer to learn. However, if you have a goal in mind—such as building an iOS application or a responsive Web page—you need the right tool for the job. 

I’m Just Getting Started

If you have no experience with coding languages or Web development, you can start by learning basic HTML and CSS. 

HTML isn’t a programming language; it’s a mark-up language used for formatting documents. With HTML, you’re able display your words, pictures, links and video in a format that can be understood by Web browsers. Cascading Style Sheets, or CSS, help you can change the font, size, columns, and other design aspects of a Webpage. 

You may already have experience using HTML and not even realize it. People who use WYSIWYG editors like Adobe Dreamweaver might have noticed you can change your editing style by toggling from “visual” to “HTML.” 

Even minimal knowledge of HTML is helpful for people, whether they want to pursue programming or not. Having a mild understanding of how responsive websites operate, and learning how to fix your personal blog or site on your own, can help in many careers down the road. 

I Want To Make Web Apps That Look Good

JavaScript is the code makes websites look great, and there are a variety of compatible frameworks like Ember, Angular and Backbone to help you organize and structure your Web applications for multiple browsers. 

JavaScript has been around for 20 years, and it isn’t getting any less relevant. In fact, it’s on track to become the dominant enterprise language.

You can run JavaScript on just about any browser, and it is used to program both frontend and backend services. There are numerous resources for students to learn JavaScript, and Pollack told me JavaScript is Code School's most popular course offering

“If you’re doing anything on the Web, you have to learn JavaScript, no matter what your backend is,” Pollack said. 

I Need Fast Prototyping

If you’re a designer and want to learn backend programming to test applications, Ruby or Python are good options—both are object-oriented, dynamic languages that are fairly easy to learn. And both were among the top five most popular job skills of 2013

Ruby has a large ecosystem and an active, supportive community. Ruby was created in 1995, but rose to popularity after the Rails software framework launched in 2003 and made building websites and Web applications simpler thanks to collections of pre-written code.

Python, while similar to Ruby, has a somewhat larger scientific community, so if you want to progress into machine learning and artificial intelligence, Python is the language you should learn. 

If you’re ready to get started, try Learn Python The Hard Way, or the Ruby track at Codecademy. 

I Want To Build An Android App

On Android, the open-source operating system, app development is mostly done in Java. 

You can build Android applications on Windows or Mac, and purchase relatively cheap devices to test your apps on. And as Android continues to dominate the market share, more mobile developers are choosing to get started on Android than iOS. 

The free introduction to Java programming course on Udacity is for beginners that want to learn Java concepts. Once you’re comfortable with Java, check out the official Android developer site for a comprehensive breakdown of how to create your first Android project. 

I Want To Build An iOS App

On your Mac, you can create iOS applications that run on the iPhone, iPad, and iPod touch with Objective-C. Objective-C is Apple’s abstraction of C with influences of Smalltalk used primarily for building iOS and Mac applications. 

Because there is less fragmentation on iOS compared to Android, it’s easier to create a one-size-fits-all application for the App Store than Google Play. 

Beyond knowledge of Objective-C there are a few other requirements for creating an iOS app—a Mac running OS X 10.7 or later; Xcode, the free tool needed to build an app; and the iOS software development kit. 

To get started, check out the iOS path on Code School and the Apple Developer tutorial.

My Child Wants To Learn To Code

Students across the U.S. were exposed to coding last year. The push to teach kids to code rose in popularity through academic programs like Code.org, which brought coding concepts into the classroom.

Through gamifying the coding experience with tutorials including Plants vs. Zombies and Angry Birds, kids learned the basics of problem solving and introductory programming skills. Code.org features student and teacher tutorials, but there are other game-based resources as well. 

If your child or young student wants to learn programming, or continue practicing concepts and skills she learned in the classroom, start from—or rather with—Scratch.

Scratch is created specifically for students to create interactive games and stories through easy-to-follow lesson plans and collaborative work environments. Scratch is great for students just starting out, primarily designed for students ages 8 to 16.

Find What Works For You

You don't need to have a particular project in mind to start learning the concepts of programming, but it definitely makes it more fun if you have an idea that you can turn into reality. 

If you’ve heard “You should learn to code!” one too many times and you’re ready to finally begin, dive into any class that doesn’t require programming experience and get started. Once you find a class you’re comfortable with, an idea for a project will materialize, and from there, you can learn as little or as much as you want.

Lead image courtesy of Kris Krug on Flickr. Rails image courtesy of hslphotosync on Flickr.