Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The stack is to deep. Nothing is easy anymore. The technology count is staggering. I'm close to retirement. I'm looking forward to pursuing my personal programming interests while I work some mundane, no responsibility, minimum wage job.

Programming is a ridiculous career path.



Type 'research programmer' into google jobs or zip recruiter or something, go take a massive paycut to work for a cancer lab or other research area. No bullshit whatsoever, best job I had was as a 'Clinical Statistical Senior Programmer' in a lab with a bunch of doctors, paid barely more than a garbageman at $55k/year, but I actually enjoyed going to work where everyday you're digging into The Art of Computer Programming or reading some arxiv paper, you have no boss/CTO overlords pushing shitty abstractions like Kubernetes except 'this idea has to work, do whatever you want to make it work'.


I interned at an observatory as an undergrad, which was a similarly fun position. Plenty of opportunity to architect tons of smaller services or tools or contribute to open source astronomy libraries. Just about every facet of computer science was used in one way or another, and I got a taste for almost all of it. Databases, networking, front and back end, real-time computing, among others. The only thing I didn't really learn was how things work in the corporate world, with BAs and product owners and bureaucracy.


Amazing that it takes returning to the academic research world to get back to actual practical no-bullshit programming.


> Programming is a ridiculous career path.

You have blinders on. Programming is a far better, far less risky career, and pays far better than many very popular career paths (architecture, teaching, sports, arts, research (be it science, computer science, or humanities).

Context:

- sports and arts are obvious

- I did my stint in research, and programming (even at FAANGs) is far less stressful and far easier to find a good job in

- my wife worked in architecture / works as a teacher


Yeah, you might be right, but I fear this might just push the OP closer to utter devastation as he realizes the working world is fucked everywhere.


There are grades of grey.


Coding school bootcamp instructor could be a thing. It's basically the same as a teacher.

Or teacher at private schools also make more.


It is indeed ridiculous.

I am in my early 30s and I am aggressively saving as much as I can while living very frugally, to hopefully retire multi-millionaire abroad or get a lower paid job that won't stress the life out of me before I turn 40. Hopefully I won't become unemployed before hitting my target, or die of a stress-related heart attack.

I am not completely disappointed about my career choice because it allowed me to save a lot of money (see note), but boy, it is an insanely ridiculous career. Very frequently I wish I pursued something else, there is just way too much and fresh new crap keeps coming, every week. Can you believe 4 years ago almost nobody was talking about containers/Kubernetes? Just to name a random niche. Can you imagine what will happen in a couple years? They say "it's all the same, it's a cycle, you already learned it": that might be true if you are a manager or a PM and you just need a very superficial overview of the ecosystem, but if you are a senior engineer you need to master your craft, so even if a technology has been reinvented you need to spend hundreds of hours learning the details of this new incarnation, that's literally what your employer expects. Ask an engineer if being proficient with VMWare is enough to get up to speed with Kubernetes just because one is the sequel in the virtualization scene... exactly.

Also add the effect of globalization: my company hires talent from Eastern Europe (not consultants, entire teams with local management, product, ...) who produce insanely high quality software products at a ridiculous pace, exquisitely documented. Those people are wicked smart and on top of that work 20 hours a day. I am surprised software engineers are still hired in the US, where working 10 hours a day is already considered unhealthy. I feel the same way as a brick and mortar store that's going to get pushed out of business because of the more efficient and cheaper Amazon.

Note: It also helps that I choose to live in the super expensive Bay Area while not wanting kids, so I don't have the same spending requirements of people with kids and can bank the spread that most people would have to spend on schooling, nannies, good housing, ... I rent a studio for $2k in a ghetto-ish area, and that's 70% of my expenses. If I had a couple kids for whom I needed to provide good housing, nannies and private schools, I would be spending all I earn and there wouldn't even be an end in sight to this madness.


> Those people are wicked smart and basically work 20 hours a day.

What makes you think they work 20 hours a day?


I don't think, I know it. I wake up in the morning (PDT timezone), and they have already produced and committed a massive amount of work, or tackled complex architectural design projects. On top of that, they stay pretty much active on Slack during my entire work day, until their local midnight/1am. By the time I go to sleep at midnight PDT, they are already committing code or following up in previous IM discussions (it's their ~7-8am). So, effectively they work twice my amount, and as I said they are very smart and motivated individuals, so they produce more than twice my amount.

If I were to start a company in the future, rest assured I would do 100% of the engineering hiring over there, after having seen their work ethics and productivity levels.

