I'm not exactly sure how to word it, and I'm not aware of a single source who advised me on it, but it seems like there's a pervasive feeling in society that "If I want to learn something, I need a teacher." I outgrew this mental model around 14, and now in college I feel so much further ahead of many of my peers who are lucky to have taken a HS programming course once before choosing a programming degree. I wish I had outgrown it much earlier, I feel like there was a lot of lost potential in my earlier years that I wasted because I had no interest in teaching myself things. Who knows how devastating this "cultural advice(?)" is to people who still haven't outgrown it.
I can definitely echo your feeling of lost potential in my earlier years. I too am a current college student and wish I could go tell my 15-year-old self to learn Python instead of spending most of my free time playing Counter-Strike.
The truth isn't that you don't need a teacher. You may be able to learn everything from a book or solitary practice, like yourself. But others probably can do that sometimes, may sometimes need a teacher, may sometimes need to discuss with peers, etc. And I don't mean that some people are visual learners, or readers, etc. I mean that people learn different topics in different ways, on different days, with different contexts, etc.
I think the cultural norm should be that if one way of learning isn't working for you, try another way. Practice, read it yourself, ask a friend for help, get a tutor, whatever you need.
Absolutely, I'm not saying teachers are never useful or needed. I'd much rather have a conversation with someone familiar with a large codebase to get a feel for it than diving in and creating assumptions. But the bad advice is that a teacher of some form is essential, and that's wrong-headed, and it paralyzes people when asked instead to not just solve a well-rehearsed problem, but actually to discover the problem that needs solving.
A related assumption is that the best way to learn is through classes or lectures. I can learn faster by reading, experimenting, and asking questions when I'm stuck. Forums are your friend.
There's a big difference between and teacher and an advisor. Teachers are absolutely a dime a dozen, and the capable student can teach themselves anything a teacher might. However, my research advisor (and more informal "advisors" who I've come across in open source contribution, TAing, etc.) have been absolutely invaluable. You can absolutely teach yourself to program, but you'll never be heads and shoulders above the rest without seeking out people who really know what they're talking about and absorbing the best they have to offer.
Socialize with talented people. They won't teach you, but you can learn few things from them. Also, get to work in a real company and real problems. You'll learn many things from your colleges and job.
True, being able to teach yourself is a hugely valuable skill. But I think you also shouldn't underestimate the value of a mentor (as in someone to guide your self teaching) - I've been teaching myself guitar for years and finally got around to getting some lessons. It's been an eye opener seeing the obvious things I missed by just relying on myself.
Agreed. You don't know what you don't know. A mentor can help you learn the topics in the most effective order, offer suggestions that you wouldn't otherwise find, and motivate you on your bad days.
I somewhat agree. You dont need a teacher to learn anything, but you do need a mentor. To me mentors have changed my life, career and the way I approach everything. They usually enlighten you with their own experience and help guide you when you are lost.