HTML code

Why learn to code? In some ways, writing software is the basis of digital literacy. Steve Jobs said programming “teaches you how to think.”

Maybe you are an entrepreneur with a side hustle and you want to be able to build prototypes yourself. Or you at least want to understand what the developers you found on Upwork or Topcoder are talking about. Maybe you want to build the next Pokémon Go, or just automate away some of the tedium from your daily tasks. Maybe you want to build the skills to be hired by one of the many local tech companies. Whatever the reason, it’s a great time to start. Here are some resources to help get you going.

The first thing to decide is which language you want to start with. While there are some resources like the Introduction to Computer Science course offered by Harvard on edX that introduce a broad spectrum of languages, most focus on specific languages. Here are some languages that you might want to consider that are 1) fairly beginner friendly, 2) popular, and 3) productive. This list is constrained, and not intended to be exhaustive. For a more comprehensive review of options with salary and support information, there’s a great article on codementor covering languages for the beginner.

Python is a general-purpose, interpreted language that’s popular for back-end web services and automation tasks.

Ruby occupies a similar space to Python. But where Python has a wide variety of web frameworks (for good and ill), the Ruby community has galvanized around Rails, and together they have become a go-to web framework that many developers enjoy working in.

Java is an Object-Oriented language used for everything from enterprise applications to Android development. It runs on a Java Virtual Machine (JVM), which has spawned other languages targeted to the JVM instead of to hardware. There are JVM versions of Python and Ruby as well as other languages like Clojure, Groovy, and Scala.

Javascript was named to take advantage of the popularity of Java, but is not actually a related language. It is the way that front-end web interactivity is coded, and it’s started to make inroads on the back-end as well with tools like node.js.

PHP is essentially a “web-only” language but is very easy to get started with because many web servers support it directly “out of the box.”

If you want to develop for the iPhone, Swift is the language to learn. It’s quickly replacing the Objective C language that had been the only way to develop for iOS devices.

C# (pronounced “C sharp), with .NET are the gateway language/framework to the Microsoft world. Lots of web and game development is done in C#

Now that you know which language you want to learn, here are some resources to make it happen!

Pluralsight, and Lynda.com are a training platform for a variety of technologies. Training costs $20 to $50 per month, and each platform has roughly 5000 courses. Both offer 10-day free trials

Udemy, Coursera, and edX all offer online versions of college courses, and therefore many of the programming classes offered on these platforms are well structured, and rigorous.

Codecademy is a training platform specifically for coding. It has quick, interactive lessons that get you coding right away. It’s free, and you can upgrade to “pro” for $20/month to get learning plans, quizzes, projects, and access to advisors.

W3Schools has introductory material on many different web technologies including PHP, and JavaScript.

Finally, there are some local resources to help with your language learning, as well. There are a number of user groups. For Python, there’s PyCHO. Organized locally by gurus at CoshX Labs, Rails School for Ruby on Rails is available in only 2 cities: Charlottesville, and SanFrancisco! PVCC offers courses in Java, C#, C++, and others. The Waynesboro Area Learning and Technology Center (WALT) has some gentle introductions to computers and computing.

It’s never been easier to learn to code, and coding is a great skill to have whether for career, project or just expanding your mind and sharpening your thinking. Hopefully these resources will help you jumpstart your education. Do you have a favorite language? Did I miss a critical resource? What languages do you want your new hires to know? Let me know in the comments!

AC Capehart
Author: AC Capehart
This email address is being protected from spambots. You need JavaScript enabled to view it.
AC Capehart is a local technologist who had the privilege of working at Kesmai as they made pioneering MMO games, and Linden Lab as Second Life rode the initial crest of the Gartner Hype Cycle. He's written code in most of the languages referenced here, (and some not), and has managed development teams spread across 10 time zones. Whenever he's not in front of a computer, he's probably playing or coaching soccer.