As an added bonus, they are really not in the mentality of profit sharing/equity compensation typically seen in the US, so you can get them with a cheap salary (think ~$50k/y), whereas a local senior engineer would cost you ~$250k + equity, and would demand a good work-life balance and probably resent you because your free lunch is not as good as FAANG's.


Eastern European here - it's interesting to read how this looks from the other side.

But yeah, $50k is enough for many to throw work-life balance out the window and at times pull all-nighters - I should know, because just recently I quit a job where that unfortunately was a habit of mine - all for approximately this pay.

I don't think it's sustainable, but younger people increasingly choose this way of life, because it lets them obtain status symbols like a MacBook Pro or a lease for a Mercedes C-Class. Also the overall mindset is that this is how people live and work in Silicon Valley - regardless of whether that's really the case.

But here's the kicker: some in my area are saying that we're in a bubble and developer salaries surely must come crashing down eventually. Others think that our only advantage is low cost.

Personally I share neither of these views. It's all relative and as long as real estate prices in Silicon Valley remain absurd, developers will be compensated generously. Perhaps even after they come down - if they ever do of course.


As someone who's heard nothing but good things about Eastern European programming shops, looks like y'all's salaries are only gonna increase. Perhaps you should take some bets on your market with that assumption!


> But yeah, $50k is enough for many to throw work-life balance out the window

It should be pointed out whether you mean net (take home) pay or total cost for employer. The latter is usually about twice the former at these salary levels (at least in some parts of Eastern Europe).


In Russia a self-employed contractor would only pay 2%-6% in total as taxes depending on where they live.

Of course, for that they will only get minimal pension and standard medical insurance. They have an option of voluntarily contributing additional money to the state pension fund to get increased pension.


In the U.S. too, really. Don't forget health insurance.


As a self-employed contractor in Poland I can get away with retaining ~75% of the sum of my net invoices(sans sales tax, which is transparent B2B) as take-home pay.

For that I get rudimentary health insurance - only really good enough for a hospital stay free of charge.

The tax rate is a flat 19%, so I would wager that the tax wedge is likely smaller in eastern Europe than in the US.


Thanks for putting a good word for us. I work mainly for US clients from Serbia, and while I do occasional overtime, or 60-70h/w before a deadline, those should be and are exceptions. Even you as an employer don’t want chronically overworked employees.


Can confirm this. The best engineers I’ve worked with have been remote from Poland and Russia. Insane quality of code architecture


except for the old USSR-taught folk who can't let go of their waterfalls.


Any names you can mention about these work ethic programming shops?


These are not programming shops, that’s the whole point. These are basically full time employees hired on payroll, who will care about your codebase as much as any other member of the team. Programming shops in my opinion never work, there’s always the mentality of just building crap and throwing it off the fence.


