
Ask HN: CS, still a good career in 3-5 years? - martinesko36
I am currently in an undergraduate university considered &quot;elite&quot; in US. CS is the most popular major. My friends have switched from finance &amp; medicine to CS majors - for the money and because it&#x27;s obviously a good idea to do so right now. All the worries my classmates have is how to get an internship at FAANG. Again not that they&#x27;ll do interesting work (which is rarely the case), but for the resume item...<p>I&#x27;ve been coding for half my life, out of pure interest for the building things and never got into it for the money. CS career being obviously a good choice and every smart kid I know majoring in it, <i>mostly</i> for the cash, honestly makes me worried about the future of the field in terms of whether it&#x27;ll still be a good career in the future. I think smart people will do good work, just for the wrong reasons ($) and this might impact the field negatively. In 5 years maybe things will still be okay, but if the trend continues for 10 years? Will CS become unsustainable hours like working in the quantitive funds or unsustainable competition and workload like in medicine, or both?<p>PG has said something along the lines of &quot;if everyone thinks something is a good idea, it&#x27;s probably a bad idea&quot; and Peter Thiel&#x27;s competition theory where profits get competed away if everyone&#x27;s doing the same thing are two ideas I think most about.<p>What does HN think?
======
Dowwie
I think you have no idea how privileged you are for having the opportunity to
enter the market with your background and a computer science degree in three
years. I interned during summers during university starting around 2000. The
dot com bubble had burst before I even graduated. The party was over.
Managerialism was in full force. IT Managers at what was then a Fortune-10
financial powerhouse were going on an on about how all of IT consisted of
commoditised workers and the only way forward was as a manager of offshore
consultants. I felt like my degree was worthless. The last ~20 years have
proven those managers very, very wrong. In fact, many of those managers didn't
go much further with their careers, as they were very reliant on politics, but
the talented programmers and admins continued to grow in depth and breadth of
in-demand expertise.

Pursue computer science but challenge yourself with it. Don't waste these
years just getting by. Double major in something that will help you work with
artificial intelligence, if you want to do something practical, but double
majoring in something such as philosophy could help you develop skills that
you'll use for the rest of your life.

Summer internships can help you gain perspective about what you may want to do
after graduation. A lot of people change employers, and some even change
careers, within the first four years after university so anticipate change.

~~~
jmccorm
It's always nice to find a reply on HN that captures so much of what you
wanted to say. I came to that same perspective from a non-financial Fortune
50. After Y2K was when a very good chunk of those who got CS degrees for all
the wrong reasons (didn't have the raw talent or personal interest) got weeded
out. I've seen the same thing happen in other industries with a bust/boom,
such as petroleum.

Anyhow, OP doesn't sound like someone who's into CS for all the wrong reasons.
I personally wouldn't get focused on FAANG as the next step, but if they're
already going to an elite university, resume building with FAANG seems
reasonable enough.

Above all, having a real interest in what you're doing is one of the greatest
multipliers to your efforts... and your enjoyment.

~~~
JimboOmega
I was basically born into CS; there was no question even from Kindergarten
that I would ever go into another field. Got my first real full time job at
25, and it was mediocre, it was definitely not a FAANG paradise, and I
remember we worried a lot about getting off-shored in those days. I'm really
glad the thing I was naturally interested in turned out to pay so well.

Though I do wonder what do I (as an SF dev) offer that an offshore contractor
making 1/5th as much doesn't? Or heck never mind offshore, somebody outside
one of the big tech centers (like where I first worked after graduating). The
future of engineering always seems to be remote, but here we still are.

But you're right, the .com crash totally washed out a lot of the "HTML
Programmers" and their ilk, people who couldn't pass FizzBuzz but got hired
because they knew buzzwords and the hiring teams didn't know any better and
were desperate. I like to think today's FAANG interviews are good enough to at
least not repeat those mistakes.

Besides, I'll probably always worry I'm not worth my salary on some level
(impostor syndrome, yay) - it's hard to come to an objective conclusion on
this, anyway.

~~~
leetrout
I look at my skills compared to the earning potential of some other trades.
This is certainly not 100% accurate because it’s based on what I pay in more
rural America but I like it:

Barber - 3 cuts per hour @ $20 ea = $60 / hour

Mechanic - $60-80 per hour

Lawn Care - $40 / yard up to 3-4 yards per hour = $40-$120 per hour

Steam cleaning = $150 for a couch = $150 per hour (carpets are less)

Plumbers in East Tennessee = $60 - $80 per hour

Roofers = $40-60 per hour

So when I freelance I charge $75-$125 per hour without a second thought. If my
employer pays every developer on a 10 person team $120k that’s still paying
less than most mechanics would charge at $60/hour and a much better return
than $25/hr off shore with all the communication lag and issues and quality
issues. I never worry about competing with offshore. There’s a time and a
place for cheap “just get it done” help and it usually costs more in the long
run in delays and rework.

~~~
sybarita
You have a really distorted view of how much people doing these jobs actually
take home

~~~
cookiecaper
It's not about take-home for the individual, it's about the fact that the per-
hour price point at the point of sale, even for highly-competitive services,
bottoms out in the $80-100/hr range. You just can't really sustain a
legitimate business on less.

Lots of freelancers set their price with their salary in mind instead of
considering the several moving parts involved in running a business. It's
useful to consider that all the local small businesses around you, the type of
places that have already been competed down to the price floor, still need to
be making around $100/hr to stay afloat.

------
omarhaneef
CS isn't a career. CS is part of all careers.

I imagine when cuneiform was first invented, there was a group of people who
were the first writers and they probably worried that it would get saturated.
How can we all be writers? There are only so many things to write down:
recipes, shopping lists, the kings desires, and heroic tales. What are the
rest of us going to do?

But of course writing is just a way of expressing and recording. Writing
becomes an essential skill for law (and law itself is hundreds of
professions), or science, or "business" (which is a catch all).

Even within CS, I don't consider "machine learning", for instance, to be a
single field. Whether you are using machine learning to apply astrology to the
financial markets, or using it to diagnose diseases, makes a huge difference
to your career.

CS is a skill, but your career will involve other things: a specific set of
problems, a specific set of attempted solutions, a network of people who might
help you, brands you will want to be associated with, and half a dozen other
things.

~~~
0xffff2
Whether this is true or not, it's distinctly unhelpful for a high school
student trying to pick a college major.

~~~
ghostpepper
I interpreted this comment as saying that CS will always be a useful skill and
will never be saturated so therefore pick CS as your major if you are
passionate about it, without a fear that it will be saturated

~~~
seanmcdirmid
The CS market has definitely been saturated over the years, it has booms and
busts just like any other hot field. The 80s in particular were very hard on
programmers, not to mention the years after the dot com bust. Long term it
seems fine, but just beware it can be a riskier if more rewarding choice.

------
agentultra
I've heard of people going from a bootcamp course straight into Google and
optimizing 100% for the career path. They make embarrassingly more than I do,
have been programming for a scant few years, and I couldn't care less.

I've been programming for most of my life. I've poured hours into learning
6502, BASIC, 8086, C, C++, Perl, Python, Javascript, Common Lisp, Haskell...
to say nothing of physics, linear algebra, geometry, graphics, logic, type
theory, abstract algebra, category theory, information theory, databases,
networking, compilers, operating systems, interactive theorem provers,
distributed systems, etc. I've never even been to university or college and
I've been doing this for nearly twenty years professionally.

Do it because you like it, because it means something to you. Keep being you
and doing what you think is important and useful.

~~~
DoctorPenguin
How can you not care for people working in the top tech while probably not
even knowing half of what you have learned?

Would you say the same thing when you would be another field of work; like
medicine maybe?

~~~
agentultra
I focus on myself. Am I better than I was yesterday? Three years ago? Good.
Keep going.

We're not like doctors. There is no capital-P _professional guild_ setting the
bar for practitioners of software engineering. There are engineering guilds
that recognize software development as a discipline that will accredit you if
you meet their requirements and pay their dues. However it's often not
mandatory for you to be accredited in order to practice software engineering.
And it's not required that a company developing software employ a professional
software engineer in order to conduct business. So hardly anyone seeks out
accreditation.

In a free market you get companies like Google that need a large volume of
people trained with vocational skills to churn out code in the various
frameworks and tools. Doesn't bother me any.

I like to work on problems that are interesting and make the world a better
place. You can't always do that at a Google or Netflix.

~~~
mindfulplay
Curious, and being serious here, what problems are you working on and how do
you make the world a better place?

~~~
agentultra
At my present day job I make software for factories. My team and I make
people's jobs safer, keep machines running longer, and have improved food/drug
manufacturing safety operations.

On my evenings and weekends, when I'm not unwinding, I'm presently working on
Haskell libraries for type-directed data migrations, extending the community
fork of Lean to add FFI support, and working on a course in abstract algebra.

Making the world a better place is pretty easy and can start with small
things. I like visiting some of our customer factories and meeting the people
who use our software. It makes my day to hear their feedback and know that
it's making a difference for them.

------
lordnacho
There may be loads of people signing up, but I bet you've also seen a lot of
people dropping out. Once you graduate, you'll see a lot of kids unable to
find anything. Maybe not so many from your elite school, but for sure many
people study CS without "getting it". Or liking it.

Ultimately, you are gaining skills that will benefit you whatever you get up
to next. Just the simple fact that you know a bit about how computers work
will put you ahead in just about any white collar job, since pretty much all
those jobs have people staring at a computer all day. This is a lot more than
can be said for most majors.

If you do decide to be a coder, there's lots of stuff to do. There's no walk
of life that's far away from software these days.

If you're there for sheer joy, my guess is you'll find something you like and
where someone values your contribution. I wouldn't worry so much about FAANG
internships, the exagerrated focus on that seems to be something that's bled
from finance internships, where it is indeed important.

------
devinplatt
> I am currently in an undergraduate university considered "elite" in US.

As someone who went to community college and public university, and has worked
at FAANG companies, I think your perspective is heavily influenced by your
current environment. In elite schools there is a heavy selection bias for the
type of classmates you describe.

~~~
TrackerFF
Absolutely.

I went to a small no-name school for my engineering degree, where people
didn't give two sh!ts about prestige or band names. Most of my class-mates
ended up with above-normal paying jobs in small companies, and the rest at big
multinational companies.

Then I got my MBA at a top school, and the culture was completely different.
The majority seemed to be driven go-getters, viewing the job market / their
careers as go big or go home.

They usually follow the safe bets, and flavor of the decade - which right now
happens to be tech.

~~~
cylinder
reflects poorly on FAANG hiring practices more than anything. how are they not
sniffing the phonies out?

~~~
nuclear_eclipse
"Elite" schools literally have classes devoted entirely to teaching students
how to pass FAANG level interviews.

~~~
hrishid
What are you referring to? I go to an “elite” school and haven’t heard of
anything like this.

------
trashface
Age discrimination is real. If you choose a programming career and don't enter
management, then when you are 40+ you might find that you have trouble getting
hired for a decent paying job, even if the industry otherwise appears to be
booming. When I was studying CS 25 years ago I didn't even think about the age
problem. Even if I had, it would not have seemed real at that time, but its
real now.

That said, I don't know what else is a good career now. Perhaps primary care
physician. I understand there is a shortage of them, but it's also the least
paid medical profession. On the other hand, in the future few people may be
able to afford most specialists. I already avoid going to them due to high
copays.

Generally it seems like the US employment situation is getting less stable
over time. But I admit my outlook is rather pessimistic.

~~~
2rsf
> when you are 40+ you might find that you have trouble getting hired for a
> decent paying job

I am surrounded by talented people over 40, none of whom had problems finding
a decently paying job.

I am aware that there's some level of survivor bias here, bad or mediocre
developers have dropped along the way.

To be fair those developers tend to work anyway in places that pays less and
on not top-of-the-line products.

------
anon9001
It entirely depends what you're trying to do. If you want to make a bunch of
money, it's unfortunately more about politics and luck than merit.

If you're trying to maximize income, you should focus on understanding
finance/business and building soft skills. You're probably over the threshold
of how much you need to know about computers. Maybe get some training on how
to work better with others, or how to negotiate effectively. In other words,
soft skills are going to be the value you have over your peers that have been
cramming CS for the last 4 years.

> I've been coding for half my life, out of pure interest for the building
> things and never got into it for the money.

The reality of working in tech is probably similar to what you've already
experienced: Lots of people working with computers, but most know less about
what's going on than you do. I was kind of shocked by this when I started
working, but now I realize it's because most people don't need to care about
how their tools work to do their job.

~~~
shantly
> If you're trying to maximize income, you should focus on understanding
> finance/business and building soft skills. You're probably over the
> threshold of how much you need to know about computers. Maybe get some
> training on how to work better with others, or how to negotiate effectively.
> In other words, soft skills are going to be the value you have over your
> peers that have been cramming CS for the last 4 years.

This. Outside of FAANG(-alikes) and some finance software work, the real money
remains on the business side. Managing others. Presenting & selling ideas.
Communicating. Knowing some computer shit is a big bonus but isn't what'll get
you the big bucks. It'll usually get you the medium bucks, though, before
topping out, which ain't the worst.

You'll also need that to go independent (start a business, start a
consultancy, high-end freelancing) which is a third way (pure Tech in a
handful of businesses; tech + people skills anywhere else; be your own
employer) to make _real_ money doing this stuff.

