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