Watching highly-effective programmers navigate, explain, and modify code can be a career-changing experience.
If you're not working in a place where these kinds of programmers accrue, you might never get the experience. Thank goodness for youtube and screen-recorders!
If you're reading this, antirez: thank you for making these, they're really special!
I also recommend "Hacking with Andrew and Brad: tip.golang.org" [1]. They are part of the Go team. It's just something to watch the pros doing live coding. By the way, what's with antirez's colorscheme? I wonder if he really uses that blue background or is it just for the video.
> By the way, what's with antirez's colorscheme? I wonder if he really uses that blue background or is it just for the video.
I don't know what you were expecting but those all look like colors from the original DOS and Windows color schemes. It's probably just a guy using colors he grew up with.
I wasn't expecting anything. It's just unusual. Anyway, seems he's just experimenting with colors. There's another video with a yellow background in his YT channel and all the latest ones have dark color schemes.
This is great! Can we replace the original article with this, it's much higher quality than most of the ones listed and fills a gap in Youtube content I'd never been able to find (though I haven't tried recently) - that is: legitimately intermediate/advanced content.
I remember seeing some videos of notch (creator of Minecraft) working on Minecraft.
Watching that video I was impressed how much "courage" he had to try weird ideas immediately, see what happens, and not be afraid to mess up progress he has made, etc.
Of course, notch, like antirez, are gifted, way above average, people. So we have to keep that in mind.
I was just watching an old YouTube video of a couple guys throwing a giant rock off a bridge into a river in a remote part of the U.S with no one around. It was 20 seconds long.
If it were produced in 2020, you'd have 10 minutes of useless preamble including discussion about how hyped they are to throw a rock, how difficult it is to carry a rock, fake drama about being followed by non-existent security, a drone shot of the environment, how awesome it was to throw a rock, and random memes. Use my promo code ROCKMAN to post your first job free on ZipRecruiter and hire your own rock thrower, and don't forget to Like this video to smash that Subscribe button!
Hey, what's up everyone, it's your man Todd. I'm back with another video and, today, we're gonna throw a giant rock off this bridge! But first, a word from our sponsor.
Now, I don't play games very much, but I've been playing Raid: Shadow Legends and I can't get enough! It's got all sorts of shit that other games have, but Plarium let me play Raid: Shadow Legends for free. Boo yah! Trust me, you won't want to leave your mom's basement again once you've played Raid: Shadow Legends. Use my exclusive code right now to get 3% off and a free wrist brace for carpal tunnel.
OK guys, so I'm gonna tell you a story about how I've been throwing rocks off this bridge for years. You see, my ol' grandpappy showed me how to throw rocks into the river when I was 10, and he told me "Boy, life's a lot like these rocks. It goes up and up, and one day you find it plunging straight into an icy river of death." And that just really inspired me, y'know? Rest in peace, ol' man. I love ya! Hey Frank, did your grandpa ever teach you to throw rocks into a river?
3 minutes later at a convenience store
Sorry, we can't film in here? We just wanted to buy some snacks. Yo, we're just a youtube channel, alright? It's not cool? Okay, fine, we'll turn it off. You coulda just been cool about it, jeez.
8 minutes of nonsense later
(couple walks by)
How y'all doin'? Oh, we're just having some good wholesome fun here, throwing rocks into the river.
Oh shit, I hope we don't see Officer Bradley around here again. The last time we throw a rock off the bridge he was like "You darn kids" and I was like "Whoa, bro, chill!"
3 minutes later
Alright, here goes nothin'!
(throws giant rock off bridge)
Guys, this was incredible! That's actually one of the BIGGEST rocks we've ever thrown in here! Unbelievable, dude. Oh. My god. WOOOOOOOOOOOO!
Another 3 minutes of bro'ing around
So guys, if you want to see what happened after we threw that rock into the river, stay tuned for my "Tossing a Rock into the River AFTERMATH" video.
Don't forget to like, share, and subscribe! Also, don't forget to hit the bell icon and select "All".
I try and keep myself insulated from this kind of garbage YouTube but sometimes it starts to leak into channels I used to love. It's made me unsubscribe more than once.
The formula is so recognizable now that I assume it has to work on the majority of people?
Yeah, this article oozes of "we need to create content that gets eyeballs and backlinks to market our website/product", which unfortunately is all too common these days.
Next time someone tries to find youtube channels for programming, they will end up on this list, rather than finding some real recommendations by real persons.
The "author" of this article is even "Team Codegiant", it's a red flag when no real person wants to put their name on content. Which is especially funny since throughout the article the author refers to themselves in first person.
Every time I cook and look up a recipe for the ingredients I have on hand my whole family has to listen to me rant and rave about this phenomenon. I clicked through the link above, scrolled and scrolled, figured out I had been duped, and gave up to come back here for the comments to commiserate.
Am I the only one who thinks watching videos is an inefficient way to learn new programming techniques?
There's no way to copy and it's hard to remember where a specific concept was so that you can reference it again. Sometimes, the video or audio quality is bad enough that you can't even really tell what's going on.
I like them principally because I can actually see what they did rather than them writing what they think they did in an article.. this is a common problem with documentation where if you follow it to the letter, there's still some other thing they failed to mention.
Articles are much better once you're up to speed and knowledgeable about a space, but I find videos ideal to set the scene when I'm totally new to something so I can mimic their actual activity in getting things going.
> this is a common problem with documentation where if you follow it to the letter, there's still some other thing they failed to mention.
This makes sense but it seems like an enormous price to pay in return for the tutorial not having mistakes. "We'll use a really suboptical delivery mechanism because it forces us to check our steps as we go".
It can be refreshing to see the top coders making mistakes and instructive to see how they debug on the fly. I went to a Meetup where Hadley Wickham was the speaker (data science celeb). He made a mistake when writing code to explain a concept and it was neat to see how he suspected what he'd done wrong, found the issue quickly, and corrected it.
Ah, but I don't think video is intrinsically suboptimal (I assume suboptical was a typo?) any more than comparing a movie to a book. There are pros and cons of each medium and I can't dismiss either.
I love a proper 90s-style book for sure (No Starch seem to be really good at still putting these out) but there are plenty of times where a video usefully fills in a gap, particularly if you want something super up to date or running on a certain setup (e.g. you're a Mac user and you want to see someone setting up some Python library.. that is definitely on YouTube to follow along with somewhere).
But the pros you give for video are orthogonal to the actual video-ness of them.
Your pro-video points seem to be largely "More up to date and more content is available"
So - maybe authoring/hosting/promoting/monetizing video is easier than with web pages? These are issues that could potentially be fixed and they have nothing to do with the intrinsic nature of video - linear, constant time usually with a spoken audio track. These are the qualities that I find problemmatic. I actually don't mind slides - they are linear but they aren't constant time and they work independently of the voiceover (most times there's a talk I'm interested in I'll find the slides and skip the actual talk - even if I miss some content it's worth it to be able to skim through quickly and not be tortured by someone's vocal quirks).
There's a few maths YouTubers I can bear - mainly because they speak extremely quickly and there's no fluff. I'd still prefer to be reading the same material however.
Videos are great when the narrator reflects his/her thought process and adds relevant history(of how things come to that) when doing things.
Articles can do it even better but can get very lengthy and people looking to quickly learn how to do something will seek short, to the point articles and missing out on significant depth.
Of course just watching a video won't make you learn something but I think the situation is the same with articles. Remember school times, the articles were not that lengthy(I mean STEM of course) but to truly grasp something you would have to go over it again and again and try to solve problems by yourselves.
I think the article have the advantage of extremely fast skimmability, you can even condense everything into a single page and use it as a reference because you can skim to the point in a single glance.
I honestly tried now when I am back in college because I just thought its a bad habit from old times when we learned pascal and basic from help files. But no after trying all the labs I could I started building my labs and just focusing on portfolio.
For my first stab at learning something new I usually try on my own, but when I'm getting lost or things aren't working as expected I like videos, especially ones that weren't prerecorded. The number of times documentation either takes a mental leap or actually skips a step can be frustrating. It's also helpful to see where someone else makes mistakes because it's often the ones I would've made also.
> Am I the only one who thinks watching videos is an inefficient way to learn new programming techniques?
Just watching wouldn't be of help. Watching and doing will probably get you far. As for how efficient they are, it probably depends on the quality of the video and the student.
> There's no way to copy and it's hard to remember where a specific concept was so that you can reference it again.
That's true for books, audio, class lectures, etc. But at least with a video, you can always go back to the part your didn't understand - unlike say a class lecture.
> Sometimes, the video or audio quality is bad enough that you can't even really tell what's going on.
I like videos a lot but I absolutely need to write the code along with the person on the screen otherwise it doesn't stick. Coding Train [1] is a recent example that has worked well for me.
Really depends on the type of programming. The "Coding Train" channel is pretty much all about animations, and it works really well for that. Same for things like OpenGL, Computer Vision, CSS, or UI design where the results are highly visual.
To me videos are more akin to conference talks. They are interesting when they focus on presenting an idea, a technique or a pattern with simple code. An exercise where the code itself doesn't matter too much essentially.
The miss efficient way to learn is to use all medias available appropriately. You can integrate video lessons into habits that wouldn’t be practical in other forms.
Audio maybe as I can listen while walking/driving.
But video stops me multitasking, I can't skim at my own pace, the speed of information delivery is order of magnitude slower than reading and skipping back and forth is much harder than with text+images.
I just honestly can't find a role for video where it's not significantly worse than reading+images (+ allowing for small, embedded video snippets for things that need to move to be understood like complex UI interactions or animations)
i think it depends on what type of learner you are. i learn much easier through video than through text, so for me a well made presentation, that i watch with my full attention while taking notes (i don't generally look at the notes after, but it helps commit things to memory), is a much more efficient way to learn about stuff. shame that there aren't that many videos beyond basics stuff
I have found myself going to YouTube first for solutions as of late, even though I find the medium less effective for learning.
So many websites feel like copy-paste jobs these days that it is difficult to tell whether someone is talking from experience, they are rephrasing something they read by never tried, the content is scraped from another site, or even if it is automatically generated. YouTube does have its problems, but it is more difficult to produce fake content in certain presentation formats.
The sad thing is that books have even been sliding downward in my order of preference. While a great book will blow away almost anything available online, investing good money into a product that doesn't reflect my needs in the end is all too common. I suspect the people who review books simply have different expectations than I.
>, I have tried learning to code from YouTube videos but I really don't recommend it
Videos can work better for learning visual UI tasks of programming. E.g. learning how to navigate visual IDEs such as Jetbrains, MS Visual Studio, Apple Xcode, Qt Creator, Amazon AWS dashboard, etc.
If the above were all reduced to text-based materials, you'd end up with a bunch of static screen shots which misses the movement of the mouse and the button clicks that showed how the IDE changed from one state to the next.
On the other hand... if you're primarily learning the syntax of a language or studying the Big-O properties of an algorithm, you don't need a talking head on a video to explain it. It's more efficient to just read the text.
I think everyone has their own preference to learn but I second this recommendation. Videos work well to have a friendly face explain how things work and get interest generated, but if you intend to level up your programming skill you are better off reading code documentation and googling your way through every concept that needs explaination. Videos don't allow you to navigate away from the original learning path. I personally keep finding myself in situations where I am reading something up and want to fork out to get a good grasp on a concept being discussed. Text is your friend.
I've found one YouTube-based technique that helps me sometimes.
Basically, search youtube for some specific topic (eg "MediatR" b/c I'm working in .NET)
Using the relevant results, create a playlist and order it with the shortest videos first, or in numerical order if some are part of a series.
Then, start watching the video's. You'll get some garbage, some useful insights, and some really solid advice. Stop when you've had enough and you're at least in a better place to get on with your own work in that particular topic.
Good youtube videos give you the benefit of some context and opinion around the topic. You can't get that with documentation because it typically takes too much of a "reference" approach that isn't helpful if you're just starting but need to get something done.
Stackoverflow works if you got a specific question and can navigate past the smug a-holes, but it also eschews context and advice though in a different way than reference documentation.
Of course, the best thing you can do is to have a kind mentor that will patiently answer your questions, or better, ask YOU questions to guide your learning. Sadly, that's not always possible.
My main complaint with learning to code from videos is that it's really difficult to match the pace at which information is entering your head to the pace at which your head wants to absorb information. I believe (but cannot prove) that that mismatch is a major impediment to knowledge retention. With written material, by contrast, it happens so naturally that you don't even realize you're doing it. You unconsciously slow down or even re-read difficult bits, and skim over the stuff you already know.
I'm also a big proponent of active reading techniques for learning new material efficiently. It's nigh impossible to scribble notes on a YouTube video. With written material, virtually anything can be converted to PDF and read on a tablet with a stylus in hand.
That isn't to say that videos are useless. Lectures are great for learning things at a high level. And there are some YouTubers like 3blue1brown that make excellent use of the medium. But, unless you really just can't even with reading, even the best of them are probably still best used as supplementary rather than primary materials.
I'm an avid consumer of recorded conference talks and the like, too, but I recognize that as being a form of entertainment as much as anything else.
>My main complaint with learning to code from videos is that it's really difficult to match the pace at which information is entering your head to the pace at which your head wants to absorb information.
My way around this is by placing my fingers on the J, K and L keys, in case I need to go few seconds back to listen again, or pause to search more information/take notes, or resume where I was.
Sometimes a 15 minutes video can be easily stretched to 40 mins/1 hour.
I use this for learning code/design/guitar, and I think it works really well!
I know a guy who apparently has photographic memory. When a new programming language comes out, he buys the book, and reads it, and then he's fluent in that language.
It's terrifying to watch.
And the guy had no idea that's not how people do it. He saw me fiddling with a new language, and was baffled with what I was doing.
To be honest, it's weird after learning 5-6 programming languages how quickly you can pick up a new language.
Grab your variable declarations, inheritance support, static typign, flow control, loop forms, your variable casting, your i/o for files and the standard output for strings and you can learn any language pretty easily.
Edit: String concatination if it's not Java-like (because . concatination is a thing)
The good thing is that it's well documented. As opposed to something like ruby, which doesn't have any complete language reference documentation, for bash everything is in the manpage, and it's not that long either.
There's also the info-manual, but I'm doubting it offers any more detail than the manpage. They're both probably equally complete.
I never thought to look at the man page for bash to learn bash. Turns out it's 78 pages and looks excellent based on a quick scan. Thanks for the recommendation!
IMHO most languages are fairly similar to one another. Once you understand the underlying concepts and paradigm-level ideas, syntactical differences are pretty trivial to pick up.
What slows you down is when new ideas are introduced, like when you go from multi-paradigm languages like Python & Typescript to a more purely functional language like Haskell, or learning about ownership in Rust where there may be no equivalent in other languages. But ideally you only need to learn them once, and in a way that allows you to identify and apply them in a variety of contexts.
Syntax may be trivial, but writing idiomatic code in that language isn't. Back in the late 90s for a class we had to write all our assignments in both Java and C++. The syntax translation was trivial. So in your sense, yes it was trivial.
But a professional C++ programmer would have designed their program a lot differently than the professional Java programmer. Simple syntax translation isn't good enough here.
I'm in a similar boat; I've spent time working with such a wide range of languages that they all feel familiar to me. However, getting comfortable with a new standard library still takes me a year or two.
Given that many readers of HackerNews have an entrepreneurial side and are therefore interested not just in software — but in the business of and marketing of software —, you might get value out of my channel.
Basically my story is that is that I solo-bootstrapped a web-app and have lived from it independently for over a decade. Because of these circumstances I face no red tape in showing the code, the analytics, or the online advertising campaigns I use on screen, and this makes for a more concrete, example-filled treatment of the full gamut of what goes into running a web-based software business.
So if you're an indie-hacker or software founder that does (or at least _should_ be doing) online marketing, I think you'll get something out of my story:
In general its tough to learn from videos, BUT its really enlightening to see demos of people's workflows, how often they test, how long it takes to compile run. Demos where people have problems, make mistakes, can't figure out why obvious things are going wrong, skippping a bunch of unit testing, hard code credentials etc. Hearing other people gave up on XYZ is reaffirming.
Just grab a book and read it, most of these channels are just a waste of time; they just keep going over the basics over and over again with long videos that could just have been a 1 minute read
As an online coding educator, here’s my beef with online coding education:
Most videos, courses, and articles you find don’t teach you much. They’re a recipe for you to follow. Do this then that then this.
If you’re building exactly what the author is building, great! You’ve built it.
Then comes a new problem. Or an interview question. It’s actually the same thing you just built, but you don’t have the understanding to realize that. So you look for a completely new tutorial to follow.
This is a losing proposition. You’re learning a lot of recipes by rote and not understanding much. With months or years of pain, you’ll start to pick up patterns by induction.
Not a great way to learn.
It’s like learning to cook an italian risotto and then being flumoxxed by veggie rice. Even though they’re the same thing.
Now here’s where it gets worse: It seems the market (or at least google searches) wants these rote recipes. It’s what gets you the most traffic.
I don’t know that there’s a solution. It’s probably the same problem as crash diets and everyone asking for the best font to use on a VC pitch deck.
> You’re learning a lot of recipes by rote and not understanding much.
I partially disagree because that is how many technical skills are formed - cooking, music, dance, martial arts, etc. Soloway describes programming as a set of "recurring basic plans", where problem solving is break things down into actionable items [1]. Those recipes help establish your foundation of recognizing problems that allow you to pull a particular "recipe" out of your rolodex (my word for it) and apply it. I wrote a paper on simple typing exercises as an additional practice and students performed better in the course and made less mistakes in coding [2].
> With months or years of pain, you’ll start to pick up patterns by induction.
This is where I agree and see the divide. After 6 months of training, I don't recognize someone as mastering the skill. You can be competent at it, but when I think about 6 months in martial art terms, those students are still very uncoordinated.
I would say the issue with CS is the Problem Solving skill. THIS is what people want, but we (the educators) are not appropriately teaching it. And that doesn't mean teach it earlier persay, but that we aren't teaching it the correct way. I don't assume my approach solves the issue, but rather focus on building up students' rolodexes with a large set of recipes they can pull from. This in turn helps build a more abstract mental model [3] for students to work from.
The biggest thing about learning programming from Youtube channels is that they just get something up and running. There is no talk about modularisation or testing. Everything gets dumped right into main and right into the http router handler function. Look up any video on how to build an http server in nodejs - and it is like that.
+1 for using YouTube for conference talks more than "watch me program" type videos. I love browsing through all of the Pycon [1] talks for example. It's annoying that each year is a different channel though. Oh well.
There are also a lot of other great videos in the channel [2] where the talk you mentioned came from.
I enjoy learning from videos and have paid in the past for some courses. My library has a free subscription to LinkedIn Learning (the old Lynda platform) and highly recommend it.
Can anyone recommend any good resources to learn DDD? I'm a visual learner, so videos or codebases with a detailed architecture plan help me the most. I have yet to come across anything other than small-ish examples.
Learning from videos never really worked for me. Plus on top of that, youtube probably has more distractions than a platform dedicated to educational videos.
In my case, I just pick up a book and start coding along with it.
The article is not available unless you submit to subscribing to Medium. Yes, it's free (free as in paying by feeding them with your data), but thanks, no thanks.
One thing that I think these types of channels and content don't do well is show all of the pitfalls and failures along the way. The missteps are vitally important to learning. This is also a potentially harmful side effect of newly remote teachers moving to pre-recorded lectures.
When you watch a 15-30 minute video(or even an hour long video) and it's highly polished. You do learn how to go through the exact same problem they're working on. What you lose is the methodology of how they retraced their steps when they got stuck. What did they read and reason through to be able to provide their carefully worded tutorial? How did they reason through the misinformation they had in their mind or that they read online?
When starting my undergraduate education I came into the program with a woefully inadequate grounding in mathematics. The calculus professor I had did at least two things right with his teaching that took me from failing algebra courses to completing really in depth 30-40 page projects several times per semester.
1. He had high expectations of those learning from him.
2. He showed his failures by working out problems he didn't work out before the class started. And critically he attached real emotion to those failures.
Focusing on #2:
There was nothing quite like seeing this professor get on the white board and work through a problem from first principles, explain his reasoning at each step... and then SHRIEK.
He would let out a high pitched scream that I can still hear today when he'd notice an error. Then he would carefully show us him backtracking through his entire process until he found the source of error. When he'd finally find it he would circle it and let out an "aha". Then he would continue on back through the problem fixing the errors along the way.
Seeing this process did several things for me as a student: It showed me that I am going to run into problems even if I have a PhD. Basic problems even. But more importantly it showcased the thought processes you need to be able to solve not just the problems you're given, but ALSO the problems you create yourself that come along with a human's fallible reasoning.
So he'd give us these insane Calculus projects to work through and inevitably I'd make some mistake that would ripple through the entire project. But knowing at least he would find the source of the error, check for errors, and being given some of his intuition first hand on where the errors were sourced was infinitely valuable. Without that knowledge I surely would've gotten frustrated and just given up.
Humans need both positive and negative cases in my opinion to learn effectively. Right now we're optimizing for positive cases only. Those are important, but the negative cases are also extremely important.
Episode 1: https://www.youtube.com/watch?v=VBrnmciV9fM
Watching highly-effective programmers navigate, explain, and modify code can be a career-changing experience.
If you're not working in a place where these kinds of programmers accrue, you might never get the experience. Thank goodness for youtube and screen-recorders!
If you're reading this, antirez: thank you for making these, they're really special!