
Why You Should Hire Computer Science Majors - brenns10
http://stephen-brennan.com/2015/08/30/why-you-should-hire-cs-majors/
======
myth_buster
I would like to hear their opinion once they graduate and get some years of
experience in the field.

Software engineering is predominantly problem solving and the important traits
are analytical and logical thinking. 4 years of education doesn't govern
these. Some people have natural pre-disposition to these skills and filtering
out people based on majors will reduce your pool significantly.

I've seen a lot many good engineers coming from the Philosophy, Physics and
Mathematics majors. And I think this could be true for other majors too.

In short, smart people will easily catch up with what is taught in 4 years and
hence given an average employment period of ~30yrs it's ridiculous to decide
employment based on a major.

~~~
edgyswingset
Some of my personal experience with non-CS majors can be summed up with three
words:

Hardware Ex Machina.

Perhaps I'm biased, but I suspect a smart person from a CS degree background
will probably think about performance more than a smart person who never
learned about "irrelevant" things (to quote the author this post is
addressing) like Operating Systems.

Someone without a CS degree can learn about how to write code which is memory
and CPU-efficient and scales well. But if it's never a problem they have to
come across, they may never even think about it. CS students are forced to
think about things like that in their degree.

~~~
spamizbad
I've worked as a developer for 10 years. My anecdotal experience is that 4
years of undergraduate Computer Science does not impart any special skills
regarding performance. I found myself routinely refactoring code written by
CS-degreed programmers who would do silly things like put a database query
inside 2 nested for-loops.

I even had one case where a degreed dev looked at perfectly fine code and said
"Oh there's a faster way to do this..." then proceeded to implement a solution
that was literally 500x slower, but checked it in anyway, not bothering with
any before/after performance benchmarks, just assumed his stuff was magically
faster. The culprit: His solution was very greedy with network traffic (but
was arguably more computationally efficient). Didn't matter tho, it was slow
as dog.

Undergraduate Computer science will teach you how to _measure_ how much
arbitrary work it takes to complete something but AFIAK it does not seen to
teach you a very good job of how to actually look at a specific problem and
optimize the work, memory, or external latency-intensive resources... that
must be learned by critical analysis of actual code.

~~~
edgyswingset
> that must be learned by critical analysis of actual code

I agree fully, and won't ever deny that many students simply either never do
this or never do it effectively.

There are courses which teach this however (such as OS), and many of them are
required for a degree. I feel that the likelihood that someone with a CS
degree has had these good practices ingrained in them is higher than someone
with no background in CS. In other words, it's a safer bet.

------
andrewstuart
This article is a counter argument to some guy who says you should not hire
computer science majors.

Choosing to hire or not hire based on whether or not someone did or did not
major in computer science is just a pre-judgement about an individual's
ability as a computer programmer. It makes alot more sense to treat people as
individuals rather than pre-judging against some broad criteria that
classifies individuals into types.

It's often non programmers who make broad pre-judgements like this because
they don't understand software development well enough to work out what
strengths and weaknesses an individual programmer actually has.

Another word for pre-judgement is prejudice.

Not all prejudice is illegal. Saying that "all people who fit into category X
or category Y are not suitable for employment with this company" is entirely
legal but foolish prejudice, presuming of course those categories are not
defined as illegally discriminatory in the country that you live in.

~~~
SamReidHughes
You're not using the top-line definition of prejudice, which is when your
opinion is formed without reason.

You can only spend a finite amount of effort on hiring, and you have to phone-
screen some people before you phone-screen others, so you've gotta create
expectations of people based on imprecise information like their major, GPA,
former employers, etc.

~~~
andrewstuart
I don't agree that the criteria you mention are effective ways to work out if
an individual is a good computer programmer. They are just more pre-
judgements.

For example I can't see any way in which working at a particular company
defines whether or not someone is a good programmer. Can you quantify in
detail why working at company X means someone cannot be a good programmer? A
detailed explanation?

Can you explain to me precisely how you can measure someone's capability as a
computer programmer via their GPA? And I mean in a really quantified way, not
just hand waving.

Even what someone majored in.... can you say exactly in detailed terms how
this defines whether or not someone is a good computer programmer?

Pre-judgements like this are just voodoo recruiting.

It's how to recruit when you really have no idea how to work out if someone is
a good computer programmer or not.

~~~
SamReidHughes
It is possible to operate on information without rounding beliefs to either
100% certain or 100% certainly not, and without collapsing imprecisely
specified heuristics to simple If X then 100%-certain-of-Y conditionals.

You didn't respond to the blog post. You responded to a version of it that has
been rounded off in this manner. Likewise, you haven't made a response to my
comment: I never claimed these criteria were effective ways to work out if an
individual is a good computer programmer. You've rounded the idea that some
people are more likely worth interviewing to a different meaning, and
responded to that.

Likewise, using the word "prejudice" under one definition to pick up the
negative connotations of one of its other definitions seems like the same kind
of thing -- a similar obliteration of nuance.

------
dsilver
I don't think the article is an argument that as a hard rule CS majors are
predetermined to be great job candidates. In fact, the author draws a line
between students who take on side projects and are passionate about the
material and students who are doing it for the supposed payout.

Recruiting software engineers is about finding the passionate engineers who
are proven problem solvers regardless of programming language or given tools.
Those people might be computer science majors, and they might be non-majors
(or non-students) who have a passion and skill for problem solving.

I've worked with and learned from great engineers who did not formally study
engineering and those who have devoted their life to it. It's ultimately about
having the drive to pursue (software) engineering. Those people tend to self
identify by enriching their education with their own side projects.

Ultimately, Computer Science education is (and should be) exactly what it
says. The science of computing. It doesn't require a computer, and it isn't
software engineering. By studying great algorithms, data structures, design
techniques, etc, you are well on your way to skill set of a successful
software engineer, not because you know about splay trees or automata, but
because you have practiced advanced problem solving, which is at the core of
any engineering.

~~~
Tomte
Am I the only one who always feels that the search for "passionate engineers"
really means "cheap, doesn't know his value, works for rent and pizza"?

What about competent? Professional? Experienced?

Nobody looks for a "passionate lawyer", that would even be a red flag,
indicating that he can't evaluate a legal situation objectively.

Nobody looks for a "passionate basketball player". As long as he shoots those
three pointers, who cares whether his secret passion is really boardgaming.

------
PhilWright
Don't you just hate those selfish Universities that won't churn out enough
people with exactly the skills needed by start-ups so the start-ups can then
pay them below the going rate they could have achieved otherwise.

Anyone would think it was the students paying for the education. An education
that allowed them to maximum their income over a career than spans a decades.
Instead the students should be paying to get the skills needed to help start-
ups make their founders rich.

------
whiteboarder
An important thing that articles like these miss when talking about the
"fundamentals of computer science" is that a CS degree doesn't actually teach
you of lot of the necessary fundamentals that people use in the real world.

For example, what about the fundamental of building a website, or building an
app?

I'm not arguing that "colleges should teach students rails or X technology
that will be outdated in 2 year".

I'm saying that colleges do not teach you a lot fundamental computer science
concepts, such as "How do I design a scaleable rest API/website". Or "how do I
use a MVC framework (regardless of which MVC framework it is)", or "What
design decisions do I need to make when building a mobile app".

These are all very important concepts, that I use in my day to day job, and
they have NOTHING to do with "learning hip technology X". These are problem
solving fundamentals that colleges don't teach!

~~~
jpmoral
The concepts you mention are fundamental and important to web and mobile
programming, but a lot less fundamental to CS.

Programming != CS, and that's fine. We need CS to push the boundaries of what
we know and can do, and we need programming for the day-to-day work. The trick
is knowing what the overlap is for the position you need filled.

~~~
davnicwil
> Programming != CS, and that's fine

Can't agree more.

When I took my first job after graduating with a CS degree, I often complained
that my degree hadn't taught me really anything useful about how to program
with real teams, building real things to real timescales.

Some years later my opinion changed. Of course my CS degree didn't teach me
these things, but nor should it have. It was partly a foundation in the
principles behind programming, partly an education in how to think about
problem solving on a fundamental, quite abstract level.

The things I gained from it provided a great base from which to learn how to
write software in industry, and whether I realise it consciously or not,
everything I have learned and continue to learn is augmented with the
knowledge of the fundamentals behind it, which is really, really valuable.

My opinion, and I'm more than willing to be challenged on this by anyone with
counter-examples, is that learning to write software in industry, with teams,
huge-scale systems, bosses, and deadlines, can only be done on the job. It's
not something that can be simulated in a university, and indeed one actually
never stops learning even once in industry.

