Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Craving for a team of more senior people to learn from, "yodas" who guide you - is a fallacy. I hear younger people mentioning it in interviews constantly as to what they dream team would look like.

You can learn from everyone around you, regardless of their status. There is no "universal developer experience curve", everyone has more or less knowledge on a field or with a specific tool/framework.

You can learn almost everything alone - I mean learning from the web. There are great forums, groups, discord chats, ask LLMs carefully and check on the answers. It may sound reassuring that someone watches your back and won't allow mistakes or would help clean up a mess, but you should not keep relying on this anyway. Learning by doing and taking responsibility will make you much more self assured, which is actually most of what makes someone senior.



"It may sound reassuring that someone watches your back and won't allow mistakes or would help clean up a mess, but you should not keep relying on this anyway."

This assessment totally devalues the experience of having an more senior, more capable colleague to learn from. They are not there to watch anyones back, stop mistsakes, or clean up anyones mess. Rather the point is that the junior member is able to watch the senior person, observe how they solve their problems, and how they approach fixing their own mistakes. It's about tacit learning, not bein nannied/micromanaged.


Agree 100%. Mentorship from more experienced colleagues can save an enormous amount of time in pain by pointing out someone is going in the wrong direction very early on. Mentors can also expose a mentees to “unknown unknowns,” which a mentee might not otherwise know that they need to investigate. I agree that “learning how to learn” is more valuable, but that’s not to say that mentors or more experienced engineers have nothing to provide of value.


You say you agree, but your points are opposite of his points.

Watching a senior is not a senior pointing you to pitfalls, or unknown unknowns.

The parent argues that although there is value in being near a senior, all the actions lay with the junior. This is a transition people need to make when they leave school and enter work.


I am not making points to expand on how I agree.. I am a elaborating on the benefits of having more senior colleagues around. The benefit is not that they watch you and correct you. Indeed, the mentee must drive their own learning. The really valuable part of having a more senior engineer around is not that you just magically learn by osmosis, but that you can ask them questions as they come up _and then level-up rapidly._ That’s the context my points were more meant for.


Learning by yourself is (on average) significantly harder. Some people can do it and succeed, but it's very easy to learn bad habits if no one is talking you out of them, to focus on the "fun" parts to the detriment of important but tedious parts, and so on. Far more people who attempt to be "self taught" fail than become incredibly successful.

You can have bad mentors/seniors, but looking for people to learn from and bounce ideas off is always a good idea.


Well, it's harder, but I don't think it's too hard. You have to keep your motivation high.


Motivation is not the limiting factor. Not knowing what you don’t know is.


I can second this. I have learned infinitely more by doing and teaching than I ever have from being taught.

It might be a personality thing though. I’m a stubborn idiot who questions everything he’s taught. I don’t take advice. I listen to people stories. The why has always more important than the how.

I’ve been fortunate to have many teachers and mentors, but I didn’t seek any of them out and none of them guided me. They were people with the right perspective and I had asked them the right questions.

But the two best mentors in my life are my two best friends. All three of us are different and have different things to teach each other.


I too learn better by myself.

But I think there's a difference between someone who 'teaches' you and someone who is at a high enough level to discuss ideas or issues with you.

For example, in my first job I 'learned' the most not from the senior engineers around me but from another new grad who was just as curious as me. We would discuss issues we're having, brainstorm solutions etc. It was not so much that I learned from him, but that I had another brain of similar competence that I could fling ideas at.

