Hacker News new | past | comments | ask | show | jobs | submit login

I don't. Turning my hobby into my career killed my hobby and, really, that's fine. It affords me a good life and the ability to discover and enjoy new hobbies.

If you're worried about "keeping up," then I would suggest you 1) ignore the rat-race that is framework-of-the-day and 2) focus on learning fundamentals of your domain. Sure, you'll miss out on some hip startup jobs but typical employers don't care about your lack of 5 years experience in a 3 years old framework.

Ignoring the framework of the day and “learning the fundamentals” won’t get you past the either HR filters or make you competitive with developers who are constantly doing Resume Driven Development and have a resume that is buzzword compliant.

Especially if you are an older developer (I’m 45) and you will just be seen as just another old out of touch developer.

That being said, the further down the stack you go, the more stability there is in technology.

So what? I don't care to compete with those developers or work for the companies who hire them.

If you live in a place where you can be selective with who you work for, I think this is the right approach.

If you are choosing to leave a company on your own terms you can be selective. If you are leaving because of layoffs or the company exploded, every week you wait you’re losing money.

Good luck with that.

In 17years I’m yet to have an interview where I’m quizzed on any JS framework or a store that isn’t relational, as a web and back end dev. Not heard the word GraphQL uttered In person ever :-).

A lot of jobs exist where they just want to know you can code and assume you’ll learn what you need as you go along. Experience in their languages seems most important.

The last time I had a hard core technical interview was in 1999. I had been working for 3 years and they needed someone who knew the ins and outs of cross platform C development.

By the time I got back out on the market ten years later, I was already 35 and I was able to talk about projects, architecture, trade offs involved in shipping, etc and I was applying for mid level roles - partially because I had become an expert beginner “engineer” even though I was good “developer” and they were getting me cheaply.

Eight years and three jobs later, my engineering skills had caught up with my age and I was applying for jobs where they needed a “change agent” or “someone who could speak experience into the team”. Now, I rarely get asked any programming questions. It’s mostly architectural and soft skill questions.

But, in the grand scheme of things. There are only two reasons anyone is interviewing for a job. Either they are being forced to find another job because of a layoff or the current environment has become inhospitable or they are choosing to find another job for more money/new challenges.

In the former case, where I need to find a job now, I need my resume to be buzzword compliant so I can find a job/contract fast. I also need to be ready to for more technical interviews especially for contracting.

In the latter case, I can be more picky and find jobs where they are looking for “principal developers”/team lead type of positions and the interviews tend to be more architectural/theoretical.

On a side note, I’m not sure what I want to do next. If I choose the cloud consulting/“digital transformation consultant”/“enterprise solution architect/consultant” route. Knowing a little about everything will come in handy - including something like Graph QL.

> There are only two reasons anyone is interviewing for a job. ...

I like the insight here about the two types of job and looking back at my jobs I think this is spot on.

There is another reason to change jobs which is for lifestyle reasons. Moving country, changing to a work from home/digital nomad would come under that. In the lifestyle case you are probably trading other factors for the lifestyle factor, so that would also more likely lead to the buzzword compliant route.

There are paths and trade-offs.

a) Focus on technologies that have staying power. I don't think Java EE jobs will really ever disappear

b) instead of flavour of the month, focus on the flavour of the decade? i.e. Go and Kubernetes seems to be the trend :)

c) instead of resume-driven development, focus on having a network. Most of my jobs have merged because a former colleague, classmate or friend realized I knew some programming once, and they might want me to work for them :)

More in depth, I think you can make a trade-off between the tried and tested and the new-fangled thing, by introducing the new in your current job. Technologies that are not cutting edge, but slightly past the first peak on the hype-curve. I.e. if you do backend, you would probably try Go language (instead of Rust/Elixir/...), on frontend you could introduce Type-script (instead of other compile-to-js languages), you might try Kubernetes ... in general technoligies with following that are still new, but with more than five years in production at some places it puts them outside of the 'flavour of the month'

A) and now you’re competing in a commoditized market where they can easily hire someone cheaply. This would be the type of skillset I would keep up to date if I need a job/contract now and I wasn’t on the market by choice.

B) There are still a relatively few jobs in Go and they don’t seem to be paying more than your standard enterprise language. I’m not wasting my time learning a language/technology with both a smaller market and no pay premium.

But K8s while I think is overhyped and something being chased because of the ooh shiny effect, it is the type of technology I would jump on, insist on a pay premium and ride the hype curve.

C) you still need to do RDD. Who you know will only get you so far. Who you know gives you the inside scoop on opportunities but you get jobs based on what you know. No one is going to stick their neck out for someone who is objectively unqualified.