At least one of those A’s doesn’t have a free lunch :(


I think both do not.


> As an added bonus, they are really not in the mentality of profit sharing/equity compensation seen in the US, so you can typically get them with a very cheap salary (think ~$50k/y), where a local senior developer would cost you ~$250k + equity.

ugh !!! yeah, you better be scared for your own job and good luck hiring those devs in the future...its more likely they'd be hiring you.


I can relate. I'm in my mid-thirties. I've been working as a web designer, which then became a web developer, then front-end developer and now front-end engineer - in the last 13 years.

I've found the same issues as yourself. Things have become more complicated and yet I feel like my position is seen by a more "informed" upper-management as a kind of commodity.

I once had a manager tell me, during a pay-rise request that developers where a dime a dozen. Fair enough, that's probably true.

I've been thinking so much the last few years of how to transition into a field with less technological noise. I feel like most other people I work with, their only real skill is in communication - as in they don't have any strong hard skills like engineering.

I'm in the same boat as you. Unable to get married or buy a house, or have a family due to living expenses. I mean the average price for a 1 bedroom in London is uppwards of 350k, I've been saving for 13 years and barely have a fraction of that - I dont know who is buying these houses...who can afford them? or are people willing to gamble with their savings and their future?

Also, I feel like some technical managers dont do a great a job of protecting our field. As they are the ones primarily responsible for communicating with upper management. Often times, they are downplaying our abilities and our position - they dont realise that their accomplishment in terms of generating efficiency is often compromising our job security. Ultimately most managers dont care how hard it is to be a front end engineer or full stack dev or whatever, they just look at numbers, and in many cases they see us a financial burden or as a commodity. So, you as a technical manager need to bare that mind during your crusade to automate and optimise x,y and z.


Mortgages. You don’t save up 100%, but rather 20.


I hope you can make it work. I am nowhere near the path to saving enough to retire soon. Although I'm still holding onto the hope that I could build my own path start enjoying programming again with the BS and pointless stress removed.

To make that work though, I'm done with the interview circus. It's been such a distraction over the past 3-4 years, that if I wasn't prepping for interviews or staying up to date with the waste of knowledge that they test for in tech interviews, I could've built a successful business already. Now I'm choosing to focus my time there.


These days the effort required to get a well-paying programming job is more or less equivalent to the effort required to start your own business. If you can start a business. It's worth a shot. Worst-case scenario, the business fails and you are back on the job market but you can use your startup as a demonstration of your capability to deliver on projects that require time and dedication. You will also grow and learn a lot and be in a much better position than your competition.


I am in your boat. I've been in the interview circus for 6 months. I'm quitting, I'm going to start something.

I still have the luxury to do so. So I should take my chances because industry sure isn't taking one on me.


My suggest is save a nest egg, then get a public service job that offers a pension. If you want to know why realize how much you need to save to generate the income a pension provides. Especially since US and EU central banks have decided to punt and just continue to print money.


To pose a frank question: are your own skills equal or better to the heavy hitters on your European crew? If not, how do you know you're not being snowed by a lot of pomp and ceremony to do regular things in an impressive-looking way?


That's right, the pace of work is constantly accelerated by competition, you feel you can never quit, and you aren't paid an amount that for your location _isn't biologically sufficient_. We need unions, we need an end to competition, and we need to take control of the companies ourselves and overthrow the bosses.


Every job sucks though, every job is ridiculous and riddled with inefficiency and bad management. You can view the need to constantly update your skill set as a negative or positive. It is almost a bit of a privilege that we cannot rest on our laurels if we want to stay relevant. Humans thrive on some stress, too much is bad, but none will also ruin you. Granted I am only 8 years in, but I still feel semi greatful that part of my job is exploration/learning.


It's so interesting to read different people's perspectives on here. I very rarely comment on here, but it's just wild to me how wildly different the conclusions we can all draw from looking at the same set of pretty simple factual data are.

I've been working in this industry in a serious way for about 15 or 20 years? So not exactly close to retirement but I'm not straight out of school, either.

> The stack is to deep. Nothing is easy anymore. The technology count is staggering.

To me, it's insane how much easier literally everything is, and how wildly more productive people can be.

I remember when I was young, first of all, it was impossible to just get access to technologies so you could learn them. Compilers cost money. Databases cost money. Operating systems cost money. It was hard to even get to the point where you could mess with stuff, for financial reasons. Now, to a first approximation, there isn't really a tier of basic software you'd want to develop on/with that you can't get essentially for free. It's not like they're running some totally different "production-grade" operating system or database at the big tech companies, or that the well-funded machine learning labs have access to some sort of special super computer with totally different characteristics than what you have access to. They basically have the same shit. That's bananas!

Then, there's the utterly massive revolution in programmer productivity that has been caused by the internet + automatic memory management. In the olden days, there was very little code reuse, for several reasons, but one of the reasons was that it was too hard to pull in random libraries and start thinking about who would own the storage for the error string they wanted to return to you out of every single api.

Everyone bitches about how javascript programmers think nothing of adding "left-pad" to a package.json along with twenty thousand other dependencies, but the fact that you can do it is nuts! And it makes everything SO MUCH FASTER AND EASIER.

The other day I was just curious if I could point my webcam and my whiteboard and have it pull in the lines I drew on the board with a marker and save them as some sort of curve in the computer. I have no experience in computer vision or anything like that. I don't even really know Python. I was able to get this roughly working in like half an hour with Python + OpenCV + some driver that already made my camera work + some tutorial that came up in DDG. It's like being a freakin REAL LIFE WIZARD.

Take building Android or iPhone apps. I remember trying to write apps for the Palm Pilot a thousand years ago. Just getting the toolchain to work at all could eat up a couple days. This is reminding me what it was like to try to write a win32 app w/ OWL or MFC, starting from the auto-generated code. Anyway, now, you get a tiny computer with shockingly powerful cpu+gpu+a zillion radios+gps+multiple cameras+gyros+compass+accelerometers+gigs of storage + gigs of memory + a super high rez touch screen. You can assume that to a first approximation, everyone in the high-GDP/capita countries has one of these, essentially everyone in the mid-tier, and the low-tier is growing at a shocking speed. Further, they are all exposed to your code through a more or less universal set of interfaces so you don't really need to worry about drivers and hardware support hardly at all. You want to run some code on here? Ok, you can distribute it for free over the air, and you can write your code in an automatically memory-managed language with a freaking gigantic standard library. Oh also the SDK is free. And there's an emulator that runs on x86. Oh and there's a visual multithread debugger that you can attach to the process...from your computer..remotely. Oh you don't need a dev sdk, all the normal units everyone has, those just work.

But you want to build a network application? Something that needs to talk to some sort of service? Well the good news is you can get a database, an operating system, and incredibly powerful web servers and application servers, and they all cost nothing. In fact, they're already installed, on the computers that you can rent by the minute, and the lowest tier if you just want to mess around? It's free.

Mainly what I feel like is extremely JEALOUS that I wasn't born later. Imagine all the cool fucking shit you could have built as a kid instead of wasting your life trying to find a cracked version of Borland Turbo C that worked right. Choosing between the horrendous performance / security / etc of perl cgi-bin vs. the unattainable per core licensing fees of a "application container" or whatever those special jvm things were called. Oh, here's one: DATABASE FREAKIN DRIVERS FOR JAVA. jdbc drivers used to cost money! And they sucked shit!!!! ahahahahhahaha.

I agree that programming is a ridiculous career path because I can't believe ordinary-talent-level programmers in Silicon Valley get paid into the low seven figures a year to essentially work on their hobbies. This has to end at some point. I can't believe this is a real job. It's like your whole life, you love legos, and you're always trying to build bigger things out of legos, but you always run out of the pieces you need. And the someone comes along and says, "Ok kid, here's the new rules. Legos? Legos are free. Every single type of lego, in more or less unlimited quantities, you can just have those." What's the catch? "The catch is you get paid to play with the legos." Wow thats crazy but it must be like...a barely survivable wage. "No in fact total rubes who just graduated from school are gonna get paid 3x the median income for a family of four in their first year out of school. People who've been around for 10 or 20 years will make like a million bucks or so." But only in like weird big risky situations, right? "No that will be the deal if you work for the most stable boring companies where you get six weeks of vacation and all your meals taken care of etc."

??? How is this possible?!!?!


I would disagree with the simplicity you say we have today, you can create your first angular(insert other magic framework here) in 1 hour. Then 1 year later most of the time someone like me needs to get involved and find a big mess of shit, everything is horrible inefficient(like you move your mouse and 100 functions will run) you are asked to replace a text input with a numeric spinner and now you need to find some library from a large number of candidates, dropt eh incompatible ones, drop the ones that are probably garbage made in 1 day and is broken in corner case, import it, wrap it and integrate it in the giant maze ...

All the simplicity brought by the magic of new abstractions will go away at the moment you are forced to understand the actual thing behind the magic, realize that most placed that used that magic were probably simpler to write without the abstraction (ex all the both ways data binding in angular would have been cleaner and efficient to do it with events though it would take you 5 more lines of code)


> Mainly what I feel like is extremely JEALOUS that I wasn't born later. Imagine all the cool fucking shit you could have built as a kid instead of wasting your life trying to find a cracked version of Borland Turbo C that worked right.

Amen. I started programming in Turbo Pascal and Z80 assembler in the 80s, and never laid eyes on a manual, book or documentation about them, except for a few articles on assembler I read from magazines in libraries. I had one beginner Pascal book. Now I can instantly download any paper or book, then instantly download anything they reference. Most software is free too.. I love it, but it's hard not to imagine how very different my childhood would've been. I came across a copy of Zaks' fabled Programming the Z80 in a bookshop a few years ago, which I'd never seen before in person, and I was like My god, I would've given a leg for this 30 years ago.


Yep, sure, you can glue and duck tape a cool demo in two hours. Somehow that doesn't seem to translate to actually building and maintaining real products, where the demand for developer time seems virtually infinite, and everything ends up released in a buggy alpha tier state that never gets fully fixed to a mature state.

And somehow my experience using computers & software hasn't gotten dramatically better in the past two decades. Most of the improvement can be attributed to long term hard work (software that I used 20 years ago is today easier to configure and/or has been replaced by something that is easier to configure, and it's not because they rewrote it by throwing some glue and libraries at python over a weekend) or improvements in hardware.


You’re partially right. The problem is the pace. Right now there is a bit too much noise from that. But yes, i share your view that in many ways things are better.


Interesting. I'm finding the opposite to be true. While it is easier to "get something working in Python in a half-an-hour", it didn't get easier "to release something that people want".

I'm sorry about your copy of Turbo C. Mine worked fine. Still enjoy pudb.


Very good observation. While the programming tools and infrastructure have improved tremendously, so have user demands increased. To make money today, you can't release yesterday's functionality. SW development keeps moving to higher levels of abstraction, and not everyone likes that (I don't).


Uh? Don’t talk about the pre- or early internet release process! Copy to floppy disks or burn CD, send by snail mail. For your little startup, hope you didnt miss any significant bugs before you payed for pressing 10 000 CDs at a quite significant cost. That was if you already had a customer. Get your software known? Well, I guess I’ll buy an ad in a relevant magazine.


But in many areas there was less competition by orders of magnitude, right?


The whole market was much smaller. So maybe much less competition, but also much less market when only hobyists had computers at home and no one had smartphones.

The only "golden age" I can think of was the internet bubble when investors were crazy and threw money on anything that had anything to do with internet. Some kids made really good money "programming" HTML.


Fair points, thanks. (The question was only semi-rhetorical, as I'm only an observer rather than an insider, so I appreciate the genuine answer.)


Im 25 years into my career. Excerpt for a few years during the dot com bust, I’ve been loving it. I’m looking for a new job right now, have 6 onsites scheduled and 10 other companies I want to talk to if I don’t get an offer I like. I’m also lucky enough to favor jobs close to where I live.

I feel very very lucky to have chosen programming as my career.


I've only been in the industry for 6 years, not counting my student programming job, and I've started to take tutorial-style notes for myself for all the technology jobs. For a part infrastructure, part software engineer person like myself, you're right there's a massive amount of tools you need to know and be a semi-expert in. There's no way I can hold it all in my head. I'm using mdbook and a very simple git workflow to build up a nice searchable notebook, so when I learn a new topic, I can learn it in a detailed way and take some notes that are tailored to how I re-learn. It's taken a huge burden off of me to constantly have every technology in my head.


> Nothing is easy anymore.

I don't agree with that completely.

I do agree with the fact that the half-life of programming knowledge is far too short.

We flip through languages, technologies, etc. before anybody actually gets truly proficient with them.


Some advice that I heard awhile back that I'm glad I followed is to devote different percentages of your learning budget towards technologies with different half-lives.

Stuff that has an incredibly long half life like SQL/Database internals, or OS fundamentals, networking fundamentals, CS fundamentals will serve you well basically your whole career. So even a little bit of time dedicated to these over the long run is time pretty well invested.

A larger portion of learning goes on to the treadmill of technological churn, but that's either stuff you are learning now in order to get your next job working with it or are learning now as a result of getting a job that gave you the opportunity to work with it.

The middle ground is getting deeply familiar with libraries/frameworks that have a medium term half life. Usually that's some form of data access.


30 years in professional programming for me. I agree, the stack has gotten so huge that it's impossible to master even most.

But what a great career for constant learners! I'm glad it's the way it is.


What's the point of the constant learning if it's going to be obsolete in 5 years?

That's what I can't stand about the cult of "you get to learn so much at FAANG or a startup" -- at some point in life, you need to spend less time learning new things and start applying the things you have learned. I've been drinking from the proverbial water hose for 20 years. It's tiring now. At some point you need to be able to find the permanent things and reject the noise.


> What's the point of the constant learning if it's going to be obsolete in 5 years?

Well... that's the point, really. If it didn't change then you'd be able to master it all.

The constant change is the motivation for constant learning and (hopefully) improvement.

There's no point in me trying to make a longer point of it. There's an sort of an eye-opening account from someone coding for years about how our situation as programmers has improved over time.


Are you in the web by any chance?

There are plenty of things where the changes are slow, and 20 year old frameworks are still used up to today.


If you take deep stacks upon yourself, and then hate it, yes, that's a ridiculous career path. Personally, I took iOS development. The tech stack is actually quite shallow. And there's regularly new things to learn. Programming as a career brought me intense joy and wanting to go working.


No.

Your responsibility as a seasoned programmer is not to code !

I'm a 20+ yr experience programmer and still hold the title Sr. Software Programmer and no. I say no.

Yes the stack is deep but it is unnecessarily so. Yes, there's layers and layers ...but it is your job to educate the less experienced why less is more and why there's is always a tradeoff to be made.

Computer science hasn't moved a whole lot[1] in terms of problem solving since the 80s. Computers have just become faster. The best ideas we have today are still rooted in the principles of the 80s. They are just a abstraction level higher.

So no. I refuse to accept the premise that Nothing is easy anymore.

[1] when considering fundamental theories.


I thought we're not meant to call ourselves programmers

If you're doing it for any reason other than to gain transcendetal enlightenment you're in the wrong space


So what job is intellectually doable, people-based and has a high upside (eventually) and doesn't have crazy work requirements?

I'd like to do that job, but last time I checked, there are none.




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

Search: