Hacker News new | ask | show | jobs
by SoftwareMaven 4359 days ago
So I'm in the 40+ crowd, and things are different from when I was a 20-something. But learning new stuff isn't a problem. I pulled Angular into the new project I'm building at work. I've moved from C to C++ to Java to Python and am now playing with Racket (Python generators have nothing on define-syntax :).

My point is not to say I'm better than the author. I'm nothing special. My point is that there isn't a magical end-of-life for developers. Learning changes. Interests change. Priorities change. Nothing to be afraid of.

And there are positives: I'm much better at prioritizing. I don't waste my time on "the next hotness" just to watch it tank in obscurity three months later. I'm good at understanding what infrastructure is important and what isn't. My hunches have gotten better.

What scares me about this post has nothing to do with the author. I worry more about it propagating the myth that developers have a limited lifespan, that they expire. That's a falsehood that needs to die.

4 comments

"My hunches have gotten better" is perhaps the best description of the value of experience.

I am 38 myself, and sometimes, when I am surrounded by a new batch of fresh 20-somethings, I feel a little like the author of the original article. They need only a couple of hours to understand a new framework or tool to an extend that I feel would take me days or weeks. And they think nothing of burning the midnight oil for whatever reason, while I really have to get home in time to pick up the kids from daycare.

But then they suddenly make a design decision I just know is never going to work out. Not because I'm smarter (it's probably the other way around), but because I saw a similar mistake being made 10 years ago. Or maybe it's not even that explicit, and a certain solution just "feels" wrong even before I can clearly articulate why.

That always amazed me when I worked with younger peers. They could pick up the new JS framework/build tool/library-du-jour and whip together an amazing, reactive, fluid GUI in an afternoon. I'd try to cobble together a simple, "Hello world!" with the same technologies and throw my hands up after a few days proclaiming it to be the worst invention since the dust-jacket.

But I taught them about unit testing, data structures, and algorithms. In return for making their programs easier to maintain and faster they answered my dumb questions about crazy JS frameworks. Eventually I did get, "Hello world!" to appear in my browser screen.

I often wonder why it's so complicated but they assure me it's for good reasons.

Yea very true. I'd also say that learning new things has only gotten easier with experience. In my experience not only have I been able to get up to speed faster, but often it is easier to spot the pitfalls with a new technology before even using it.
Until cybernetics becomes more mature and cost-effective i'm pretty sure we all have a limited lifespan.

What's funny is you see this article as a kind of threat, while the author is voicing his concern for the threat of the advance of technology for technology's sake in contrast to his shrinking interest in learning additional skills over time.

If you think about it, it's kind of depressing. Like a cobbler having to learn how to repair a newly invented shoe every couple years, constantly purchasing new tools and learning how they work, only to have the business change a few quarters later. A constant churn of a technological wheel that doesn't get the cobbler anywhere other than the exact same place. You'd think the world would be happy with the old, long-lasting, easily-repaired leather oxfords. But that isn't the case with technology, and I share the author's lament for less unnecessary complication.

The problem in software is the assumed useful lifetime of a developer is much less than his actual useful lifetime.

And, while I disagree with your reading of the article, I do agree that change for the sake of change is a bad idea, and it is something that just increases risk without benefit. However, I don't think all of the change (or maybe even a majority of it) in software is the result of change for change's sake. Most of the change I've seen in my career has been complex abstractions of even more complex realities. The Java VM was a complex abstraction to an even more complex reality of developing in heterogeneous computing environments (I think it's something else now, having evolved as the computing environment has changed). This abstraction reduces complexity in many ways, making it possible for developers to do more, but it comes at a cost of needing to know more places where abstractions leak and how to deal with those leaks.

Racket really is awesome. I used the Racket web server for a small project once (that never got finished), and it's just so pleasant to work with!