Live data from Hacker News

The Programming Steamroller Waits For No One (2013)

thecodist.com

31–40 of 48 posts

Re: The Programming Steamroller Waits For No One (2013)

#31
The "steamroller" problem is an artifact of the anti-intellectual business culture, not technology. Technology is about expanding capacity; the anti-intellectual mainstream business culture is about zero-sum dynamics and competition for its own sake.

If you're smart about it, you hire programmers because of their ability to solve problems. If she used Ruby for 10 years and did great things, and you use Clojure, no matter. People can learn new things. The core ideas and competencies haven't changed much. The tools and APIs seem to have a half-life of 5 years, except for the proven winners (C, Unix, Lisp as a concept if not a specific dialect yet).

If you're a dumbass, however, you hire based on trivia. You ask for minuscule details of C++ templates or Python metaclasses or JVM internals. You let your HR write hiring specifications like "must have PhD and 5+ years in ". The trivia questions are fine interview material if the person is claiming to be an expert in that technology. They're useless at determining whether a person is generally capable.

The problem is that companies tend to fuck up one of two opposing ways. The more common failing is the HR fuckuppery I described above, of hiring for specific easy-to-learn skills rather than actual capability. This tends to hurt older people, who (after a decade or so, when all the half-hearted programmers have dropped out) want to develop genuine competence rather than chasing every crappy new thing that pops up. That seems to be why every good programmer above 35 either wants to be an architect or data scientist or something other than a "regular ol'" programmer, i.e. an "X who programs"; because the way programmers are evaluated is completely borked.

The (much less common, but still irritating) opposite end of the spectrum is the "hire ALL the talentz" attitude you see at certain very large tech companies, where they "hire generalists" but that's an excuse for a one-size-fits-all, CommodityDeveloper, internal attitude. If you're running a closed allocation shop, you really can't hire people "just because" they're talented. You have to hire to the specific role or you'll have a morale problem and possibly an HR disaster inside of 12 months.

So, really, the only way to avoid falling into one of these vicious patterns or the other is to implement open allocation. But we all knew that already.

The problem isn't that there's a steamroller. It's that it's driven by idiots who don't understand the first thing about any creative process-- closed allocation is a laughably terrible idea-- much less a constantly changing one like technology.

Re: The Programming Steamroller Waits For No One (2013)

#32
Rainbow's End by Vernor Vinge explores this idea and where it takes us in 20 years. The book is set in a pre-singularity world where technological progress in every field is tethered to advances in computing power, and new fields emerge and die in a few months. I don't think this is particularly implausible, eventually. In any case the idea that you can get a job at an auto manufacturing plant and stay there for the rest of your life, get a fat retirement check etc without ever really having to worry about change, has clearly been smashed by globalization (via technology) in the last 30 years, and I think the same process is accelerating in other fields. Of course not "[losing] the desire to learn" is exactly what the author is prescribing here, and I think as usual many people are just talking over one another.

Re: The Programming Steamroller Waits For No One (2013)

#34
This is the fun part in this like working!

There is always something new to learn, something new pick up and explore.

I am doing this for over 20 years now, and it was like changing my job completely every 2-4 years. If one is open to change and adaptable there is no steamroller.

Re: The Programming Steamroller Waits For No One (2013)

#35
I think of the steamroller in a slightly different way. When a technology is in its infancy, you get paid more because it is still an evolving space - demand is increasing, but supply is still short (think node right now). Then the technology reaches mass market - cost becomes a factor in whether we write the app in Foo or Bar and rates drop (java). Then, on the tail end of a tech life time (cobol), rates are high again as people retire or move on to the Next Big Thing and supply is low - demand may be low too, but the install base really depends on the tech so will pay a premium. So, will you get steamrolled? Only if you are expecting to make a premium but don't recognize where you are in the lifecycle.

Re: The Programming Steamroller Waits For No One (2013)

#36
post #3

I enjoyed this article. However, haven't many of the core fundamental concepts and abstractions found in computing technologies stayed relatively the same over the past 40 years? Minus the occasional paradigm shift, of course.

It really amazes me that Unix has not only lasted so long, but actually increased in its relevance (being the foundation behind Android, iPhone, OS X, AWS, etc.) How many computing technologies from 1969 are we still in daily contact with?

Nassim Taleb has this nice heuristic that says that the expected future life of something is proportional to how long it's been around.

So ASCII text will outlast HTML, because it preceded it. And HTML will outlast JavaScript.

So you might guess that Unix will outlast even the web. I doubt that a deep knowledge of Unix will become obsolete in the lifetime of anyone alive today. We might ubiquitous computing and networked sensors and AI, but it seems like all of those things will be running on Unix.

(note: this is of course a heuristic)

Re: The Programming Steamroller Waits For No One (2013)

#38

Learn computer science and you'll know what's coming (Though not the exact form) over the next 30-40 years. Maybe even longer. For those who were paying attention in language classes it's a game of waiting for industry to catch up. A long one at that.

Let's say you are a workaday programmer doing something like database-driven apps for enterprises. You used to build terminal-based apps. Then you moved to GUI apps. Now you are doing web-based apps. All of it covers a good 30 years of change. How would computer science have informed you about those changes?

Re: The Programming Steamroller Waits For No One (2013)

#39

There is no steamroller. I know many programmers feel this way, but in my humble opinion it is a fallacy, and not a very healthy one. No-one can deny that our industry is evolving at breakneck speed, and it is an exhilarating place to be. But just because there's a new technology every week on HN doesn't mean that we are losing old ones at a similar rate. It is perfectly possible to have done nothing but C or Java fo…

In some countries, like New Zealand, almost the inverse of this "steamroller" concept is true and you're potentially disadvantaged in this job market if you have focused on developing 'contemporary' software skills. The vast majority of software jobs here are .Net, php and Java, and I haven't seen anything to indicate over the last 10 years that the status quo is shifting.

As much as I love learning new things, and would love a day job working with Clojure/cljs or contemporary js on regular basis, in terms of my career I potentially would have benefitted more from consolidating skills in the aforementioned ecosystems. In the valley these things may be perceived as legacy and completely outmoded, but in the rest of the world that's hardly the case.

Re: The Programming Steamroller Waits For No One (2013)

#40

There is no steamroller. I know many programmers feel this way, but in my humble opinion it is a fallacy, and not a very healthy one. No-one can deny that our industry is evolving at breakneck speed, and it is an exhilarating place to be. But just because there's a new technology every week on HN doesn't mean that we are losing old ones at a similar rate. It is perfectly possible to have done nothing but C or Java fo…

My advice to people feverishly trying to keep up with the latest JavaScript frameworks is to take a step back, and learn a new language that's been around - like Java or C++. The only knowledge that's throw-away is too domain specific, too library specific etc.
Post reply on HN