Skip to main content

Free Online Coding Tutorials - Worth Your Time?

Woman Working On Laptop


Are free coding tutorials worth your time? I regularly get this question from people who complete a few of the free online coding training courses. People don’t feel there is anything they can really “do” with their learnings from these tutorials. The tutorials are "too focused. Too abstract. So, what are online tutorials good for? Should you do them? If so, what value will you get?

Free training courses are available through sites like CodeAcademyCodeSchool, etc. These courses often focus on language-level syntax. Languages & topics like: RubyJavaPythonJavaScriptHTMLCSS, RegularExpressions, etc. At the end, you may even get a CERTIFICATE! (note the overemphasis) In this post, I’ll be sharing some insights on when and how to use these courses.

One Thing At A Time

"Will these free courses help me build real programs?" Yes and No. Let me explain. 

Courses like CodeAcademy, CodeSchool, even the ThinkPython book are excellent for learning syntax. 

For example, if you don't know anything about the fundamentals & concepts of HTML (or CSS, or JavaScript, or Python, or whatever), it's a great way to get a taste of it. This will help grow your familiarity with the SYNTAX and usage of the coding language. 

What they’re NOT good for is learning how all of the pieces of a system are built and fit together.

"Should I spend time learning about individual languages & tools through free online courses & books?" ABSOLUTELY. But here's how it works.

When you’re learning to code, it’s WAY too much for you to learn how all of the pieces interact, if you don’t yet know the pieces individually.

Don’t try to learn how systems of code fit together before you learn the basics of writing code in that language. Too many things will be unfamiliar at once. You’ll feel completely overwhelmed and unable to gain traction on any one of them.

A better approach of learning to code is modeled after one of the core unix design principles - do each part in little chunks, and then later on those little parts can be combined easily. Similar for learning to code - focus on learning a few coding languages first (eg: html/css/javascript/ruby), then you'll easily be able to fit them together later. 

This enables you to focus on one thing at a time, and then use those simple pieces to build something grand - even if that grand thing is just your knowledge.


Applying that principle, your first goal should be to learn some coding languages and tools. After trying various approaches, I have found that a good online tutorial in a new language helps with initial familiarization. Then jumping into reading or documentation has much more context to apply to.

A well-written book for beginners in a language often does the same. This might look like going through an introductory book on the Python programming language (like Think Python), or on the Ruby programming language, or on the JavaScript programming language, etc. Later, when you see code in that language, you'll be able to more easily figure out what the code is intended to do.

Seeing the Value

Great. Now you know some syntax, but you don’t know how it fits together. No worries, now that you have the syntax, it’s just a matter of combining the parts to build out a comprehensive program. You can now focus on learning how things fit together.

Most of the good bootcamps follow this general approach. That is, learn the various types of syntax & language concepts you will need to work with (for instance, HTML, CSS, JavaScript, SQL, etc). Then go through a capstone course that teaches you how to combine them into a real application.

So, if you’re frustrated that you’ve been learning a ton of languages through courses and books, but you don’t know how to use them to build something “real”, worry not. All your efforts have been well spent. You've been building up a foundation of code syntax awareness & familiarity. This will enable you to focus more fully on learning how to put it all together.

This is the approach I took to preparing myself for my bootcamps. It enabled me to not get bogged down on syntax-related issues. Instead, I was able to maximize my learning of the systems - the real value of the bootcamps. I stayed at the top of my class and learned a ton. 

I'm immensely glad that I was well acquainted with languages & syntax before my bootcamp. Life was much harder for my peers who had to learn both the coding languages and the systems at the same time. Maximizing my bootcamp learnings & my competency made me that-much-more job ready.

So, don’t get discouraged. You’re not wasting your time learning syntax. Do those courses/trainings. Learn that syntax well. You’ll be glad you did.

Maximizing Learnings

When you go through online tutorial, go through a YouTube tutorial, go through a book, or otherwise, make sure you DO all of the coding that they are walking through (literally, type it). That's the most effective way to learn coding concepts. It slightly slows the tutorial, but drastically speeds up your comprehension & retention.

If you just read or listen, you're unlikely to remember the content or be able to apply it. Half of learning coding is typing things out. Typing it out builds "muscle-memory". It works. Do it. If you don't, you'll just waste your time. 

In the end, all that really matters is building your knowledge & experience towards competency (eventually, mastery), and being able to do useful stuff with those skills.

This is why I joked about getting a "certificate" at the end of a free online tutorial. A certificate doesn't prove you've actually learned or retained anything. I have never seen a company that gave any credibility to tutorial "certificates". Yet, also remember that no one cares where you learned your coding concepts - a tutorial or a graduate school capstone.

The key is to learn & retain as much as you possibly can. For that reason, I take notes on everything I learn. Yes, it means I write everything out twice. I write it first when doing the tutorial, then a second time to record the concept in my notes. Those notes have become a highly valuable personal coding "cheat-sheet" that continually grows. 

I have ONE text document that I type all of my cheat-sheet notes into. This makes it super easy when I want to find something. I don't have multiple documents to look for stuff in. I simply do a "find" (search) in my notes document and can quickly find anything. 

I create a section for each thing I learn - HTML, CSS, JavaScript, Java, Scala, SQL, MongoDB, Git, Bash/Shell, AngularJS, EmberJS, Ruby, Ruby on Rails, AWS CLI, Python, Spark, etc. I use that cheat-sheet constantly - both at work and on personal projects.

Finding Resources

Don't fall into the marketing trap of paying for courses thinking you'll get better learnings from a paid course than a free course. Cost is not an indication of value. 

In many cases, you can get the core principles by going through free courses. Once you finish some free courses, just look for other tutorials elsewhere to fill in the gaps. Plus, using a variety of learning approaches is often helpful. Books are great for this. YouTube tutorials can be great.

If you find that you're not enjoying a tutorial, don't worry! Tutorials are not a one-size-fits-all. So, find a different tutorial or learning resource. Find something that works for you. There are plenty to choose from out there.

While google searches are a great way to find free tutorials, below are some links to free tutorials you might find helpful:


CodeAcademy
  Learn HTML (webpage structure) 
  Learn CSS (web styling)
  JavaScript Intro (programming language, web interactions & applications)
  Learn SQL (interacting with databases)
  Web Development Courses (putting the pieces together)
  Learn Ruby (programming language)
  Learn Python (programming language)

Code School
  Learn HTML/CSS (webpage structure & styling)
  Learn Javascript (programming language, web interactions & applications)
  Ruby & Ruby on Rails (programming language & web application framework)
  Learn SQL & No-SQL (working with databases)
  Learn GIT (version control used with building any program)
  Learn iOS (iPhone programming language)
  Learn Android (Android mobile phone programming language)
  Learn R (programming language for big-data)
  Learn Chrome DevTools (web development browser developer tools)
  Learn Docker (packaging services & apps together; deployment tool)

W3 Schools (less interactive, more dry, more detail)
  Learn about HTML (web page content/structuring)
  Learn about CSS (web page styling)
  Learn about JavaScript (programming language, web page dynamic interactions)
  Learn about SQL (code for working with relational databases)
  Learn about Bootstrap (framework for building/styling webpages)

Little MongoDB Book (learning mongodb)
Docker Tutorial (More Advanced)
Ruby on Rails (More Advanced, less interactive)
Learn Python Programming Language (Using Python 2)
Learn Python Programming Language (Uses Python 3 - recommended)



clints image

Clinton J Nelson

Hi! I'm Clint. I'm A... Husband. Father of three. Software Engineer. Professional Engineer (structural). Sippy-cup filler. Carpenter. Mechanic. Entrepreneur. Archer. Follower of Jesus.


Creator of goodwyrk.com - the map based job search that uncovers hidden jobs. Come discover your dream job in your dream location.

Comments

Popular posts from this blog

How To Fix Blogger's Broken "Manage tracking your own pageviews" Page Link

&nbsp tl;dr Click the broken link, and manually change the broken page address protocol from "https" to "http". Boom. Works. The Goal: Better Stats When trying to determine what my stats were on Blogger, I noticed Blogger was counting every time I  looked at my own page. Viewing my own page really shouldn't count a "page view", so I figured there must be a place to turn off tracking myself. Turns out there IS a setting to do just this. If you go to Blogger > Stats > Overview, on the right-hand side of the page you'll see a link that says: " Manage tracking your own pageviews ". Yay! But when I click the link, I get this: Boo. :-( The Problem: Bad Link Address I did a quick google search for a solution, but didn't find anything useful. After investigating the page on my own, I found out what's wrong. Blogger has an "oops" in their system where they didn't update thei...

Is Your High-Speed Internet Slow? It SHOULD be FAST! It SHOULD have RANGE. Here's How To Fix It And Save Money Each Month.

Asus RT-AC86U Wifi Router - Family Approved! Summary Connecting  Asus RT-AC86U wifi router  to our existing combo modem/wifi-router fixed all of our internet wifi speed & range issues. We now have the FULL wifi internet speeds we've been paying for - everywhere in the house! Preface READ THIS FIRST: If you're connecting your computer to the internet by literally plugging a cable from the modem into your laptop/desktop computer, then this article is NOT for you. This article is for people using WIFI in their home and have SLOW speeds or inability to use the internet from everywhere in their home - even when paying $$$ for internet each month. The research I did and the results it got me have been astounding and I'm SUUUUPER excited to share them with everyone I know. I suspect many others deal with unacceptable internet speed issues, too. This is intended to free you from being stuck with slow internet while paying for fast internet - like I was. I hav...

Keys - The Often-Overlooked Multi Tool

Today, I was standing at the recycle container with a box that I wanted to break down. Unfortunately, it was taped to withstand the next nuclear war, and I didn't have scissors or a box-knife on me. I almost forgot that I was carrying my poor-man's swiss army knife (aka: house keys). I whipped out my house key, swiped down each side of the taped seams, and voila! The box broke down faster than a 1990 Chrysler. I realized that in almost forgetting about the usefulness of my keys, there are others who have probably never known that usefulness. Time to fix that. While I'll probably forget some here (like I almost did that day with the box), feel free to chime in on the comments and I'll add any here that I feel are pertinent. Without further ado, here are some ways that your house keys can come in useful (plus I've added helpful "key RISK gauge" in [brackets] to help you gauge the low/moderate/high risk to your key for each of the uses): Disclaimer:...