I'm curious, where do you find accurate and up-to-date data about market size, number of jobs, and average pay for programming languages? I could definitely use this information to better plan my next career move.

It’s more nuanced. It’s not the absolute “market size” it’s whether the market is large enough.

I can keep up with that from talking to former managers, former coworkers, my network of local recruiters, recruiters job listings, LinkedIn posts, Indeed job listings, etc.

For example. Let’s say from all over those sources I see the following trends.

Senior consultant positions (in my case AWS). There are relatively few jobs in my local market compared to everything else that pay enough to make me jump ship just for the money. But when they do become open. I’m building my resume and skillset to be qualified for these types of jobs. If I leave my company on my own terms, I can wait until the perfect position opens up. If I need to find a job now I can’t afford to wait and it’s too risky for me to over specialize in an area where local jobs aren’t plentiful.

On that same note, the only reason I am specializing in AWS instead of Azure is because that’s the job I ended up in. Even though the market for AWS is much larger than Azure, the Azure market is more than large enough so it doesn’t matter. GCP on the other hand...

If I take that same mentality to Java, C#, and Go, the same thing applies. Java is more popular in the enterprise, but C# is popular enough that you can quickly find a job, it’s hard to ask for above average compensation just for a developer job since there are plenty of people who can do it “well enough” to develop your bog standard SAAS CRUD app or bespoke internal app. But they pay well enough. The cost of living is relatively low in Atlanta.

On the other hand, I don’t see that many jobs for Go developers locally and when they do appear, the salary is the same as C# and Java. Why specialize in a language where the demand is lower and the compensation is the same - unlike AWS Consulting.

Learning Go would mean I am neither optimizing for salary or for optionality to find a job quickly.

Of course, it’s always good to have Javascript in your back pocket because of the web and it’s used for server side code, desktop apps, and cross platform mobile apps.

As far as my next career move, I am not sure. Extra money would always be nice, but cloud consulting/enterprise consulting doesn’t excite me. I have a decent work life balance and I enjoy my current stability.

On the other hand, I am getting bored with developing, a change of pace would be nice and increasing my savings and investments wouldn’t hurt.

Interesting w.r.t Go-lang. Where I live, we have RedHat working on kubernetes, and several startups in the "lets-turn-everything-to-golang-microservices-on-kubernetes" phase of hype-cycle, that pay premium, so my cost-benefit analysis looks different ;)

I kinda agree, that is why I was talking trade-offs.

In reality, you probably mix bit-of-collum-a/bit-of-collum-b.

Perhaps I should clarify in that I don't worry about what's cool right now, but do in continuing education in what's new-ish and a solid solution. Having fundamental understandings of your domain is very helpful in spotting what's good and what's marketing flash-in-the-pan.

> That being said, the further down the stack you go, the more stability there is in technology.

IME, it's about where you go and not what level of the stack.

Some places are just fine with a basic form-based website with a little JS for convenience that ultimately just talks to an IBM mainframe. Others want full-blown SPA in the latest, greatest Hipster language deployed across a dozen datacenters with Kubernetes and whatever other trimmings.

And then after you get laid off from the vanishing few remaining companies using old tech and can’t find another job, you’ll be complaining about “ageism” on HN.

If the market is paying higher than market salaries for the buzzword compliant “digital transformation consultant”, that’s what I will learn.

> And then after you get laid off from the vanishing few remaining companies using old tech and can’t find another job...

As we speak, banks are migrating from systems written in cobol/fortran to systems written in java. I just got quite a few recruiters contacting me for open java jobs. Sure, frontend code was in angular and they offered training for it, but for some even angular might be considered to be "ancient" because they're living in a react bubble (not saying that you are).

I know just enough about the front end to call myself a “full stack developer” and get past the HR filters. But front end developers are a dime a dozen and the pay shows it. I keep up just enough in case I need a job now and I want to get something fast.

When the day comes that I do decide to leave my job and I leave by choice, I’m staying buzzword compliant enough to be an overpriced “cloud consultant”, “digital transportation consultant” or whatever the hype of the day is.

But, I wouldn’t take a job doing Angular knowing that React is more popular and I would rather add React to my resume than Angular.

Sounds like you went the corporate route in your career, which is totally fine. Compared to the startup route, it has its pros and cons, one of which is HR filters and people gaming the system to advance their careers. Just wanted to say that it’s not everyone’s experience, there’s a whole other world where that’s not a problem, but.. you know, there are different issues.

The startups are even worse when it comes to ageism, “culture fit”, and overwork.

As they say, you can find something wrong with everything.

