paint-brush
Top 22 YouTube Channels to Learn Programmingby@momchil
2,540 reads
2,540 reads

Top 22 YouTube Channels to Learn Programming

by MomchilSeptember 17th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Top 22 YouTube Channels to Learn Programming: Coding is the end result of a specific set of actions triggered to create a tangible result, whether it is a web page, an app, a video, or just an image on your screen. To make it in the software development world, you’ll need to dig up some creativity and inject it into your coding skills. The ability to think analytically is highly valued among developers as well. The most essential skills a developer can have isn’t actually technical, it’s social, and that is empathy.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Top 22 YouTube Channels to Learn Programming
Momchil HackerNoon profile picture

From the desk of a brilliant weirdo #1:

Thank you for taking the time to check out this article. It doesn’t matter where you’re coming from (Codegiant, Hacker News, Reddit, or some other place), I always appreciate every reader who lands on my articles. 

Now that I’ve coaxed you into reading this article, let’s get down to brass tacks.

Whenever you’re just starting out with software development or simply want to uplevel your programming skills, you’ll need the right info resources to achieve your goals.

In this article, I’ve listed 22 of the best YouTube channels for improving your programming skills. Some are geared towards beginners while others focus on advanced topics.

So, if you consider yourself an experienced programmer, you can jump over to the last section where you’ll find all the 22 YouTube channels. 

If you are a beginner developer, however, I recommend that you go through each section of this article as we’ll talk about coding in general, programming skills, your computer programming resume, job opportunities, and some of the most in-demand programming languages. 

Without further ado:

What Is Coding And How Does It Work?

Coding is the end result of a specific set of actions triggered to create a tangible result, whether it is a web page, an app, a video, or just an image on your screen. 

The great thing about computer coding (or programming) is that you can have a big idea and actually code it out into reality. And it doesn’t cost much, barring some time and effort on your side. 

Many non-tech people consider the definition of a computer programmer to be someone who just makes programs. Although that’s partly true, partly not, it’s a mistake. Managers believe that the more lines of code a programmer can produce a month, the more creative he will be—another mistake. You can’t put a developer into a cubicle, set a deadline, ask him to work for 8-9 hours straight, and expect a top-notch quality software at the end. 

Instead of thinking about the programs a developer composes, one should consider the possible computations evoked by the developed program. “Designing a set of computations” is a more accurate description of what programmers actually do.

One can also imagine programmers as writers that have to think and write carefully, because the readers (the computers) take what the programmers write literally. 

What Are The Most Valuable Computer Programmer Skills?

Many non-tech folks believe that programming is all about acquiring technical skills. I believe that being a developer requires more than just knowing how to code. To make it in the software development world, you’ll need to dig up some creativity and inject it into your coding skills. The ability to think analytically is highly valued among developers as well.

One of the most essential skills a developer can have isn’t actually technical, it’s social, and that is empathy. Lack of empathy inevitably leads to poor communication (barring you are a narcissist, sociopath, or psychopath and therefore can be charming as hell). On the other hand, being able to put empathy into practice will, without doubt, boost your career opportunities.

When it comes to planning software, developers should know how to use models and flowcharts to convey instructions clearly.

Designing and creating applications. Depending on the project, this can take from a couple of weeks to months and sometimes even years to complete.

Writing programs. As simple as that.

Update and expand existing programs. Most times, you’ll need to modify and update existing programs with extra features.

Debugging code. Yup.

Simplify programming. Developers may also use software tools to automate a part of their development process in order to simplify and speed up the workflow.

How To Become a Computer Programmer?

Showing up and practicing your programming skills seem to be the main ingredients to getting better at programming and coding. You gotta be programming in your spare time; you gotta be obsessed with it. Load yourself with patience because becoming a skilled coder takes years. And anyone who is telling you that you can learn and become good at coding in a month is probably trying to sell you something.

Senior developers have all adopted common traits and basic coding skills that have helped them to rise in the hierarchy during their programming careers. Here are some valuable skills needed for you to be a senior developer:

  • One, being able to easily explain tech stuff to non-technical people.
  • Two, being able to come up with accurate estimates.
  • Three, willingness to roll up their sleeves and do some grunt work.
  • Four, knowing when to raise an issue to upper management.
  • Five, the ability to mentor junior developers.
  • Six, vast knowledge of the technicalities for their domain.

