Live data from Hacker News

Is software development really a dead-end job after age 35-40?

quora.com

271–280 of 411 posts

Re: Is software development really a dead-end job after age 35-40?

#271
post #71

I was going to add this as a reply to a comment downthread but I think it's too important to bury. The fundamental rule of career progression in the technology industry is to position yourself as a domain expert in something more specific than "programming" . It's very difficult to "own" "programming" in a way where you can use scarcity to drive integer multiple increases of the median salary. It is not as difficult…

I thought "generalists" are evergreen. These big tech companies are mostly (or always) looking for generalists because they understand the basics so well that they can do anything.

This is typical but not mutually exclusive of the fact these companies also find themselves from time to time, wanting someone who has deeper or more specific knowledge in order to resolve issues identified by the generalists.

Re: Is software development really a dead-end job after age 35-40?

#272
post #230
post #208

Earlier quoted context omitted.

This is incredibly good and valuable advice. I hope everyone heeds it (if what they want is to increase earning potential, of course). I'm not sure every programmer should start with trying to specialize in a domain. But definitely, at some point, you're reaching diminishing returns for getting better at programming. Put another way: Getting better at the craft of programming allows you to write programs faster and b…

I don't think there is significant overlap between Python's ideal use cases and Haskells. For one, Haskell's advanced static type system lends itself nicely to formal verification and the handling of domain specific languages. Both domains are important in safety-critical software. It also has much better ways of dealing with concurrency (STM and linear types). On the other hand, Python's ecosystem seems to be centre…

They're both general-purpose high level languages suitable for application programming. The difference isn't so much in the sort of software you can write, but rather what you want your development/testing/debugging experience to be like.

I've never used Python, but I like Haskell for the kinds of problems where I'm trying to do something complicated and a little confusing, and I want the compiler to let me know if I've asked it to do something that doesn't make sense. That sort of thing can save a lot of time in the long run, and I usually feel good that the resulting software is reasonably robust. I expect a good Python programmer could write an equivalent program, it's just not the way I like to work.

Libraries are of course often a deciding factor, and so are performance requirements.

Re: Is software development really a dead-end job after age 35-40?

#273
post #71

I was going to add this as a reply to a comment downthread but I think it's too important to bury. The fundamental rule of career progression in the technology industry is to position yourself as a domain expert in something more specific than "programming" . It's very difficult to "own" "programming" in a way where you can use scarcity to drive integer multiple increases of the median salary. It is not as difficult…

I wish this is true.

The problem in software development that current way how company financing is set up is that you do not need domain expert to make it.

In other words, it is nearly impossible to be hired as domain expert because very small number of startups needs one: just do some "growth hacking", get to YC, and raise money. Maybe founders need to domain expert to get to YC but they you will kick him or her out as soon as they get "YC stamp".

And this is reason why there is no database experts in all these new database startups, there is no security experts in security startups, nobody can figure out to make even half decent Dropbox clone, etc. The list goes on.

And there is also ageism: all "domain experts" are 30 something.

Re: Is software development really a dead-end job after age 35-40?

#274
post #222

Earlier quoted context omitted.

Can I ask which are those families?

Of course. 1: Imperative - C, Fortran, Pascal, ... 2: Object-oriented - C++, Java, Python, Ruby, (maybe Delphi's Object-Pascal), ... 3: Functional - OCaml, Erlang, Haskell, F#, ... 4: Declarative - Makefiles, QML, SQL, .... To be perfectly honest, I don't know which bucket I should use for Prolog. It's supposedly logical, declarative and functional at the same time. I've never managed to understand it, despite trying…

Those are more dimensions than buckets, and not very orthogonal ones at that. In particular there is strong overlap between declarative and functional language features (you could argue functional is just a special case), and less strong overlap between imperative and OO languages, and OO and functional. OCaml fits pretty comfortably in all four of those categories, when you want it to.

If I wanted to jam languages into 4 categories, it would probably be the Algol, Lisp, and ML families, plus All Those Other Languages. :)

Re: Is software development really a dead-end job after age 35-40?

#275

Earlier quoted context omitted.

Having worked at a phone company, I can tell you that as far as career longevity, those folks have us beat. Most of the people I knew working at the telco were in their 60s and started their jobs there out of high school. They were incredible domain experts and had retired from the phone company once already _with pension_. They were all rehired and getting paid huge rates on top of their pensions and some were even…

Yes - since nobody actually learns telephony any more, and it's a byzantine mess ... tons of guys earning a living being experts in domains we thought were going to go away ... But in 20 years from now, we'll still be installing classic land-lines, in which case, they'll still be around. Idea: build a wireless framework with the robustness of land-line efficiency - good enough for 9/11 calls and emergencies etc..

It goes way deeper than that though, honestly. It's really just a matter of small failures blowing up bigger and faster. They're 'closer to the metal', in a sense.

I've worked with plenty of tech people who just don't grok things as simple as network transmission times or that you can't 'just run a long enough wire (and through any conditions)'. Physics always gets its way. (Side rant: please do your best not to try to send me 20MB of data bounced off of a tin can spinning around the planet, down through dense, negatively-charged clouds to a mixed-elevation terrain through feet of steel and concrete surrounded by 1000 other phones like mine just to view your website/500-word article, plox. kthx)

We're very lucky that our systems are resilient (as in fault-tolerant, not inherently-stable) enough that most of us can work at very high level of abstraction and never dig deeper.

Phone people have to get this or their systems don't work right away. Same with power transmission. We think of these things like they're separate systems and domains from ours, but we're just very far removed from that layer. Everything we build is a client of these networks. There will be bugs or better designs that elude you if you don't understand this.

Just to drive the point home, there's this classic: http://web.mit.edu/jemorris/humor/500-miles

Re: Is software development really a dead-end job after age 35-40?

#277

Earlier quoted context omitted.

I think I managed to communicate about half my point to you, but missed the mark with the other half. Yes: you can specialize in being a really good programmer for a particular platform. I have a lot of friends who specialize in being Serious Engineers, who understand how to get interesting and important things done with lenses and how to effectively get a whole project away from null pointers and into monadic error…

> "not because it's unspecialized, but because it's hard to fashion a value proposition for it relative to your competition in the market." I agree with this entirely. But it makes me realize that perhaps I haven't explained my position well. I would agree that being a mobile expert is likely going to be LESS lucrative than being, say, an expert in recombinant DNA technology with a fluent C++ background and a PHD in…

> Go the safe route and become an expert in a more general field like, for example, mobile.

I don't think this is all that safe, really. What we consider "mobile" development has really only been around for about a decade with the releases of iOS and Android. (Sure, there were mobile platforms before that, but most people didn't really care about them, and specializing in them would likely limit your options, not expand them.) In that time, mobile development has gotten nothing if not easier. So, over time, being a "mobile dev" will become less and less of an important specialization. More people will do it, and the frameworks around it (both those released by Apple/Google, and third-party things on top of it), will make it easier and easier. By that point you might be an "elite" mobile developer who can do certain things on mobile that most others cannot, but the market for that level of specialization will likely also be small.

Re: Is software development really a dead-end job after age 35-40?

#279
post #171

Earlier quoted context omitted.

I second this. I'm currently on a team that has a couple senior engineers, but neither of them are true experts of what our team does (iOS). One has decades of web dev experience while the other has decades of Java service experience. Our team badly needs an iOS expert to make the tough decisions and lead architecture.

What kind of tough decisions does an "iOS expert" need to take? Mobile app development is becoming quite clear cut, one only needs to read the docs and know the APIs.

Agreed to some extent. You still need some expertise as a general software developer in order to write performant, stable apps, but it's certainly a lot easier to go from zero iOS knowledge to a fully working app than it was 5 years ago.

Re: Is software development really a dead-end job after age 35-40?

#280

In the general sense, this is the wrong place to ask. It's a self-selecting group in that most people over 40 here will be among the group that lasted in the career. It won't give a sense of how large that group is in the wider world, nor how many didn't stick with it. On the other hand, if you want to hear how to make it past 40 in software, this is probably an excellent place to ask!

Then let me ask: how do you make it past 40 in software? Specifically, how do you position yourself so that you are actively sought after (rather than merely employable)?

I'm not quite 40 yet (36), but part of what I've done is the specialization mentioned in other posts here (in my case, distributed systems with a focus on communications tech), and I've also cultivated my "product sense" to the point where (as an individual contributor) I'll often define and design a product and how customers will use it, in addition to doing the actual implementation. In that sense I have a little bit of breadth; I'm not "just" an engineer, I can also address the customer needs that lead to building a product, and then later refining it.

Understanding customer needs and translating that into product definitions is something that will likely never go out of demand, and is needed in industries outside tech. And if demand for distsys goes out of style I'll just learn something else. I've already kind of done that, having cut my teeth on embedded systems, followed by a short stint in mobile before getting to where I am now.

Judging by what I see around me, I don't see the strategy being any less effective in 10 or more years.

Post reply on HN