Yeah, but don’t you find it a bigger deal that “what’s wrong” is the bro culture, crazy work ours, and ageism?

We’ve all heard horror stories, of course, but I think it would be a mistake to generalize it to the whole industry because we don’t hear about the startups that have perfectly mundane work hours and reasonable diversity.

Don’t get me wrong, those things are problems that need to be addressed, but in my limited experience it doesn’t seem to be as common as it might appear.

So do it the old fashioned way: socialize and network with people at industry events. Ageism is another issue that isn’t quite so easy to solve. Doesn’t that depend on the area more than anything?

Networking like that is how I found my job without a degree in computer science.

Networking - which I do - will only take you so far. I have a strong network but you still need to have the requirements for the job. Why would a company hire someone who doesn’t have the wanted skillset when they could find someone who does.

I only started really job hopping and taking my career seriously 10 years ago at 35. I’ve always had at least a half a dozen interviews and a minuscule number of rejections. My network got me to the interview without going through an ATS. My Resume Driven Development and knowing the game got me offers.

Ageism outside of the cool hip startup world is exaggerated. Most of the older developers confuse ageism with not keeping their skillset in sync with the market.

> That being said, the further down the stack you go, the more stability there is in technology.

Maybe my English is not that good, how do you mean? Asking as a 43yo developer.

I take it to mean that back end development has less new stuff going in n compared to front end. Deep back end, like networking or systems development has even less new. Kernel or embedded, even less new. Not sure how true it is, but that is how I read it.

Thanks for great advice! May I know how you keep yourself relevant at that age and what approach you changed from earlier when you get old?

I made the mistake of staying at one company for close to ten years and then when it was time to leave, I found my skillset woefully out of date. That was 10 years ago.

As far as staying relevant, I’ve developed a network of trusted local external recruiters and I speak with them to see what companies want.

When I’ve been looking for a job, I’ve found jobs where I have the listed “must have” skills and I want the “nice to have” skills. Rinse and repeat.

I don’t do non work related side projects. I will work extra hours and volunteer for a low risk project using new to me technology just to learn.

I want to say that I would change jobs if I saw the technology that my current company is using is out of sync with the job market all other things being equal. But, every job change I’ve done in the past decade has come with both more pay and more resume building opportunities.

Now after job hopping and following my own advice for a decade, I’ve reached close to the local market (Atlanta) maximum unless I start working for a consulting company (not contracting/staff augmentation).

You do learn framework of the day while job hunting. You do not have to learn every framework of the day while having a job.

No job is permanent - always keep your running shoes around your neck.

Whether I am actively looking for a job or not, optionality is important.

Yeah, but it is not like learning framework was months of effort. You learn it fast we you decide to.And it is not like job would disappear completely unexpectedly - you can see the signs.

I am not advocating not learning things for 20 years. I think it is ok to skip 1-2 years, then you check state and learn framework, relax, learn something fun, relax, learn framework, repeat.always one not all.

It depends on what I’m optimizing for - to add value at my current company or to add value to my resume for the broader market. Hopefully I can choose a technology that lets me do both. But if my company is paying me an higher than median wage, and I see things going well at the company I’m with now, I optimize for learning what I can to ask for more money where I am. If I don’t see that happening and I can get more somewhere else or I’m falling too far behind, I’m optimizing for buzzword compliance.

Luckily, right now, everything is in the right place for my current job.

- they are paying me above the local median (we are talking Atlanta here not Silicon Valley)

- the technology stack we are using is not bleeding edge but in the right place in the hype cycle.

- I think they will continue to do so for the next two years.

But you’re right. I’m not going to spend my time learning the latest frameworks if I am not going to use it at my current job and I don’t see myself in the market within six months. But if my company ever got too far behind the market, I would have to start preparing.

study things that aren't trends / frameworks if you don't want to follow the latest trends.

learn stan (still relevant technology despite being one of the oldest in its domain). learn image processing. learn database administration.

“Database Administration” is a bullet point for most companies not a complete job. Specializing in it definitely doesn’t give you the optionality of a wider range skillset like a developer who also knows about database administration.

How many companies need someone who specializes in “image processing”? Soon, if it’s not already a commodity library that any company can leverage.

not many companies, but the hiring pool is also much smaller.

If you want to be a general hire, then you will suffer competing with generalists (this is not a bad thing just a different strategy). You can choose to become an expert on a general skill (or trendy framework). This is useful and highly marketable, but your competition pool is also larger and the technology is still likely to dissolve over time.

Also, for DBA , I think i'm internally thinking Data Engineering instead. I perhaps misspoke by title.

"the further down the stack you go" is the reason I love English (being Spanish)