Understand how the language works

Focus on one language while learning. Having your focus split between two or three languages will discombobulate you. 

It becomes obvious when a programmer doesn’t have a good understanding of the programming language he’s using. He’ll try to solve problems by following the logic of other languages and thus litter the code with unnecessary statements that can otherwise be reduced to fewer lines.

Also, you must know how to organize code into a system that makes sense. Creating rigid classes, schemas, and hierarchies require you to first think them through. Design can be a broad topic so I won’t cover much, but if you wish to read more, head over here.

Poorly designed software lacks well-defined concepts, and its responsibilities are vague. Good software, on the other hand, comes with clear concepts and responsibilities. Take a look at mathematicians and physicists. They spend a huge amount of time trying to develop a clear definition of something because that will allow them to understand the truth about it. Developers should take a similar approach and spend a considerable amount of time brainstorming before writing code. Yes, this might be controversial to Agile but you gotta do what you gotta do.

It’s better to sit down with the dev team initially and outline all the required tasks than to go through 10 rounds of code reviews later.

Perhaps the best way to learn about design is to write and study many programs written by experienced programmers. As you gain more coding experience, you’ll, without doubt, enhance your design skills and expand your knowledge.

Good programmers ask questions like:

  • What’s the goal of this function?
  • How can I explain this data structure to my teammates?
  • Can this function represent two standalone tasks?
  • What’s the responsibility of this snippet of code?
  • What should I include in the public interface?

Your Computer Programming Resume (+ Job Opportunities)

Most people think that you need a diploma from Harvard or universities alike to be considered for a job in big tech companies. Although that may be partially true (not always though, it seems Apple and Google no longer require you to have a college degree), some companies prefer the opposite, or at least don’t want you to be coming for Harvard, Oxford, Stanford, etc. 

There are CEOs out there looking for developers that are qualified but not overly qualified... hard workers, being on time, but also leaving at the stroke of 5. Such CEOs consider Ivy League schools to be a red flag. Big resumes are also a red flag. That’s because developers coming from such schools can’t get off their high horse, question whether every decision is optimal, and are always hungry for praise, recognition, and “interesting work.” 

Instead, these CEOs are looking for loyal people who know how to take orders without questioning, and are ready to do the work, day in and day out, because they need the paycheck at the end of the month. 

At a glance, this might seem quite controversial. Yet, there are developers out there who don’t want to become millionaire CTOs at the age of 30. Instead, they are satisfied with what they have on their plate: a steady job, fair pay, and that’s about it. Some companies with that kind of culture say that they have produced a 100% employee retention rate which means developers are happy with their work environment.

Let’s talk about your resume now.

So, what should you list on your resume?

Proficiency in programming languages is, ostensibly, a vital thing to include. Always remember that companies are getting tens, hundreds, even thousands of applications a month. All of which say “I can do X.” The thing is skill level varies between each applicant. You should describe your coding experience and give examples of successful projects you’ve completed. 

When listing your most valuable programming skills, there are a couple of things you need to know in order to have a fully optimized programming resume.

Before sending your resume, always go through the job description a couple of times and try to understand what is relevant to the job you are applying for. Then make yourself relevant to the job.

Always be honest with yourself. Don’t list programming languages you don’t know because they are mentioned in the job description. Don’t tell them you have 5 years of experience when you only have 4 years and 1 month.

Place your programming skills (languages) right at the top, below the header.

List your most advanced coding skills first, then in the middle list the ones you are least experienced with, and at the end, list the programming skills you have a decent experience with.

Create horizontal categories instead of vertical ones. This eliminates the blank space on your resume while remaining aesthetically pleasing.

In your resume, except for talking about what you bring to the table, you can also mention what you’re looking for in an employer. You’ll thus earn the respect you are looking for if you get the job.

Also, avoid using phrases that everybody else is using. Don’t be afraid to infuse your CV with some personality. You’ll thus stand out. Not everybody will like your personality, but those that do will adore you. Try to be specific in your writing. Instead of “extensive experience,” say “5 years and 6 months of experience.” Instead of saying “Y number of successful projects,” say “Y amount of successful projects that helped us achieve A, B, and C.” You get the drill.

Quite often, though, a seasoned developer will have so much experience and projects under his belt that his resume would spread 10 pages long if he were to list everything. Try to identify what’s most relevant to the job you’re applying for and list those skills and projects that will make you most relevant. 

It’s a good idea, although laborious and tiresome, to rewrite your resume for each job you are applying for. Thus you’ll be able to fine-tune some details to look like a great fit in the eyes of the people hiring you. Never send a generic CV; you won’t stand out; you’ll look like “just the next boring applicant in the list,” and your chances of getting hired will be significantly reduced.

You can also try a different approach when applying for online coding jobs. Some developers send in their “normal” CV (listing computer programming skills, education, experience, etc.) along with another one, a “personal” CV, that explains their previous works on keynote slides with pictures of algorithms and tech stuff. This also wakes up the reader if your CV comes after a batch of 500 boring resumes.

Remember, you have to capture your reader’s attention almost immediately. The attention span of the average person these days is about 8 seconds. Given that your resume will be read by people reading CVs all day long, they’ll probably have a shorter attention span, around 5 seconds, I’d say.

Here some websites that feature different types of online coding jobs:

Most In-Demand Languages

Having a solid foundation in at least two languages will increase your job opportunities by 2X. Most developers select a programming field they are genuinely interested in and then focus on learning the languages that shepherd that area.

According to Indeed.com’s job postings from 2014 to 2019, the most in-demand programming languages are SQL (appearing in 22% of all tech job postings) and Java (21%). Yet, SQL’s dominance is fading in recent years. 

If you are into mobile development, especially Android, you should learn Java over any other language. There are more than 2.3 billion mobile devices powered by Android. Since its foundation in the mid-90s, Java has always been topping the rankings. 

Python (18%) takes the third place and is considered to continue its growth, mainly occupying data science jobs. 

It’s amazing how big Python has grown over the course of 5 years (2014 - 2019), from the 15th to the 3rd place. Python, along with C#, is considered to be one of the most profitable programming languages. If you are interested in AI, Machine Learning, or Data science, Python is the language you should learn. 

With Python, you’ll be able to find a wide variety of programming jobs. Also, according to StackOverflow, Python has become the most wanted and useful programming language. And JavaScript takes second place as the most useful programming language. There are speculations that Python might become the most sought after programming language at some juncture.

The fourth and fifth places are taken by Linux and JavaScript, respectively. 

If you’re unsure about where to start with coding, learn JavaScript as it is the standard computer programming language of the web. Some people consider it to be “the best programming language to learn” as it helps you to get into computer programming rapidly. It’s used in a multitude of cases. 

JavaScript makes websites interactive and compelling by adding dynamic styling, playful buttons, animations, and other interactive stuff.

Today, the web offers more than 1.5 billion websites and JavaScript is used in about 95% of them which makes the scope of it huge; you don’t have to worry about job opportunities when you know JavaScript.

You can also use C# for building desktop applications and games. The language is suitable for web and mobile applications as well.

34% of the most popular and free mobile games are made by developers coding on C#. The language was used to bring to life some of the most prominent mobile games of this century: Temple Run Trilogy and Assassin’s Creed Identity. 

C# is also quite user friendly. Errors can be identified easily because the code is checked by the framework before it’s deployed. C#, however, requires more time and practice to learn than, for example, Python.

As an aside: You don’t necessarily need to have a computer science degree, a software developer certificate, or any other computer programming qualifications to get into programming. What you need is patience and hustle. You can be a self-taught programmer and still make it into FAANG (Facebook, Amazon, Apple, Netflix, Google), and command a high salary. Learning how to code is one of the best skills you can learn today. It’s worth it.

Coding is a good career regardless of the programming language you select (except if you decide to learn Brainfuck - the hardest programming language to learn). 

Coders can make somewhere from $80,000/yr to $500,000/yr and even more depending on their job title and the company they work for. 

Programming is hard and that’s why you need to be curiously fascinated by it so you don’t perceive it as work but as pleasure. If you don’t plan on spending four years to get a CS degree, you can sign up for online computer programmer courses or take bootcamps.

YouTube Channels To Enhance Your Programming Skills

YouTube is great for the what and the why, but text is the best for the how. Keep that in mind.

Some of the YouTube channels might be a bit obsolete. Nonetheless, the advice you’ll find will help you get into coding, land your first beginner programming job if you're just starting out, or up your game significantly if you are a seasoned pro. All the listed channels below will help you advance your computer programming education.

So, in no particular order and without further ado:

Traversy Media 

The number of tutorials this channel offers is enormous (it’s like a programming guide from A to Z). Many YouTubers who run similar programming channels say that the guy who owns Traversy Media influenced them in a way to start their own channel (). On Traversy Media, you'll find valuable sources on topics such as Angular, React, and Python. The quality of the content is impeccable. It’ll undoubtedly help you broaden your programming knowledge and enhance your computer programming skills. 

3Blue1Brown

If you are a math person, 3Blue1Brown is the channel for you. It covers topics such as linear algebra, neural networks, calculus, topology, and more. Grant Sanderson, the channel owner, graduated from Stanford University in 2015 with a bachelor's in math. When the lockdown happened because of the COVID-19 pandemic, he released a playlist of math tutorials named "Lockdown Math" to help students with studying from home. Grant has 3,07 million subscribers at the date of writing this article (10 September 2020). "The goal is for explanations to be driven by animations and for difficult problems to be made simple with changes in perspective." 

ThePrimeagen

ThePrimeagen is great for Vim. It teaches mostly surface-level stuff. If you're starting with Vim as your editor, this will be a great place to learn more. Here's what other people say about the ThePrimeagen channel: "Youtube's algorithm never failed me, I now shall worship it as a God, this channel changed my life."

Gaurav Sen

Gaurav Sen focuses on digestible chunks of system design components. The guy teaches system design basics such as vertical and horizontal scaling and other system-related topics. Here's what his subscribers have to say about him "OMG, you are just the system design guru I am looking for."

Jon Gjengset

When it comes to Rust, Jon Gjengset is the guy for you. He's an open-source contributor to a variety of Rust projects. He's also recording tons of Rust live coding streams, contributing to open source, and explaining his own projects all while teaching you Rust.

Two Minute Papers

Two Minute Papers is a good channel for AI open projects. As the name suggests, you'll also find 2-min videos of scientific papers. Many of the scientific papers revolve around graphics and neural networks. Go check it out if you are into machine learning, 3D printing, and AI.

Raymond Hettinger 

{He doesn’t have a YouTube channel, but it’s enough to just type his name in the search bar to access his talks}

When it comes to the strength of Python, Raymond is one of the best guys to explain it to you. Here's what some people say about him, "I am a simple man. I see Raymond Hettinger, I click like, play and save." He teaches stuff like chunking and aliasing, building classes independently, graph traversal, libraries, and other stuff.

Simple Programmer 

This channel is mainly geared towards junior programmers. Here, you'll find general computer programming concepts so you can start coding almost right off the bat. John Sonmez, the owner of Simple Programmer, isn't there to just teach you the coding basics; he also talks about life and gives excellent advice.

The Coding Train 

The channel is focused on coding for beginners. You'll understand how to create simple games like Snake. Other videos include machine learning, simulation, JavaScript and more. His style of teaching is quite unique though, but not everybody may find it appealing. If you enjoy watching experienced developers making mistakes along the way and solving problems on the fly, then you will probably find this channel enjoyable.

Academind 

It's great for JavaScript frameworks, CSS, and web development. It has tons of tutorials to help you get your foot in the door. The channel also offers in-depth 30-hours courses on topics such as JavaScript, Angular, Vue, Node.js and others.

Derek Banas 

This guy covers anything related to computer programming. You'll find hundreds of tutorials to help you out in your journey. Derek also created the widely-popular "Learn JavaScript in 30 Minutes" playlist. It consists of short videos packed with as much information as possible so you can hit the ground running rapidly. 

Mark Lewis 

Mark, a doctor and professor of Computer Science at Trinity University, offers a variety of videos focusing on the Scala framework (Scala is considered one of the best paying programming languages to learn). The channel also has tons of videos on general computer science for beginners and intermediates, functional programming, and more. With Mark, you’ll be able to expand your programming knowledge and improve your coding skills big time.

Dev Ed 

"I was watching this video on a 55" TV and my father entered exactly at 3:35. I'm still explaining to him that Ed is a programmer and this is a normal YouTube channel." This guy has a unique personality that will keep you compelled while watching his videos. He discusses web dev, web design, 3d modeling, tools like Figma, and other exciting stuff. His content is mostly focused on coding for beginners.

The Net Ninja 

Net Ninja's videos are some of the best videos on programming out there. You’ll find videos on topics such as JavaScript (beginner to advanced coding), Node.js, React, Vue.js, Firebase, MongoDB, HTML, and CSS. The guy who runs the channels is a skillful developer and all of his content is free. You can pay for Udemy courses, watch them, and still won't find as much value as you'd by watching Net Ninja's free videos. As a matter of fact, some of the Udemy courses borrow materials from Net Ninja and teach his stuff in their paid courses. This channel is like a mini computer programming education school that can significantly improve your coding skills.

Fun Fun Function 

Unfortunately, Mattias, the channel owner, stopped shooting videos 2 months ago but didn't completely close the doors to his channel. He didn't tell, however, for how long he'll be taking a break, so years might pass until we hear from him again. Nevertheless, his videos offer great programming tips. His quirkiness will always keep you entertained. It's one of the best channels for mastering JavaScript. Mattias brings a variety of videos to the table discussing functional programming, object creation, iterators and generators, and other JS features. 

Computerphile

Computerphile is a great channel, but it's mainly targeted towards junior developers or soon-to-be developers. The owner of the channel is Brady Haran who simultaneously runs other channels such as Numberphile (focused on mathematics), Sixty Symbols (based around physics), Periodic Videos (chemistry), and Deep Sky Videos (centered around astronomy). His passion for computers is definitely infectious; you'll find yourself compelled by his videos as soon as you hit the "Play" button. His videos cover topics such as blockchain, bitcoin, game computer coding, automatic, code testing and more.

Bisqwit

I find this one compelling because of the guy's quirky accent (mean it in a good way). By following this channel you'll learn about C++, emulators, and other cool programming stuff. You should check it out if you love the art of programming.

ThinMatrix 

If you are interested in creating your own 3D game engine using OpenGL, the ThinMatrix channel offers more than 50 tutorial videos to help you out with that. Karl, the guy who runs the channel, is an indie game developer who has been developing games full-time for more than 5 years. What's cool about his channel is that he documents his progress as an indie developer and shares great programming tips & tricks. In 2018, Karl released his own game called "Equilinox."

Gary of Destroy All of Software

Although this is not a YouTube channel and requires a monthly subscription of $29/mo, Gary offers both beginners and advanced developers videos. The content is mainly focused on helping you to learn computer science. 

PatrickJMT

If you are trying to get into the nitty-gritty of math, the PatrickJMT channel can definitely help you out in your journey. The channel is considered to be an invaluable resource of math-related topics. Whether you are a beginner coder or an advanced one, Patrick will help you grasp basic math concepts and up your math game. You'll learn more about trigonometry, derivatives, antiderivatives, integrals, linear algebra, and more. Another option is Khan Academy.

Ben Awad

Ben Awad's channel on YouTube offers great general programming content. He posts videos like "programming memes," "Programming Best practices,'" "Coding interviews are broken" so you can unwind after learning a new sophisticated concept.

Google Chrome Developers

With Google Chrome Developers, you can learn about fundamental issues such as browser APIs and web components. It covers topics suitable for both beginners and advanced. You’ll learn the fundamentals of coding in no time.

Conclusion

So there you have them. The best YouTube chance to improve your programming skills and coding career.

Of course, there’s an infinite number of other amazing channels out there. Let me know in the comments which one is your favorite and I’ll make sure to include it whenever I update this article.

Stay unparalleled,

P.S. It’d be sinful not to make a short blurb about Codegiant in a 4,000-word article. I decided to save it for the last because I also hate it when I’m reading other articles peppered with a myriad of ads about their tools throughout.

So, if you are searching for a GitHub/GitLab alternative that offers a simply-designed issue tracker, git repositories, built-in CI/CD, and documentation tool, then feel free to check out Codegiant. That’s it. Enjoy!

Also published at https://blog.codegiant.io/programming-skills-d77d4abdf255