4 ms·
I think this advice is given in the right spirit, but is potentially completely wrong. I agree that it's extremely important to work in high-performing teams,
by debatem1 7y ago
I think this advice is given in the right spirit, but is potentially completely wrong.
I agree that it's extremely important to work in high-performing teams, or at least teams that are really good at something. That's true whether you're new or not, since by definition the team of which you are a member will have more aggregate impact than you will.
But working alone is critically important for all the pieces of the development process that aren't technical. Learning to represent yourself and your ideas, execute on the effectively, and drive them to completion without help-- those are the skills which will consistently produce success and whose lack will consistently produce failure. And IMO, you only really learn them when you're on your own and in the crunch.
So if you feel like you have those skills, seek collaboration and the wisdom of crowds. If you don't, I think you're better off seeking challenge and the risk that comes with it.
- mooreds 7y agoI appreciate the feedback (author here). The blog is explicitly aimed at new developers. For them, I think working alone is a really tough spot, because they're going to have a hard time learning on their own, they won't have anyone to bounce ideas off of regularly, and they won't have someone at work to mentor them. For developers later in their career, I think your advice is spot on. I remember lying on the ground struggling to solve one of the hardest problems I've ever tried to solve (as co-founder of a startup) and I'm proud of that solution. Having someone there would have helped, but wasn't required and probably wouldn't have helped me grow as much.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- ghaff 7y agoI've never been a full-time developer, but I find that a lot of the passion around remote/distributed work often misses something for people starting out. Communication systems were a lot different when I started in the tech world. But it's really really hard for me to imagine starting out in a world where I was sitting in my apartment all day. Remote doesn't mean working alone of course. But I would certainly have found the relative isolation difficult even given today's messaging and videocon apps.
- PopeDotNinja 7y agoI've been a professional developer for about 5 years, and I've never seen great professional mentorship. In my experience, one should plan on working alone, and look & hope for good mentorship. For my first job, I was lucky to get a single offer, and that meant I didn't have much of a choice in what kind of learning & earning potential I had.
- werber 7y agoYou have to bring it up when you're interviewing, and get in deep. Tell the technical interviewers what you want to get better at and be honest and be prepared to say no to good offers that aren't going to nurture your skill set. Ask about how they do code reviews, what professional development they offer, how often they pair program, do they do tdd or just make it work as fast as possible to appease the business, how the team has helped each other to grow and whatever else feels important to you
- wolco 7y agoIt's hard to break in with no experience. I'm not sure everyone can filter out companies based on mentorship.
- sverhagen 7y agoI've mentored people and gotten decent feedback on that. If that's what you're missing, move around. See if there's someone internally to get what you need, else jump ship for a new employer. Also, mentoring is mutually beneficial. As a mentor I get someone I can trust to do things in a particular way. Value for the mentee was already implied.
- thothamon 7y agoIn my career, I've had a handful of occasions where someone mentored me. When they do, you can learn very, very rapidly. But as good and valuable as that is, I think everyone needs the experience of solving multiple, hard problems mostly using books and the Google machine. You can never be senior until you can solve hard problems without someone holding your hand.
- moksly 7y agoI’ve seen quite a lot of different teams and I have a side gig as an external examiner for CS students, and I’m not sure the real world really fits with your idea of a “high performance mentoring team”, because no one frankly seem to have a clue. Most senior developers and teams have made choices and they’ll be able to tell you what works and doesn’t work in their shop, but that’s often not universal or even good advice for new developers. I think the hype around kubernetes is the perfect example of how terrible experienced developers are at making decisions. I’ve seen more teams fail at it than succeed, and none of those teams, even the ones who succeeded actually needed it because their max-load didn’t ever even require them to have a load-balancer. Yet, I’ve yet to find any senior team who was sound enough to realise that they aren’t Netflix. You won’t really get good mentorship from that. It’ll just feel like that because they are less insecure, but in reality, people aren’t actually very good. I think the exception is if you make it into something really high end R&D, but chances are you’re already better than 99% of us if you do.
- dancek 7y agoSounds to me like you have a biased sample. In my surroundings many of the experienced people prefer simplicity and avoid premature optimization.
- Doxin 7y agoI think once you reach the point of docker-or-not you're probably beyond simple one-directional mentoring. At that point you've earned your opinion. Mentoring is however wildly effective at helping people get to grips with tools. As an example learning django isn't particularly hard, it has a great tutorial, but I wouldn't be surprised if a junior programmer with no web framework experience would learn it twice as fast if given someone that'll answer their questions promptly.
- Doxin 7y agoAs a not-new developer (I don't think senior applies quite yet) I'm most productive when helping other people. And not by a small margin either. Some people just thrive off teamwork (Like me.) I doubt that's true for everyone though. I just wish it was easier to get a "team" for unimportant hobby projects, going it all solo is tiring.
- ris 7y agoTo be honest, when people ask me where I got my abilities in researching diverse subjects and tracking down obscure faults from, the only thing I can really tell them is that I never really had anyone to turn to when I was learning - I had to just find a way to make it work. Couldn't defer "the hard stuff" to someone else. I think working alone gained me quite a lot.
- gwbas1c 7y agoI think you misunderstand what "working alone" means. In one context, it could mean being the solo developer on a project. In another context, it means avoiding what some people call "pair programming." This article clearly implies that a new developer should be part of a team. It never alludes to pair programming. Why is being a member of a team important for a first developer job? There's a lot of things left out of a typical Computer Science degree that are needed to be an effective programmer. Being a member of a team is the easiest way to learn these things. (For example, we never discussed source code control in my school, or why someone would deliberately denormalize a SQL database.)
- humanrebar 7y ago> But working alone is critically important for all the pieces of the development process that aren't technical. Sure, but good engineering happens with closed feedback loops. Even if you learn to check your own assumptions, users still need to be informed, documentation improved, subsystems integrated, new platforms supported. Good engineering is a team sport. So maybe you can turn a confusing stack trace into a patch on your own. Great. Tru success happens when you ship. And shipping to yourself is rarely interesting.
- janee 7y ago> But working alone is critically important for all the pieces of the development process that aren't technical I would actually argue the opposite. Work with someone more experienced on the non-technical parts and do the technical alone. Finding online resources for technical problems is easier in my opinion. But for non-technical you're probably going to need domain knowledge or just plain experience to complete and getting those are so much simpler when seeing examples of it from others