Things that are helpful on the job can only really be learned the hard way, by
doing the job, failing, and seeing that a better way exists for next time, in
a similar situation. There's never such a thing as 'the right way', only 'the
right way for this situation' \- and there are too many permutations and edge
cases on what that could mean to be taught in a structured way in a degree.
Therefore I don't think universities should be in the business of even trying
to accomplish this. They _should_ be in the business of producing graduates
who are able to learn professional programming with a broad and deep knowledge
of the fundamentals as a base, which is a very valuable thing.

I think what the GP is describing is more like an apprenticeship than a
degree, and who knows, maybe that (combined with at least some study of the
most directly-related fundamentals) could be one future path for learning
programming as a young school-leaver, in lieu of going to university. Perhaps
a four-year apprentice would be quicker out of the blocks in their first 'real
job' than a 4-year CS degree grad, and perhaps that's a much better, more
economically viable way to train new programmers for standard, forms over data
style web development or application development work.

My point is teaching to the job is a completely separate thing from learning
the mathematical and logical underpinnings of CS from nearly first-principles,
and should be approached as such. Let a CS degree be a CS degree, don't try to
morph it into a programming apprenticeship.

------
ranci
Mr. Gelernter doesn't look for computer science majors, because schools don't
teach them what he values in a developer. The teaching is "10 years behind in
a field that changes every 10 minutes."

\--Web dev changes a lot, but some things like Java were used 10 years ago and
are still used today.

"The courses focus on things he considers irrelevant (like operating system
design) without providing experience with working on real development teams."

\--Really? I'm going to be taking 2 capstone software engineering courses that
focus on building real world applications in teams.

"There are few courses on practical skills like mobile app development."

\--Took a class on iOS development already, taking another class for android
development this fall. I have literally no clue what this guy is talking
about. Maybe its your idea of what computer science students are learning that
isn't changing. And why would it, when you don't hire any..............

------
ZanyProgrammer
'The teaching is "10 years behind in a field that changes every 10
minutes.'-which is a good reason to not overemphasize practical stuff like
mobile app dev. But really, even to do something like mobile app dev at a
professional level, you need a solid programming background-you learn the
fundamentals, which can be pretty dry and staid (like data structures) in
order to be able to successfully do stuff like mobile dev.

------
seiji
Great rebuttal to an originally insane WSJ anti-thought piece.

Some awkward points from the original WSJ article:

 _University computer science departments are in miserable shape: 10 years
behind in a field that changes every 10 minutes._

When did the WSJ author have time to sample the 4-year curriculum from every
CS department?

The author complains about "no iOS development" in universities. There's
always a balance to strike between being a trade school and a knowledge
institution. It's not the place for a university to pre-train your employees
exactly to your specifications. You probably don't need the pumping lemma to
develop Angry Angry Badgers XXV, but you still need exposure to how and why
everything can even work the way it does.

The rebuttal post makes a great point about how, if iOS development is so
important, universities should have been teaching Flash development
extensively up until about five years ago. That would have worked out well for
everybody.

 _Computer science departments prepare their students for academic or research
careers and spurn jobs that actually pay money._

Unsubstantiated fuff. Computer Science departments are the only departments
expected to churn out semi-productive workers by their second semester of
study. Not many pre-med majors are getting hired as junior doctor interns
their 6th month into study.

 _They teach students how to design an operating system, but not how to work
with a real, live development team._

Operating system design courses focus heavily on practical data structures and
the reality of programming physical hardware. But, counter argument, it's all
invalid in the cloud!

As for "real, live development team," that's one of the _benefits_ of going to
a school. You get to work in different project groups over the course of a few
years to figure out how things work, how other people work in a group, and how
you yourself respond to group dynamics.

 _Mr. Gelernter is the CEO of the tech startup Dittach._

Based on his rant, I'm assuming Dittach is just a thin glue layer on top of a
dozen open source libraries with no actual development involved?

~~~
TheCowboy
I think there's a balance to be struck. People shouldn't limit their search to
people with the correct credentials, and people shouldn't discount education.
Hiring is hard, and likely will continue to be hard.

A computer science degree tends to be about 2 full semesters worth of college
credits, or one year of education. ___Calling a 4-year degree a "computer
science degree" is the first misnomer. It is still a liberal arts degree with
a major in computer science._ __Of course one shouldn 't expect a fresh grad
to have all of the needed skills for commercial software development if they
stuck only to their coursework. Internships help, but the intern is at the
mercy of the company when it comes to what they get out of it.

Even self-taught people can't learn everything in a single year, and have to
specialize if they want to find employment, limiting their job opportunities
and appeal to employers. Specialization can also increase their expiration
date if they picked the wrong stack, but can increase their appeal if they
know the right technology at the right time.

People also don't differentiate between self-taught programmers who already
have a liberal arts degree, and those who do not. What percentage of coding
bootcamp graduates have no college education, and what results do they see?

If companies want people who have all the skills and experience your company
demands, then pay more for senior developers instead of expecting people fresh
out of college to fit that role.

------
jasonjei
The way I like to think about it is this: a student that goes to baking or
cooking school isn't going to be a better candidate if he/she doesn't bake on
his/her own time. I would probably hire a self-taught baker that bakes on
his/her own time over a formally-trained student of baking who doesn't bake on
his/her own time. However, a baker that is formally trained and bakes on
his/her own time is going to be quite formidable to the self-taught baker.

That's the same way I view developer candidates with respect to those with and
without a CS background. The weakest candidates don't hack on their own time.

~~~
MisterBastahrd
Bad analogy. The school-taught baker will almost always stomp the crap out of
a self-taught baker. There are things you just can't learn at home, and how to
bake at volume is one of them.

~~~
jasonjei
OK, how about self-taught cook? I've seen a number of restaurants opened by
those without a formal cooking school background, but the common thread is
working from restaurant to restaurant. I have a friend who was picked up by
Alice Waters and is a sous chef at Nopa having cooked at Chez Panisse for
years despite the lack of a formal cooking school background.

~~~
MisterBastahrd
Then it invalidates your previous example. There's a difference between
someone who gets vocational training on the job and someone who just decides
they can cook well at home so they deserve to be a chef. Learning at home
can't replicate scale or timeliness. There's no substitute for a live kitchen,
and all cooking / baking students spend PLENTY of time in live kitchens before
they graduate.

~~~
jasonjei
I'm sorry my initial analogy wasn't clear. When I meant self-taught, I met on
the job vocational training as well as personal time devoted to pet projects.
Hopefully, with the clarity added, you will find my analogy better.

------
arihant
I disagreed with the article mentioned by Stephen too. Computer Science is not
about learning to code, it is a degree in problem solving. It teaches one how
to think about problems. In that, it's almost liberal arts. It's a science of
process. It is not a degree in coding. Too many people can code.

Yes, it is entirely possible to learn the fundamentals of problem solving in
an alternate field. But if not, computer science degree is a damn good way to
get there. Long term love of coding is no substitute for it.

There are a lot of great ideas in Computer Science that are very hard to learn
all on our own in a short amount of time. One cannot just hire a long-term
user of telescopes as an Astronomer.

Besides, even if the position disregards the importance of problem solving
skills, CS teaches a lot of underlying stuff that almost none of the self
taught programmers I know have yet learned. That might not be important, but
is incredibly valuable when shit hits the fan. Maybe there should be simpler
resources to learn computer systems on our own. Knowledge of what's going on
is not very common.

~~~
seiji
_CS teaches a lot of underlying stuff that almost none of the self taught
programmers I know have yet learned_

There seems to be two approaches to knowledge acquisition: school method vs.
self-taught method.

School method: learn everything you can, then learn to ignore what doesn't
matter since you probably know a lot of things now.

Self-taught method: know nothing, only learn exactly what you need. (e.g. try
to do something. learn what you don't know. make one thing work. now you have
a very narrow knowledge. repeat process until your goal is obtained.)

The self-taught method still produces capable people, but sometimes their
capabilities and experiences are more narrow than others who have been through
purpose-designed curricula.

The self-taught method is also a favorite of YC. Who needs business school
when you can learn it as you go and pay people to understand parts you don't
comprehend? You probably won't hire a YC self-taught-CEO to run Bank of
America or JPMorgan, but they can competently bounce around startups for the
next 20 years with no problems.

~~~
arihant
I agree on self-taught method, don't get me wrong. Which is why I said I wish
there were better resources.

But what is missed from the argument is that any good CS program _includes_ a
lot of self-teaching. You're expected to write an OS, large torrent softwares,
networking protocols, parallel systems that run on supercomputers, distributed
databases like Hadoop, web apps like Twitter. And that is just the top of my
head. And most of these extended projects don't have any top end requirements.
They only have minimum requirements which is pretty high. And people usually
try to one up everyone else.

Not to miss that self-taught method almost completely neglects theory method,
a lot of the times. Ask a self-taught programmer if his algorithm could be
made better, then wait a couple years till he learns huge amount of discrete
math, complexities, and proving optimality before his answer can be trusted
without everyone else looking.

Again, not everyone values these skills. And that's OK. The article was
written in reponse to a guy who said he won't hire CS graduates.

------
orangeplus
I've hired both CS folks and non CS folks for, predominately, web development
in Java, PHP, Python with accompanying skills in devops and sql. In my
experience, I haven't seen it as a positive or a negative, I've had both CS
and non-CS fall on their faces and seen both excel. These days the things I am
looking for are experience and a well used GitHub account.

~~~
prostoalex
The skills of computer scientist and computer programmer are largely
orthogonal and are usually categorized by various government agencies as such.

------
xxcode
For me going to school and majoring in CS was a exceptionally enjoyable
experience. I did not think about jobs. I didn't even think of being a
programmer. I took a liberal arts view to computer science - it taught me how
to think about complex problems. And school was so much fun, both MIT and UC
Berkeley. I remember feeling that I was getting smarter every day.

------
character
A CS degree obviously is not meant to give people 100% of the skills they need
to work in the real world. It builds a foundation of core knowledge about the
field that does not usually come from a hacker bootcamp or independent web dev
study.

Having a few friends from the school of "who needs college?! I taught myself
everything I need to know about coding and I'm on the cutting edge of the
field and I have a great job!", I sometimes see a lack of understanding of
general principles. Sure, people who really love computing often dive deep
enough to learn this stuff themselves, but there are a lot of people who love
development that just don't even know what they don't know about it. Most
development jobs don't require this knowledge, but you'll sure miss it if
you're in a position that does.

------
studentrob
> As I go through college, I'm starting to learn to distinguish who else is
> infected by this "coding love", and who is here because they thought they
> could get a good job with a degree in CS.

That's a bit simplistic. There are some people, myself included, who at that
time knew they were interested in CS but had not yet come across the right
project, language or instructor to help them discover their passion. I was a
late bloomer as a developer. I did not keep at it just because I knew I could
land a job.

------
littletimmy
So we're just comfortable with the idea that the purpose of a college is to
train you for a job? Have we without question chucked out the main objectives
of a liberal education - creating educated thinkers who have the capacity to
learn?

Of course! The purpose of college is to produce tradesmen who come pre-trained
to... uh... work at startups that help people "find attachments easily".
That's what education is about.

What farce.

------
jstrom
At the last place I worked, we were looking for an entry-level developer and
routinely turned down computer science graduates. They knew their theory,
big-o, algorithm names, and such, but could not code at all in any medium.
(And we weren't looking for any specific language--just enough background that
they could learn our internal test scripts.)

There is a sharp difference between "Computer Science" and "Computer
Engineering" though colleges often conflate the two. The article's author
sounds like the latter, and with his personal background in programming, I
would expect him to do fine in the position we were trying to fill. But many
other graduates with CS on their diploma will have written just enough Java to
pass their one programming course and have no interest in learning any more.

You don't need to know everything about the field, but you do need the ability
to learn the practice. "Computer Science" on a resume (without some sign of
personal projects) is too often a flag that the person lacks that ability.

~~~
herge
> There is a sharp difference between "Computer Science" and "Computer
> Engineering" though colleges often conflate the two.

Whenever I've seen "Computer Engineering", it's in reference to the
engineering domain of _building_ computers, chips, etc. Software Engineering
is the "practical" version of Computer Science you are probably referring to.

------
vikingcaffiene
I'm self taught and have been a working developer for almost a decade now and
a degree in computer science has nothing to do with anything from what I've
seen. I've worked with guys with MASTERS degrees in computer science that
couldn't understand how to get a "hello world" come up on the screen much less
design a proper back end. I've also worked with brilliant guys who have CS
degrees but also guys who are self taught like myself that are incredibly
talented. The true difference (which is a point this article does make) is the
love of coding. You have to love it to be good at it and you are going to
figure it out one way or another if you do. In my opinion, its about getting
out there and getting your hands dirty. There is more freely available
resources out there than I can mention. Its a bit overwhelming but it sure
beats throwing $50k (at least) in the hole.

------
pixelp3
A lot of startups only think in terms of "hey let's make a simple app/website
and let AWS do all the work!".

They don't realize how deep computing and computer science truly are. Data
Structures and Algorithms, Computer Architecture, Operating Systems, Machine
Learning, Computer Graphics, Databases, Compilers and Languages, etc. etc. all
require a deep knowledge of CS.

Pretty much anything you use or build on was developed because of years and
years of CS study or PhDs. When you use something like Google Maps, Chrome,
iOS, Linux, AWS, Facebook (yes even Facebook), etc. it is because of the work
of CS grads and professors over a long period.

Do you want to have deep knowledge of various systems and truly solve problems
or just want to hack out another webapp or mobile app? Maybe that defines the
difference between a CS major and "just-another-dev"

------
cyberpanther
I think having a computer science degree is not a good indicator if you love
coding. However, there are most certainly lots of people who love coding and
have a CS degree.

However, if you find someone good at coding and they got there because they
were self taught, then it is probably a better indication that they love
coding because otherwise they would have not taught themselves the skill and
got good at it.

So I think it is definitely easier for our mind to stereotype people and just
look for the higher probability of success method. But you then cut out a huge
portion of potential candidates.

So spend a little extra mental energy to judge the individual based on more
than just a binary criteria. I'm sure your hiring process will greatly benefit
from it.

------
ZanyProgrammer
Interestingly, the CEO's LinkedIn shows him graduating with a BA in music from
Yale. Granted, _any_ Ivy League degree gives you a heads up that a graduate of
Chico State with a CS degree doesn't have, but it does provide some
interesting background.

------
gpcz
Google and Facebook, which Gelernter says the very best people go to, have
interview processes that filter out people who don't have a good command of
fundamental topics taught in formal computer science college programs.
Presumably the people who get into Google or Facebook are also passionate and
self-motivated, most likely from an early age.

That implies to me that the self-taught+formally-trained people are in high
demand and paid accordingly. Thus, Gelernter gets to choose among the people
who are only self-taught or only formally-trained, and his sweeping viewpoints
are based on his experiences with a subset of the workforce.

~~~
nextos
From what I've read, Google & Facebook focus too much on algorithm & data
structures minutiae.

Not to say this isn't an important topic. But my CS degree involved some areas
that I would argue that are at least as important for the kind of work these
companies do, like process algebras for distributed systems or static program
analysis.

------
klt0825
I tend to agree with most points. I always credit my undergraduate CS
education with teaching me about how to think about a variety of computational
problems using a variety of languages as lenses. I actually think that is why
I've been able to succeed in a number of different development roles (Web
Developer, Mobile Developer, Reverse Engineer). If I had had multiple
semesters of learning only language/framework-X features, I think I would have
been worse off for it.

That being said, it did take me a while to appreciate that this was what my
education gave me and obviously, no approach works for everyone.

------
ninjakeyboard
I'm a late comer to coding as a professional and it keeps me humble and always
seeking: 1) to work with people smarter and more experienced than I am 2) with
open hands, to always accept any critical feedback that helps me understand
what I don't know or what I could understand that would help me face the world
of problems in-front of me better.

That's been enough for me to surpass many of my peers of assorted educational
background etc.

------
jack9
A Computer Science degree taught you to write a counter-argument blog post
that says nothing original or compelling, because you read one you disagreed
with.

Way to illustrate the point.

------
faCeti0us
Link without the paywall for the original WSJ article.

[https://archive.is/1BqTf](https://archive.is/1BqTf)

------
jqm
Reason #1 you should hire computer science majors:

The author is one.

------
krick
Oddly enough, the most of the good programmers I know are CS faculty dropouts.

------
_RPM
As a Computer Science major, and programmer, and soon to be college graduate,
I don't like the fact that people can go to a "coder bootcamp" and after they
"graduate" from it, they expect to get the jobs that CS grads get. I don't
think these people should be paid in to the same level as college graduates
with CS degrees. A CS degree is the best investment to make at this time if
you're not already part of a well connected network of family that can get you
into old money, or work for a family member.

~~~
gingerrr
As an engineer in the industry for going on 6 years with no CS degree, I don't
like the fact that people can go to "college" and after they "graduate" from
it, they expect to get the jobs that people with half a decade of on-the-job
experience get. I don't think these people should be paid in to the same level
as experienced engineers with proven track records. Working in the industry is
the best investment to make at this time if you're not already part of a well-
connected network of college graduates that can get you into old money, or
work for a family member.

(The above tongue-in-cheek should NOT be read as a defense of coding
"bootcamps", as I think they're leading to a glut of barely-competent
programmers flooding the market, but should be read as a criticism of degree
entitlement. I know my algos, can calculate time and space complexity easily
and correctly, have designed several mission-critical systems that have
withstood the test of time, all without the college degree. At the very least
a bootcamp'd developer will have some hands-on exposure to the tools being
used in the industry today.

A degree does not a competent engineer make.)