~~~
anon9001
> It'll usually get you the medium bucks, though, before topping out, which
> ain't the worst.

Can confirm. I make medium bucks. The way the economics work, it made more
sense for me to make medium bucks remotely in a cheap CoL area than it did to
try and get big bucks in a major city.

~~~
swagasaurus-rex
I think what he means by big bucks is ownership.

Salaries top out at... $200,000 for non-specialized professions, $500,000 for
the best of the best...

Compare that to the capital gains made by people who are owners of businesses.
Or other large capital investments.

~~~
anon9001
He does. The thing is you have to hang out with the right people, and even
then it's a low percentage chance that you'll become an owner.

------
patorjk
> honestly makes me worried about the future of the field in terms of whether
> it'll still be a good career in the future.

I had the same thoughts back in the late 90's and early 00's. Everytime I told
someone I was interested in CS, they thought it was because of the money.
While working on the major many people told me my job was going to go overseas
and that the future was in managing developers. In fact, during my first
internship, my boss thought that way and said in the future programming would
be done by low paid individuals overseas or that programs would be generated
by computers from flow diagrams (which she liked creating).

Things turned out differently and the field has grown and only become more
lucrative. I only see the number of jobs for CS majors growing, and I actually
wonder if there will be enough good programmers to fill them. Not everyone can
write code, and I still run into developers who can barely code. If you're
good at coding, you can go far.

Additionally, I really enjoy programming. It's fun and rewarding to solve
problems and to build things that people use. If you're good at coding, I
wouldn't worry about the future, I see it being very bright.

~~~
phkahler
>> While working on the major many people told me my job was going to go
overseas and that the future was in managing developers.

I had a friend in the 90s tell me the entire workforce in the US was shifting
to management. Everything will be outsourced and people here will just manage
everything. This was an MIS major drinking the business school koolaid. I
thought it was rather arrogant to think China or India could build anything
under the sun but wouldn't be able to manage people and run a business...

20 years later many the companies that followed such thinking are gone or
having problems.

~~~
Gibbon1
I'm pretty sure the current spat with China is due to the Chinese gaining
traction in a) Branded products. b) Product design. c) Distribution. d)
Finance.

~~~
iliketosleep
No. It's China's market protectionism and one-way trade practices. For
example, many products of major US companies are banned in China (think Google
and Facebook). Whereas Chinese products are able to enter international
markets with minimal barrier to entry. There are many more barriers for an
American company to enter the Chinese market than the other way around. This
is just part of it, there are many more aspects.

------
_bxg1
There's definitely been a huge influx of people jumping on the CS train for
the money recently. But the thing is, from what I've heard, there's _still_ a
huge gap between how may programmers are needed and how many there are.

Now, this state of affairs won't last forever. Eventually the market will
level out. But I would guess we have at least another 5-10 years until that
happens, and when it does happen, it won't mean the field crashes. It'll just
settle into a more realistic state. Jobs that are "easy if you can understand
code at all" will be the hardest hit. You might not get paid 6 figures to
throw together simple web pages any more. Jobs that are intrinsically hard
will be fine.

So my plan is to stay ahead of the tide. To push myself, get good at my craft,
and get into a sub-field that's _hard_ instead of resting on the current boom.
Then, when things shift, hopefully my value will speak for itself.

In summary: yes, things right now are too good to be true. But that doesn't
mean the whole _field_ is a bubble. CS is very necessary in our world (and
increasingly so) and there are lots of very hard problems out there to solve,
it's just that there are even more easy problems.

Edit: Here's a source I found on Google (I don't know the source firsthand,
but it seems credible enough at first glance)
[https://www.daxx.com/blog/development-trends/software-
engine...](https://www.daxx.com/blog/development-trends/software-engineer-
shortage-us-2019)

~~~
torgian
I think this is mostly true. People are still going to want custom pages, etc,
but that's why _now_ is the time to "git gud" at building stuff. If you become
a wiz, you'll be on the list of consultants for Company X to hire.

And as for everything else... lots of industries need good problem solvers
that are in the CS field. I'm going to be getting a Masters in Geoinformatics
because it interests me, and it just happens to be a more niche field than
others. I think this will help me in the long term as well.

------
arcticbull
> I've been coding for half my life, out of pure interest for the building
> things and never got into it for the money.

This gives you years of valuable experience and insights your colleagues won't
have as they switch in from finance.

> CS career being obviously a good choice and every smart kid I know majoring
> in it, mostly for the cash, honestly makes me worried about the future of
> the field in terms of whether it'll still be a good career in the future.

It's been this way for ages. What the folks switching in don't realize is
those folks won't get hired at a FAANG because people like you have a decade
of experience on them, and there's only so many spots. So long as there's more
folks like you than spots the rest is noise.

> I think smart people will do good work, just for the wrong reasons ($) and
> this might impact the field negatively.

Only if they get hired :) Once you're aboard you get to help shape who makes
it in after you. If this is something you're passionate about, get involved in
recruiting and hiring. Bring in the folks with non-traditional backgrounds who
are amazing, and leave the switchers aside.

> In 5 years maybe things will still be okay, but if the trend continues for
> 10 years? Will CS become unsustainable hours like working in the quantitive
> funds or unsustainable competition and workload like in medicine, or both?

It already is. It's been like this forever, and will likely remain like this
anywhere competitive, and at every start-up. Work-life balance is lip-service
at most companies certainly as you level up (exponentially more so the smaller
the company).

------
d-d
Unpopular opinion: it's not a good career unless you are the best of the best.

IMO blue collar work is a better option because it's easier work and more
stable, and lets you have a life outside work. In software the hours are
increasing to no real benefit, and free time is burnt just keeping with the
times. The evolution of tools, best practices and high availability of quality
knowledge has made it trivial to spin up new hires which makes everyone highly
expendable; not to mention that there are now millions of unwashed masses
happy to accept lower wages just for their chance.

There was a HN post a while back where some guy was begging to pay for a code
job. What does that tell you? Software workers are also now pitted against a
global market with outsourcing and programs like H-1B which has raised the bar
by increasing the pool of highly educated candidates and people who commit
resume fraud. They're likely also more willing to work long hours for less pay
just to be in the US. Software wages have also stagnated for ten years.

~~~
lucb1e
> IMO blue collar work is a better option because it's easier work and more
> stable

Did you ever do blue collar work as well as software engineering? Because I
have no idea in which version of this world physical labor is preferable over
a chill 9-5 desk job that typically comes with a higher salary. Unless free
medical issues is your thing, then physical labor is absolutely the way to go.

I did hear some horror stories of programming jobs in Spain where someone got
unlucky with their employers, maybe this is based on one or two of such
stories or experiences? I'm sure there are also good workplaces in blue
collar, even if they're few and far between, you might have gotten unlucky in
software development and lucky in blue collar.

I'm honestly wondering if your comment is part of an experiment with whether a
thoughtful-sounding but incorrect comment, starting with a disclaimer like
"unpopular opinion" to make it sound like an opinion rather than a statement,
can be accepted by the community as correct.

~~~
ClumsyPilot
A job does not become 'chill' just because you get to sit on your arse in a
chair. There is plenty of stress in 'office jobs', enough to lead people to
suicide, drugs, and dying of exhaustion - in UK that happened to an unpaid
intern in banking.

Your mind is a thing in itself and the social environment matters much more
than whether you get to sit.

I am quite happily to do weeks of home repairs, soldering. Electronics
assembly, etc. Ofcourse thats not hard physical labour, but neither is most
blue collar work.

~~~
lucb1e
> in UK that happened to an unpaid intern in banking.

Note that events, in general, must be rare to make the news. In this case it
sounds like it's not even a new trend they're reporting on but a single person
in all of the UK. For all I know, that person was going to go off the rails
regardless of what job they had (most people doing office jobs can handle an
office job, either by dealing with it or deciding to do something else, so why
couldn't this intern? I think you'll agree it's just not representative).

But of course, that doesn't make your comment wrong. You're right that I
overstated how chill an office job is and I agree with the rest of your
comment.

Doing an office job myself and knowing a lot of people that do, I know it can
be plenty stressful, and sometimes very stressful for a long time. It's not
necessarily chill just because you sit down. Mental problems can be just as
bad as or worse than physical problems, total agree there.

But even though the best blue collar workplaces will surely score better than
the worst office workplaces, I think that the average for an office worker is
better pay, better benefits, better health, and higher job satisfaction.
Therefore I do feel like the person I was replying to is either trolling (or,
as a variant of that, testing with different comment styles to have
controversial content accepted, but Hanlon's razor probably applies instead),
or saw only outliers.

------
nknealk
I'll throw this advice in because it's served me well in my career. Somewhat
related.

1) You can be a big fish in a big pond with other big fish (eg FAANG). Or you
can be a big fish in a pond with small fish (think like a regional grocery
chain). Try both to see which makes you happier. There are tradeoffs in both
cases.

2) Your boss and the people you work with (ie your local context) is often a
much stronger determinant of your happiness than what company banner you're
under or your specific title.

3) Try looking at things outside of tech/engineering orgs for places where
tech applications would create value. A good friend works in supply chain
optimization with a CS background. He tells me that basic automation and data
analysis on CSVs larger than what Excel can open is seen as wizardry. He's in
great standing in the org and is seen as invaluable.

~~~
rezgi
> Try looking at things outside of tech/engineering orgs for places where tech
> applications would create value. A good friend works in supply chain
> optimization with a CS background. He tells me that basic automation and
> data analysis on CSVs larger than what Excel can open is seen as wizardry.
> He's in great standing in the org and is seen as invaluable.

Where and how do you find these kind of jobs? Anyone I know who works in this
kind of non-tech company hates it because it's a cost center and they get all
the negative side of our profession (no budget for anything, outdated/poor
tools, unreasonable expectations and deadlines, and no respect from the rest
of the org overall)

------
davidgay
When I chose to major in CS, I got a nice letter from the university
suggesting that maybe this wasn't the best choice, that too many people were
picking this, that it would be worth considering other majors.

This worked - I can't quite remember the numbers, but probably the entering
class was 2/3rds the size it would've been otherwise.

And clearly, it was going to be a terrible idea to graduate in Computer
Science in 1992, so who can blame them? The field had clearly hit its peak by
1987... (this was in Switzerland, on a 4.5 year degree program)

~~~
PlanetRenox
While I really enjoy how you framed that, I want to add that I still do
strongly believe that things are going to look much different in 2025. Reports
predicting it as the year more than 50% of normal workplace jobs being taken
by AI, I believe the goalposts are going to morph into something we do not
have the capacity to imagine yet.

I'm a student too similar to op with 1.5 years left to graduate, yesterday I
got shivers waiting for my appointment with my advisor. Phone call within
seconds of phone call, the receptionist was getting calls about students
wanting to change majors into cs.

------
jlangemeier
CS is already in the realm of unsustainable hours: crunch times that last for
months; "free time projects" to get hired; everyone encouraged to have side
hustle start ups, freelancing, or consulting work. And this is all doubly so
for anything FAANG or FAANG adjacent.

As for unsustainable competition like medicine, what do you think the
needlessly ridiculous hurdles are for interviews (whiteboarding, regurgitating
interview specific algorithmic questions that most people don't need to deal
with outside of their CS courses, in vogue requirements that don't necessarily
match job duties, etc). And, medicine is a bad comparison, due to it being in
the realm of forced scarcity; enrollment caps for medical practitioner
programs create a bottleneck in the pipeline that hurts the system (so those
only motivated by money don't even make it through regularly - you at least
need the study skills and interest to push through the hours needed to get
past the various gates in the programs).

Just from my experience: Dev Ops for most companies doesn't need K8 clusters,
running Docker instances, on your cloud host of choice, autobuilding through a
cloud CI that has autohooks into your company's private GIT repos; no, they
just need something, __anything__ that will provide them good enough uptime to
keep their current customers and to gain new ones; and sometimes all they need
is someone with a bit of domain knowledge that has strong computer skills so
that their marketing department isn't also their IT department. Data Science
for most companies isn't the newest deep learning algorithms but simple ANOVA,
linear regressions, and decision trees to gain basic insights that they
haven't had the resources to explore yet; and most of the time that's going to
be on Finance, Accounting, and HR data (since your intake and output in
dollars is the big quantifier for most decisions).

Lastly, both PG and Thiel's thesis statements in these blogs are more about
leading edge creators, not Bob the junior software engineer at Widget Corp;
and doesn't apply to even most of the people on HN (no matter how much each of
us thinks it does).

~~~
davidajackson
>> "free time projects" to get hired

these are the companies to avoid in my experience

~~~
jlangemeier
Yup mine too, but that rules out a lot of FAANG adjacent companies and start-
ups which isn't tenable for some peoples' interests. I gave up on that chase
for stability, weekends and holidays actually off, no on call schedule, and
long term benefits.

------
commandlinefan
I’ve been thinking about that a lot myself for a few years now, since my
16-year-old son is talking about majoring in CS when he gets into college in a
couple of years - he’s even optimizing his high school courses to maximize his
chances of getting into a good program in a good school. Having worked as a
programmer now for nearly 30 years, I see programming devolving as a career
more and more every year: now we have open offices, scrum (i.e. micromanaging
project managers), unpaid overtime, constant downward pressure from foreign
competition and of course, nothing resembling job security: the older/more
experienced you are, the _harder_ it is to find a job, which is apparently
unique to programming. On the other hand, I don’t know what else to tell him
to do - it doesn’t seem like there’s much else out there.

~~~
malvosenior
It's pretty much always been that way though. Death March was written 20 years
ago:

[https://www.amazon.com/Death-March-Developers-Surviving-
Impo...](https://www.amazon.com/Death-March-Developers-Surviving-
Impossible/dp/0130146595)

I'd say the demand for programmers is higher than ever and pay is definitely
higher overall. 20 years ago $150k was a good salary for a programmer, now
it's more like $350k.

~~~
fg6hr
(350/150)^(1/20)=1.04. Slightly better than inflation.

~~~
ClumsyPilot
Can't upvote this enough. People on HN keep talking about importance of
statistics and differential equations, yet can't take account of inflation
when talking about salaries from the previous millennium.

~~~
joelfolksy
[https://www.usinflationcalculator.com/](https://www.usinflationcalculator.com/)
\- Headline: no.

------
kerkeslager
I think that people who think money is a wrong reason to do something end up
spending more time and effort getting money because they don't bother to come
up with a system for making it efficiently. Which is a bit ironic. If you
really don't want to care about money, make it efficiently so you can spend
less time on it.

If I were to do it all again, I'd do something that produces more passive
income. You can make a lot of money working for FAANG, but you are going to be
working hard and for long hours. It's not an easy job, and it's fairly
pointless to have money if you work away all your best years. Programming is a
service industry, and real money comes from owning things, not from doing
things, because things you own make you money even when you're not doing
anything. Sure, you can go off and create an app that creates some passive
income but it's a crapshoot whether you'll actually be profitable.

They aren't making more land, and everybody needs somewhere to live. Real
estate requires little education, the legwork is mostly looking at places with
people. It's not a glamorous job but it gives you the time to do what you want
with your life.

~~~
andreilys
“ You can make a lot of money working for FAANG, but you are going to be
working hard and for long hours. It's not an easy job, and it's fairly
pointless to have money if you work away all your best years. Programming is a
service industry, and real money comes from owning things, not from doing
things, because things you own make you money even when you're not doing
anything. ”

Except the principal you earn from your FANG job can then be used to purchase
income generating assets (equities that produce dividends, real estate, etc.)

It’s not uncommon to save $50-100k+ per year which can then be put to work
making money for you. This is still one of the few industries where if you
start working at 22, you can achieve financial independence by 35-40 years old
with fairly high probability.

------
toast0
People who are in CS for the money are probably not going to stay in CS long
term. There's plenty of ways out for people who don't enjoy the work
(management of people or products, technical writing, possibly design).

Certainly some people come for the money and stay for the experience. My best
advice for internship applications is try to have some interesting project on
your resume --- preferably one of the things you've been working on outside of
class, but mention interesting class projects if you can speak to the whole
thing. And get the interview basics down -- clean clothes, appropriate clothes
(ask recruiter/scheduler what people wear to work and match the fancier end),
arrive 10-15 minutes early, try to be relaxed, etc. For video or phone
interviews, if you can find a quiet place with no distractions, that's best.
It helps to do practice interviews, which could be for local companies you
might rather not interview.

You didn't ask for interview advice, but I just mention it because I've
interviewed some intern candidates, and it's always unfortunate when the
candidate seems very unprepared or having a bad day, but may have been a good
fit.

~~~
martinesko36
I'm almost certain I'd never do an internship. It's not a way to optimize for
learning and personal growth. And definitely not a whiteboard generic software
engineering. Lots of things about internships in the tech field put me off. If
it is a startup, I have had a startup, high chance it's a shitshow. FAANG,
don't think so. Also what meaningful work can you really get done in 3 months?

I feel like internships are a good way to learn if you haven't already been
coding in the real world or on the subject matter and a good resume item, but
if you have a good resume already and coding experience there are much better
alternatives.

~~~
tashoecraft
It’s partly about working in a professional environment. You can get a 4 year
degree and never use git, never work on a single codebase that has existed
long before you came and will exist long after you leave. There is so much
experience from just working in a professional setting that can greatly boost
your resume. We take caution hiring people without this experience as it can
be impossible to teach this to someone when teaching them tech skills is
easier.

~~~
frizkie
> You can get a 4 year degree and never use git

Having graduated about a year ago, this is the craziest thing I noticed about
so many of my classmates. It'll be trial by fire for sure.

------
AareyBaba
CS is not just about {IT, web frameworks, mobile apps, javascript, python,
java, SQL, noSQL}

CS is not just work at Google, Facebook, Twitter and San Francisco software
unicorn startups.

CS is universal fundamentals of computation, algorithms, data structures that
can be applied in multiple areas.

With a CS degree you can work in biochemistry(simulation), genetics
(bioinformatics), mechanical engineering(finite element analysis, modeling),
Hollywood visual effects (simulation, graphics), medicine (scanning software,
visualization), Oil & Gas exploration (data analysis, visualization),
semiconductor engineering (algorithms, design automation, simulators),
automation (computer vision and machine learning).

CS is not going anywhere - it is fundamental to modern technology.

~~~
MaximumYComb
You also forgot to add in cybersecurity. It requires in-depth knowledge of how
computers are operating and a lot of outside the box thinking.

~~~
AareyBaba
Yes - that's an increasingly important one. Add cryptography too.

------
poulsbohemian
CS is a fantastic undergrad path of study because it is fundamentally a degree
in systematic thinking and problem solving. So, regardless of where you go in
life, you'll have acquired useful ways to categorize and approach problems.

Otherwise, rather than worrying about whether you are in the right major,
think in terms of "what kind of problems do I want to work on in life?" If you
can answer that, you'll be on the right path. And, if you think the kinds of
problems you want to work on don't involve technology or aren't solved by
technology, then either switch majors or add a second major that augments the
skills you need for the problems you want to work on.

------
unnouinceput
Let them do CS, let them become coders for the love of money, and even support
them. Meanwhile you keep coding and become good at it. Then when their
employer(s) will hit hard times, present yourself using the network you
developed through your friends. And do contractor jobs, for real money. They
will get paid good money, you'll get paid real money. They will sell their
souls for money, you'll rack in the dough. Welcome to the freelancers club,
best there is.

------
ryandvm
I started playing with computers in middle school as a hobby and it basically
morphed into a career. I've been in the industry since the 90s, well before
everyone realized what a lucrative career it can be. And I saw the same thing
- the field became flooded with people who were only chasing the money.

My advice to you: don't worry about it.

Do not underestimate the competitive advantage you have if you are passionate
about software development. The people that are chasing the money clock out at
5. There's nothing wrong with that, but they aren't trying to teach themselves
Haskell on a Friday night just for fun. You will work harder than those
people, not because you're scared, but because you love the work. And that
experience will lead to career success. It doesn't happen overnight, but
skilled and passionate people do bubble up on the food chain (assholes do too,
but such is life).

~~~
martinesko36
What I see is a subset of people who chase the money who are actually very
smart and willing to work hard for it in the long run - think those high
schoolers who had to be type A students to get into Ivy League with 4.0 GPA
and SAT scores so perfect they still put it on their resume.

~~~
analyst74
Type As don't tend to get into engineering, and even if they do, they'll
quickly realize it doesn't bring them as much status, influence or whatever
they're seeking as they thought.

Very few companies are engineering driven, some are product driven, some a
finance driven, some are sales driven, and the respective department will have
more clout than engineering.

------
navd
It's still a great idea, and the fact that you have more experience and a real
passion for it means that you'll most likely out compete your peers.

The best piece of advice I can give is that at the end of the day, do what you
feel is best for you personally and don't pay attention to what your peers are
doing. The programming landscape is LARGE.

------
antoniuschan99
The prediction that everyone should learn to code is basically happening more
and more now.

I work at a bank and the business guys are finally coding. They’re using VS
Code, Python, Jupyter Notebooks, React, and JS. I doubt they’ll get into
Hadoop Spark or Java.

Their depth of knowledge will never be as deep as a CS major, but it’s a good
pause to think of a field to specialize in where you will be utilizing CS to
solve things.

~~~
vonseel
I'd like to know why business guys are _writing_ React (or even JS). I can
imagine why they might write Python and use Jupyter Notebooks, but React seems
a little further out there, maybe they are prototyping some in-house
applications or writing their own little apps for some small use case?

~~~
antoniuschan99
Yes, it’s a PoC. They want a UI for the calculations they wrote in Python.
Eventually the devs will take over. But the fact they’re even using React and
NodeJS now is something to think about. But also it’s more of the technically
minded business people who will have the initiative to do this.

------
Pandabob
It's still a very solid career choice and probably will be for the foreseeable
future. AFAIK, Thiel has a thesis about how most innovation in the past 50
years has come in the world of bits and not atoms. This seems unlikely to
change in the near term as half of global population isn't on the internet and
there are still productivity gains to be made in many industries by digitizing
processes or rewriting legacy codebases.

If you're still an undergrad you could also think about some of the adjacent
fields where having CS knowledge is a benefit. These include (applied) math,
physics, economics and biology.

I majored in physics, but if I could do it all again I'd probably study equal
amounts of math, economics and CS.

------
fogetti
OK, so this will all be anecdotal. But what I am describing is not that
uncommon. And I only worked for a very short time in the US. So if you plan to
stay in the US for your whole working life than this advice might not even
apply to you at all.

What you are asking and describing is happening right now. In some places
around the world the industry is already an unsustainable shit-show, which
offers zero financial incentive to a CS undergrad. Some such countries are
Japan, Germany and Hungary.

The working hours are extremely long!!! You have to work 60 hours or more most
of the time, but managers will try to sell it as a big plus (like, look you
can go to all these flashy conferences and you can have kicker table + free
buffet, you just have to work hard in exchange) even in face of concrete
evidence that the industry in large is to the detriment of your well-being
mentally and physically. This management technique is also called stick and
carrot.

Also there is real age discrimination. Especially in startups. So it's really
difficult to get work-life balance if your life does not revolve around the
actual business that your company is doing.

If you can put up with all this shit, and you can save enough money let's say
in 10 years so that you can quit, then it might be a good idea to pursue this
kind of "career". But again, what kind of career is that sets it's goal as
quitting in a reasonably short time.

Salary-wise your payment is gonna be slightly higher then let's say a simple
journalist, accountant or let's say an average salesman, but not that great,
and because of the long unpaid overtime you will basically get a quite low
amortized salary.

------
meritt
> I've been coding for half my life

If you already know programming and you're confident in your ability to
continue self-teaching, I'd suggest you actually do a _different_ route. MBA,
Finance, Accounting, Medicine, Chemistry, Physics, etc. e.g. A good programmer
who has a strong understanding of finance will do significantly better in
FinTech than the programmer who has spent 4 years practicing CS theory.

If you want to make a real difference, learn a specific field and then use
your technical skills to help them solve problems in ways they never imagined
possible.

~~~
jlangemeier
I can't find the article now, but that was actually a suggestion I really
liked; don't learn CS in college, learn History, learn Math, learn anything
else, because someone who can program are about a dime a dozen; but a
historian that can also program is unique. The domain knowledge is so much
more important than the tool used to explore it - and having both is a golden
ticket.

------
bdcravens
My take: in the late 90s/early 2000s, we saw a lot of the same.

The good times: the passionate rose above the income-chasers because there was
a lot of mediocrity

The bad times: So many people washed out and probably haven't come back. The
passionate had less competition.

The anti-fragility of it all: When the economy turns bad, companies look to
software to optimize costs. (not exactly the same thing, but I was hired on as
a contractor for a logistics company while they were in the middle of Chapter
13)

~~~
microtherion
> in the late 90s/early 2000s, we saw a lot of the same.

And I saw a lot of the same in the mid 80s, when I started in college. I
remember talking to one of my classmates, who originally wanted to be a Phys.
Ed. teacher, contracted a back injury, and decided that there was good money
in CS.

If you're passionate about CS and dedicated to acquiring and maintaining
skills, I think there will be a good career in it for a long time.

Out of curiosity, what would have been your plan B? Off the top of my head, I
can't think of any profession that would _obviously_ guarantee more long term
stability.

~~~
bdcravens
I would have done something in business, in accounting or the like.

~~~
microtherion
Sounds pretty solid to me, but (a) do you _enjoy_ accounting? (b) that may be
a job I could see as potentially vulnerable to AI.

~~~
bdcravens
I actually did. Something about the balancing of double entry accounting was
oddly satisfying to me. While I agree much of it can be automated away, it
seems there's no shortage of companies that still struggle with profit/loss
and balance sheets.

I also remember really enjoying business statistics. (I was a pretty terrible
college student with regard to discipline - both biz stats and accounting were
rare courses that held my interest, as well as being classes where others
seemed to struggle while I did very well)

------
pnathan
I think it'll be pretty good career until some kind of tipping point is hit.

My suggestion is to become excellent at CS, get an internship, then specialize
in a fascinating area of forward-looking work (don't study COBOL. :) ).

also if you love coding, keep on keeping on. if you wind up making average
income, _that 's ok_.

~~~
timothycrosley
It's funny you say this. I've always had a suspicision that every budding
programmer I encounter studies forward looking things, and if a young person
did study something ancient like COBOL, they'd probably have great job
security and stand out for the few companies that need that kind of developer.

~~~
cr0sh
Speaking of COBOL - the next "big thing" of that nature is likely going to be
Visual Basic 6.

It's an albatross around Microsoft's neck, but every time they update Windows,
they keep around the runtime DLLs - because so many businesses have software
written internally and otherwise that can't migrate to something else.

If you know VB6 - and you are confident in migration to another platform, or
willing to maintain old code (maybe while migrating) - you'll likely have work
long into the future.

The most likely migration path would be from VB6 to VB.NET or to C# - staying
on the Windows platform. Another option would be migration to GAMBAS or Mono
(aka .NET for *nix).

Those feeling adventurous might try Python with QT, or some other GUI
framework; at some point, it might be better just to examine and understand
the core logic and flow - then convert it all over to a web-accessible system
(of whatever choice you want).

I imagine that in time we'll see some kind of VB6 to WASM compiler or
something, if someone hasn't already taken a stab at it. What we won't see,
though, is Microsoft open-sourcing VB6 or anything like that. They've said
they want to, but due to the various licenses used in the development of the
language (and components) - it's virtually impossible for them to do it.

I coded in VB (3-6) for well over a decade, but it's been forever since I last
touched it. That said, I'll always have a soft-spot for BASIC (having grown up
on a version of Microsoft BASIC on the TRS-80 Color Computer line) - so I
could probably pick up where I left off once I rebooted the VS compiler/IDE,
without too much trouble.

I expect that might be where my career turns to as I get older (currently 46
and working in SPA Javascript/NodeJS apps).

------
fierarul
> I've been coding for half my life, out of pure interest for the building
> things and never got into it for the money.

Since you are passionate about programming you'll probably be miserable in
many other fields, say, medicine. So you have to include CS in your future.
But maybe you could minor in something else?

When I was in school we had an actual doctor come to our class since he needed
IT knowledge to manage an IT grant their hospital was taking.

In many ways IT / CS knowledge is worth more if you do it on top of the actual
job. Very few people like this.

I think a good career is one where people come to you. You have to be very
skilled or popular for companies to come rushing to you when a system crashed
or something. Otoh, people will rush to a doctor or mechanic or attorney, etc.
Accounting is also very logical and companies need good accountants.

------
thrower123
CS is probably one of the best fields to be in if you like doing it and you
don't want to shackle yourself to the law/medicine/finance treadmills, with
the expensive extra years of schooling and insane hours for the first years.

There's probably not a better path to a comfortable middle-class lifestyle.
Just stay out of the Bay area; there's tons of jobs in second and third tier
cities with reasonable cost-of-living that will pay you a hundred grand after
a few years.

------
ladybro
I went into CS without ever having programmed before and consider it the best
decision I've ever made.

As others have said, CS gives you a framework for analysis and problem
solving. That framework can be applied to almost any other problem in life.

------
thorwasdfasdf
If you're from an elite university, then you'll have a good chance of getting
into a FANG. A SE at a FANG will make triple as much as a SE for most other
companies, so do try your best to get into a FANG. If you're smart, You might
be able to earn 400K or more in just 5 to 8 years.

However, if you don't get into a FANG, it's not the end of the world. You
might still be able to find another job at another software company if you're
lucky. As the years go on, it'll be harder to get job due to the rapidly
increasing supply of engineers.

The US has not hit peak SE demand yet, so don't worry, those days are still
far away from now.

Oh and don't worry about wrong reasons. I know I'll get downvoted for this
because it's politically incorrect, but: Working for $$ is the primary reason
for work. If you didn't need to make money, then you don't need a job, you
could just program on your own time whatever you wanted and have a hell of
alot more fun than working as a SE.

~~~
uwuhn
>However, if you don't get into a FANG, it's not the end of the world. You
might still be able to find another job at another software company if you're
lucky. As the years go on, it'll be harder to get job due to the rapidly
increasing supply of engineers.

And the great thing about FAANG is that it's only easier to get in as you gain
more experience. You're not screwed if you don't get in as a new grad or
junior.

~~~
opportune
Kind of, but if you want to have the highest comp at a certain time after
graduating, the sooner you join FAANG (or similar places like Airbnb) the
better. Because if you join at 10 YOE you will probably be downleveled
compared to most people who started out there. Not that it’s a huge deal, but
just something to think about.

~~~
bcrosby95
I don't know about other places, but Netflix is pretty good at bumping your
pay rapidly. A friend of mine that was working in education went to Netflix.
He started at around 180k and hit 350k by a year then over 500k just another
year later. After a total of only about 5 years he's making close to 1mil.

------
keithnz
Be careful about any narrative of what your life should be. You should enjoy
life, and if you enjoy programming, optimize your career to do things you
enjoy. CS isn't FAANG. There are many many many many companies around the
world doing all kinds of interesting stuff. I'm 48, I've worked for big and
small companies often in the electronics/mechatronics/software world. I know
I've done far far more diverse stuff than most people I know who work in large
organizations, and get to make super critical decisions that change the
destiny of a company. I enjoy that. However people in larger organizations
often get to laser focus on one specific thing and put a large amount of
effort and thought into it, that can be good too. Good news is, you can make
money whatever way you want to go, just be prepared to adapt and change over
time

------
nscalf
Someone capable of making an app, website, software used inside of a company,
script that gives a company insight, or whatever else you could possibly think
of can make a 6 figure company on their own within a year for nearly zero
dollars. This is not going away. If you think everyone will go into software,
GOOD! We need more people in software, we have too many people doing less
important or lower leverage things.

Beyond the competition, a skilled person in CS is much easier to
differentiate. In the same thread though, being able to build any company you
think of in your garage for peanuts means you can do the most good or work on
the most interesting things you can imagine at cost. It's much much harder to
have massive impact without a CS background if you haven't had huge success
already.

~~~
iliketosleep
> Someone capable of making an app, website, software used inside of a
> company, script that gives a company insight, or whatever else you could
> possibly think of can make a 6 figure company on their own within a year for
> nearly zero dollars.

I think you are overemphasizing the importance of technical skills in the
context of starting a business. Marketing and management skills are far more
important. I have seen people with zero technical skills start successful tech
businesses by means of their business acumen. They hire contractors to do the
tech work.

On the other hand, there are exceptionally talented engineers who spend a year
or two developing a successful product, yet the product gains minimal traction
and they end up working for the type of individual that I mentioned above.

~~~
nscalf
If you have any capacity for those things though, they're far easier to learn
and practice with. It takes years to become good at building products, but
I've gone from almost no knowledge to being good enough to manage a product's
marketing/advertising in just a few months. But I disagree, I think having
technical skills is the most important part to starting a business. You can
test as many things as you want before committing, you can build a project
you're committed to for "free" (no cost out of pocket, just your time) until
it's ready, etc. I don't want to understate the value of the non-technical
roles, but I don't think you can overstate the value of being able to own the
entire tech stack yourself.

------
dasil003
It's definitely the case that the social climbers, lifelong hoop-jumpers, and
paint-by-numbers careerists are flooding into tech. Who can blame them? And
these type of people definitely dilute the engineering talent pool. As
annoying as this may be to those of us who came from more traditional
hackerish backgrounds, this will likely self-correct at the next major
recession.

In the meantime don't throw the baby out with the bathwater. The bottom line
is technical knowledge is power in today's world. You can take CS and pivot
into any career you want, and if all you want to do is build cool stuff, well,
it's never been easier!

------
rconti
3-5 years is an incredibly short horizon.

I got an Information Systems major just after the .com crash. I did it because
I liked it. The major had gone from 100+ to just 8 in my graduating class.

If it's not obvious, the industry has recovered since then.

------
lucb1e
> every smart kid I know [is] majoring in [compsci]

At least, every smart kid in your bubble. You did mention you've been
programming for a long time.

I know that my friends are mostly gotten through that "career": first
programming forums, a nerdy open source game, then through doing IT studies
and friends of friends, now through work and hacker spaces. Trends that I see
and opinions that I think are generally held, are probably just happening in
my bubble. I would expect that your "ever smart kid does this already" is also
quite biased.

------
rb808
Its one reason I avoid doing too much front end work. There are so many
bootcamp people now and most are good enough if they're motivated. I don't see
how these high salaries can last.

------
lsc
The other thing I want to mention is your negativity towards chasing money.
It's... well, it's a tell for someone who either is rich or is trying to sound
rich. For most of us? The money and security is the first goal when choosing a
career. It has to be, for most of us.

I mean, sure, if you are (or are trying to pretend) that you are wealthy
enough that you don't need to work for a living, I mean, that's great... I'd
love to be in that position, and I understand that for some jobs, you've gotta
pretend like you are when you aren't. but note that to those of us who aren't,
uh, "financially secure," it comes off as bragging in a particularly
insensitive way if you pull it off and we believe you are rich, or insincere
if we know you have a car payment. I mean, sure if you only work with other
people who are super rich, it's different, but be aware that you are usually
in mixed company.

I personally think that seeing genuine joy about being wealthy is nicer to see
than this "oh, money means nothing" \- I mean, I want to be rich too, of
course, and I can understand that you enjoy your fancy new car or whatever;
that's not insulting me, even if I can't afford the car. But saying that
there's something wrong with picking a career for the money _is_ insulting me
and everyone else who doesn't have a large trust fund.

~~~
dc443
I think you're overthinking it. I totally get where you're coming from, but
overwhelmingly what you wrote makes me feel that you've given up on actually
enjoying what you do for work. You should place more value on that, if for no
other reason than when you enjoy something, it's a positive feedback loop for
improving everything: your own mood, your productivity, your self-improvement
motivations, and your compensation.

~~~
lsc
For me, solving technical problems often gives me a great deal of
satisfaction. I mean, it is sometimes a real slog, too... nothing is fun all
the time... but sometimes the worst slogs come with the greatest satisfaction.
and sometimes not! Sometimes you work hard and get nothing. it happens. It's
okay to work hard sometimes. It's okay for that to be unpleasant sometimes.
Difficult experiences are part of what it is to be a human.

I mean, sure, it's impolite to complain all the time, but I would have to be
way more desperate than I am to take a job where I always have to pretend to
be happy; I have a pretty nice technical individual contributor role, and
that's one of the strongest reasons I avoid management when I can, even
though, as you point out, if I had better emotional regulation; if I was
better able to be happy (or disappointed or angry) on command I would be able
to make more money as a manager. (don't get me wrong; I can totally see myself
being that desperate. And if I thought I had a reasonable chance of holding
down a management job for very long, I'd have to think long and hard on it.)

It's more than that, though. Those roles, acting happy all the time feels...
inauthentic to me. For that matter, nearly all of the "self improvement
through positive thinking" stuff feels inauthentic to me; self-improvement,
for me, is accomplished through introspection and work.

------
jamil7
A lot of good answers in this thread and I think most of the answers you'll
find are from people interested in programming for reasons other than money. A
few off the top of my head:

1\. A lot of those people you're studying with may never finish, may transfer
to other areas, find a job in a different field or gravitate to management or
business side of things if they are money driven. The ones who truly enjoy it
will keep doing it. 2\. There is an enormous amount of software yet to write,
whole industries, systems and governments have yet to be digitized. We will
need both really clever engineers and rank and file programmers to get us
there. 3\. There is a large (and growing) amount of legacy software already
written, we need more and more developers to maintain and keep it running. 4\.
Software is currently pretty clunky and inefficient and has a long way to go
in comparison to other areas of engineering and with hardware topping out we
need CS grads to make our software more efficient. 5\. CS is a massive field
with all kinds of interesting areas and as others mention programming is
seeping into other industries making a CS education pretty versatile choice
and basis for an education.

If everyone is aiming for FAANGS look elsewhere, use your time at uni to
explore niches that interest you and focus your time there.

------
zkid18
I think CS mainly distinguish from other areas that it requires far less
resource for both studying and doing research. I was majoring in fluid
mechanics in my undergraduate, but I could barely do good research as it
requires the access to cutting-edge infrastructure. The same happens in many
areas of research, but for IT the cost of infrastructure is smaller. One the
other hand is a great advantage - we see more in more good research from
Africa and Asia with was almost impossible a couple decades ago. But on the
other hand the labor market is expanding. Maybe last century there were some
positions for “ivy league” grads only, but now companies hire worldwide, and
care more about the skill (probably not he case for US due to the current
state of H1B).

As for you question, people are very bad in forecasting. Rather than following
the answers on HN on this question try to invent more in exploring yourself-
working on different domains, meet new people from different countries and
fields, contribute to open-source, run startup and etc.The more information
you obtain about the environment the better you can adjust your policy to
maximize the reward. I don’t believe that on the horizon on 5-10 years there
would be a dramatic drop in demand for CS degree professional. Consider the
tech companies’ R&D investment and the VC investment deep-tech startups we
need professionals to meet these expectations.

Moreover I think many students are attracted by non-linear professional growth
of IT-specialist. Hardly in any other area you can find 25-years old C-level
professional. That makes IT career very attractive from both risk and return.

------
topkai22
I suspect CS and programming will still be a very good career choice even if
there is a shakeout. More importantly do you see anything out there that looks
like a better career choice in 3-5 years? I don’t see any clear winners.

You sound like you love computing. That’s fantastic, because you love
something that also happens to be a viable career choice. Even if there is a
serious downtown in the market (which will be painful) it’s like there won’t
be a continuing need for programmers, and it sounds like you are/will be a
good one with excellent credentials. The start of your career might be less
remunerative than you’d like, but I find it unlikely you wouldn’t be able to
establish a career in computing at all.

That being said if there is another path that truly interests you consider a
double major or minor. I was about to pick up a 2nd major in Poli Sci with
only 3 extra classes and a whole lot of creative accounting of my other
credits. I did it because I was interested in it, and because all the coolest
people I know also had multiple majors. As I reluctantly enter what can only
be considered a mid-career stage with increasing non-technical
responsibilities , I find myself reflecting a surprising amount on the lessons
I learned in that second major. It’s proven surprisingly valuable to me.

------
phlakaton
Smart people have been doing good work for the wrong reasons for decades.
Really, for a lot longer than that. There's nothing new there.

The quality of life you have as a junior programmer depends hugely, hugely, on
the company you work for. So does the amount of money you are likely to pull
in. The two are not necessarily inversely proportional. Interview wisely.

Fresh graduates typically have a disadvantage in having little concept of what
it takes to get things out the door in a supportable manner, and they will
heroically throw themselves into projects they have hilariously
underestimated. If you end up working unsustainable hours, there's a good
chance you backed yourself into it. Find people and places that can help you
avoid those traps early on.

CS as it is taught bears little resemblance to most of the technical work done
in Silicon Valley. It also probably has little resemblance to the passion
projects you did as a kid. It is not necessary to be a CS major to become a
software engineer, no matter what the recruiters think. But, for the most
part, it doesn't hurt, and you probably start out with a broader foundation
than a non-CS major typically will.

As a programmer, your job is to reify thought-stuff. This gives you an
extraordinary flexibility to push your career in a direction you want. Heck,
you might find yourself practically switching careers every few years, or you
might decide to stick in one area and specialize. Either way, there's plenty
of places to turn in CS if you wish to avoid following the herd.

You will hear folks wring their hands about whether their jobs might be
automated away in a few years, or whether the economy will hold, or whether
the demand for CS jobs is really a myth perpetrated by FAANG to pay below-
market wages to suckers, etc. etc. etc. The world has a thousand ways to make
you question your worth, and you will probably hear most of them at one point
or another.

When I entered the industry a little book had recently come out called "The
Decline and Fall of the American Programmer." It predicted that "the American
programmer is about to share the fate of the dodo bird." Yet here we are,
decades on, just as likely to bang through projects like bucking broncos as
ever, but managing to turn out some fine work along the way.

Don't believe everything you read.

------
oaiey
Computer Science teaches you to think on abstract stuff. That enables you to
do so many other thing (e.g. business process planning, organization planning,
etc.). You see things differently (and most likely you already do). In that
way it is similar to an MBA degree.

And if you wonder whether you make the big paycheck? Do not do that to
yourself. Move somewhere where that is not important (and find the right
partner for it).

Maybe fellow posters have even better examples than me.

------
TrackerFF
The thing with tech is that, I think you need some passion for the trade, in
order to make it any longer than a couple of years.

Doing something you hate, even if it pays well, becomes a drag real quick.
Before you know it, you're hitting up your network, trying to get _something_
more interesting.

I think most people will hit a point in their mid/late 20s, where they think
hard and long "Is this what I want to do for the rest of my life?".

------
gord1anknot
It depends on how you see your career evolving. If you pick computing you will
have to shift gears, eventually - which isn't to say you will switch OUT of
computing, but rather you will eventually need to ADD to it.

Right now, computing behaves both like a trade and like a profession depending
on the lens you use. You just so happen to be able to get a job based on tech
stack at the moment (like a trade), I believe the trade aspects of it will go
away as tooling becomes more sophisticated (10+ years), leaving the profession
bit.

I believe this is already happening; the distribution of compensation has
become far more bimodal in the US since I started in 2009. I often meet tech
professionals not living in sf/ba that don't even believe me when I say a
200k/yr+ comp package for a non-executive is possible.

Either way, in computing at the moment, there's no licensing or regulatory
body, and the obligatory cartel that manages it, so it's hard to predict the
specifics around what the profession piece will look like in 10 years. I'll
attempt it, if you excuse the conceit.

I suspect as tooling matures, the industry will decompose into larger numbers
of smaller firms, in which a smaller number of people will be needed to create
and maintain more and more specialized applications. The differentiating
factor in comp and career growth will be business domain knowledge, as opposed
to deep knowledge of particular technologies. It's already the case, for
example, that firms don't have to field an ops team of 5+ just to get a good
deploy process going.

The idea that I can get handed a fairly comprehensible spec and just write
code all day may go away but computing as a career won't.

~~~
echelon
> I suspect as tooling matures, the industry will decompose into larger
> numbers of smaller firms, in which a smaller number of people will be needed
> to create and maintain more and more specialized applications. The
> differentiating factor in comp and career growth will be business domain
> knowledge, as opposed to deep knowledge of particular technologies. It's
> already the case, for example, that firms don't have to field an ops team of
> 5+ just to get a good deploy process going.

Why do you assume this?

There will always be more work to automate and more products to build. As
processes become more complicated, you need engineers to support the systems
they run on. Nothing manages itself.

We're limited in what we can do right now due to the (relatively) small number
of software engineers available to throw at problems.

------
closeparen
For an assembly line worker who can serviceably crank out features from JIRA
tickets in $framework_of_the_month, maybe not. But that's not what CS
education is for.

For someone who's genuinely, deeply good at it, who can _think_ and debug and
design from the network consensus protocol to the CPU cache line, there will
always be work. Even within hot companies populated from elite schools, these
people are few and far between.

------
christiansakai
I graduated from a programming bootcamp about 6 years ago. I decided to go
into full CS degree but my bootcamp instructors said to me "it is a waste of
time and will cost you a lot of opportunity cost".

A lot of my friends from that bootcamp without CS degree already have good
careers as engineering managers, senior staff software engineers at startups,
or regular engineers (around junior and mid level) at Facebook/Google, some of
them are content enough and stop improving, some of them are still improving.
Meanwhile I still failed the interviews. (For some reason I have a history
with many rejections. I got rejections 9 times from programming bootcamps and
admitted into one, that changed my life. I also got rejected twice from a
programming bootcamp that was known for "anyone can get in").

I didn't regret a thing. I'm glad I studied CS. (Disclaimer: I had 2 other
unrelated degrees: Industrial Engineering and Biblical Theology, this is my
3rd career change). For now, even though I already graduated and worked at a
decent paying job, I just started to revisit compiler and want to study all in
about it.

In my opinion, tech field moves really fast, even a hardcore techies will have
hard time and regularly experienced burnouts due to the fast nature of the
field (cough cough, frontend dev and devops). But as long as you have passion,
you can still be the last persons standing. It will last you a long time. I
think people with passions will go above and beyond of what is expected from
the regular job to practice his/her craft, and the world can't get enough of
people like that.

As long as it is fun, would you mind? I don't mind. If CS pay only half of
what it pays right now, I would still do it.

~~~
knr2345
Your comment resonated with me. Sounds strange, but - any advice on finding a
worthwhile bootcamp?

I'm in in the middle of a career-transition effort myself. I'm a ChemEng & do
fine financially so the motivation is not money-based. Honestly though, the
faster I can switch the better.

I completed a Graduation CS Foundations program (5 courses at Master's level
university credit) and now I'm starting a Master's CS program.

I originally explored bootcamps but my impression (purely online based, no
friends in the industry) was that it could be hit or miss and all were not
created equal. Plus, the cost seemed high compared to other options. The
online research leaned a bit more to the doom & gloom side but I figured
reality was closer to neutral.

At this point though, I'm exploring all options to make the move as soon as
possible so curious if a bootcamp might help speed up the process. The MS
program will take 2-3 years since I will be working full-time in my current
position (which I plan to complete regardless). I'd really prefer that my
after-work efforts be more closely tied to my day job as I continue with such
a workload the next couple years (not to mention the synergistic benefits).

~~~
christiansakai
Where are you located? I am at NYC. I recommend Fullstack Academy. I graduated
from there, wrote a really long Quora answer that asks about bootcamp
experience and got voted as one of the top viewest answer, I have since
removed that because the current Fullstack Academy community (the community,
not the curriculum) is not for me anymore.

With bootcamp skills, you can definitely land FAANG jobs. I know a person that
did not go to bootcamp or CS degree at all but just study Data Structures and
Algorithms and got a job at Facebook (since then the person got fired because
of performance review, but landed at Google, and it seems that Google does not
fire people).

Your MS program will not advance you toward making SE salary soon, so I
believe that a bootcamp program probably will be a better bet. MS program
though, will prepare you for a good CS foundation and will make you a well
rounded SE overall. However, it has little correlation to the amount of money
that you will be making, unless, you are so damn good and famous that
literally FAANG will be knocking on your door.

There are too many things to study, and CS is not programming. Programming is
not CS. You can program without knowing CS. If you want to optimize for money
in a short amount of time, I recommend bootcamp, built a few projects, and
then study the heck out of Data Structures and Algorithms. Make sure it is a
reputable one and has support structure to help you find a job.

Also it helps to focus either on Frontend or on Backend. Thi will make your
career transition even faster. I am a fullstack by choice. I don't recommend
this path to anyone. It is too much trouble to keep up with the techs, and
don't pay that much more (if it pays more) compared to pure backend or pure
frontend. I just do it because one day I foresee to create my own company. I
need to be a generalist.

So to summarize. If (goal === make more money within short time): \- Do
bootcamp \- Make sure the bootcamp is reputable, has support structure to find
you a job and optimize your resume \- Focus on either frontend or backend if
you can \- Build a few projects (maybe 2 or 3) \- Study Data Structures and
Algorithms

else: \- do MS \- just study whatever is interesting. AI, ML, Compilers,
Hardware, Graphics, maybe build a small project in one of these areas. These
topics are hard topics, so even just one project is hard to do \- still do
Data Structures and Algorithms

~~~
knr2345
I appreciate the in-depth and well-rounded response. I think this will help me
develop a better short-term plan to supplement my current longer-term plan.
Seems I should consider abootcamp instead of a summer course after this Spring
semester.

Will bootcamp be valued the same if not looking for a FAANG job?

I'm in Texas so not dead-set on a FAANG intitially. I'd likely need to move to
Austin to do so, which isn't out of the cards overall but not as feasible
while still in my current career (also own a home). Needless to say, it would
take quite a leap of faith to go full-on intobootcamp/relocation mode where a
shot at FAANG would be in the cards based on proximity.

Your points about the MS program are well taken and align overall with my
motivations for attending the program. While I want to get into SE or Data
Science as soon as possible so that I can start gaining some reps & experience
with the overall process (engineering, coding, even inter-office/workflow), I
really want a solid core of understanding to build on because frankly, my long
term vision for role and area of immersion is yet to be solidified.

Coding is certainly the hook that landed me on this path as I've dabbled here
and there for most of my life (arduino,raspi, light scripting at work, C++ in
high school) but I suspect I'll eventually be after something besides
hammering out code for a bank or similar enterprise where I'm just punching
time. (Apologies if I'm leaning on a webcliche; still learning about all the
different roles and opportunities from the outside-looking-in).

The courses I completed in the Grad program were DS+Algs, DB design, Comp arch
& OS, and etc. I enjoyed learning the concepts and ins-and-outs of all, albeit
with DB probably lowest on the list. Massively useful obviously, and learning
SQL, relational theory, data modeling & normalization was interesting but
again I suspect I wouldn't want to work exclusively on the DB side long-term.
I did come to see the connection between relational models, set theory, and
object-oriented programming so I definitely see the value of having a CS core.

I suppose that's a long winded way of saying I want to program but don't want
to purely punch code. Overall, I enjoy writing code & working with algorithms
and time seems to melt away when working on programming projects for school
(same cannot be said about my current eng career). But, I am also equally
drawn to the math and science side of things - both the ML, AI (data science?)
side and the "effect the external world" side (robotics?).

For the MS program, I'll be declaring ML specialization but plan to use my
electives to take AI, comp vision and other courses that satisfy much of the
perception & robotics spec.

In the meantime, my short-term goal isn't necessarily to make more money. It's
to cross-over from my current engineering career & industry into the
software/tech/data-science realm ASAP.

I have several years as a ChemE under my belt, so as a new entrant I expect to
take a pay cut initially anyway. Long-term, I understand I could eventually
outpace my current financial path but overall that's not the primary goal or
driver when all is said and done.

Hopefully a bootcamp might help with the short-term goal, while I continue the
MS for the long-term aspirations.

~~~
christiansakai
According to my experience, reflecting on myself and my non-CS friends'
interviews at FAANG (I know 3 non CS friends that worked at FAANG), I was
grilled harder during interview at FAANG companies because I have a CS degree
compared to a bootcamp graduate.

It seems that you already completed some courses on your grad programs, I
think that's a good thing. I heard college these days are partnering with
bootcamps to help mitigate the gap between CS curriculum and real SE work, why
don't you try to find out if your CS dept has a similar program?

Also it looks like you have coded before. Bootcamp is geared toward a complete
beginner, like, never-touch-a-code-before-beginner. So the first 1,5 months
(out of 3 months) will be introduction to programming concepts. Therefore I
think it will be a waste of time and money for you to do bootcamp then. In
NYC, Fullstack Academy is about $17.5k now.

If you can stomach watching and learning yourself, watching video for hours, I
recommend just going to Udemy and buying one/several of those tutorials and do
it your own. Without bootcamp, you also will need to grok resume your own,
find job opportunities your own. I think it is fine to be honest, as long as
you have a few good projects and good at DS + Algs, you won't have problems in
interview.

Another possible path to take, once you finish your CS degree is to interview
at banks that will train you at real world projects (I think these banks only
take CS graduates). I actually just had a friend recently, just 1 month ago,
that got a $100k/yr + $10k signin bonus on a training program at BNY Mellon,
and he just graduated and he isn't that strong in his programming skills
currently. Not bad at all.

Looking at your interest, I think you'll probably get bored quickly at average
SE jobs, but hey, after you finish your MS and get your first SE job, with
ChemEng under your belt, the world is your oyster. Create a new ChemTech
startup!

------
saalweachter
One of the hardest things in life is figuring out what you want; that can be
as hard as getting it, sometimes.

As it pertains to programming as a career, it's important to understand
whether you are looking for a job or a calling. Do you want to work to live,
or live to work? Do you want to make decent money without becoming consumed by
it, or do you want to do something for a living that you also find deeply
fulfilling?

------
monicatie
I agree with many of the responses here. The easy jobs will go to people who
are less passionate than you are and there are still tons of jobs available so
I wouldn't worry about them making the field unstable quite yet. I also wanted
to point out that even though many people enter the field for the $, that
doesn't mean they can't or won't fall in love with it the same way you have. I
say this as someone who didn't know what they wanted to do, was encouraged to
go into CS, hated it because everyone around me just wanted to prove how much
they already knew than their other classmates, but I ended up loving it when I
started working. At the end of the day, people still need to work to provide
for themselves and their family, and that's not a bad thing. I'd focus on
sharing the joy you have of computing in hopes of motivating others and be
grateful that your preferred career also pays extremely well.

------
baking
Do what you love, but first decide if what you love is writing code for others
or for yourself. If you think it's the former, by all means stay in CS, your
skills will always be needed. If it's the latter, then find a field that you
are interested in where you can use your coding skills. If you are not sure,
do a double major so you have a fallback.

------
mind-blight
The supply of jobs is still way above the available workers. A lot of people
conflate coding jobs with valley, FAANG, or startup jobs. The reality is that
every industry, institution, and every company is in the process of migrating
their business practices and operations to be digital. I think coding is going
to become more common place in every business, including the small ones.
Software development may eventually be seen as the new factory work - a blue
collar job that pays the bills and helps you support a family.

For example, most government forms require you to fill out physical paper and
send it in. There are thousands of agencies across the US, each with hundreds
of forms for different processes. Just upgrading those to be more accessible
and less error prone is going to take over a decade and thousands of hours of
developer time. It's not glamorous work, but it will help a lot of people

~~~
crimsonalucard
Yes but anecdotally I think the supply is accelerating faster than demand.

------
torgian
CS is a part of everything nowadays. I never studied CS; I taught myself. My
bachelor's is in Criminal Justice, which I never used other than to find work
in other countries (mostly as a teacher)

Now I work as a remote programmer for a Geoinformatics company. My masters
will be in Geoinformatics because I found that I like maps and that cool
mapping tech that uses different kinds of sensors and stuff.

It sounds like your friends, who got into it for the money, may be the kind
that burn out and not get into it later on in life. If what you say is true,
you're more passionate about it and will continue to code even in the bad
times.

Use it as a platform to find problems you want to solve, and use your
knowledge to solve those problems.

CS has _always_ involved unsustainable hours. The trick is to get good enough
so that you don't have to do that. Maybe go into a more niche field (like what
I'm doing)

------
stopachka
Advice for you:

Try personally pinging the people you respect the most -- send an email to
Paul Graham, Peter Thiel, creators your respect. You'll be surprised with two
things: first, they'll respond, and second, their responses will surprise you.

This is a public forum -- it's going to be hard for you to separate signal
from noise.

~~~
mLuby
This is good advice, but also keep in mind that they experienced highly
unlikely outcomes (survivorship bias), what they say caused their success may
not be what actually did, and the playing field may have changed since then.

------
gniv
I’ve been thinking about this for a while. My view is that the software-is-
eating-the-world theory is essentially correct and so demand will exceed
supply indefinitely.

That of course doesn’t mean the jobs will be as well paying as they are now,
but I am not worried about lack of opportunities, barring a major recession.

~~~
humanrebar
And software skills will still be handy in the next career if worse comes to
worse. There is great job security in being able to spreadsheet, for instance.

------
mcv
This already happened 20 years ago. During the dotcom boom of the late 1990s,
many non-CS university graduates were retrained as programmers, which led to a
lot of questionable code from people who knew the basics but lacked the
underlying theoretical grounding.

The industry survived. It will also survive a new batch of people getting into
it for money. Of course a larger supply of labour may depress salaries
somewhat in a free market, but I don't think salaries are really a free
market; it's more about who has enough power to leverage a higher salary.

In any case, there's plenty of new stuff to be done with computers, and I
think someone doing it for the love of it has a bigger chance of finding those
things than people looking for the well-trodden, well-paying path.

------
sparcraft
When I was close to graduating high school, I faced a similar situation. So
many people were going into CS or software engineering, mostly for the cash,
and adults in my life advises me that CS was a saturated field and there was
not much growth potential.

That was in 2004. Looking back, these concerns were ridiculous and had I not
listened to these people, I would probably have had a much quicker career
progression (I ended up learning to code, not that well, on the job as an
important skill set for my work as an actuary).

Personally, I think there is a lot more work to be done in the computer
software field. Although there is competition, if you have strong knowledge
and work ethic this field would put you in a great position to succeed in a
wide range of industries.

Best of luck.

------
thewanisdown
If it's what you like. You'll be just fine.

In the grand scheme of things, that degree just opens a few extra doors early
in your career. It's still up to you, and your personal drive to succeed, to
get anywhere past that.

You have passion, and that is a massive advantage. Stoke the fire.

------
TallGuyShort
I'm worse-than-average on predicting future trends, but for what it's worth I
had the exact same thoughts 17 or 18 years ago and here I am, using a computer
science education for things that I think are positive for the world and that
pay me very well.

------
kstrauser
I think since the 90s it was known that CS offered a good, well-paying career
path. My classes were packed with fellow students who were in it for the
money. Today, I don't know a single one of them who haven't moved into other
fields (albeit often _related_ fields, like managing software engineers). If
you love software, you'll always have a job, however many other people enter
the field. You'll be the one eager to learn new things at work, memorizing
documentation, and earning a rep as the one who sees the big picture, not
because you're chasing a career but because you love doing those things. That
will lift you to the top of you peer group.

------
throwawaysea
Personally I think that this entire sector is due for a reduction. Companies
like Facebook or Amazon or Google or just soaking up employees to work on
things that don’t really matter. Once they figure that out and manage more
efficiently, there will be layoffs followed by the inevitable commodification
of CS talent. This field isn’t special, it’s like any other field that went
through a boom phase and a later regression to an equilibrium point.

Soon everyone in every role/industry will have rudimentary programming skills
and use them on top of safe platforms that don’t needtremendous
specialization. It’ll stop being a differentiator and it’ll be more like a
basic qualification.

~~~
standardUser
"Soon everyone in every role/industry will have rudimentary programming
skills"

I'm completely baffled as to where all of today's workers in their 20's, 30's
and 40's, almost none of whom have any programming skills whatsoever, are
going to learn programming skills in this "soon" timeframe.

~~~
uwuhn
Americans won't, but immigrants will.

~~~
torgian
Immigrants who study CS, yes. I live and been to countries where these
immigrants come from. I don't think Americans would have anything to worry
about if they stay competitive and take time to specialize.

Your regular coding guys might get burnt after the next recession though.

~~~
uwuhn
Iran, China, and CIS countries are the ones I have in mind. Which ones are you
thinking of?

------
vichu
So would you stop if it were a “bad” career choice? That seems just as
disingenuous as you’re insinuating your colleagues to be in switching to CS.
And anecdotally, having went to CMU, everyone I knew switched to CS or moved
CS adjacent - and many of those that switched are enjoying it to the fullest -
not as FAANG engineers but many as CS PhDs.

In undergrad, the crowning achievements you can get are mainly the
internships, especially at FAANG companies. Don’t worry about it too much. If
it really is about the code and the work, just keep doing what you like doing.
Computer science isn’t going to go away any time soon, and if it is, academics
will be the last to let it go.

------
okareaman
"Do What You Love, the Money Will Follow" by Marsha Sinetar is a book that
helped me. I worked for years writing code, excited to get up in the morning
to get started, My performance was excellent. I worked for other years
dreading looking at a code base that sucked for managers that sucked, My
performance was subpar. Only you know what brings you joy. I think it's a
mistake to look at what others are doing to decide what you should do. I'm
surprised to read that you feel computer science as a whole is a hot field.
Most of it seems fairly prosaic these days, but certain parts are really hot,
like machine learning

------
slimed
It's really not a career path you should get into if you're just in it for the
money. Your friends will probably wash out within 3-5 years after they figure
out they're not actually interested in software engineering.

~~~
kharak
Disagree. I don't care about CS at all. Still like the work, but wouldn't do
it if it weren't for the money.

Am I good at SE? No. But I went from terrible to average in a period of 4
years and am now earning 6 figures. All without side projects or unpaid
learning.

~~~
slimed
If you've really not put in any time for independent study and have only 4
years experience on the job, you are not "average". You are below average, and
apparently unaware of it. Not to mention a cancer on the industry. It's my job
to make sure people like you don't pass the phone interview.

~~~
kharak
Comparing others to cancer, that's always a great display of character. There
is much to unpack here, but I'll enjoy myself a bit and simply leave you with
the concept "eternal September". Google, if you haven't heard of it.

~~~
slimed
I'd hire someone qualified, motivated, and hungry to improve over someone who
barely scrapes by without wasting a single cycle worrying about their word
choice on an internet forum.

Perhaps we have a different understanding of what constitutes "character".

------
GlennS
I think this is a pretty good question. My dad told me about how, 50 years
ago, getting a toolmaking apprenticeship was a license to print money. That
certainly changed, and I don't know if anyone expected it?

My guess is that the job market is going to stay good to programmers and IT
for some time. I think there are lots of people with money trying to build,
improve, and plug together bits of software right now.

I also think that a lot of people will drop out of the profession during and
after university. Most people find programming really boring and/or
frustrating.

Still, it would be interesting to have some evidence on all of this.

------
osipov
Your thinking about going against the crowd is exactly right. Pivot either
into a niche in CS, e.g. machine learning, or try an emerging engineering
field like robotics. Alternatively, consider something like genomics.

------
Mave83
I don't care about any degree of my employees as the projects they did in the
past (commercial or private) are much more important

When you want to target big and unsexy companies, just to have a nice resume,
a degree is the right way to go. If you plan to be an entrepreneur, founding a
business or freelance, it's mostly useless and I don't believe it will change
in the next 5-10y as it was that way the last 20y.

Todays trends are to work less with better money and better work life balance,
not the opposite. If you encounter the difference, run as fast as you can :).

------
andreilys
OP your comment comes across as very puritanical.

It’s okay that some people haven’t been coding since they were 8. It’s alright
that they choose to have hobbies outside of work that don’t involve coding.
It’s also okay that they are getting into CS to make money.

Programming has turned into a very lucrative career. Yes some people might be
getting into it for “all the wrong reasons”, but it’s a job. Mercenary or
missionary, both have value.

If you’re concerned about your viability in the marketplace, you shouldn’t be.
The cream always rises to the top, it’s just a matter of time.

~~~
giardini
andreilys says> _"...The cream always rises to the top..."_

That may be true for workers, but I heard the management version: _" Shit
always floats to the top..."_

------
bjornlouser
"All the worries my classmates have is how to get an internship at FAANG."

Hopefully you'll give yourself permission to worry about something other than
corporate behemoths before you graduate.

------
helen___keller
In 3-5 years? Probably

In 10-20 years? Maybe

In 50-100 years? Probably not

There's a lot of investment opportunity right now so the industry is white
hot.

When new investments dry up, there's still a lot of profitable companies with
big moats, not to mention smaller players that have wanted more engineers but
have been priced out of it, so things will be okay but maybe without salaries
as insane.

In the long run there will always be some jobs but things will probably slow
down a lot as big players will want to collect their rent and cut costs (read:
jobs) to increase stock values.

~~~
czechr
>In 50-100 years? Probably not

can you dilate more please? is it because the industry saturation ?

------
antaviana
If you study something that you really like, the worst thing that can happen
to you is that you work on a field that you really like. That will give a you
a huge edge over everyone else.

------
8bitsrule
If you can manage to wangle a double-major that includes CS and some (the
right) other field, you might be in a superior position. Including to be well-
paid and worked to death.

Banging on a keyboard can be great, fulfilling fun when you get to decide
what's worth doing. OTOH, I heard that many experienced university
glassblowers make more money than the full professors. If/When you get tired
of coding, that second major might be the escape tunnel. Even if it costs you
an extra semester or two.

------
jonstewart
It sounds like you love CS. I got hooked on programming when I was a kid and
couldn’t imagine doing anything else. There may be lean years—I “started” my
professional career in 2001 and it was a terrible time. But, honestly, it’s
been great and I love it. It takes conscious management, but, really, if you
focus on continuing to learn and work on challenging problems, your expertise
will compound at a higher rate than those who only have a passing interest,
and you’ll be set.

------
jl2718
I was a kid programmer and it sounded crazy to spend college learning to code.
I studied anything and everything else. More interesting, but not a good
resume-building strategy.

~~~
metanoia
Modified for myself: I was a kid programmer and _my parents thought_ it
sounded crazy to spend college learning to code. I studied pre-med but didn't
go to med school.

This was in 1998 for me, and at that age I didn't know how to push back on my
parents. Good 'ol Asian parents didn't know anything out of the big 3 (Doctor,
Lawyer, [Licensed] Engineer). Still going to therapy for that.

I am now in a software engineering job as a TL but I'd say I'm about 8 years
behind in my SWE career, after soujourns in a microbiology lab, food
manufacturing, retail inventory planning, and then product management in
retail, and then to engineering. To be fair, this might still be the case as
the dot-com implosion happened just before I graduated from college.

I have amazing, varied experience as both an IC and people manager, but I
don't have the ticket known as a CS degree. I'm thankful for the path I've
taken but eventually I will have to make a jump to a "real" tech company, and
I can't say that I don't have some apprehension about my lack of formal CS
training, as well as age.

~~~
torgian
Similar boat here; not Asian, but I was in the military, and got into CS when
I was 30; got a remote gig at 36. I get paid far, far less than others, but I
also happen to live in a low cost of living country, so it (kinda?) evens out.

I would like to get paid more money, and I think I could look for higher
paying work at this point. However,I actually do like the company I work for,
and it's fairly low stress. I also have enough time to work side projects and
start on my Masters (in Geoinformatics, not CS)

And yeah. I feel you on the age apprehension. I think it would be much harder
for me to find a software gig back in the States now just due to my age.

~~~
metanoia
Like other feedback in this thread has already covered, the upside is that
coding is applicable anywhere, and in fact, I think that outside of our little
tech-bubble, it has greater impact as fewer people have those skills. Even a
small amount of tech applied to the right place can have huge value.

It's just that the Asian kid in me is thinking I need FAANG on my resume even
for a short time to get some street cred. Like you, I do like my job, the comp
is OK, but eventually all things come to a end.

~~~
torgian
I don’t think FAANG is really that necessarily important though. Sure, it
might open up some opportunities. So would making good stuff that people might
eventually recognize.

IMO, I dong think I could ever get into a faang company. I’m terrible with
algorithm interviews. I also don’t think the job would be that fulfilling...
what is useful about making or maintaining projects that focus on data, ads,
etc, that doesn’t benefit anyone?

The money would be good, but eh... maybe I won’t ever make as much as a guy a
google, but I can say I was involved in a project that helped disabled people
get picked up by a bus more easily.

------
xivzgrev
Also remember just because someone is smart doesn’t mean they can code. The
most lopsided class in college I took was a computer programming one - half
the kids got a reasonably easy “A” and half got very hard “C”s, even though
everyone was smart there. I don’t remember very many people in the middle.
Likewise I think you will find many of these kids drop out before college is
out.

Swim in your own lane. In demand majors rise and fall but your passion can
last a life time.

------
tomklein
That's something I thought about too, but the fact that most people that I
know who are studying it, are producing really bad work like software
development, for example, is something you have to have lots of practical
experience to get good at it. Well, that's the situation in Germany however
and people like me, who really enjoy developing software and bring innovative
ideas are wanted much more than anyone completing their course.

~~~
martinesko36
I totally see that but I think smart people will do good work, just for the
wrong reasons ($) and this will impact the field negatively. In 5 years maybe
things will still be okay, but if the trend continues for 10 years? Will CS
become unsustainable hours like working in the quantitive funds or
unsustainable competition and workload like in medicine, or both? Will
everyone at Google be the same Ivy League student who's more concerned with
their GPA and internships than actually learning?

~~~
slimed
That's already how it is at other "unicorns" like Uber and Lyft. I know from
firsthand experience. Unbearable work environment. Constantly being sniped by
your co-workers who are more interested in playing the game the accomplishing
something of value.

------
2rsf
> "if everyone thinks something is a good idea, it's probably a bad idea"

Note that this is not the situation in CS, everyone thinks CS is a good career
but luckily for us not a lot of them can actually try it out.

CS is tough, your average next door manicurist can't take a short evening
course and become a successful developer. Even smart doctors, accountants or
lawyers are not guaranteed to be decent developers or even survive the basic
education.

------
paulsutter
Few CS majors are good developers, and few good developers are CS majors.

But you're a natural so you don’t need to worry about where the crowd is
surging. They’re not relevant

------
throwaheyy
I’m saving money as much as I can and thinking about future exit plans.

Personally I’m of the opinion that the “sweet spot” of business automation and
application development has passed.

What’s left is boring, dystopian, or political.

\- Optimizing delivery of ads and selling crap.

\- AI to fulfil the above.

\- Developer tools treadmill to make new ways of fulfilling the above.

On top of this, with the careerist switchers has come the BS corporate
politics at a higher degree, and it’s slowly turning me off this vocation.

------
0kl
CS is one more tool in your box; you can make it your only tool and even build
a good career with that one tool, but I’d recommend looking at your education
as a quest for more tools, context, and mental models for building your
career, and not as a training program.

Side note: CS is the second highest ROI I’ve had for tools. The highest is
clear communication due to its ability to be such a multiplier on everything
else I do.

------
ben_jones
A CS degree gives you a strong ability to automate work using software. If
applied correctly it will be be a very lucrative career for a very long time.

------
afpx
In the 1990s, there were a few hundred thousand good programmers. In the
2020s, there will be a few hundred million good programmers.

I agree with the other comments: programming is no longer a good career to
make money, but it’s become an essential requirement of many overlapping
professions.

I charge $100 / hr. There are people on upwork who are much better than me
that charge $20 / hr. The market forces will quickly play out.

~~~
cableshaft
There is not a "few hundred million good programmers" right now. As of 2018,
there's only 23 million software developers worldwide total, let alone
whatever you qualify as being "good".

From my experience, I'd guess that the percentage of "good" programmers is
probably maybe 30% at most (and that's probably being generous). If so, that
would mean 7 or 8 million "good" developers out there. At least two orders of
magnitude lower than your claim.

"According to a study by EDC, as of 2018, there are 23 million software
developers worldwide. This population is expected to grow to 27.7 million by
2023."

Source: [https://www.c-sharpcorner.com/article/how-many-software-
deve...](https://www.c-sharpcorner.com/article/how-many-software-developers-
are-there-in-the-world/)

------
anonu
What are your other options? (Sort of rhetorical question)

Learning technical matters early in life if easier than learning them later.
Engineering, math, CS should be done early. It's a great foundation and
structure for learning into the future.

Also, CS is a bridge to automation. Our world will become increasingly
automated. People with the right skills to automate will be at the forefront
of this wave.

------
pcurve
Having taken courses in both finance and comp sci while attending one of them
elite schools they are two very different group of people. Even if they start
at the same line their career path will probably divulge down the road.

I would focus more on what specialization you want to pursue rather than worry
about CS being viable. After a few years your degree begins to matter a whole
lot less.

You have a leg up.

------
Blackstone4
Amazing developers will probably always be in demand particularly if you are
self-aware, able to communicate and have emotional intelligence. You are
probably top 5% on technical capbilities so it would be worth focusing on
improving your soft skills. The main problem with offshore developers is not
necessarily techical competence...it's communication and culture.

------
kcb
Half of these comments exist in some alternate reality where programming is
unskilled labor, jobs are scarce, and wages are low. Weird.

~~~
bjornlouser
Are they trying to unionize Google in your reality?

~~~
yxhuvud
The main issues at Google doesn't seem to include the size of salaries.

That said I wish we had a dedicated code monkey union in my town. The existing
choices either wouldn't cover everyone in the field or is covering way to many
other fields. With the end result of doing a really crappy job at some parts
(no, we don't need or want companywide agreements saying everyone get an extra
2.5%).

------
landon32
Working for FAANG might be lame, but you can find some interesting company to
work at without a doubt. I just graduated, and my friends from CS are doing
everything from engineering at exciting biotech companies, Product management,
building their own startups, and of course many at FAANG :)

It's a skillset that opens you up to a lot of possibilities

------
jiveturkey
> I've been coding for half my life, out of pure interest for the building
> things and never got into it for the money

stick with it. that there is money is CS is icing on your cake. so many folks
have to do something NOT their passion because there is no money in their
passion and they weren't born with silver spoon.

------
mtnGoat
If i was going to get a degree. Id get a major in something else and a minor
in CS. most of the engineers i know that are making very good pay, are an
expert in something else as well.

BUT only get a degree in things that interest you, a CS degree for someone not
interested in computers, would make one horrible career.

------
nfRfqX5n
hiring good talent is still extremely tough. i haven't seen the skill level in
new hires get much better over the past 3-5 years. we get recruitment
companies asking for $60/hr salary on people who can't even write a simple
function in an interview

------
phendrenad2
3-5? Absolutely. 20-30? Expect to find it difficult to find jobs. You're a bad
"culture fit" they'll say. Personally I'm looking forward to working as a
Long-haul truck driver once my web developer Logan's Run is up.

------
sub7
Programming is a commodity. You learn to program in Ruby and the next platform
makes you irrelevant.

CS is a foundation. When you understand how the languages themselves are built
you can figure out any of them. The fundamentals don't change often.

------
j45
It is a good career as long as you keep learning. If you stop learning it will
be like being stagnant in other careers

It’s far more important what you make of your education once you have it.. and
not what your education makes of you.

------
DrNuke
You could improve your long-term return on investment by complementing CS with
one or two applied domains, maybe? Fintech and industrial applications are not
going to disappear in the next 50 years for sure.

------
personjerry
I think this is a really biased group of users to ask this question to.

------
Mauricio_
>My friends have switched from finance & medicine to CS majors - for the money
Don't worry, something tells me they won't get very far.

------
d--b
> Will CS become unsustainable hours like working in the quantitive funds

Mmh no, people in quantitative funds do not work long hours. Much less than SV
tech

------
sytelus
CS will be even better career 3-5 years down the road. Software is indeed
eating the world and its only accelerating.

------
didip
Of course! It is the best bang for the bucks when considering student loans.

------
akhilcacharya
Just because you may be out of touch because of your elite circumstances
doesn't make it a bad career. Getting a FAANG internship is something most
students can't (or don't, for whatever reason) do.

