by theyoungwolf on 9/6/18, 6:18 AM with 24 comments
How important is it to learn from your peers or be surrounded by peers that you can learn from?
by beagle3 on 9/6/18, 7:51 AM
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.
by Yhippa on 9/6/18, 1:25 PM
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.
by no_one_ever on 9/6/18, 4:32 PM
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.
by tzhenghao on 9/6/18, 6:28 AM
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.
by null0pointer on 9/6/18, 7:33 AM
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.
by mhh__ on 9/6/18, 11:02 AM
by 4x5_Rules on 9/6/18, 10:31 AM
by arayh on 9/6/18, 6:26 PM
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.
by Jian-Yang on 9/6/18, 7:48 AM
by CM30 on 9/6/18, 6:04 PM
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.
by philpem on 9/6/18, 2:30 PM
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.
by em0ney on 9/6/18, 7:41 AM
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!
by borncrusader on 9/6/18, 3:57 PM
Brilliant jerks, people who incessantly complain are not worth your time. :)
by RickJWagner on 9/6/18, 11:47 AM
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.
by throwaway662184 on 9/6/18, 7:45 AM
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).