I am not following as well, I am from China. Thanks.

Consider a typical web application, the “stack” is.

The browser and front end code - just sticking with Microsoft, the popular method has been classic ASP, ASP.Net Web Forms and ASP.Net MVC and ASP.Net Web API and they both have changed significantly after Core. Not to mention that the industry has moved away from server side rendering to client side rendering. The popular client side framework seems to change every year.

The next level down is a server side language, let’s assume that we are doing client side rendering. When I really got serious about my career in 2008, after staying at a job for a decade, job listings were looking for C# and Java. Those are still two of the most popular enterprise languages. While of course both languages have evolved in 10 years, it’s mostly syntactic sugar. If you were in a coma for 10 years, you could wake up and easily understand code in either.

Databases - back in 2001, I was working as a backend developer writing batch jobs to load data into MySQL and Sql server databases and do reports. Now, I’m still working with MySQL doing some ETL as part of my job. What I learned back then is still applicable. The difference between those two databases now and the front end framework of the day is like night and day.

Web servers. I don’t deal with web servers that much anymore (see below), but when I do, it’s still IIS, dealing with IIS hasn’t changed much in 15+ years.

Networking/Infrastructure. I’ve had to deal a little with the networking in the early 2000s, but I didn’t get back into the infrastructure side until two years ago with AWS. Everything made perfect sense. The basics of TCP/IP, servers, load balancers, etc hasn’t changed in decades. While AWS is always adding things, nothing you learn is ever obsolete unlike the framework of the day.

Can you explain that more? I'm not following.

I don't. Turning my hobby into my career killed my hobby and, really, that's fine. It affords me a good life and the ability to discover and enjoy new hobbies.

i second that. It became a 9-5 work, and i am fine with that. If and when i get myself very curious about something, i just open a new bitbucket private repository and play with it until the novelty fades away.

I also second the other, "I don't.", responses below. At some point along the way I started really thinking about what I was doing. I also realized that the "rat race" in software engineering is the constant need to "keep up" with the latest technical trends.

At that point I had to start looking elsewhere for a sense of engagement. I ended up finding fulfillment in discovering where I could provide the most value to a company and then focusing on that. 9 times out of 10 it had nothing to do with technology.

These days, if I want to enjoy learning about technology I sit down and read some of Knuth's "The Art of Computer Programming".

I generally agree with you. But, I think we also need to constantly evaluate our view about the current way we do things. For example, in 2012-2013 time frame, I was involved in a project dealing with an insane amount of data. I studied Hadoop in the spare time and applied what I learned at work. I felt grateful that it helped with the scale and performance tremendously. Fast forward to 2016, I was just starting to learn more about Spark (even though it was available for a while by then) to replace the slow execution model of Hadoop MapRed for our iterative model. Again, applying what I learned to the project helped us to cut the R & D time a lot. Plus, for most of the folks who start with Spark, they don't have the first hand experience of the original MR idea implemented in Hadoop. It is a pain and slow to use Hadoop MR model but nevertheless it makes you feel more appreciated with things like Spark/Flink.

To sum it up: you don't need to constantly chase after the greatest & latest framework. But, you need to constantly review new inventions/technologies to help you improve the way you currently do things. I am grateful for still having the passion to improve things around me!

Yep. Just view the reduction in side projects as normal. No matter how much you love art, if you paint at work for eight hours, you're going to be far less likely to want to paint at home. Monotony is defined by lack of variety and repetition.

I feared that this would happen to me, and avoided a dev career for a long time. Eventually I realized that I needed a career and gave up.

What I found was that despite how good I thought I was, I'm way better now and enjoy programming even more than before my career. I don't program at home nearly as much, but when I do it's for something I really want to make and it's very satisfying to be able to just whip it up.

I spend all my struggling hours at work and can just use the knowledge at home now. Much, much better than spending all my free time struggling to figure things out and getting little done.

Programming seems to be one of the few fields where it's considered a sign of laziness if you don't work outside of normal working hours.

I know a lot of people (myself included) got into the field by turning a hobby into a career, but I don't think it's healthy to try to force yourself to spend 12 or 14 hours a day crunching away at the keyboard. Even if you truly do love programming.

Honestly, my advice is to find other hobbies and interests to do outside of work that are not programming related. Recharge during the week and use weekend time to work on side projects if you feel up to.

If you are feeling burnt out by the daily slog, I don't see how forcing yourself to "be motivated" to do more work will help.

Thirded. An obvious consequence of 9-5 programming schedule is any other hobby takes precedence. In fact, I strive (and struggle) to power off my laptop and put it in the closet when home.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact