9 ms·
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 transiti
by jordanb 9y ago
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.
- tptacek 9y agoYou can switch domains.
- dominotw 9y agoeasy to switch , not easy to own.
- tptacek 9y agoIf 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.
- jordanb 9y agoAn 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.
- tptacek 9y agoIf 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.
- jordanb 9y agoI'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.
- gregorymichael 9y agoOnce you've learned how to master a domain, mastering the next one is easier.
- Fishkins 9y agoIs 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?
- dkarl 9y agoI 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.
- jrumbut 9y agoI'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.
- m_fayer 9y agoCan'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.
- seanmcdirmid 9y agoBy 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.
- tptacek 9y agoI don't think getting a PhD is an especially good maximize-earnings plan.
- sjg007 9y agoI think wall street is still the best option to make a lot of money.
- seanmcdirmid 9y agoI wouldn’t disagree with that :).
- kelnos 9y agoSure, 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.
- agumonkey 9y agoIn 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
- Silhouette 9y agoThis 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.
- agumonkey 9y agoIt'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.
- Silhouette 9y agoI 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.
- LoSboccacc 9y agoIt’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
- barrkel 9y agoStraight 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.
- mindentropy 9y agoThis 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.
- figgis 9y agoI don't know man. There's enough use-cases to make both boats float. Just gotta find it.
- fspeech 9y ago'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.
- mgkimsal 9y ago> 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.
- DataWorker 9y agoThat’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.
- baddox 9y agoI 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.”
- tptacek 9y agoYes. 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.)
- systematical 9y agoAgreed. 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.
- maxwin 9y agoAgree. 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.
- rplst8 9y agoI'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.
- BurningFrog 9y ago> 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.
- toyg 9y agoIt's the same supply-demand issue as any other field. There is no money in writing poetry, but plenty of cash writing ad copy.
- Iv 9y agoI 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.
- rperez333 9y agoHi 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. rperez333@inboxbear.com
- newen 9y agoComputer vision has very little actual employment? That's just not true at all. I want what you're smoking lol.
- PeachPlum 9y agoIf you think Web Programming is where the interest is at, you haven't been searching "data analyst" on the job boards
- auxym 9y agoMaybe 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.
- PeachPlum 9y agoI'm speaking from a UK perspective. I should have mentioned that.
- auxym 9y ago>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.
- tmat 9y agoThere 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.
- caseysoftware 9y agoQuite 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.
- 9y ago
- joshvm 9y agoAs 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.