------
turingbook
The digitalization of the world is just beginning.

------
ssivark
Since most commenters are talking about the importance of CS and the value of
a CS degree, let me share an opinionated response touching on a more nuanced
underlying assumption.

You're not in college for getting certified in a particular "major". You are
there to develop a strong (broad) foundation of understanding and skills, on
top of which you can (in the future) paste domain-specific knowledge to
rapidly level-up and acquire skills.

IMHO, concentrating on CS to the exclusion of all else (eg: as an
undergraduate major) is too limiting, too early in one's development.
Computers happen to be a very "artificial" system with arcane rules, and an
understanding of computers tends to be less generalizable than an
understanding of natural systems -- both physical systems
(science/engineering) and human systems (humanities). The more mathematical
aspects of CS are definitely generalizable (to the extent that computation is
basically applied math!), but IMHO CS as a field has not developed enough to
make that link obvious -- let alone teach it to undergrads. Also, when you
have a hammer, everything looks like a nail -- we are currently infatuated
with "CS". That should (likely) relax to a more reasonable state in ~10 years.
(eg: there is absolutely no reason for "machine learning" or "artificial
intelligence" to be considered a sub-field of CS, other than the fact that
incidentally it happens to be implemented on computers. Breakthrough ideas in
ML will likely come from other fields.)

