
Ask HN: How important is it to be with peers you can learn from? - theyoungwolf
I am a younger developer (3 years) who has been fortunate enough to be given a lot of responsibility in the projects I work in. I spend most of my time teaching myself what I need to know or have to know for the job. I realized I currently don&#x27;t learn much from my surrounding peers (small team: 2 other senior level developers). To increase velocity, my company recently contracted some of the work for our project. And from my experience working with these contractors I have learned new things that I wouldn&#x27;t have gotten from my peers or teaching myself.<p>How important is it to learn from your peers or be surrounded by peers that you can learn from?
======
beagle3
Always strive to be the stupidest person in the room, despite being as smart
as you can be - as long as the people you interact with don't make you feel
bad (either because they are being a-holes, or because the difference in
knowledge/experience/attitude is too big to be useful).

I've had the fortune to be in that position for a very long time, and I
wouldn't do it any other way. Many people / teachers / mentors don't know the
limits of their knowledge, regardless of how well meaning they are (and some
aren't). Intellectually aim the highest you can afford to. Luck has a lot to
do with it, but you can (and should) help luck.

That's true about your career, but also about other stuff like sports, music,
or any other hobby.

~~~
Kagerjay
I'm in the unfortunate situation where I'm not the dumbest person in the room.
It sucks, having to learn things the hard way digging through stackoverflow
questions / blog posts when you can ask a question right away / get an answer.

I learned everything about programming myself with just online materials
available to everyone. When I started stagnating & had issues managing this
work project, I set aside a budget to subcontract more a much more experienced
developer. Then I started attending meetups, starting working on nonprofit
projects so I can learn from others smarter than me.

The lesson here is that even if you aren't the stupidest person in the room,
_you_ can make yourself not the smartest either. You are just a few emails
away, a small sized budget to pretty much getting any teacher / mentor you
want, and communicating via slack. You can always crowdsource answers and
advice on reddit/stackoverflow

------
Yhippa
Extremely important. As a junior developer, it was important for me to have
people smarter or more experienced than me to bounce ideas off of and to help
me understand concepts. Things like "Why use Git? SVN is perfectly fine!"

I don't know if this is true for everybody but there was a window of time
where I got to work with senior developers before I became a tech/people
manager. That was the time I worked at several different companies and learned
from experienced developers before I got put in that position. You want to
absorb as much as you can during that time because opportunities become
slimmer down the road.

~~~
dasmoth
Are you absolutely certain you’re not following fashion here? To pick your
example... yeah, there are some advantages of Git over SVN, and in particular
some scenarios where the “distributed” side of DVCS becomes important. On the
other hand, there’s every chance that SVN really _was_ perfectly fine for your
project (after all, in its heyday it was very common, and there are still
large projects using it today).

------
no_one_ever
IMO very important, it actually lead me to leave for another opportunity
within my company.

I was 23 at the time with about 3 years of experience, so still a junior but I
was the longest-tenured employee on our team. We kept picking up new hires,
but never internal transfers. That put me in a position where I was the most
familiar with our tech, stack, and business intent. I really enjoyed teaching
everything to our new hires again and again, as it helped me further
understand the how and why of my job.

Ultimately I realized I wasn't growing as much as I wanted to and looked for
another position. Being in charge was fun, but I felt like I needed to
surround myself with better developers.

------
tzhenghao
Short answer: Very.

Longer answer: I think one's skill level starts to taper off (or degrade /
converge down to) the peers that they work closely with in time. This works
both ways. Books and online sources can steer you in the right direction too,
but generally with smaller effects. Approximately 1/3 of your day is spent in
the office anyway.

Having worked at two startups now, both have very different senior engineers
that have different philosophies on what good code is like. Neither camp is
wrong, but I've learned to see things from another angle ever since. You then
can bring cross pollination to the table to make contributions that one party
isn't aware of before, or fill up a gap in your knowledge / skillset that you
otherwise would've missed by not being exposed to others outside your common
circle.

~~~
atlasunshrugged
Not a developer but I'll echo the sentiment above. I think especially in your
career it is critically important to be surrounded by people you can learn
from. This also implies (to me) that they are 'high performers' with something
worth teaching and therefore likely to be promoted and/or do something
interesting in the future and these are the type of people you want to be
around for general career development and network as well.

------
null0pointer
I would say it's critically important. You may be a good self learner, but
even then you may not know _what_ to study. It's the whole unknown unknowns
situation.

Another thing I would point out is that your peers offer more than just
textbook-style knowledge. They can offer concise, intuitive explanations
tailored for someone at your level. They can demonstrate the things they're
teaching. They can provide immediate responses to any questions you may have.

------
mhh__
Very, but even more important is to be around people you _want_ to learn from.

------
4x5_Rules
I've worked remote at a previous job for 8 years. The company really didn't
handle communications with remote employees very well. Between that and not
having the daily "coffee" chat with other employees, I felt I was missing out
a lot. You can read all the stuff you like, but at times there is nothing
better then bouncing ideas off your co-workers and seeing what sticks.

~~~
philpem
I'll second this. So many bugs become easy to solve when you try to explain
the problem to a co-worker.

At my last job, we had a rubber-duck in the middle of the development floor.
The first test was "Explain your problem to Ducky". About half of the time,
the developer doing it would have a sudden epiphany half way through the
explanation.

You could even book meetings with Ducky on Outlook... "Five-minute standup
meeting with Ducky, meeting room 1"...

~~~
dasmoth
The fact that the duck can work (and pretty clearly it can for many folks)
rather makes me question whether the co-workers are as important as some make
out...

Aside: I’m rather sad Stack Overflow didn’t keep their April 1st rubber duck
feature. I wonder if it actually worked “too well” and cut down on questions
submitted...

------
arayh
As someone who has spent about 10 years in the software development industry,
I have mostly worked with people with either less experience than me or no
experience at all. I felt like I wasn't progressing much and the feeling of a
stagnation in self-growth became a burden, so I sought a new job where I
thought I could learn different methodologies from people who have been in the
industry longer than I have.

What I have mostly learned is that everyone has different opinions as to which
approaches are best and that engaging in discussions with your peers is an
important part of teaching each other different aspects and perspectives of
your work.

Learning programming languages and its quirks are generally things you can
learn on your own, but there are a lot of little tidbits and good practices
you can pick up from peer code review. As my horizon expands from working with
different people on different projects, I feel more confident with my work and
while coaching others afterward.

------
Jian-Yang
You are the mean of the 5 people you spend the most time with. So always try
to surround yourself with people you can learn from, especially in the first
years of your career. I personally find that the best growth comes from people
that challenge you and make you challenge yourself.

------
CM30
I'm going to be a bit different here and say that it's important, but not
something you should have through your entire career. That's because in my
opinion, teams where you're the best in the room and teams where you're the
worst in the room both have their pros and cons, and I believe a good
developer/software engineer should experience both.

For instance, here are some benefits of working at least one job where you're
the 'smartest' in the room:

1\. You get to experiment more with new technology, and learn more skills and
languages that you may not otherwise have bothered with.

2\. There's no one to turn to if things are tough, hence you're given a real
reason to put the work in and learn things for yourself. Being the 'dumbest'
in the room all the time makes it too easy to coast on the knowledge of
others.

3\. It gives you a chance to experience what it's like when a major
responsibility or project is on your shoulders, as well as how you deal with
working under pressure (like say, being the one guy who has to fix a major
client's website after the database crashed at 4pm on a Friday).

4\. You get the responsibility of teaching others, rather than always being
the one taught by them. Again, that's a nice thing to have experience with,
especially if you want to get started with conferences and ebooks or what not.

5\. And if you're literally the lead developer there, it also teaches you a
lot about how to talk with management and make your case for new technology,
best practices, etc. Yeah that's more people skills than tech ones, but you
really need both if you want to do well in your career, and being the go to
guy forces you to get better at that.

So yeah, I'd say while it's important to be with peers you can learn from, you
also want at least a few jobs where you're the one other people are learning
from as well. Don't always be the dumbest or smartest in the room, mix it up a
bit and use both situations to learn as much as you can. You'll be a better
developer or software engineer for it.

------
philpem
Definitely a big thing for me. I've spent a couple of years as the "smartest
person in the room". As much as it's great to teach, but it's even better to
learn. Or maybe that's just me. The skill gap has been huge though - me plus a
team who learned "on the job".

Putting in the best-practice and infrastucture to do a good job was
interesting though. We've gone from zip files on a network share to automated
builds an CI, and the CI tool even generates the final release ZIP files and
test reports. From bug tracking in Word to bug tracking in Jira...

And on a budget of "zero or as close as possible" too.

------
em0ney
Learning from others is invaluable.

Listen to the perspectives of those around you, but don't regurgitate what
they say or follow what they say blindly. Ask them questions, challenge
conventional wisdoms and ask "Why".

Experience is a form of bias and must always be taken with a clear head and a
grain of salt.

My grandfather would always say: Advice is free, until you take it.

Good luck!

~~~
collyw
I learn _most_ stuff by myself. Sure it speeds up the process a bit when
someone teaches you, but often making all the mistakes by yourself you get a
deeper understanding.

~~~
dasmoth
I agree. I worry about processes like Scrum which put so much emphasis on
resolving “blockers”. Being able to spend a couple of days bashing your head
against something thorny is a really important part of learning practical
knowledge.

~~~
collyw
I am kind of surprised at everyone here saying how important it is. I would
say its a far more crucial skill to be able to learn by yourself for this
industry.

------
borncrusader
This is very very important IMO. It doesn't matter if you're a junior
developer or a senior developer, it always pays to be around people who know
more than you and at the same time have the right attitude when it comes to
dispersing knowledge.

Brilliant jerks, people who incessantly complain are not worth your time. :)

------
RickJWagner
It's important. But not totally.

Another factor to consider is variety in your workplace education. There's a
lot of value in working in different environments, industries, surroundings.
It comes at a cost, but brings many benefits.

------
throwaway662184
The product itself used to be my #1 priority when searching for a developer
job. Dating apps? No thanks. Smart doorbells? Yeah ok...

But then that changed when I brought on a senior engineer on my team that was
worse than mediocre. I can't do anything about it because he plays office
politics better than he can write code.

Because of this experience, my number one priority with my job hunt is finding
a small, talented team to work with. Compensation and the product itself fight
for second place.

It's advice I don't think most people have the privilege of exercising, there
are bills to pay, but you really ought to not work with anyone you can't
invision yourself working with for the rest of your life (or maybe a decade or
two at the least).

~~~
throwaway662184
To add some more practical advice, I would search for employers that have good
internship programs. I think it's ideal to learn from both students/new grads
and senior engineers with proven experience. The most enjoyable learning
experience I had on the job was when I had a recent CS grad on my team.