Not having such a person makes your job more difficult (as you might find yourself in a rabbit hole and desperately need someone else's perspective) and much less enjoyable.

Imagine not having a competent dev in your team to review your code.


It is not about "being taught".

But if you are the only technical person around, who is going to show you what a good or bad practice *in your specific field* is? That you won't find on Stack Overflow or by asking ChatGPT.

Being able to talk to an experienced mentor who knows the field you are working in is invaluable. Unlike learning some framework or design patters or what not, this information you won't find anywhere else.


You'd be surprised at how useful Stack Overflow and ChatGPT can be at helping to illuminate knowledge gaps.

I've found that one of the harder aspects of being unguided is figuring out the unknown unknowns.

You might stumble into a solution of sorts that mirrors a best practice but not know there's a "name" for that solution -- until you see it spelled out after googling around. That discovery can lead you down a rabbit hole where you gain fuller context.

Sure, having more experienced people around can help expedite that process in some cases, but then again you're limited by what that person has experienced. There's always some level you reach where you need to be curious enough in your explorations to seek out the next layer of knowledge in a self-directed manner, and the tools today are immensely better at supporting that process than 10-15 years ago.


I think the OP you are replying to points to "you don't know what you don't know". SO and ChatGPT can be useful, if you know what you are doing is fishy and ask for directions.


its the simple things

  fuzzing
  unittest
  scm
  code coverage
if youre programming without those, youre doing it wrong, and chatGPT isnt going to help

any more im missing?


Everyone hates hearing this one: Documentation, documentation, documentation. Programming is a social task. Therefore, everything else related to software development best practices branches off from that.


What percent of developers do you think are actively using fuzzing? I would be shocked if more than 1%. Please do not read this as I do not think fuzzing is important! It is very important for system-level software.


I often include valgrind tests before Beta releases, as it is usually going to point out suspect areas needing inspection.

Fuzzing is only really useful for a very narrow range of analysis scenarios. If people understand threading properly: code should be able to take getting hammered, exiting gracefully, and cleanly get re-instantiated.

Also, banning hosts/accounts with an error-rate quota system is more common these days. =3


many languages gracefully handle errors, making those errors transparent to automated detection -- our crashes are now silent correctness failures

this trend in programming culture reduces our ability to do automated error detection!

you make a good point, and a good case for crash early and crash often -- with choice of erlang style recovery, or fuzzing style hard nosed correctness enforcement


Everybody has different learning styles and it's almost condescending to say "well, this method that works well for you is a fallacy, try my method".


> "yodas" who guide you

is not a fallacy because it doesn't work, it's a fallacy because such teams rarely exist. I have worked on one or maybe two such teams in my career, but the truth is to get on a team like this you already have to be exceptional.

If you require a team of elite experts that are not only technically excellent but also love teaching untrained juniors in their ways, then you it may take you longer than the typical span of such a career to find these people. Then, even if you do find such a team, they're extremely unlikely to take you under there tutelage unless you yourself show an impressive potential to learn. And people that are truly exceptional don't wait for the right teacher to start learning.


On the topic of mentoring, I focus on people who ask good questions. I know how to teach a lot, but not that.

I started tutoring my roommate in college, and random people in the computer lab while he was finishing his homework. So I’ve been doing it longer than I’ve been professionally programming which is a long time.


Learning styles is something that's actually not supported by science at all and a common myth that is damaging.

https://onlineteaching.umich.edu/articles/the-myth-of-learni...

There's a good back about how to learn effectively written by cognitive scientists:

Make It Stick: The Science of Successful Learning by Henry L. Roediger III, Mark A. McDaniel, and Peter C. Brown

Definitely worth a read, even reading a summary on the book would be beneficial if you want to become a better learning. The techniques in the book work IME.


OMG, that's great to see. Finally scientific proof that I was right when I refused to do "highlighting" like they were trying to make us in school and university.


Yeah, the book is quite interesting especially in the context of advice you see online regarding learning about programming. It seems the simplest advice would be to just read the documentation then make things, when you struggle refer back to the documentation. Whereas most advice you read on social media is to pay for a course.

Throughout the book you keep hearing stories about how application and spacing are critical for reinforcing concepts.

I don't have it in front of me but I remember they presented one study that students who took a practice exam did better than those that just read the material and took the exam.

In the book they mention often that rereading material isn't useful or an effective way to learn.


    Whereas most advice you read on social media is to pay for a course.
Sounds like the ads of our time. I.e. influencers paid to do promotions. Not unlike the ads for certifications and courses before really. Certifications are BS. Someone with zero experience but "certs" is not gonna win any favours with me in an interview. Show you can do the job. A university degree is somewhere in between as there are many ways to get one. The BS - cert kind of - way and the "real" way.

    It seems the simplest advice would be to just read the documentation then make things, when you struggle refer back to the documentation. 
This has always been how I have learned. Learning by doing. Even in university. Just practice basically. Do whatever you need to learn or remember over and over with some time in between. Just like any other muscle exercise: reps!

Spaced "repetition is the mother of learning" is what my parents always told me. Minus the "spaced" part.

And yes, that's how we learned for most (good) university courses. We had "labs" every week. It was non-mandatory and while some profs would give you credits towards the final grade if you took part in them, the idea really was to get you to practice things over and over with some time in between. By the time you were learning for the final exam, it was already at least the second or third repetition of applying the knowledge.

Reading docs (or the book / your lecture notes) when trying to apply the knowledge is OK. Just reading it multiple times but not actually trying to use it really doesn't do anything in my experience. I passed my initial "learn a programming language" course at university without ever going to a lecture past the first two for example. I was using said language to actually build something that required what I knew was gonna be the main part of the exam (boolean logic - duh - and concurrency - way more fun) for building some actually useful tool for a friend.


Good luck with that when you are not at the stage of your career yet to have enough experience to judge what is good practice - and what is hype, BS and liable to cause problems for your project.

Having a good mentor or two is pretty essential because most of knowledge isn't written down and retrievable by LLMs or about some framework or tool. It is the experience of people who have been there before, done it, got burned and learned to not do the same mistake again.


> You can learn from everyone around you, regardless of their status. There is no "universal developer experience curve", everyone has more or less knowledge on a field or with a specific tool/framework.

There's a big difference between learning from someone and having someone teach you something. The latter expedites your progress and clarifies learning path, whereas the former can even waste your time with political fights pulling you into dead-ends.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: