HACKER Q&A
📣 amazonavocado

Isn't keeping up with tech for your career same as “timing the market”?


I've been thinking about the phrase "time in the market beats timing the market." Not just with investing, but also in career management. After all, that also involves trying to get a greater return on investing your time into some job or skill.

But the more I look at the job market in software, the more I see advice for managing a software engineer's career like trying to "beat" the market. I don't know if I still like this approach. I'd rather not want to keep trying to predict when the high point of some skill or technology is approaching. I prefer to do what I personally like and only change/learn something new because I get bored, and not because the job market doesn't favor it.

Tech trends feel like moving targets, and I have a dilemma. I like working in tech but I also don't like being forced to hit moving targets.

To give you an example, I started my web development career in the late 2000's. I didn't "buy" into cloud computing when it went on the rise, and I didn't "sell" my PHP skills. That's making it tougher to get interviewed at jobs probably because my experience doesn't have enough of the right keywords. Trying to just keep up with new concepts just for the sake of the job market is stress-inducing and it's like constantly monitoring stocks to buy and sell. It's an emotional roller coaster.

Is it just possible to hold on to your initial "investment" of skills long-term, and regardless of what you started with continue to build returns from that? I know that the advice to just spend more time in the market is advice for the regular joe, but I actually do just want to be a regular joe programmer.


  👤 muzani Accepted Answer ✓
You have to "invest" in a low risk one that pays the bills. Then go for things that are medium risk, high returns.

Many people go in at the peak of hype where it's "overpriced" and lose out. Even if it's a good stack, you won't be as good as the people who have years of experience in it now. It's too late.

Just go for things that actually excite you. For me, it's GPT-3 today. It's too early for job openings, but mature and impactful enough that it feels like a secret weapon. I adopted Kotlin before Google officially did, because it was cutting down lines of code by half.

No matter how boring you are, there should be things that actually excite you as an expert, and those are the only ones worth investing in early. Since you already browse HN, you shouldn't worry about missing out on them.


👤 MattGaiser
No, as the need to learn new things is going to be inevitable. Even if you have been a Java dev forever (and that language will last your career), I know a couple Java programmers who took months and months to find work in this market as they didn't keep up with the latest in Java.

Keeping up with the latest tech is more properly compared to diversification. You are not abandoning your old skills, but you are adding some new ones that have a good chance of being valuable in the future. You may end up learning something worthless, but as long as what you learn is mainstream, there are probably jobs for it.


👤 shireboy
I don’t think that’s an apt analogy. You have very little to loose by taking a few hours to spin up some new tool and see what it’s about. Even if you don’t use it, you know what it’s about and could if you wanted/needed. You don’t loose your investment in PHP by doing so. In fact sometimes new tech could inform your existing knowledge.

I do think there is wisdom in not immediately using every new thing in production, but that’s different from wanting to stick to one language and never try anything new.


👤 tacostakohashi
I don't think the analogy really works, for a few reasons.

The first is that you've already (accidentally) timed the market by "buying" PHP in the late 2000s when that was dominant. There's an illusion that everything that existed when you got into the industry is somehow dominant, fundamental, and long-lasting, and everything that comes after is a transitory fad. That might even be true for some things, but many things are transitory fads, and PHP was one of them - the problem is you didn't sell / rebalance as it was declining.

Secondly, getting into / out of a technology can be a gradual process, more akin to a dollar cost averaging strategy. If you start to learn Rust, your PHP skills won't vanish - some of them will even transfer, and others will fade, but still be there if you need them.


👤 ab_testing
I think it depends on technology to technology. I know people who are still milking their Enterprise Java and Spring skills almost 20 years after they started. Now obviously they don’t work at FAANG but rather at smaller companies but the advantage is that they can spec out and complete the work much faster and don’t have to slog more than 20-30 hours a week.

👤 imakwana
An investment analogy can be "Core & Explore" portfolio of skills with pareto distribution (say 80% Core, 20% Explore).

The core skills are those that have stood the test of time over multiple decades (OOP, FP, Operating Systems, Distributed Systems).

The "Explore" portfolio is essentially venture capital like bet on new tools/frameworks/languages. Most of the venture bets will fail, but few of them will have exponential returns where you will get ahead of the rest of the market or discover early that your side-project/prototype is very valuable in the market (e.g. ML, Cloud services, etc).


👤 karmakaze
In my experience if you get to a senior+ dev level, specific tech doesn't matter much. My background was C, assembly, C++, Java and others with solid SQL for a good chunk of it. Most everything else is syntax/sugar on those and pretty transferable. There's typically two framework styles fat (rails/django) or thin (sinatra/flask). GC and static typing can be nice.

Front-end has more vertical tech e.g. mobile platforms and another framework flavour (Vue/React).

More advanced tools (NewSQL) and languages (F#, Elixir) would be great to use but don't often find opportunities.


👤 ipaddr
What if you love working with php and when you start working in other languages you start noticing shortcomings that have been solved in php?

Let's say you wanted to jump into golang. It is easy enough to learn but you are forced into structuring your app a certain way. You lose some joy you had with php. How do you deal with those feelings?

Historically it was widely believed on here that php lost the race to Ruby/rails but fast forward and Ruby has grown out of fashion and a php developer is more employable.

React has the most job postings but most of them are frontend jobs. Comparing php to node jobs is probably a better match for a backend developer.

Most jobs are trending for python this year. Different types of companies use python. Typical startups may use it as a replacement for php but others may be more interested in unlocking ml. That complicates that stack.

One thing is to consider is culture . Moving from php into a different stack usually means a different culture. Chances of bigger teams, daily standups.. bigger orgs.

Let's say you decide to switch to React how would you leverage 20 years of php experience into a React position?


👤 brian_spiering
I think about technical skill development as a diverse portfolio. I spend a majority of learning budget on fundamentals, mostly overlearning core knowledge and skills. I spend a small amount of my learning budget on specific techniques, tools, and packages that currently popular. A very small fraction of my learning budget is spent on high risk / high reward elements.

👤 awildfivreld
"time in the market" tends to mean that you invest what you can in broad funds _at regular intervals_, and ignore if the market is going up or down, as it tends to always trend upwards.

"timing the market" would then be saving up for a long time, then dumping it all in when you think it has hit its low.

To transfer the analogy, it would be like shireboy describes. You would keep up with the news to see what technology is brewing. That does not mean that you have to be the industry expert on every single technology you decide to look into, but you are more aware.

I think your last paragraph can be compared to stopping investing into the market, and rely on interest to keep you growing.


👤 nsotelo
I'm not sure it really works like this. Suppose you've spent 10 years becoming a master java developer, and now all the investment is going into python. You're going to better than the boot-campers after 1 week and a master developer after 3 months, whereas the others will still need years to catch up.

I think it's worth keeping a loose working knowledge of all the mainstream software in your field, but don't really go deep until you need it.


👤 Chyzwar
That only natural for people that are not interested in technology or programming itself. People that are interested in new technology and keep learning new things will become more successful as IC and have more opportunities. If you are lucky, and you start with something that is popular long term like Java, you can find decades of stable employment in big corporations. If you are unlucky and start with PHP/Perl you either switch stack or you will stuck in low paying jobs maintaining legacy apps. Programming is less forgiving than other industries, as there are more fundamental changes over years. On the other side, huge demand make it easy to find and change job. You could make AWS certificate and some JS/Python/go training, update LinkedIn profile and wait for offers to flood in. In less than 1 month effort you could rebrand yourself and find jobs in new stack.

There is good satire of the stone to Bronze Age transition. https://www.youtube.com/watch?v=ZHGafC7zOUE


👤 rgoulter
I think an important part of tech is continuously learning.

e.g. if you can't find jobs as a PHP developer, but you see there are many jobs for (say) NodeJS web development, or Golang API development, you may need to learn some things, but that can build upon how you did things with PHP.

You still have a website still involves HTML, CSS, and JavaScript. A website will still send HTTP requests (and receive responses). The program will still need to be deployed so that it's reachable from the web. etc. etc. -- And there will always be adjacent things which you will either need (or benefit from) learning.


👤 heavenlyblue
You can’t compare “timing the market” with skills directly because the products sold on the market are inherently limited (a zero sum game) and knowledge can always be shared and does not take away from others.

👤 atom_arranger
I guess the market analogy would be that you want to buy into an index. So if you’re invested in PHP but you see over 20% of jobs say React it might be time to diversify a bit into React.

This leaves out that diversifying one’s tech skills isn’t as easy as diversifying a portfolio though. You could do a React side project, but it won’t be considered as highly as a full time job. I guess that’s the difference between adding a bit to your portfolio vs. going all in.