3 ms·
I'm not sure mentorship is the answer. The author also mentions not learning these things from a mentor, but from more experienced people they worked with. I t
by kqr 4y ago
I'm not sure mentorship is the answer. The author also mentions not learning these things from a mentor, but from more experienced people they worked with.
I think the real problem is that we don't call the first 5--10 years of a developer's career for what they really are: an apprenticeship.
A lot of companies hire what are effectively a team of apprentices and hope that they will somehow figure things out as they go. They tend to learn a lot of bad habits from each other. They will make you money, because even a small amount of programming skill can earn you money in the short run, but their code will eventually collapse under its own gravity and need to be rewritten.
Apprentices need to be paired with journeymen to learn the craft. I have not met a single successful team that has not had at least as many journeymen as apprentices -- ideally even more.
----
This is incidentally also my issue with the leagues of consultants who have only ever done greenfield or nearly greenfield stuff. They learn to write stuff in a way that it's completed quickly and lasts maybe a small number of years. That's what they are rewarded for, so obviously that's what they will get good at.
The people I've met who are really good developers are those that also have followed a product from initial design throughout its lifecycle into decommissioning. They seem to have a more holistic picture of the factors involved in making stuff.
- tommica 4y agoThat's a good way to look at it, apprentices. Makes me think about the cover of "pragmatic programmer" which I should open again in fact.
- japanman425 4y agoAged computer technician tries to solidify position and secure future ^
- francoisdevlin 4y agoWhat do you recommend instead?
- sshine 4y agoI don't think it's as much a question of age as it is of personality. I read a lot of code and learn from the mistakes of others. I think before I write, I write code slow, and it has fewer sharp edges. And I always did that. Somehow it just fits the narrative of an old person better.
- JKCalhoun 4y agoI aged out of my career (I left Corporate at age 57). My experiences though in my 50's were that the younger, new-hires were not much interested in apprenticeship or any mentoring I might have to offer. I get it. From their point of view I'm C, Objective-C, they're Swift. Instead I spent my last years making sure the young engineers saw me arguing with upper management when I thought they were being short-sighted, calling out bullshit when I saw it. I hoped to leave them with a sense of their potential for self-actualization and a heightened responsibility for the product — not to just be passive go-fers. I think they appreciated that more. The architectural mistakes they're going to have to make and learn from themselves.
- turtleyacht 4y agoWow, thank-you for putting a description on that. I'll look out for the grizzled contrarians in that case. There's a lot of mentorship opportunities out there, I am sure. Likely not a formal process of waiting in the rain for days, and cross-team mentoring is going to be rare. So I've been looking for ways to submit PRs in places, hoping to glean some knowledge by the code review. It's almost like a Dialog [1]. Easier to be egoless when seeking out how to improve. Otherwise, one is left with hundreds of bygone repos, knowledge from frameworks past, and no real context: missing tribal knowledge, rewrites, and experiments. Works in which, for a time, the code represented the relentless vision of a single mind's dream. [1] https://anathem.fandom.com/wiki/Dialog https://anathem.fandom.com/wiki/Dialog
- jmfldn 4y ago> Apprentices need to be paired with journeymen to learn the craft. I have not met a single successful team that has not had at least as many journeymen as apprentices -- ideally even more. This! I couldn't agree more. We inflate people's alleged experience too quickly and don't have enough real journeyman mentoring and guiding in many orgs in my experience. Too many unguided teams. Self-teaching will only take you so far, or it's a very inefficient, error-prone route to experience imho without guidance.
- poulsbohemian 4y ago> first 5--10 years of a developer's career for what they really are: an apprenticeship. This might be the case at the FAANGs or maybe at a few corporate giants where you can retire in place, but my own experiences were that if you weren't reinventing yourself or making your own major career changes, by year 10 you could be near aging out altogether. And, while I haven't looked at the data recently, that matches pretty well with what I recall being told as a college sophomore CS student, IE: by our mid-30s, most of us would not be working as software developers. I wish I could agree with you - it would be a fair deal if there could be a conversation about software apprenticeships, but my own experiences were that no one, and certainly not your boss, were there to mentor or guide you. It was bloodsport where you produce or perish.