4 ms·
To get a programming job that can actually use 10+ years of experience, you need to develop strong interpersonal skills and (to put a darker shade on it) learn
by michaelochurch 12y ago
To get a programming job that can actually use 10+ years of experience, you need to develop strong interpersonal skills and (to put a darker shade on it) learn some CS 666: Software Politics. At that point, the main obstacle to moving into management (needing to bring your interpersonal skills up to, at least, the 25th percentile) is gone.
In other words, if you're good enough at interpersonal politics to keep improving as a developer past the 5-year mark (which requires working people well enough to get on the best projects) then you're also good enough to move into management.
Moving into management is also just plain easier than protecting a specialty against the anti-intellectualism of business-driven engineering. You're a top-flight developer making $140k with a well-formed specialty (let's say that it's machine learning in Haskell). Your options are: (a) compete for the two jobs that exist in the world, (b) give up your specialty and move to a hedge fund, or (c) move into management, which tends to be specialty-agnostic, and lucrative. If you've decided that you're a manager from here on out, all those damn Java shops become options again.
Startups were supposed to provide an alternative, but these days the VCs act like bosses and being a funded CEO is a middle management position.
For what it's worth, the genuinely interesting fields of programming tend not to have the same age-related attrition. Machine learning researchers, and even serious engineers like Jeff Dean, are just starting up when they're 40. However, the business-driven engineering that 95% of us have to contend with is mind-rotting. Spending a week debugging someone else's VibratorVisitorFactory method, or figuring out what the fuck some ORM is doing, just causes atrophy.
We have age-related attrition (of both kinds; our most talented leave, and our less talented or just less lucky are punted) because we're a badly organized industry. We have a talent for which there's nearly unlimited demand, and yet we refuse to organize around protecting its interests with a union or a professional guild.
Also, organizations that use a "dual track" only underline the problem. Take Google. It's 100 times harder to become a Principal Engineer (Director-equivalent) than to hop on to the management ladder and make Director. It's 10,000 times harder to become a Google Fellow (VP-equivalent) than to make VP. There may be a noble intention behind dual track organizations, but their actual effect is to show how stacked the deck is against lifelong individual contributors in a world that is still "manage or be managed".
- dannypgh 12y ago"It's 100 times harder to become a Principal Engineer (Director-equivalent) than to hop on to the management ladder and make Director. It's 10,000 times harder to become a Google Fellow (VP-equivalent) than to make VP." I think it is obvious given total headcount that there aren't 10,000 times as many VPs as Fellows. And given I know of way more people going from IC to Management positions than the other way around, it seems many ICs effectively compete with folks on the Management ladder for Management jobs. Meaning even if equal effort was required to get to Director as to PE, I'd expect many would-be PEs end up as Directors because they decided to switch to the management track for whatever reason (e.g. because they realized they were already informally managing). Sure, one of those reasons /might/ be they thought career advancement was easier on the management track, but what proof of that do you have? To assert it's 2 orders of magnitude harder to become a PE than a director, and 5 orders of magnitude harder to become a Fellow than a VP, I think you're gonna need more proof than that.
- PeterisP 12y agoActually, if I look at tech field as a whole, it seems quite realistic that there are 10000 more VP-level positions across the many companies than the Fellow-level positions, of which 99% of companies don't have any at all. My home city likely has thousands of software-related VP's, but has 0 Fellow-like positions, they're very uncommon globally. Quite literally. If I want to be a manager of a sizeable bunch of programmers, then that's a popular job that every company (from small tech companies to multinationals selling soap or loans) will have a bunch of and most of them probably have a vacancy right here and now. If I want a Fellow-type role, then my options can be counted on my fingers.
- michaelochurch 12y agoCorrect. Also, engineers are promoted "confirmationally" (meaning, after they're performing at level X) and managers are promoted "aspirationally" (when people think they should be able to reach level X). Google prides itself on promoting only confirmationally, and engineers like it that way because it's more meritocratic. The problem is that product people and management still get aspirational promotion, and that's a huge leg up. Over time, they advance a lot faster than we do. We have to take on above-level responsibilities (which is politically dangerous, because people start to wonder if you're neglecting your at- and below-level job duties) to advance. They don't.