Computers are definitely a fantastic tool, and offer great leverage, _if and
only if you have developed a refined "taste" of problems worth tackling,
things worth building, and visions worth pursuing_. You will likely not
acquire that taste by just studying CS.

A little pondering will make one realize how it is quite impossible for every
"major" to have the same number of "credits" worth of knowledge -- and exactly
enough to fill up 4 years of requirements. The corollary is that not all
course credits are equally valuable. If you want the best value for your time
in college, try to pick the most challenging/foundational/important courses in
a field, and then, instead of spending too much time on the relative "fluff"
in the same field, go find equally foundational courses in an adjacent field.
The easier stuff can be tacked on top later with little effort. That way, you
are uniquely well-placed to make interesting connections, and are better
prepared to respond optimally to a changing environment. (See:
[https://dilbertblog.typepad.com/the_dilbert_blog/2007/07/car...](https://dilbertblog.typepad.com/the_dilbert_blog/2007/07/career-
advice.html)) The analogy in the context of investing would be: it is crazy
try betting on a single company over the long run (~50+ years); better to bet
on a broader portfolio.

If you are looking for a very concrete suggestion, one way to operationalize
that advice: in addition to programming/CS, learn a bunch of math, a bunch of
at least one of the hard sciences (Physics/Chemistry/Biology), and the basics
of engineering / systems modeling (linear system theory, control theory,
signal processing, etc.). IMHO, the humanities can wait till one is
older/wiser -- it can be learned easily enough outside university, and is
probably wasted on 20 year olds without enough life experience. Nothing wrong
with the minimum humanities requirements -- pick something you find
interesting and try to get the flavor rather than getting bogged down with the
details. All that was just individual learning. If you can work on
collaborative projects, and learn to work well with others and lead when
necessary, it will serve you well in life (that is a rare and extremely
valuable skill).

