YouTube programming tutorials: you either love 'em or hate 'em. When done well they convey more than text tutorials ever could, but most are done poorly and offer no benefit over text, in which case text is preferable because you can read at your own pace and skim as needed.

In this post, we'd like to point you to some of the best YouTube programming series we've found. All of these share similarities: they're structured, they're dense in content, and they're comprehensive enough to be both satisfying and sufficient for getting your feet wet as a newbie programmer.

But most importantly, these video series are a joy to watch -- and that alone is priceless.

General Programming

The best thing about Daniel Shiffman is that he's so fun and full of energy that even the driest of concepts are brought to life. The second best thing is that he really knows his stuff, which means he knows exactly how to explain things so they click in your brain. His Programming from A to Z series is a good starting point, but his channel covers all kinds of creative coding topics: Processing, JavaScript, programming math, algorithms, even making a Twitter bot.

C++ Programming

C++ is a tough language, especially for newbie programmers. In this day and age, when higher-level languages are freely available, it really isn't necessary to learn C++ unless you specifically need it for a niche or legacy framework -- but if you're dead set on learning it, this series makes the learning process more than just tolerable. Note that Engineer4Free also has other tutorials for engineers, including linear algebra, differential equations, and fluid mechanics.

C# Programming

C# is an excellent language to learn right now. It should be comfortable for anyone who has past experience with Java or any .NET language like VB.NET, but it's also a wonderful option for those with no coding experience at all. Brackeys specializes in game development tutorials, but he has an introductory C# series that many have found insightful and helpful. Sadly, high-quality C# tutorials are pretty hard to find on YouTube for some reason.

Java Programming

Good Java tutorial series are abundant on YouTube, so picking one to highlight was tough. In the end I went with Cave of Programming, a channel that has several playlists dedicated to various aspects of Java, including Java 8, JavaFX, and Java Multithreading. But as a newbie, you should start with Java for Complete Beginners, which starts at ground zero and builds you up as quickly as possible.

JavaScript Programming

JavaScript isn't exactly a hard language to learn, but it's so strangely flexible that it can be tricky to use and easy to abuse. However, if you start with a solid foundation, JavaScript can be an excellent part of your arsenal because it can be used for so much: front-end web, back-end web, mobile development, game development, etc. And for that, check this beginner series by Quentin Watts.

Python Programming

Python is one of the best languages to learn today and is my personal favorite language because it's so concise, straightforward, and intuitive. We've written about basic Python coding examples before, but if you'd prefer an in-depth introduction to Python and the fundamentals of "Pythonic" code, you should check out Corey Schafer's tutorial series. It starts from the beginning and you'll learn a lot.

Ruby Programming

Ruby is an interesting language in both syntax and coding paradigm. If you're coming from an imperative language like C# or Java, it might take a while for Ruby to click -- but if you're coming from a functional language like Lisp or Clojure, you'll feel right at home. Ruby doesn't have many real-world uses beyond back-end web development, but it's very popular in that realm. This series by Jake Day Williams is an excellent introduction.

Android Development

If you have an awesome mobile app idea, Android development is the cheapest way to get started -- and if your app is a runaway hit, you can make off with a lot of profit. But before you learn to make Android apps, be sure you have a solid understanding of Java! Once you're comfortable with Java, you can hit Cave of Programming's excellent Android Java series, then grow even more with these excellent Android development resources.

iOS Swift Development

If you want to make iOS apps, don't even bother learning Objective C anymore. Swift is better, not only because it's easier to learn, but it's more flexible and built with modern language features that speed up development and reduce the likelihood of bugs. Jim Campagno's Swift 3 series is perfect for both newbies and intermediates. You can also supplement with these nifty Swift tutorials and solidify your knowledge with these smart Swift projects.

Web Development

I mentioned Quentin Watts above as a good source for learning JavaScript, but you should have a solid understanding of HTML and CSS before you even think about JavaScript -- in which case you should start with his HTML5 and CSS3 for Beginners series. It's brand new and up-to-date regarding best practices and web standards!

Flask is a web framework for Python that streamlines the process of creating web apps. It's lightweight so you won't get bogged down with a huge API, but extensible through third-party plugins when you need extra features and functionality. After completing Pretty Printed's Intro to Flask series above, dive into his intermediate and advanced Flask tutorials.

When web developers outgrow Flask, they usually graduate to the much bigger and more powerful Django. Be warned that Django is heavy duty so it has a steep learning curve! But it's widely used in professional web development for back-end stuff, so there's a good chance of landing a job if you become a Django expert. This series by CodingEntrepreneurs is fantastic.

Back-end web developers who don't like JavaScript or Python tend to fall back on either PHP or Ruby, and if you want to use Ruby professionally, then your best bet is Ruby on Rails (which is the Ruby equivalent of Django for Python). Fortunately there are many ways to learn Ruby on Rails, but few are as good as this series by Dave Jones. He also has a separate series on making a website with PHP and MySQL, if you're interested.

Game Development

Want to make a video game? There are dozens of free engines and frameworks you can use. We've highlighted some of the best ones before, but Unity is definitely the most friendly option. Unfortunately, Unity tutorials are more common than grains of sand on a beach. For every good one there are a hundred bad ones -- Brackeys is one of the good ones. Are you an absolute beginner? If so, you should start with his C# tutorial series from earlier in this article.

Here's another well-known Unity personality: quill18creates, whose base-building game tutorial is one of the most in-depth and comprehensive tutorials out there. He has other series too, such as making a 2D space shooter or a multiplayer FPS arena. Note that his coding practices aren't the best. The focus here is on the sheer amount of Unity skills you'll develop.

Unreal Engine 4 is like a bigger, better, faster version of Unity that uses C++ instead of C# as its main programming language, but unlike Unity, Unreal Engine 4 also has a visual scripting language called Blueprint. This means you can potentially create games without writing a single line of code. And what's nice is that Epic Games, the creator of the engine, provides hundreds of video tutorials to help get you started. "Impressive" is an understatement here.

The final tutorial I want to highlight involves a game development framework called LibGDX for Java programmers. Unlike Unity and Unreal Engine 4, LibGDX doesn't have a built-in editor or drag-and-drop features. It's 100 percent code by code. It also has multi-platform exports, so you can use it to create desktop, mobile, and web games. This series by GameFromScratch is a good introduction to the framework itself. Then follow up with the official simple game tutorial.

Did We Miss Any YouTube Channels?

I'm sure there are plenty of other programming tutorials on YouTube that are worthwhile. If you know of any, please let us know. We'd love to check them out and perhaps learn a few things as we watch. Otherwise, we hope the above tutorials will help you on your own programming journey.

Which programming languages are you interested in right now? What kind of projects are you working on? Or if none, what do you hope to eventually create? Share with us in a comment!