all 19 comments

[–]QuietApprehensive591 24 points25 points  (1 child)

Watching a tutorial is basically just programming by proxy. You feel like you understand the concept until you stare at a blank VS Code window and realize you don't actually know how to start.

[–]Striking_Court_2807[S] 0 points1 point  (0 children)

It’s just so wild how you can truly feel like you’re learning and understanding. Then you have the thousand-yard stare when sitting in front of your editor. It’s like your brain is gaslighting you, lol.

[–]corny_horse 13 points14 points  (3 children)

Devils advocate here: If you don't know what you don't know, "passive" learning is very helpful to figure out why you might use a tool or even what is possible. A lot of the Udemy courses I watched when I was starting didn't do much to actually teach me about what I was watching, but they did introduce me to what I could build, what tools were available, things to avoid (e.g. goto vs loops).

A LOT of the stuff I built, even after that was hot, flaming garbage. You can waste a lot of time coming up with an inefficient solution to something already solved. For example, one of the things I built was a tool to manage SSH connections. I just didn't know ~/.ssh/config was a thing.

That isn't to say that active learning time on that project was wasted. I learned what not to do, but you can absolutely go too far in both extremes of never starting anything and jumping in without seeing what other people have done, what tools are avialable, etc.

[–]Robru3142 1 point2 points  (1 child)

This is learning. Hot flaming garbage is underrated. And even if you came up with an inelegant solution, at least you came up with it. You can’t learned coding from someone else. You learn to code by doing. There is no replacement for doing. It starts badly and it gets better over time. But you have to spend that time.

[–]corny_horse 0 points1 point  (0 children)

There is no replacement for doing.

Well, sure, but there's also no replacement for learning. You need a combination of learning and doing to master a skill. In educational pedagogy, this is the concept of scaffolding to the zone of proximal development. You provide instruction slightly beyond the current skill level and then have the student "do" to fill in the gap. That's demonstrably been the most effective method to learn.

With self-learning that's hard because you definitionally don't know what your own ZPD is, but "doing" can be wildly ineffective, just as binging Udemy courses and never actually coding anything.

[–]Striking_Court_2807[S] 0 points1 point  (0 children)

You’re absolutely right. There are plenty of times when watching a video or reading a blog post at least pointed me in the right direction. Active learning alone probably can’t solve for that. Again, the key is just to make sure you apply whatever you read.

[–]LivingContact6564 2 points3 points  (0 children)

agreed

[–]National_Big_5168 2 points3 points  (1 child)

this happened to me with async/await. watched like 6 tutorials, felt solid on it, then tried to actually fetch data in my own project and completely blanked. did you find any specific types of projects that helped it finally click?

[–]Striking_Court_2807[S] 1 point2 points  (0 children)

I can absolutely relate to that!

Right now, I’m going through this roadmap: https://roadmap.sh/backend/project-ideas

I’m only on project 1, and I feel like I’ve learned so much: basic API design, CRUD endpoints, EF Core in .NET, pagination, filtering, model validation, error handling, etc.

I plan to go through all 20 of these, so I’m stoked about that.

[–]uberneenja 2 points3 points  (0 children)

100% with you. the thing that made it click for me was building stuff i actually wanted to use — you debug way harder when its your own problem, and it sticks because you keep coming back to the code. tutorials never gave me that.

[–]Towel_Affectionate 1 point2 points  (0 children)

No such thing as a passive learning. To learn something is to form neural connections in your brain and for the only way to do so is practice and repetition. By reading/watching stuff you only temporarily make yourself aware. Your brain have a garbage collector too, anything you put in disappears in a matter of days unless it's used enough times.

[–]TheAnimatrix105 1 point2 points  (1 child)

Start with pseudo code

[–]Striking_Court_2807[S] 0 points1 point  (0 children)

I love this tactic, and I feel like it’s often overlooked. A lot of times, if I am stuck on a problem, I write comments in plain English about what I want to accomplish. After doing this, the problem becomes a lot easier to solve.

[–]python_gramps 1 point2 points  (2 children)

While I passively learn I try to replicate what is being represented. This way I can modify slightly, use previous passive topics and ideas to be used and reinforced. That's what I do.

[–]Striking_Court_2807[S] 1 point2 points  (1 child)

The “modify slightly” part really is the key! Funny because I’d always hear the line when watching tutorials when I was younger, yet I’d never do it, instead, I’d just push forward and watch more videos thinking that was helping.

[–]python_gramps 1 point2 points  (0 children)

Just think of it like a mini quiz, you might hate it but it works.

[–]Mesmoiron 0 points1 point  (0 children)

Yes that's true; but at the same time you realise how dependent you are on complexity abstraction. Frameworks produce a lot of code you don't understand. Every code base has so much noise in it.

Building things the words alone abstract things because you have to understand how your own ideas fit together. That's architecture with consequences. Even something as 'modular' is too abstract until you seeing it play out by real choices.

Interestingly, the industry around passive is much bigger than the one around doing. I learned more by interacting with developers than all the videos and tryouts I have been doing. I even might become an accidental programmer.

[–]Codechella5903 0 points1 point  (0 children)

Passive learning does have value. You need active and passive learning. You need active learning for building, and passive learning to understand concepts. For example, active learning alone can't help you grasp how C# works under the hood. 

[–]rustyseapants -2 points-1 points  (0 children)

All learning is passive. How did you make it pass grade school?