Needless to say, this is not the path to a 4.0 GPA, or the highest paying
internship/first-job, etc. but you get out what you put in, so if you work
sincerely, you'll be fine in the long run. See
[https://thezvi.wordpress.com/2017/08/26/play-in-hard-
mode/](https://thezvi.wordpress.com/2017/08/26/play-in-hard-mode/)

------
erosenbe0
If only it were not the case that our top talent aspired to work on
advertising technology we might have nice things like an HIV vaccine or mass
adoption of renewable energy.

------
lsc
Knowing how to tell computers how to do things is essential, and there will be
more and more computers that need to be told what to do. the question is "can
we teach everyone to do this job?" if the answer is yes, then of course, it
will get cheap. If the answer is no, then we're going to be wealthy for the
rest of our days.

Nobody knows the answer to this question. In the '80s and '90s, programming
tools got better and better and we all thought that we'd have some rational
case tool type deal that managers would voice activate and make software
without programmers, or, if programmers were still needed, they'd be regular
joes making regular joe money. And that looked realistic. as a teen in the mid
'90s, home computers were super common and a bunch of people at my (not very
good) high school did basic programming. None of us thought this was the road
to dentist money. (but then, most of us would have been pretty happy with
manufacturing money. Expectations were low.)

In the aughts, this idea fell away, and now in the teens, it's nigh
unthinkable; big companies throw a lot of money at the best computer people
they can find, and these people then code in editors that look primitive
compared to the IDEs of the late '90s. I strongly suspect we'll see some swing
back towards more reliance on tools and less reliance on genius in the coming
decades, just 'cause I expect things to cycle that way. I personally think
there's something to genius? but... I also think that things won't always be
as good for us as they are now. Perhaps it is because I started my first
programming job in '97, but I expect business cycle swings to be extreme and
temporary. The business cycle goes up and the business cycle goes down.

If you had my opportunities (i.e. no college) I'd say that CS was almost
certainly your best bet; go deep, go hard, ignore everything else and get
yourself a job while the getting was good. learn breadth later. But if you are
the sort who got into an elite school, well, you have a lot more
opportunities, most of which I probably don't entirely understand (and that
I'm certainly not qualified to evaluate)

I would bet all the money I can borrow on the continued importance of
computers... but my personal bet? my personal bet is that in the future it
will be more like literacy. Sure, sure you need to be able to tell computers
what to do. but you also need to know a thing so you know what to tell them to
do. Tools will continue to evolve. There will be lots of spaces for people who
can understand both what we are trying to get the computer to do (be that
business, medicine, whatever) _and_ how to tell the computer how to do it.

My own advice to you is to get some breadth. I mean, if you can, get that
FAANG internship; working at a top-tier company has huge differences in pay
and prestige from working at a second or third tier company. Do that now while
it's hot, if you can. (this is general advice I'd give to young me: don't be
so afraid of super hot trends, they are fun, and super remunerative!)

It took me two decades (more if you count the IT work I did in high school) to
get to a top-tier company, and it is a huge difference. If you can do that out
of college? you will have a huge leg up financially. (and in terms of choices
as to what you can do next)

All that said, you have a lot more opportunities than I did. You'll be fine.
Enjoy it. Learn stuff. meet interesting people. Leave college with a full
rolodex (or linkedin or whatever) and call (or email or however you kids
communicate) every now and then. friends are great on a bunch of levels.

------
paggle
You have to realize the limits of “if everyone thinks something is a good
idea, it's probably a bad idea.” It doesn’t apply to things like brushing your
teeth or learning to program computers.

------
faissaloo
I don't think software engineering is still going to be a great career in 5
years but it might be alright, although I don't think it'll matter in 10
years. I think it's important to be a generalist, don't put your eggs in one
basket.

------
mesozoic
Don't do it for the money.

------
sevensor
Consider switching to engineering, especially MechE or EE, or maybe industrial
engineering if you can't handle calculus. To distinguish yourself in pure CS,
you need to come up with something really smart. There are many, many
subdomains in the engineering disciplines, and only a few of them have
received much attention from ambitious computer programmers. You can
distinguish youself in some of these areas just by showing up. Plus, it's
seriously fun to write programs that engage with the real physical world.

------
mike128
Do what you love - as cliche as that.

The best career is the one that gives you joy and fulfillment. If CS is what
floats your boat then it’s the right choice for you.

Go for career that pays much more but you must drag yourself from bed to go to
the office every morning and you are set up for a life of misery - no matter
how much money you make.

~~~
enraged_camel
>> Do what you love - as cliche as that. >> The best career is the one that
gives you joy and fulfillment.

What? No. This is actively harmful advice.

~~~
napsterbr
Genuine curiosity: why is it considered bad/harmful advice?

~~~
tropo
Usually it leads to unemployment. People want to do the same things as each
other, but we can't all be football stars. We can't even all teach
kindergarten or nursery school, and the low pay of such jobs is the natural
result of many people wanting those jobs. People enjoy getting BA degrees in
psychology, then discover that they do not enjoy paying the student loans
while working as unskilled labor.

~~~
nineteen999
Wait until you see what some 3D artists work for. Due to the fierce
competition, many of them consider themselves lucky just to be working in
their field of choice, and getting paid a minimal wage is just an added bonus.

