Due to coronavirus quarantines, many of us have tons of free time on our hands. (For those who don’t, such as parents, essential personnel, and first responders, we salute you!) In order to keep the cabin fever at bay, many people are looking online for inspiration, distraction, and/or education. One way to beat the boredom is to learn how to code.
From coding-themed toys to movements like Hour of Code, coding is everywhere these days. However, you’ll want to think about your goals a bit before you dive in. There are multiple coding languages, largely falling under four categories: web development, electronics/circuitry, computation/modeling, and database tasks. The first step is to decide which flavor of programming would be the most fulfilling for you.
Whichever language(s) you pursue, we’ve got your back. Below, we’ll go through each language type, providing you with tips, resources, and products that can help you get started on your coding journey.
What is it? Like the internet itself, these web-based coding languages offer infinite possibilities. Any time you see a webpage, you’re looking at the final result of millions (billions?) of lines of code. Imagine that a web page is like a play: the activity on stage is what the audience is seeing, but it’s all the work behind the scenes that make the pretty, polished production possible. A website is the same way. There’s the part the reader/user sees (AKA the front end), and there’s the tools the content creator uses to make the content visible/interactive (AKA the back end).
These coding languages deal with the creation and use of websites (e.g. creating a new thread on Reddit), as well as the sharing of information between websites (e.g. seeing different hotel prices listed on TripAdvisor).
If you want a taste of what web developers do, go to the settings menu on your web browser and look for the “Web Developer” or “Developer Tools” option, and try not to get overwhelmed at the code that suddenly appears.
Codecademy – Get free access to daily exercises and basic coding lessons for these web development languages. By subscribing to Codecademy Pro for $19.99/month, you get access to more tools, support, and content.
Khan Academy – A search of Khan Academy’s courses reveals tons of freely-available tutorials on HTML, CSS, and Java.
A Smarter Way To Learn series by Mark Meyers – Get this highly reviewed series that walks you through CSS, Java, and HTML on your Kindle.
Ruby Essentials – An online textbook that walks you through the basics and logic of Ruby.
Learn Swift 5 For Beginners – This series of bite-sized video lectures walks you through the basics of coding in the Apple OS environment.
What is it? If you have any interest in tinkering with electronics and circuitry, C++ and Python are the coding languages for you. C++ and Python are the main coding languages compatible with the Arduino and the Raspberry Pi microcomputers/microcontroller boards, respectively. These coding languages are designed to translate electric signals into digital ones and vice versa.
With C++ and Python, you’ll be able to see the fruits of your coding labors in the real world instead of just the virtual one, with projects like automating things in your home, building cool robots, and so much more.
Codecademy – Get free access to daily exercises and basic coding lessons for these hobbyist electronics languages. By subscribing to Codecademy Pro for $19.99/month, you get access to more tools, support, and content.
Arduino Workshop: A Hands-On Introduction with 65 Projects by John Boxhall – Having tried to learn C++/Arduino myself, I can attest that this book is really helpful with both the C++ coding basics and the electronics/circuits concepts that allow you to make neat projects.
Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes – This highly-reviewed Python book makes Python programming fun and informative. How could you resist a whole chapter about a project called “Aliens!”?
Raspberry Pi Projects – The Raspberry Pi website hosts these tutorials that include lessons on Python and the Raspberry Pi microcomputer.
Python Raspberry Pi tutorials – The Python website includes instructions on how to get up and running on your Raspberry Pi.
Arduino tutorials – Arduino lists thorough explanations for each of the coding commands built into an Arduino microcontroller.
RobotShop – RobotShop uses a combination of videos and screenshots to help you connect the dots between the C++ code you’re writing for the Arduino and the actual circuit setup.
What is it? We’ve already talked about Python and C++ in the context of electronics and circuitry, but these coding languages, along with C (C/C++/C#), Fortran, Matlab, R, Visual Basic, and Bash/Shell, are commonly used by superusers when it comes to computing tasks such as batch file operations, file organization/creation/manipulation, performing calculations, plotting/manipulating data, and writing computer programs.
I’ve come across many of these coding languages in an academic setting, where it’s especially important for you to be able to translate theoretical work into numerical data that can be modeled or summarized in charts and plots.
Codecademy – Get free access to daily exercises and basic coding lessons for Python, C++, C#, Bash/Shell, and R. By subscribing to CodeAcademy Pro for $19.99/month, you get access to more tools, support, and content.
Learnx.org – The website may change depending on which language you’re learning, but this set of websites provides an introduction (and exercises related) to the basic commands for Bash/Unix Shell, C, C++, and Python.
Fortran Tutorial – Follow the lessons at this website to learn the basic operations and commands for Fortran 90/95.
SwirlStats – Check out this website for downloadable R tutorials that show you how R can be applied to statistical problems in different fields.
The Linux Command Line by William Shotts – I loved using this book to learn how to code in Bash/Unix Shell. It not only explains the “how” of each command, but the “why” as well.
Shell Scripting Tutorial – This step-by-step tutorial walks you through Shell in a very clear and concise fashion.
HomeandLearn – This website contains thorough explanations for the variables and operators that can help you build macros in Excel.
TutorialsPoint – If you want an explanation for all of the major functions and coding commands in Matlab, check out this website.
Database language: SQL
What is it? SQL is technically a database language rather than a true programming language. It is commonly associated with the business world because with SQL, you can organize and interrogate databases.
If your workplace runs on data and the amount of data you have surpasses what you can handle with Microsoft Excel or Google Sheets, chances are one or more of your work tools rely on SQL. SQL commands, libraries, and syntax are used by other coding languages such as Java or Python. There are other database languages out there, but SQL is the most popular.
Khan Academy – A search of Khan Academy’s courses reveals tons of freely-available tutorials on SQL.
SQL For Beginners: The Practice Guide to Learn SQL in 1 Day by James Deep – This well-reviewed book involves completing exercises that will help beginners get up to speed on the SQL basics.
SQLZOO – This online tutorial explains SQL syntax, and includes an SQL query window at the bottom of each page so you can try it out yourself.
Bonus: Kid-friendly languages
What is it? For the burgeoning kid coders in your life, check out Scratch, Blockly, and Snap!, coding languages/environments aimed at younger folks. Think of them like the LEGO version of coding languages—the components are brightly colored, easy to assemble, and can help kids develop very simple or highly complex programs.
With self-explanatory coding blocks that you drag and drop, rather than lines of code with specific syntax that you have to type, children can easily pick up coding basics. Even better, you can use these coding languages online for your own projects, or they come standard in certain toys/games/kits.
Scratch Studio – The Scratch webpage offers up a number of fun projects and tutorials for Scratch coders at all different experience levels.
ScratchEd – This series of video tutorials involves downloadable project files and PDFs as you work your way towards building a “Mini Mario” game.
Snap Manual – The Snap manual explains the coding environment and how Snap works in general.
Gitbooks – Gitbooks has a whole section on Snap that includes downloadable worksheets, projects, and exercises.