News for hackers. Stuff that matters.
Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @02:02PM (#15724951)
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 to "own" distributed systems, sensor fusion, software security, or OS kernels.

As a general rule, the people getting outlandish half-mil-a-year offers from big tech companies are domain experts, and the people on Twitter shocked and upset that they're never seeing these offers are either (a) generalists or (b) people who have chosen to specialize on the craft of programming, rather than a domain to which programming can be applied.

That's not a value judgement! There are a lot of ways in which refining a true engineering discipline for assembling software is harder than kernel development or fast computer vision processing. It's just a statement about supply and demand, and about ease of demonstrating value.

Re:Is software development really a dead-end job after age 3... by jordanb on Friday November 17, 2017 @02:23PM (#15725156)
The big danger is "owning" some domain that falls out of fashion. You might "own" distributed systems and do great for a time, but then companies start transitioning from that architecture and nobody returns your calls anymore.

Also I've noticed a lot of sub-fields like computer vision or self driving cars where there's a great deal of nerd interest but very little actual employment.

In fact, I have a feeling that computer programming is the stick that's holding the entire STEM tent up---if not for programming as a consolation prize you'd have a whole lot of physics and chemical engineers making lattes at starbucks---and further that web development is the stick that's holding the programming tent up.

Re:Is software development really a dead-end job after age 3... by Iv on Saturday November 18, 2017 @01:16AM (#15727983)
I am a programmer. I am pretty good at algorithmics. I love implementing something out of a published paper. I love to navigate the math. I can't sell that though.

I just used to say I am a computer vision expert, because in the ton of things I can do, this is a relevant domain.

Recently, advances in deep learning made half of the computer vision field obsolete. I just read some cutting edge DL papers, linked that to the things I know, and now I am a deep learning integrator.

I was taught in engineering school that my craft is learning and problems solving. I sell it as knowledge and expertise but the truth is that I am constantly learning in the domain I sell as my specialty, which is what everyone who is decent at anything actually does.

Re:Is software development really a dead-end job after age 3... by rperez333 on Monday November 20, 2017 @10:04PM (#15745193)
Hi Iv. I'm looking for help to implement a computer vision paper. Can you contact me, please? Sorry about the message here, couldn't find a way to send directly. [email protected]
Re:Is software development really a dead-end job after age 3... by BurningFrog on Friday November 17, 2017 @10:50PM (#15727669)
> Also I've noticed a lot of sub-fields like computer vision or self driving cars where there's a great deal of nerd interest but very little actual employment.

I'm strongly convinced that the less (nerd) sexy a field is, the more money there is in it for a good programmer.

The crappy programmer working conditions in the gaming industry is one example supporting this theory.

Re:Is software development really a dead-end job after age 3... by toyg on Friday November 17, 2017 @11:20PM (#15727732)
It's the same supply-demand issue as any other field. There is no money in writing poetry, but plenty of cash writing ad copy.
Re:Is software development really a dead-end job after age 3... by auxym on Saturday November 18, 2017 @09:04AM (#15728962)
>In fact, I have a feeling that computer programming is the stick that's holding the entire STEM tent up---if not for programming as a consolation prize you'd have a whole lot of physics and chemical engineers making lattes at starbucks---and further that web development is the stick that's holding the programming tent up.

I swear, I repeat this comment in almost every news article posted about how "We need more STEM graduates" and "The STEM job market is super hot right now".

Yeah, programming is. I know so many graduates of a BS in math, physics, chemistry, biology, ecology that just couldn't find satisfactory employment. They either got a second, mostly unrelated degree (in management or something more industrial) or are working at a mostly unrelated job.

Even in traditional engineering disciplines, while it's easier to get at least OK employment the demand just doesn't seem that strong compared to CS. I have many friends that graduated with civil, mechanical, or chemical engineering degrees (in at least one case, an MS) who are vastly overqualified for their lab tech or drafter positions.

I have a strong background in mech engineering and robotics. Yet, for the two years I worked in that domain, I never had a single recruiter contact me out of the blue. Now, my mostly amateur computer skills somehow landed me a "tech" (read: IT) job. In the 2 months since I've changed my current title on linkedin, I've had 3 recruiters contact me.

Re:Is software development really a dead-end job after age 3... by tmat on Saturday November 18, 2017 @09:16AM (#15729006)
There is a difference in engineering and programming. An engineer uses programming to solve an engineering problem. If all you can do is program, you're just not as valuable. Programming is one of many tools I use in my every day job as an engineer.

I think this goes back to being an expert in a "domain". Being able to apply programming to that domain is far more valuable.

Re:Is software development really a dead-end job after age 3... by caseysoftware on Saturday November 18, 2017 @10:04AM (#15729184)
Quite possible but since everyone uses the term "engineer" without any context or specific qualifications, we should expect any distinctions to dissolve as people realize total morons are using it too.

* I have a bachelors in electrical engineering from a top ranked school.

Re:Is software development really a dead-end job after age 3... by whathaschanged on Saturday November 18, 2017 @03:00PM (#15730381)
We used to call ourselves programmers. Then it became sexy to say developer. Now it is engineer. (Since you pointed out, it means something different to everyone, so its meaningless).

The future will be a new snazzy term. Same job, different title.

Software development is not engineering.

Re:Is software development really a dead-end job after age 3... by auxym on Saturday November 18, 2017 @10:23AM (#15729277)
My point wasn't really the distinction between engineering and programming, but between everything IT-related (red-hot job market) and all-other-STEM related (not so hot job market): sciences (chem, bio, physics, math) and traditional engineering (civil, mechanical, chemical, electrical)
Re:Is software development really a dead-end job after age 3... by fspeech on Friday November 17, 2017 @06:40PM (#15726898)
'The big danger is "owning" some domain that falls out of fashion'

That is part of the reason for the high pay. There is always risk associated with specialization. You can't become an expert without specializing in something, but if you specialize in the wrong thing your effort may not be rewarded.

Re:Is software development really a dead-end job after age 3... by mgkimsal on Friday November 17, 2017 @11:24PM (#15727742)
> There is always risk associated with specialization

That might be the reason people demand higher pay, but it wouldn't be the reason why companies pay the higher pay. They pay it because there's a scarcity of people, and/or because they get some multipled value back. No company cares if I've specialized in the 'wrong thing' - they just won't hire me.

Re:Is software development really a dead-end job after age 3... by DataWorker on Saturday November 18, 2017 @12:18AM (#15727865)
That’s an important “or”. It’s not always scarcity, it’s often the perceived value. CEOs are just one of many examples where the pay is not at all because of scarcity.
Re:Is software development really a dead-end job after age 3... by _Tev on Saturday November 18, 2017 @08:19AM (#15728840)
Are there really that many people capable and willing to work as CEO? From my experience there are never enough good managers.
Re:Is software development really a dead-end job after age 3... by mgkimsal on Saturday November 18, 2017 @09:45AM (#15729112)
I meant to add 'perceived' on value, and the 'scarcity' aspect can play in to the perception of value too.
Re:Is software development really a dead-end job after age 3... by systematical on Friday November 17, 2017 @08:35PM (#15727324)
Agreed. See my dad. An expert on systems running AIX and HPUX. There are not a ton of those around anymore. In the 80's and 90's he told me he would get multiple offers all the time. People fighting over him. Today, he has to fight to find jobs. Luckily he just needs to get by a few more years until retirement.
Re:Is software development really a dead-end job after age 3... by joshvm on Saturday November 18, 2017 @10:03AM (#15729180)
As a computer vision person - the jobs are there. The reason it doesn't look like much employment is that there aren't that many of us relative to the hoardes of web developers. Part of the problem is that the bar is high. Most jobs require a few years of practical experience, a research degree, or both.

It's the classic example of complaining that there are no jobs, while the industry complains that there aren't enough talented people. I get a few recruiters pinging me weekly and I'm not looking to move jobs - their story is always that there is a huge demand for good people.

I think the CV job market is unlikely to get much better, at least in terms of numbers of positions available. On the other hand, it's a stable job market that isn't going anywhere. The pay is already above average and it's not likely to go down because of the experience required. There's no shortage of applications and it's not dependent on a particular language, toolset or hardware. Virtually every big factory in the world employs some kind of machine vision system, for instance. And pretty much every computer vision deployment has to be modified for the application.

There are much easier ways to make money though. If you want to be a wealthy programmer, get on the web/app development train and accept that you might need to pivot every couple of years.

Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @02:25PM (#15725177)
You can switch domains.
Re:Is software development really a dead-end job after age 3... by mindentropy on Saturday November 18, 2017 @05:46AM (#15728527)
This is kind of unrealistic but very easy to say. I have changed domains but that was because I wanted to move into the domain of my interest i.e. embedded and also was young and wanted to feel the breadth. After investing almost 5 years of my life in it and endless reading and doing things things in my field I am considered an expert. Now the embedded field in my country is in a steep decline and I am at a cross roads. All the so called "new" tech does not seem to entice me at this age as I can go very deep into my embedded field. On the other hand I know that if I don't jump ship I would be jobless pretty soon. This makes me very bitter in choosing CSE education as my peers in medical have way more stability in their domains than me.
Re:Is software development really a dead-end job after age 3... by figgis on Tuesday November 21, 2017 @01:23AM (#15746056)
I don't know man. There's enough use-cases to make both boats float. Just gotta find it.
Re:Is software development really a dead-end job after age 3... by seanmcdirmid on Friday November 17, 2017 @06:35PM (#15726876)
By sinking your precious time invests sure. But you won’t be able to claim you have 20 years of experience in X anymore, you will be a newbie for awhile. That, and your PhD is already in something else...your papers are already published in other conferences....it can be a problem trying to move from say PL to ML.
Re:Is software development really a dead-end job after age 3... by kelnos on Friday November 17, 2017 @07:46PM (#15727139)
Sure, but those are the trade-offs. You don't get the reward without taking on a bit of risk.

It's a little ironic to hear talk like this, since around here I hear a lot of "sorry your coal mining job is going away, but you need to get with the times and train for something relevant". Same thing applies here. If you pick a programming specialization that eventually falls out of favor, buck up and learn a new one. Maybe that'll mean a pay cut for a bit as you ramp up, but that's just how it works.

Re:Is software development really a dead-end job after age 3... by rplst8 on Saturday November 18, 2017 @12:19AM (#15727868)
I don't think it's unreasonable for people to expect that they should be able to work in a field for the majority of their careers. Retraining is not an efficient use of ones productive years.
Re:Is software development really a dead-end job after age 3... by tigershark on Saturday November 18, 2017 @08:00AM (#15728793)
I think that if someone chooses engineering then he must love to learn. For me it would be too boring to do the same thing for my whole life, I always try to learn more languages, more paradigms, architectures and whatever. I can jump in the code of a different team and be immediately productive. Usually I suggest and implement small changes that have a large impact on the maintanability of the system as soon as I start to grasp it as a whole. I couldn't ever do it if I stayed in the same field, in the same environment, for all my life. I think that if someone expects to work in a field doing the same thing for the majority of his career then probably should not choose engineering.
Re:Is software development really a dead-end job after age 3... by emodendroket on Saturday November 18, 2017 @08:57AM (#15728932)
But you are doing the same thing. This is the frustration. I've worked in several languages with various tools and it's very common to just be learning slightly different syntax to approach a problem in the exact same way (and then eventually maybe you'll reach a higher plane where you approach it in a way somewhat characteristic of the tool, but still not fundamentally different). Technologies that really change the way you work or think about problems are few and far between, and most of the algorithms and data structures you'll use most of the time in typical applications were discovered in the 1970s. It's not a big deal to pick up a new tool on the job, but I have a hard time motivating myself to spend free time learning yet another MVC framework or whatever.

It's a different story, I guess, if you go into a completely different type of programming from what you're used to (say Web apps to embedded programming), but I don't think that's necessarily easy.

Re:Is software development really a dead-end job after age 3... by ben_w on Saturday November 18, 2017 @08:49AM (#15728919)
I think it is unreasonable to expect that, especially in a field where even a decade ago people were saying “50% of the skills on your CV become obsolete every 18 months”.
Re:Is software development really a dead-end job after age 3... by emodendroket on Saturday November 18, 2017 @08:54AM (#15728928)
If people were saying that a decade ago they were wrong.
Re:Is software development really a dead-end job after age 3... by ben_w on Saturday November 18, 2017 @09:06AM (#15728969)
Looks like a lot of people, net, agreed with the claim: https://softwareengineering.stackexchange.com/questions/4417...
Re:Is software development really a dead-end job after age 3... by emodendroket on Saturday November 18, 2017 @09:11AM (#15728992)
This comment seems to be more about putting all your eggs into one basket than the idea that every technology is going to die in a few years. Most of the popular production languages today are 10+ years old, for instance.
Re:Is software development really a dead-end job after age 3... by ben_w on Saturday November 18, 2017 @11:46AM (#15729673)
Not every technology, but rather random technology from the set of things-which-currently-look-good-when-seeking-work.

Important difference.

For example, at one extreme, all tech lasts exactly three years; at one of several other extremes, 50% of tech is eternal and the rest lasts exactly 1.5 years.

Re:Is software development really a dead-end job after age 3... by akie on Saturday November 18, 2017 @01:06AM (#15727957)
Maybe it’s not unreasonable, but unrealistic?
Re:Is software development really a dead-end job after age 3... by seanmcdirmid on Sunday November 19, 2017 @07:52PM (#15736970)
Huh? Those sentiments (retaining is hard, retraining is necessary) aren’t incompatible.
Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @06:41PM (#15726900)
I don't think getting a PhD is an especially good maximize-earnings plan.
Re:Is software development really a dead-end job after age 3... by sjg007 on Friday November 17, 2017 @07:27PM (#15727087)
I think wall street is still the best option to make a lot of money.
Re:Is software development really a dead-end job after age 3... by dsacco on Friday November 17, 2017 @08:33PM (#15727317)
In which case, there is a credible argument that a PhD is integral to income maximization.
Re:Is software development really a dead-end job after age 3... by sjg007 on Friday November 17, 2017 @09:24PM (#15727446)
I think so if you want to quant..
Re:Is software development really a dead-end job after age 3... by seanmcdirmid on Friday November 17, 2017 @07:59PM (#15727191)
I wouldn’t disagree with that :).
Re:Is software development really a dead-end job after age 3... by agumonkey on Friday November 17, 2017 @08:40PM (#15727339)
In theory. I'm sure everybody knows, but at times you might 1) lose willpower 2) find yourself in an unknown climate all of a sudden (say going from old codebase to nodejs..) that makes the learning curve very steep
Re:Is software development really a dead-end job after age 3... by Silhouette on Friday November 17, 2017 @08:58PM (#15727388)
This is why you market yourself/your business as specialising in a particular domain, but you study good fundamentals and general principles, which you then apply to your current domain(s) of interest using whatever development tools are of use in that domain.
Re:Is software development really a dead-end job after age 3... by barrkel on Saturday November 18, 2017 @12:51AM (#15727925)
Straight up coding is such a pop culture that some subset of good principles are unknown or misunderstood by each successive hip new movement, every one flawed in a different way to their predecessors, but doomed to make similar mistakes by lack of experience. The flaws easily extend into "best practices" around any given tool; and then you stick out like a sore thumb for recognising what should be done, but everybody else cargo cults the orthodoxy.
Re:Is software development really a dead-end job after age 3... by agumonkey on Friday November 17, 2017 @10:20PM (#15727599)
It's a bit more involved than this. Current market doesn't really follows fundamentals. I dug into advanced theory quite a bit and that won't help me peanuts when trying to unfold what people mean with their patterns and ways. Quite the opposite some times, angular 1 for instance, it was a bit insane what they assembled.. unlike anything fundamental if you ask me.
Re:Is software development really a dead-end job after age 3... by Silhouette on Saturday November 18, 2017 @01:02AM (#15727946)
I suppose I would argue that developers with a lot of experience and good knowledge of fundamentals might well steer clear of a great deal of the unnecessary complexity and short-lived tooling in today's web development world.
Re:Is software development really a dead-end job after age 3... by LoSboccacc on Saturday November 18, 2017 @04:16AM (#15728360)
It’s good to see I am not alone it felt like everyone was taking crazy pills when angular came along heralded as the greatest thing in web development and anyone pointing at the foundamental issues was suddenly a pharia around here
Re:Is software development really a dead-end job after age 3... by Fishkins on Friday November 17, 2017 @05:52PM (#15726652)
Is this easier for someone who was a "domain expert" in an obsolete domain than for a programming generalist? i.e. could a programming generalist also "own" a domain in a couple years?
Re:Is software development really a dead-end job after age 3... by dkarl on Saturday November 18, 2017 @12:30AM (#15727890)
I was surprised several times, and have since stopped being surprised, that someone who was immersed in a technology for years, loved it intimately, and knew every wart on its asshole, so to speak, and loved it anyway, the person you know as the guy who's really into PHP or the guy who's really into Oracle or the guy who's really into jQuery will not flail when the company abandons that technology. I would always worry, and think to myself, "Man, using PHP at least we have Tom. I'm not sure upgrading to a better technology is worth losing that kind of expertise. And what will poor Tom do now? PHP is his whole life." And of course six months later Tom knows every wart on the asshole of Node and React/Redux. Tom was an expert because he had an ability to take an obsessive interest in something and create his own expertise. Non-technology domains are similar, with one caveat. Somebody who is a master of a customer domain got that way by being able to take an interest and being able to empathize with customers, get them talking, and keep them talking. They can apply that to a new domain and get up to speed with terrifying speed. The caveat is that some people have domain knowledge from working in a field for years before getting into software development, and they can't replicate that experience in a new domain.
Re:Is software development really a dead-end job after age 3... by m_fayer on Saturday November 18, 2017 @05:36AM (#15728504)
Can't upvote this enough. In my experience, if you have the capacity for the occasional obsessive voracious burst of knowledge acquisition, there's no limit to the amount of technology cycles you'll be able to surf, and you'll always be able to sell your expertise and get good work. I feel bad for the calmer more balanced people who don't have that manic streak, who leave work at work, they'll always be at a disadvantage.
Re:Is software development really a dead-end job after age 3... by jrumbut on Saturday November 18, 2017 @03:26AM (#15728243)
I'd like to think I'm becoming Tom here, right down to the techs you mentioned. I also went through git, apache httpd, bash, and Ruby phases.

My philosophy is that if PHP keeps the lights on, I better really know what it is, where it's going, what are it's limitations, because it would be pretty scary not to.

Plus once you learn a language or a database well, the next one is easier. The trick is knowing when it's time for the next one.

Re:Is software development really a dead-end job after age 3... by dominotw on Friday November 17, 2017 @02:28PM (#15725196)
easy to switch , not easy to own.
Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @02:31PM (#15725247)
If by "not easy" you mean "a couple of years", sure.

Don't mistake what I'm saying. I'm using the word "own" rhetorically. Obviously there will be no point in your career where you are likely to be the world's leading expert on computer vision. What you're aiming for is to be the leading expert that is available to employers within a reasonable amount of time at the level of compensation you're hoping for.

It's a spectrum.

Obviously, if you invest heavily in a discipline and it is decisively obsoleted, that's a setback. I'm just saying it's not an insurmountable setback, and I'll add here that it's still unlikely to leave you behind the pure generalists; in the process of building expertise and accomplishment in cryptography or OS kernels or whatever, you're likely to become a pretty far above-average software developer as well.

Re:Is software development really a dead-end job after age 3... by jordanb on Friday November 17, 2017 @02:47PM (#15725392)
An LOB programmer could work on computer vision side projects for a couple years and probably put together a neat portfolio of work.

But the few people who are really hiring people who "own" CV want PHDs with a relevant thesis and you're not going to get one of those working weeknights after the kids go to bed.

Meanwhile people pursuing PHDs have no idea if their area of research is going to be hot in industry when they're done.

Granted, a lucky few people who follow the autodidactical route may find themselves authors of a really popular OSS project. Or they may be able to luck or maneuver themselves into a position at their current employer working in a capacity that future employers will see as "relevant industry experience." Obviously this is hardly a sure thing and if they plan it wrong or just get unlucky they're not going to have a nice outcome.

Re:Is software development really a dead-end job after age 3... by rpeden on Friday November 17, 2017 @03:30PM (#15725727)
In the specific case of CV, a programmer looking to move into that area is probably doing themselves a disservice if they just apply for jobs that are actually looking to hire computer vision specialists.

There are so, so many businesses out there that could benefit from CV, but they don't realize it. Maybe they're spending a ton of money on off the shelf OCR software that isn't great for their needs. Maybe they're spending a few hundred thousand dollars a year manually organizing and classifying documents when they could automate it.

These companies won't be hiring someone to own CV for them, because they don't know they need it. They might not even know what computer vision is. And they won't care about whether you have a PhD or a relevant thesis. They'll care about whether can can demonstrate that you can solve their problems and save them a pile on money.

Granted, finding companies with these types of problems is perhaps not something that a typical LOB programmer knows how to approach. And if they see themselves as just a LOB programmer, it might stay like this.

If they make an effort to get to know people and network outside of the usual tech circles, they might just find it possible to position themselves as solvers of specific types of problems - problems to which CV happens to be the best solution.

I know that's not a path that'll work for everyone. But it's one path that leads from 'LOB Programmer' to 'Someone who makes lots of money doing development with computer vision'.

Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @02:49PM (#15725415)
If you want to convince me that computer vision is a bad domain to specialize in for journeyman programmers because it takes post-grad education to get a job, that'll be a quick and easy argument.

As a counterexample, though, most serious work in cryptography (for instance) is done by grad students, but the best jobs in crypto are not automatically going to grad students.

Either way: if your goal is to maximize lifetime earnings, I think dedicating your career to "programming" is a bad call.

Re:Is software development really a dead-end job after age 3... by jordanb on Friday November 17, 2017 @03:28PM (#15725715)
I'll have to defer to your knowledge of the market for self-taught cryptologists. My understanding is that most journeyman programmers working in security are in Burb Suite Operator positions.

My point isn't that becoming a subject matter expert isn't a good way to supercharge your earnings for a few years. I agree with you there.

Clearly, a guy with lots of experience with and deep knowledge of the Oracle database could do pretty well for himself 10 years ago. A person with lots of experience with and deep knowledge of OpenStack could do the same five years ago.

My point is that it's not a good, safe or stable way to ride out the last half of a 30+ year long career.

My further point is that demand for lots of these specialists doesn't appear to be particularly elastic, and therefore "become a subject matter expert" is not a universally applicable bit of career advice for every LOB engineer worried about ageism: if everyone successfully took your advice there would be a whole bunch of unemployed crypto experts.

Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @03:34PM (#15725746)
I see the miscommunication here.

It's not my claim that simply by moving to a specialized subfield of programming that you'll instantly quadruple your salary and future-proof your career.

Obviously, you're going to start in some domain speciality as a commoditized practitioner and, with effort, move yourself to more elite ranks of that subfield.

My point is that it is better to work on that problem --- of being an elite in a specific domain --- than it is to be an elite at the general problem of building reliable software.

(It's "Burp", by the way.)

Re:Is software development really a dead-end job after age 3... by pdpi on Friday November 17, 2017 @05:19PM (#15726470)
> Clearly, a guy with lots of experience with and deep knowledge of the Oracle database could do pretty well for himself 10 years ago

A guy with lots of experience and deep knowledge of databases in general, though, would do pretty well for himself both 10 years ago, and today. Even better if he worked on some database himself. Really, that's what owning a domain means: you don't want 10 years of experience as a _user_ of some technology, you want that experience as a _builder_ of said technology.

Re:Is software development really a dead-end job after age 3... by ScottBurson on Friday November 17, 2017 @05:25PM (#15726499)
There's a difference between being an Oracle expert and being a database expert. If all you know is Oracle, yes you have a problem. If you understand database theory and implementation and can apply it to RDBMSs and NoSQL databases of various kinds, you are set for life.
Re:Is software development really a dead-end job after age 3... by galfarragem on Friday November 17, 2017 @04:26PM (#15726097)
Management is always the safest path.
Re:Is software development really a dead-end job after age 3... by JamesBarney on Friday November 17, 2017 @07:40PM (#15727113)
One of the reasons people are switching from Oracle is that the DBA's are so damn expensive.
Re:Is software development really a dead-end job after age 3... by edanm on Friday November 17, 2017 @04:57PM (#15726328)
"If you want to convince me that computer vision is a bad domain to specialize in for journeyman programmers because it takes post-grad education to get a job, that'll be a quick and easy argument."

Are you sure about that? I mean sure, if we're talking someone who wants a deep learning research project to improve the metric for recognizing human faces from 99.7% to 99.78%, then we're talking about PHDs.

But there are plenty of "simpler" problems that one can work on, and plenty of more engineering-oriented problems that one can work on. Lots of companies just need to apply semi-standard techniques to problems that are specific to their business, and nothing more complicated or research-y.

Re:Is software development really a dead-end job after age 3... by gregorymichael on Friday November 17, 2017 @02:32PM (#15725249)
Once you've learned how to master a domain, mastering the next one is easier.
Re:Is software development really a dead-end job after age 3... by baddox on Friday November 17, 2017 @07:27PM (#15727088)
I was thinking that the domains would be broader things that are not likely to fall out of fashion or change faster than an individual can keep up. Things like “security” or “networking.”
Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @07:43PM (#15727126)
Yes. More generally, it should be "the sort of thing you can imagine investing a career in". Does anyone really plan to invest a career in building expertise in Golang (for instance), outside of the small group of people who actually work on the language itself?

(Being a PL design & implementation expert --- not "having very good taste in PLs"! --- seems like a defensible position in the market, except perhaps that there are a lot of people who want to work on compilers and you're competing with a healthy pipeline of them.)

Re:Is software development really a dead-end job after age 3... by newen on Saturday November 18, 2017 @03:00AM (#15728193)
Computer vision has very little actual employment? That's just not true at all. I want what you're smoking lol.
Re:Is software development really a dead-end job after age 3... by PeachPlum on Saturday November 18, 2017 @08:28AM (#15728867)
If you think Web Programming is where the interest is at, you haven't been searching "data analyst" on the job boards
Re:Is software development really a dead-end job after age 3... by auxym on Saturday November 18, 2017 @09:21AM (#15729028)
Maybe in SV and other tech centers.

In "flyover country" and the midsize college town I quite enjoy living in, indeed currently returns only a handful of BI-related postings for search terms like data analyst. Web developer returns tens of postings.

Re:Is software development really a dead-end job after age 3... by PeachPlum on Tuesday November 21, 2017 @08:52AM (#15747817)
I'm speaking from a UK perspective. I should have mentioned that.
Re:Is software development really a dead-end job after age 3... by maxwin on Friday November 17, 2017 @09:54PM (#15727547)
Agree. I think it is financially irresponsible for yourself and your family if you don't have a plan to transition yourself out of programmer job. It is okay if you are financially secure or independent, you can do whatever you want. But seriously, have a plan.
Re:Is software development really a dead-end job after age 3... by rplst8 on Saturday November 18, 2017 @12:32AM (#15727893)
I'm not against having plans, but to have no other option than to transition yourself out of programming? That's an absurd way to look at aging in a technology field.
Re:Is software development really a dead-end job after age 3... by edanm on Friday November 17, 2017 @05:04PM (#15726371)
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 better. Specializing in new domains allows you to do things you couldn't otherwise. This is the realization that made me decide to stop learning new programming languages, and instead spend my time learning new domains - I realized that learning Haskell, while incredibly fun and rewarding to my abilities as a programmer, will not let me make fundamentally different things than with Python. Learning e.g. Deep Learning, however, would.

Btw - even learning totally other skills - e.g. learning 3d modeling helps me a lot in gaining deeper knowledge of 3d than I would otherwise have - even if it's not 3d programming per se, it's still relevant. And learning new Maths is not as directly applicable or as valuable as learning new software domains, but can open up new avenues you wouldn't otherwise have, that learning "yet more programming languages" or similar won't. (It's still more valuable to work directly on relevant things, of course, but sometimes it's fun to broaden your scope in relevant ways.)

Re:Is software development really a dead-end job after age 3... by nihils on Friday November 17, 2017 @06:08PM (#15726747)
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 centred around backend web development, data science, and machine learning.
Re:Is software development really a dead-end job after age 3... by elihu on Friday November 17, 2017 @08:13PM (#15727242)
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 3... by barrkel on Saturday November 18, 2017 @01:02AM (#15727945)
Most programming problems have multiple viable implementation approaches, and implementation language is not usually the gating factor on success.

It takes some esoteric innovative features to make a difference, but that will also cut both ways; it'll make it harder to hire for and scale, too.

Re:Is software development really a dead-end job after age 3... by jsolson on Friday November 17, 2017 @05:50PM (#15726639)
I cannot agree with this enough.

I'm a pretty capable "generalist software engineer", but what keeps me employed is expertise in virtualization and high-performance virtual networking. Prior to that, it was expertise in distributed systems and a knack for debugging distributed failures. The history here is relevant: later in the thread Thomas points out that you can switch domains. My time spent in distributed systems with multi-millisecond quorum periods is more or less directly applicable to debugging synchronization issues at CPU clock speeds. The tools used to observe the issue are different, but the reasoning process for untangling the set of plausible partial orderings is the same.

Specialize in something valuable. Continuously evaluate the next most valuable skill to acquire based on where you are and where you want to be.

Re:Is software development really a dead-end job after age 3... by vvanders on Friday November 17, 2017 @06:33PM (#15726866)
Yup, totally.

There's a pretty common trend in GameDev -> Embedded Systems | High-Speed Trading.

The skillsets are very similar while the domains are quite different.

Re:Is software development really a dead-end job after age 3... by jalfresi on Saturday November 18, 2017 @10:11AM (#15729217)
It would be interesting to see some kind map (like the civ tech tree) of which domains share skills
Re:Is software development really a dead-end job after age 3... by mpfundstein on Sunday November 19, 2017 @06:34AM (#15733451)
+1 . Where would we start collecting data for this?
Re:Is software development really a dead-end job after age 3... by amyjess on Friday November 17, 2017 @06:05PM (#15726731)
TBH, I really don't care about career advancement. I don't need "half-mil-a-year offers" to fund my lifestyle, so as long as I can continue to draw a steady paycheck, I'm good.

Not everyone's a climber, and being in "a dead-end job" isn't really a bad thing if you're not ambitious.

I'd just like to spread the message that it is absolutely OK to plateau. You don't need to be a renowned domain expert, you don't need to go into management, you don't need to start your own company... if you're happy where you are, don't sweat it.

Re:Is software development really a dead-end job after age 3... by kelnos on Friday November 17, 2017 @08:13PM (#15727240)
The problem becomes when you're a 50 year old individual contributor who gets laid of when the company isn't doing well, and then you can't get a job because of a mix of ageism and the fact that you don't have any in-demand specific skills beyond "can program".

Not saying this will definitely happen, but it's a risk, and you don't need to be a ladder-climber to protect against it.

I think most people would probably do better if they just stopped allowing their expenses to grow with their income, and saved and invested more, both in equities and in forms of passive income (like rental real estate). That way, not only are you insulated from shifts in the industry around your primary employment, but you can also probably retire early.

Re:Is software development really a dead-end job after age 3... by gordaco on Saturday November 18, 2017 @02:55AM (#15728181)
I agree very much with this, and I will add that this can lead to a reasonably stress-free life, which is even better than it sounds.

To me, the real perk of working in tech is not that there are so many jobs that I can find one that pays incredibly well; it's that I can find one that pays nicely but aside from that has some other perks.

A lot of friends and workmates have told me that I could be working in a better paying place. After looking into quite a few job offers, my conclusion is that for now I'll stay in my 8-to-4 job that pays me twice as much as the average in my area (average in the sense of all the population, not just tech jobs, obviously). I used to have a high-paying, high-stress job; I don't want to go back to that, it's not worth the money.

I must add that I'm EU-based. I understand that in the US, with much less of a safety net, maybe optimizing for money is a more attractive idea. I can't really say for sure.

Re:Is software development really a dead-end job after age 3... by herbst on Saturday November 18, 2017 @08:58AM (#15728935)
Honestly that just sounds sad to me. I don't see how finding a plateau in life is ever a good thing.
Re:Is software development really a dead-end job after age 3... by amyjess on Sunday November 19, 2017 @04:47PM (#15736126)
I just care about things other than my career, and I'd rather spend most of my mental energy on things I do for pure enjoyment and not on things I have to do out of economic necessity.

For example: I've spent a large chunk of my free time over the last few months learning how to typeset signs in fansubs and make them look good, something that has no economic utility whatsoever, but makes me really happy when I typeset something that looks good. Yeah, sure, I could have spent that time furthering my career by developing a marketable tech skill, writing tools for my company on my own time to impress management, or writing an open-source piece of software to pad my GitHub portfolio, but I'd rather do something fun for myself than do any of those.

Re:Is software development really a dead-end job after age 3... by kthejoker2 on Saturday November 18, 2017 @10:24AM (#15729285)
Substitute the word balance for plateau and you'll begin to understand. Desire is suffering.
Re:Is software development really a dead-end job after age 3... by vorotato on Tuesday November 21, 2017 @04:32PM (#15751780)
also lets be real, programming isn't worth infinity money.
Re:Is software development really a dead-end job after age 3... by TheCoelacanth on Sunday November 19, 2017 @07:24PM (#15736812)
It's a plateau in earnings, not a plateau in life.
Re:Is software development really a dead-end job after age 3... by tlogan on Friday November 17, 2017 @08:16PM (#15727249)
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 3... by spraak on Friday November 17, 2017 @11:34PM (#15727767)
You're right that most startups don't need domain experts, but most startups won't be paying 250+k salaries, either. So a domain expert would look elsewhere anyways. Even if they still work for a startup, it'd be one that needs their expertise.
Re:Is software development really a dead-end job after age 3... by herbst on Saturday November 18, 2017 @08:53AM (#15728926)
I heavily assume that even in IT startups are still a very small proportion of the actual job market.
Re:Is software development really a dead-end job after age 3... by mwfunk on Friday November 17, 2017 @06:27PM (#15726842)
This is excellent advice. I would add that another key ingredient is never resting on your laurels, and continually learning and improving. Successful people (and companies) often get to a comfortable place where they can get away with doing the same thing over and over, but the money keeps rolling in. It can be very tempting to step off the gas and just enjoy the fruits of your labors for a while.

Some people get to this point and never step back on the gas, because it seems like things are going to be great forever. Once people get too comfortable, it's only a matter of time until it bites them.

IMO it's important to continually reinvent yourself throughout your career, to keep things interesting, but also to always put you in the best position to take whatever the next step is. If you wait until it's time to take that next step before figuring out where you want to go, it's too late.

Re:Is software development really a dead-end job after age 3... by JimboOmega on Friday November 17, 2017 @06:45PM (#15726920)
So... I agree that growing constantly is important.

But I don't agree that having constant side projects and learning the new cool language/framework du jour is necessarily valuable.

I think that there's just too many technologies out there, moving too fast, to be proficient in a significant fraction of them, even if you invest all your time in learning them.

I think there's more value in learning how to do engineering well in one language than learning how to do basic stuff in 20 of them. Because the skills and knowledge of going deeper transfer much better than knowing syntax, etc - stuff you can always pick up for the next job once you know what it is.

Re:Is software development really a dead-end job after age 3... by danellis on Friday November 17, 2017 @05:38PM (#15726572)
> The fundamental rule of career progression in the technology industry is to position yourself as a domain expert in something more specific than "programming".

Is it a rule, though? I hope not. I'm a 40-year-old generalist, and so far I haven't had problems finding work. Sure, I'm not going to get a half-mil offer from anyone, but that was never the case at any age.

Re:Is software development really a dead-end job after age 3... by bkeroack on Friday November 17, 2017 @02:53PM (#15725444)
Agreed. There is a strong drive in industry to commoditize "coding". For example, the wide proliferation of bootcamps. The world being what it is, if the perceived skill is equal companies would prefer to hire the cheaper 20 year old bootcamp grad vs the more expensive 45 yr old. So it's important to grow your skills and knowledge in areas that are not vulnerable to bootcamp commodification.
Re:Is software development really a dead-end job after age 3... by riazrizvi on Friday November 17, 2017 @04:01PM (#15725914)
It’s not just coders who are commoditized. I find every specialist gets commoditized in the mind of people who are not specialists in that specific field. “He’s a programmer, he’s a quant, he’s a surgeon, he’s an astronaut...”. It’s because we have biases where we believe our own path is a bit harder than everyone else’s. I think it’s natural because everyone has a clearer sense of their own struggles, but only a superficial sense of the struggles endured to acquire expertise they don’t have. Furthermore we have a bias that insufficiently accounts for expertise atrophy so we tend to think of our expertise as the accumulation of all our experience but if we applied the right discount function we’d see that expertise has to be deliberately practiced to be acculumulated to the level in our egos. Few experts do that. The net effect is that the world doesn’t value our own expertise as much as we are inclined to ourselves.
Re:Is software development really a dead-end job after age 3... by geomark on Saturday November 18, 2017 @07:17AM (#15728704)
In addition to all the bootcamps, just look at the mania in primary school education about getting every kid to learn to code. If that isn't just a fad and it keeps going on through secondary and beyond then in the next decade or two the commoditization of coding will be complete.
Re:Is software development really a dead-end job after age 3... by havetocharge on Friday November 17, 2017 @06:30PM (#15726852)
Thanks fo sharing. Just wanted to comment that while generalists do not get outlandish compensation offers, they are more likely to qualify for a wider set of jobs. In a way, it is a different strategy in the employment game: you go for a less risky bet than specializing in something, and by that increase the chances of being employed.
Re:Is software development really a dead-end job after age 3... by spraak on Saturday November 18, 2017 @04:11AM (#15728351)
Not really... because then you're just competition against a larger pool of people. I.e. a generalist is common, while a domain expert is not, so more generalists means more competition.
Re:Is software development really a dead-end job after age 3... by havetocharge on Saturday November 18, 2017 @11:10AM (#15729522)
Right. That's why the compensation is lower. There are a lot more jobs available for generalist skills though, so it's much easier to find jobs to apply for (which was my original point).
Re:Is software development really a dead-end job after age 3... by kthielen on Saturday November 18, 2017 @08:43AM (#15728901)
That's why compensation is lower and companies can hire more generalists to soak up supply ...
Re:Is software development really a dead-end job after age 3... by zem on Friday November 17, 2017 @10:41PM (#15727644)
this worries me sometimes; i have finally (in my early 40s) moved from "specialising in the craft of programming" to getting a job in a domain that excites me (language tooling), but i am now a relative amateur in a field that is full of phds and the like, and i am not sure how large the field itself is going to be in say another 10 years.

i've been wondering if i should pick up something entirely different on the side (e.g. machine learning for broad applicability, though that does not excite me at all), or to instead diversify from my current niche but learn to write tools across a broader variety of languages and ecosystems. it's scary sometimes how the entire programming ecosystem can change overnight and leave once-valuable skills in the dust.

Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @10:47PM (#15727656)
If you asked a random sampling of 1000+ karma HN users what my specialty was, a bunch of them would say "crypto", but I have 1 semester of college and didn't know CBC mode from CFB mode 8 years ago.

Some fields might be locked up by postgrads (crypto engineering is not one of them, and I doubt language tooling is either). You should check before you invest too much in it. But I would advise against being spooked by academic credentials. Good places to work care more about conversance than credentials, and you get to draft off of all the research work the academics publish before moving into industry to compete with you.

Re:Is software development really a dead-end job after age 3... by zem on Saturday November 18, 2017 @04:48PM (#15730890)
thanks, it is useful to step back and think about all the other people in the field who don't have phds, or who (like me) don't even have PL backgrounds, but are still happily working on interesting problems. it's just been "different" moving from working on code architecture to working in a field with way more academic than industry representation; i can't help but notice that i can write the code but i'm far from being able to write the papers.
Re:Is software development really a dead-end job after age 3... by tmat on Saturday November 18, 2017 @09:21AM (#15729029)
Let me tell you, don't worry about it.. You'll use your skills to smoothly transition to something else..

I've been in this industry since copper and telco was hot shit.. I went from doing Telco programming > IT > Web Development > scalable enterprise applications.

Why bother stressing over something you have no control over? Do what you love and the money follows.

Re:Is software development really a dead-end job after age 3... by zem on Saturday November 18, 2017 @04:41PM (#15730866)
so far not worrying about it has worked well for me; i've been in tech a bit over 15 years and enjoyed all of it. but at a certain point all the stories about people aging out of the industry start to add up, and you have to wonder if the time has come to be at least a little more ant and less grasshopper :) at 42 "do what you love and money follows" is still working for me; another decade down the line i'm guessing i'll have to put a bit more active work into staying relevant.

i do have some hope that i've gotten into my current niche (static type inference for dynamic languages) reasonably early in its life cycle, but if i'm wrong i don't want to have not kept up with the larger world at least to some extent.

(to be precise, i'm not so much worried about being able to transition my skills to something else, as about not being given a chance to do so unless i can already demonstrate the new skillset people are looking for.)

Re:Is software development really a dead-end job after age 3... by mandeepj on Friday November 17, 2017 @08:08PM (#15727228)
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.
Re:Is software development really a dead-end job after age 3... by techdragon on Friday November 17, 2017 @08:13PM (#15727241)
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 3... by agumonkey on Friday November 17, 2017 @08:01PM (#15727199)
Similar to the notion that you're only worth what your client think; programming was a mean to an end (even though now we need to make programs structured and enjoyable).
Re:Is software development really a dead-end job after age 3... by hkmurakami on Friday November 17, 2017 @05:55PM (#15726674)
True not just for software, but tbh any field.
Re:Is software development really a dead-end job after age 3... by dandr01d on Friday November 17, 2017 @02:25PM (#15725185)
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.
Re:Is software development really a dead-end job after age 3... by matwood on Friday November 17, 2017 @02:50PM (#15725424)
You did miss the point of the parent. To be more clear, programming for the most part is easy. Knowing what to program is hard. I don't know what your iOS app does, but lets pretend it's something to do with healthcare. Someone who is an expert in the healthcare domain and can program (or learn whatever stack you are using) is going to be much more valuable than an expert iOS person who has no clue about healthcare. That same person will also remain valuable as technology changes (which it will) since the company will likely still be in healthcare.
Re:Is software development really a dead-end job after age 3... by dwaltrip on Friday November 17, 2017 @09:34PM (#15727478)
> To be more clear, programming for the most part is easy.

I vehemently disagree with this. Kludging together an unmaintainable codebase that barely meets the spec might be easy. Aiming for a notably higher level quality beyond that is NOT an easy thing at all.

Obviously, the nature of this discussion depends on the complexity of the task at hand. There are many profitable ventures with low levels of complexity in the software implementation, and your comment may hold true for such scenarios.

However, there also many ventures that require significantly complex software to meet their goals, and will require skilled developers to have any hope of not collapsing under the weight of shoddy implementations and impenetrable abstractions.

Re:Is software development really a dead-end job after age 3... by matwood on Sunday November 19, 2017 @10:18AM (#15734218)
I'm sure there are exceptions, but IME the biggest cause of 'kludging together an unmaintainable codebase' is lack of understanding of the problem domain. Software solutions do not exist in some technical vacuum outside of the problem they were built to solve. Better understanding of the problem domain naturally leads to better software.
Re:Is software development really a dead-end job after age 3... by Const-me on Sunday November 19, 2017 @07:15PM (#15736773)
My experience is opposite.

On one of my previous jobs one problem domain was some area of theoretical physics. There was a guy with brilliant understanding of the problem domain. He had couple of decades of experience teaching physics in the country’s best university. He could explain very hard problems in easy to understand way. The company filed multiple patents with the amazing stuff he invented.

It didn’t help the guy to write code. It wasn’t good. Not only unmaintainable, also slow and unstable (not all algorithms work equally well when mathematically-real numbers are substituted by software-real IEEE754 floats). We ended up just throwing out whatever he coded, and instead learned enough problem domain from him to be able to understand and implement what he actually was trying to do.

Re:Is software development really a dead-end job after age 3... by j45 on Friday November 17, 2017 @03:20PM (#15725660)
Not just knowing what to program, but how - clever and mindful architecture will always beat clever programming.

Developing transferrable strategic and architectural skills between verticals (client facing, or technologies) is a key aspect that I see being missed with programmers.

No framework will make or keep your career, nor will a specific language or piece of tech. Knowing how to apply technology well, in a way that doesn't need to be entirely thrown away every 2-3 years is invaluable, and as a result increases a developers value.

Re:Is software development really a dead-end job after age 3... by blub on Friday November 17, 2017 @03:40PM (#15725783)
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.

Re:Is software development really a dead-end job after age 3... by crucialfelix on Sunday November 19, 2017 @12:30PM (#15734820)
It only took me a few weeks to get caught up and be a proficient iOS developer, but it takes several months to know all the pods, architecture design patterns, tooling and gotchas to be able to lead a team and avoid months of mistakes and rewrites. The official APIs are a small part of it.
Re:Is software development really a dead-end job after age 3... by kelnos on Friday November 17, 2017 @08:26PM (#15727285)
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 3... by draw_down on Friday November 17, 2017 @02:32PM (#15725248)
That would still be programming specialization, as opposed to domain specialization where programming can be applied.

I used to know this guy who knew the ins and outs of the health club industry, and he could program a little. He made a lot of money. I think this is more in line with what tptacek is describing.

Re:Is software development really a dead-end job after age 3... by rubicon33 on Friday November 17, 2017 @03:05PM (#15725542)
I think it's still a domain specialization to a degree. The domain being, mobile.

Being an expert in iOS is more than just knowing how to program in Swift/Objective-C. It encompasses a deeper understanding of mobile development and the apple ecosystem.

True senior level iOS people will understand core user interface design principles as they relate to mobile, and will be intimately aware of Apple's Human Interface Guidelines. They'll understand mobile accessibility and be deeply familiar with the myriad of tools in iOS. They'll understand internationalization and how to design an application to support various calendar systems, and text layout paradigms. They know the ins-and-outs of Apple's provisioning and certificate system and can quickly sniff out configuration issues. They understand how important testing is and how well supported it is. They know how to setup automated builds using xcodebuild, and how to support automatic unit and ui tests.

The list goes on and on. Certainly one could just be an app developer and stop there. But being a mobile domain expert in my opinion is a much more valuable albeit niche position.

Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @03:07PM (#15725566)
None of this stuff really sounds "defensible", in the marketing sense, to me. This is just programming. It's the goal of the platform to make programming as accessible as possible to everyone.

It's better to be good at mobile than to be good at nothing at all, sure. But I'd be really careful about picking a specialty that amounts to "my domain of expertise is AppKit", or "my domain of expertise is Scala", or anything like that.

Re:Is software development really a dead-end job after age 3... by rubicon33 on Friday November 17, 2017 @03:12PM (#15725597)
The OP mentions a couple domains that you could also dismiss as "just programming", but actually have a depth to them which allows for specialization: Security, and kernal development.

You could claim that software security is "just programming" for instance... But you likely wouldn't, because it requires a level of understanding that is especially deep, and niche. It doesn't really matter that a security expert likely reads a ton of code, and writes some too, it's that they understand a subset of the industry to a high enough degree that they stand out among their peers.

I propose that you can be a mobile expert, just as you could be a VR expert for example. At the end of the day it's more then just programming, it's a combination of hardware / software / tools that retains a degree of uniqueness.

Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @03:18PM (#15725642)
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 checking and how to use type systems to prove programs mostly correct as they're being written.

That is a real specialty. It takes real skill and investment of time to get to the point of being expert with that stuff. I'm not diminishing the value of being an expert software developer.

I'm just saying that basket of specialties is unlikely to command a very high wage premium, not because it's unspecialized, but because it's hard to fashion a value proposition for it relative to your competition in the market.

There will be times during which particular platforms or languages will get hot, and it'll be good to be expert with them. But (a) those phenomenon will be more transient than other problem domains, and (b) the wage premium for being specialized in them will still probably be lower than the wage premiums for the other domains.

At any rate: as long as you're thinking about the domains you're specializing in and not a career as a "programmer" or a "builder of software", we can probably agree to disagree about the rest of the details.

Re:Is software development really a dead-end job after age 3... by rubicon33 on Friday November 17, 2017 @05:10PM (#15726413)
> "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 machine learning.

The only issue I see with advising people to invest tons of time and money into niche fields, is exactly what others have pointed out in this thread - You can't really predict what's going to be valuable in 10 years.

So take your pick - Go the safe route and become an expert in a more general field like, for example, mobile. Or pick something incredibly niche, which will shrink your competitor pool and increase your relative value proposition. A classic risk/reward scenario if I've ever seen one.

Re:Is software development really a dead-end job after age 3... by kelnos on Friday November 17, 2017 @08:23PM (#15727279)
> 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 3... by pw on Friday November 17, 2017 @03:53PM (#15725857)
What about specializing in a platform or language makes it hard to fashion a value proposition for it relative to one’s competitors in the market? (Not disagreeing; just trying to wrap my head around this. Also, I think your comments in this thread have been super useful.)
Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @04:02PM (#15725919)
Every senior developer in the market who codes at all in your platform is going to represent themselves as a subject matter expert in that platform.

To make matters worse, developers will disagree with each other about what the Right Answers are for a given platform or language or engineering approach.

Cryptographers (as a counterexample) also disagree with each other about the Right Answers in crypto. But serious crypto people are generally competing for jobs only against other serious crypto people, and there aren't that many of them.

Moreover, the general domain of cryptography isn't going anywhere. But look at Objective C, or Windows Mobile.

Finally, proving value as a subject matter expert on a language or platform depends on companies having hiring processes that reliably spot expertise. But, of course, hiring processes do a terrible job at that.

Re:Is software development really a dead-end job after age 3... by pw on Friday November 17, 2017 @04:19PM (#15726051)
Thanks so much for the response. Can you say any more about what kind of domains tend to be lucrative? It seems like all your examples (distributed systems, sensor fusion, software security, OS kernels) seem very “technical”, for lack of a better word, compared to, say, knowing a lot about the health club industry (a different example mentioned in this thread). Do you think that’s an important distinction?
Re:Is software development really a dead-end job after age 3... by tptacek on Friday November 17, 2017 @04:34PM (#15726154)
I think knowing a lot about a particular vertical is hugely distinctive and valuable, often more so than technical specialties.
Re:Is software development really a dead-end job after age 3... by pw on Friday November 17, 2017 @04:37PM (#15726184)
Thanks :-)
Re:Is software development really a dead-end job after age 3... by ssijak on Friday November 17, 2017 @02:33PM (#15725264)
You misses the point