
Software Engineering Grads Lack the Skills Startups Need - joker3
https://spectrum.ieee.org/the-institute/ieee-member-news/software-engineering-grads-lack-the-skills-startups-need
======
mreome
Isn't this just observing the fact that college isn't the same as work
experience, and only provides the base skill-set needed to enter enter the
industry?

"When you join a startup, there’s a lot of emphasis on the design of the
application, reusability and clean code, and the ability to conduct and
undergo code reviews, as well as the ability to think of and build systems
that can scale based on users and geography"

I can't help feel that if you're expecting a recent grad to hit the ground
running with this level of insight and experience, your doing something
terribly wrong. You should expect to _train and mentor_ a recent graduate, not
put them in charge of a project.

* Good design requires having an insight into the requirements of a system, often with an incomplete spec and unclear long-term goals. You can't really do this without actually designing and building real-world systems, and over-time understating where the possible failure points and missing requirements may be.

* Reusability is a double edged sword, if you generalize every bit of code into a a reusable configurable component you miss deadlines and end can end up with an 'Enterprise' mess of OOP code. It takes experience to know when to generalize, and when to KISS.

* Code reviews, best practices, and requirements are different at every company and in every industry. Even someone with experience has to be brought up to speed on this when taking on a new position.

* The "ability to think of and build systems that can scale based on users and geography" ... this is incredibility specific. I work on embedded industrial systems; they're massively complicated but are single user and often only on an isolated network. Knowing how to "scale based on users and geography" is a specific requirement for this person's industry, not software engineering in general. If you want specialization, _you don 't hire a recent grad_ (unless maybe your doing research and hire a PhD).

 _Edited to expanded on a few parts._

~~~
donw
Candidly, I would say that college does not even provide the base skill-set.

In the Real World(tm) of building software, you will work on systems built
over years by other people, many of which have long since left the project or
company. The level of integration tests, unit tests, documentation, and
automation will depend entirely on the culture of the organization.

Databases, low-level I/O, sorting operations, and such are nominally provided
either by the standard library or sourced from the community.

Infrastructure will rule your world. Good infrastructure, with smooth
provisioning and deployment, will make your day a joy. Poor infrastructure,
with lots of manual work and sign-offs from ten degrees of sysadmins, will do
the opposite.

You will also work as a member of a team, with a wide variety in terms of
background and experience levels, making clear communication, in all forms, an
absolutely essential skill.

In college, very little of the above is actually covered

Sure, you'll learn lots of stuff about operating systems, algorithms,
compilers, data structures, and the like. But without any real context on what
that stuff really does.

But the big place that computer science education is a big let-down is on the
collaboration front. There aren't many programs, perhaps none, where you are
required to, as a member of a small team, maintain and modify code built three
years ago by other people, and graded on your ability to produce work that can
continue to be developed by future students.

Instead, the focus is on solving relatively straightforward problems as
quickly as possible, with little or no attention paid to user experience,
readability, testing, and any of the other things that make up the
"engineering" side of the practice of building software.

~~~
nickpinkston
Maybe make them work on open source projects?

Or even the college's own toy systems?

~~~
repolfx
The problem is then their grade ends up being heavily affected by the quality
of work done by other people. It'd be impossible to objectively grade such a
task.

The key difference between university and work is that in the former you are
supposed to receive a pretty fine-grained assessment of _your own skill_ ,
which is isolated and repeatable. In work, it's understood that promotion and
slotting is a much more arbitrary affair and the marking criteria may not even
be documented, let alone applied consistently. Also if your project fails
because of bad work done by others, well, tough luck, that's what your salary
is for. In university you're paying to be there, not the other way around, so
the amount of random failure tolerable is much lower.

~~~
nickpinkston
Maybe it's less about the quality of your code for this and more about how you
do on: estimating your time, hitting your schedule, collaborating metrics
(response time, ticket closing, etc.)?

~~~
repolfx
By those metrics many of the industry's top companies and engineers would get
a fail grade.

------
dannykwells
Colleges are not here to serve startups. Colleges are to help students build a
skill set that will serve them throughout their lives. If a startup does not
want to invest in a recent college grad, there are many other more experienced
hires they can make.

Thinking that _free_ training which is being provided _by someone else_ should
fit your custom needs is, well, maybe not the best business case.

~~~
ailideex
College is free?! TIL. I guess in that case nobody can complain.

~~~
curiousgal
Free for the startup.

~~~
ailideex
Being a college grad does not affect entry level pay?!?!? TIL

------
sharadov
Very funny!

"When you join a startup, there’s a lot of emphasis on the design of the
application, reusability and clean code, and the ability to conduct and
undergo code reviews, as well as the ability to think of and build systems
that can scale based on users and geography"?

I don't know which startup he worked for that was doing all this and still
managing to stay afloat! Startups want you to crank out features and get
clients in, everything else is a failed strategy!

~~~
toomanybeersies
We do none of the above! We just keep tacking on new features to snag more
clients.

On the plus side, I work 38 hours a week and not a minute more, and I get paid
above median for the privilege.

~~~
sharadov
We're a Series D/E company, and we still don't do all that!

------
GhostVII
At least in my program (University of Waterloo Computer Science), there is
barely any emphasis on practical things like modern tooling, different roles
of a software engineer, etc., with the exception of some of the upper year
courses. Instead it is largely theoretical - data structures, calculating
runtimes, how the networking stack works, theory of distributed systems, etc.
You learn practical things, but only enough to help you learn the theory. So
yes, this absolutely doesn't prepare you for a job, but I don't think it is
supposed to, it is a university program, not a bootcamp. Instead it gives you
the foundation to do more research and learn practical applications of the
theory you have learned.

Through internships, I feel I've learned the practical I need in order to work
full time, and what I learn during internships is complimented by the theory I
have learned through my degree.

So I guess what I am saying is that if you are doing a university program, you
shouldn't expect it to give you the practical skills for working, that's not
what it is for. Instead do lots of internships if you can, they are fantastic.

~~~
toomanybeersies
I don't know about the University of Waterloo, but at the University of
Canterbury, we had separate Computer Science and Software Engineering degrees;
you could get either a B.Eng (hons) in Software Engineering or a B.Sc in
Computer Science.

Software engineering students had to do process and design papers, they
(theoretically, at least) learned about agile development, UML diagrams, and
all that other SDLC bullshit. As a computer scientist, I instead took fun
papers like computer graphics and cryptography.

All the things I missed learning because I did computer science, I picked up
as I needed at work. Learning how agile development works doesn't take a
semester of reading books, and what you learn in theory about the SDLC at
university doesn't reflect reality in any company.

------
SavageBeast
So startups want to hire kids right out of school for entry level wages and
expect them to command the skillset of a Sr. Developer... Makes sense. I too
would like to hire a low cost, plentiful resource thats identical in skill
level to a more experienced person while paying them less.

------
geebee
Really? Cause it seems, based on my interviews, startups couldn't care less
about my background in leading customers through beta demos, collaborating
with scientists, participating in sales presentations and outreach, writing
documentation, or any of the issues described here.

They do seem awful interested in whether I can find all matching subtrees in a
binary tree, though. Which, now that I think about, is the one thing I learned
in college but haven't done even once on the job once in 20 years (I have had
to find minimum cost paths in a tree, though. I couldn't have done it on the
spot at the whiteboard, but my data structures and algorithms class was
helpful in researching and figuring it out years later).

~~~
andrewljohnson
The thing about all of those skills is they are all soft skills, that can be
taught quickly on the job to the right candidates. Whereas a deep ability to
solve a technical problem cannot be taught in a reasonable amount of time to
most people.

Asking someone to find the matching subtrees in a binary tree might not be the
best interview question, and to some extent it is kind of trivia for "did you
grok your CS education well" \- but the point of algorithms questions overall
is to see if the candidate, when confronted with a tricky problem, will solve
it.

And no, these tricky problems don't come up all that often, and you're often
just doing basic coding plumbing work. But the candidates who can solve these
problems can do all the plumbing work too, and when confronted with a tricky
problem, they can get past it. And they also may innovate in an algorithmic
way where a less deeply technical developer will either get blocked or come up
with a worse solution.

~~~
mike00632
There is the old adage, "you can teach technical skills but you can't teach
personality."

~~~
kthejoker2
I can handle most personalities within 2 sigma, coach where I need, what is
very hard to change is mindset.

People who won't try new things, because they'll suck at it.

People who don't Google (they know how, they just don't) because they think
all answers all received wisdom, not something between a SWAG, an opinion, and
a mental model.

People who don't read things outside their domain because that's someone
else's job.

People who confuse having 1 experience for 7 years with 7 years experience.

People who think you have to be an expert scientist, engineer, architect,
philosopher, and mechanic to change a light bulb, so they never even tried.

People so worried about imposter syndrome they'll never deliberately exert any
curiosity for fear it will be seen as ignorance.

------
ascales
I think that at an even more basic level than hard skills, some graduates lack
knowledge in things like basic problem solving, abstract thinking or the
ability to switch between languages quickly. It's interesting to see how
straight-A students who study well and test well don't make the transition
from the academic environment to a job.

~~~
peterlk
I have a pet theory about this.

Your whole life has goal posts laid out for you. You go to elementary school,
get good grades so you can get into honors classes in middle/high school. And
you do this again for college. Everything is quantitatively measured. How many
questions did you get right? How many days did you attend school? How many
extracurricular activities did you participate in? How many hours did you
volunteer? All check boxes that other people hate laid out for you so that you
can be measured in the funnel. And, artually, for some people this process can
continue in their career. You get good grades in college, then you get an
internship at BigCo. Then you get a job at BigCo. On and on until you die.

The problem is, you never had to figure anything out. So if you ever decide to
do something non-standard or if randomness hits you too hard, or if someone
along the way deems you "not good enough", now you're off the track. And you
have never had to set your own goal posts. If you have to be constantly told
what to do, employers are not going to want to hire you.

I think the lack of critical thinking goes hand in hand with an inability to
function without rulebooks and structure.

~~~
ascales
I think this is somewhat right, but I also think that there aren't enough
project based learning opportunities in school, and there certainly is not
enough opportuntities to fail in school. A number of universities are
implementing a limit of 3, sometimes only 2, on how many times you can fail or
drop a course. So there is definetly a comply-or-die academic environment that
just doen't exist in most tech jobs nowadays.

I'd love to see a curriculum where there is a class each semester that is 100%
project based, where the end result isn't as important as the process.

------
adjkant
What's funny to me about all of these comments is that practically focused CS
programs can hit the best of both worlds. There's a reason there's a direct
Waterloo to Google pipeline beyond just the 4/4/4 timing. Co-op programs and
practically focused programs work great for building that industry know how in
a meaningful way while still getting the core CS taught better than you'd get
at most if not all bootcamps.

------
logfromblammo
_“When you join a startup, there’s a lot of emphasis on the design of the
application, reusability and clean code, and the ability to conduct and
undergo code reviews, as well as the ability to think of and build systems
that can scale based on users and geography,” he says._

I got a good, long laugh out of this. This describes the exact opposite of my
experience in a startup. None of those things were ever a concern until I
worked for a company that already had a revenue stream.

~~~
CodeCube
I mean, early stage startups fit your description, sure ... but I can't
imagine many startups surviving much traction if those things don't start
being looked at soon enough. Of course, some do (see twitter's Fail Whale),
but I'm guessing the vast majority of startups that fail to scale ... well,
they fail

~~~
logfromblammo
There may be some confusion in my mind between companies that are only
recently embarked upon a new business venture, and those who are already
bringing in sufficient revenue to bootstrap further growth, but are adopting a
generic "startup" branding strategy in order to shape their work culture and
attract further investments.

That is, after being an indisputably young startup, the business declines to
transition its identity into being a growing small business, and remains a
self-described "startup" because it is secretly a _huge_ business that is
still in its second or third instar, ready to moult, and to also seem like a
cooler place to work than it actually is, now that the HR department has
multiple permanent employees.

The emergency all-hands pivot brainstorming meeting just doesn't seem like it
can even take place in the same building as all those design discussions and
code reviews.

Does anyone else think that "startup" has become a branding strategy rather
than a descriptive term?

------
jahewson
I’d much rather hire someone with a degree in computer science than a degree
in AWS. I can teach them AWS.

------
paxys
The skills startups want are taught at coding bootcamps, not universities. The
degree is called computer _science_ for a reason.

~~~
all_blue_chucks
Most major schools offer degrees called Software Engineering. Most Computer
Science students are looking for careers in Software Engineering.

So ultimately it is called computer _science_ for the wrong reason.

~~~
sigstoat
> Most major schools offer degrees called Software Engineering.

name three.

~~~
all_blue_chucks
Iowa State University:
[http://catalog.iastate.edu/collegeofengineering/softwareengi...](http://catalog.iastate.edu/collegeofengineering/softwareengineering/)

UC Irvine: [https://www.informatics.uci.edu/undergrad/bs-software-
engine...](https://www.informatics.uci.edu/undergrad/bs-software-engineering/)

Penn State: [https://behrend.psu.edu/school-of-engineering/academic-
progr...](https://behrend.psu.edu/school-of-engineering/academic-
programs/software-engineering/curriculum)

Those three schools are > 30k students each.

~~~
gowld
ABET lists 32 accredding software engineering programs

[http://main.abet.org/aps/Accreditedprogramsearch.aspx](http://main.abet.org/aps/Accreditedprogramsearch.aspx)

(UCI doesn't appear to be one of them.)

------
manfredo
Some highlights that I felt were very on point:

> Students are taught formal testing methods such as static analysis, which
> checks code without actually running it. This helps them understand how to
> test software programs, but it doesn’t address the testing of distributed
> systems, web services, and infrastructure resiliency. Examination of these
> types of user interfaces and back-end systems is essential, Devadiga says.

This is a good observation. In my experience, the biggest hurdle new grads
have to overcome is to learn to develop in a context where users and co-
workers are going to depend on the projects they build, and need to be
maintained. I didn't learn how to set up instrumentation, deployment
pipelines, outage alerts, and other important pieces of infrastructure in
keeping a web service online in my university classes.

> Because startups are heavy users of cloud computing platforms, it’s assumed
> that most software engineering students understand how these systems
> work—but that’s often not the case, Devadiga says. Students need a practical
> understanding of infrastructure architecture design patterns, DevOps, and
> cloud platform services like compute instances, object storage, and queueing
> services. The ability to create applications that can execute in services
> like Amazon Elastic Compute Cloud is important.

Another one that I think is on point. I did use AWS in a networking class, but
that was just because the class instructors didn't want to deal with building
dev environments for windows, mac, and linux. I didn't really get exposed to
deploying and running a web application on a cloud computing platform. For how
universal cloud computing is nowadays, it's surprising how little I was
exposed to it in university.

I think it'd be great for universities to offer a "practical software
development" class that didn't really focus too heavily on any one particular
academic topic, but was more emphasized on imitating the kind of work that
developers do in industry. It'd be cool students went through the whole class
building, maintaining, and extending a single web service over the course of a
semester or quarter. It'd be neat if grading was based not just on application
functionality, but also uptime, average latency, and similar metrics - though
that would probably be too variable to be fair, a student's site might go down
while they're away on a sports competition or something like that.

~~~
dentemple
TWO practical software development classes. One for hard skills, and one for
soft skills.

The latter is another complaint I've heard from company owners. Too many
graduates who just don't know how to work with a company's non-engineers, as
they've told me.

~~~
zzzcpan
You are supposed to develop the latter in university by working with your
classmates on various group projects.

------
jkingsbery
I currently work at Amazon, but spent most of my career before Amazon at
startups. Here are just a few things that, in my experience, this article gets
wrong or over-states:

1\. "They [start-ups and next-gen tech companies] want grads who can build
scalable systems and program for large-scale, distributed, data-intensive
systems that leverage cloud computing." \- For start-ups, this is only true if
your startup is in that space. Most "start-ups" are trying to find product
market fit, and the systems are generally not large scale as a result.

2\. "Engineers at established companies mostly work within their specialty
areas." \- While there's some truth to this, I think it's overstated. In the
start-ups I worked with, "engineers" did not do market research. I worked with
plenty of specialists at start-ups that worked with language X, but if you
asked them to debug an issue in language Y, they'd refuse. In some cases, it
can be the opposite of what this article states - engineers at a start-up can
often focus on hands-on engineering tasks, whereas in a large company I find a
larger portion of my time is around writing documents to align more people
around an idea.

3\. "The timing of the product release is crucial because it has a direct
impact on acquiring customers and affects the bottom line. Significant delays
can put a company out of business." \- In a large company, you won't go out of
business if your release is late, but it could mean that your product gets de-
funded. While the change to the company might not be so much, a project
getting de-funded certainly affects the daily lives of those involved. So I
think this difference is overstated.

4\. "Engineers for startups are more likely to play a significant role in
defining the system architecture" \- My experience is that this depends a lot
on the start-up and the seniority of the engineer in question.

------
halis
Yeah they lack programming skills. Because they've been going to school, not
programming for a living.

But they can Google. They can study for interviews that quiz you on computer
science trivia.

The interview process on the coasts is broken. In the midwest I don't have to
deal with that shit.

------
dentemple
This is a valid reason to consider a trade school model ("coding bootcamps")
to fill this niche. Let Computer Science programs focus on the Computer
"Science", while trade schools focus on fulfilling direct company needs.

Of course, we need a _ton_ more oversight involved to ensure that bootcamps
are actually graduating people with a job-ready skillset.

~~~
dyarosla
This won’t happen until the signalling that comes with hiring from [elite
school] diminishes and/or the signalling that comes with hiring from [code
bootcamp] surpasses it.

~~~
dentemple
The signaling from [elite school] doesn't matter as much (to that applicant's
competitors) if there aren't enough elite school graduates to fill positions.

A startup can hold out for MIT grads for as long as they want, but they ain't
getting one if every other startup is doing the same.

_Someone_ is getting hired at the end of the day. A company that's looking to
grow rapidly can't hold out forever.

~~~
dyarosla
I mean yes, some bootcamps have started cementing their own signal too (see
Lambda) but I don’t know whether that many code bootcamps will surpass [second
tier schools]’ signals. You are right tho that there will be a supply problem
either way.

------
slothtrop
Even startups should be willing to train. The skills really aren't that hard
to pick up with the right mindset and knowledge a CS grad ought to have.

We had an intern come in that was still stuck in that student-mode of needing
to be told everything and not asking pointed enough questions. After a few
weeks they were up to speed and productive.

Frankly even experienced workers will still require a period to absorb
specific knowledge.

I think the time required for fresh grads to be productive is way, way
overstated and overestimated provided they have the right direction.

~~~
shagie
They should. Often, they aren't. There are a number of reasons there - some
don't have the time.

> Because startups need to bring their products to market quickly,
> applications are built iteratively, with rapid prototyping. The timing of
> the product release is crucial because it has a direct impact on acquiring
> customers and affects the bottom line. Significant delays can put a company
> out of business. While time to market is also vital for large companies,
> their software releases are typically for established products, and if they
> run late, such companies usually have the money to survive.

\---

Some don't have enough people to properly mentor and train a new hire.

The page for the startup of the engineer featured in the article:
[https://www.linkedin.com/company/datarista/about/](https://www.linkedin.com/company/datarista/about/)

> size 2-10 employees

I would contend that any company in the 2-10 range hiring a new grad is a
mistake for both particles.

\---

Some acknowledge the "they get a job, they get trained, and they go on to
greener pa$ture$." In this case, the mentoring is a lost ROI in many cases.

\---

My reading of the desires of the person featured in the article... they want
to hire a person at new grad wages who knows how to debug a legacy code base,
architect a cloud solution, come up with new product ideas, do market
research, and be a participant in the "devops means we give developers root"
culture... and be able to do this within single digit number of days.

Those are things that come with experience and failure. No class or boot camp
will teach those things to a point where the person is competent in them
without some good time to work on those skills (side note: this is where
college often produces better candidates than boot camps - they've got more
time to learn the tools).

Rambling on the above... I now have a one question that will distinguish a
good candidate from a poor one: "How do you set a breakpoint in your preferred
debugger?"

~~~
slothtrop
Concede that time may be a factor, in which case, companies have little choice
but to shell out real money.

> mentoring is a lost ROI in many cases.

What investment? Grads are cheap, and time to productivity as I argued isn't
that long, before which they aren't merely learning. Most of the investment
here is on the worker's part, and greener pastures aren't available as quickly
as productivity sets in. If you're fresh out of school and working, leaving a
company is unthinkable in the first year, unlikely in the 2nd.

~~~
shagie
Investment of time by other developers who could be working on the features.

This isn't saying that mentoring can't be a positive ROI - just that the
person needs to stay long enough.

> If you're fresh out of school and working, leaving a company is unthinkable
> in the first year, unlikely in the 2nd.

You should check out reddit /r/cscareerquestions and consider how many people
advocate leaving under a year.

I will also note that for my own experience, while there are some developers
who stay for a long time, there are more than a few that start and leave
within a year.

In trying to get two developers that would stay on, we went through six
developers. Four of which left within a year. This is for public sector and
the lack monetary compensation shouldn't be a surprise to anyone... still, had
four developers that we trained up and left.

The investment of time in getting them to that point where they could be
useful contributors if they had stayed was more than what it would have taken
the developers who mentored them to just do those tasks and not have hired
anyone.

That doesn't touch on the actual pay and paperwork to hire someone.

~~~
slothtrop
So management decided it's cheaper to keep compensation low and have a
revolving door of developers than try to retain them, or is it merely short-
sightedness?

~~~
shagie
In the public sector, management has very little they can do about raises.
Raises are an act of legislature or the governor. The number of people at each
level within a bureau is likewise an act of legislature or governor.

Likewise, the pay isn't anything hidden either. This number is well known
[https://projects.jsonline.com/database/2019/4/Wisconsin-
stat...](https://projects.jsonline.com/database/2019/4/Wisconsin-state-
employee-salaries-2018.html#!/grosspay18.desc.1/) (much of the technology side
gets classified as IS SYSTMS DEVMNT SVCS ...). Compare those numbers to the
averages for the area [https://www.payscale.com/research/US/Location=Madison-
WI/Sal...](https://www.payscale.com/research/US/Location=Madison-WI/Salary)

People applying and taking the job know exactly what they are getting and
going to get for compensation and benefits. Pay is a bit on the lower side,
vacation is on the higher side, the pension is fully funded (actually at
102.9%).

Thus the ability to juggle things to retain a person is very limited -
especially when that person hasn't been there for a full year.

Consider then, that the person is accepting the job, knowing that this is the
public sector, knowing the wage history, and looking for another job elsewhere
(many have left to move out west). It is not exactly practical for state
government to try to match west coast compensation.

~~~
slothtrop
> It is not exactly practical for state government to try to match west coast
> compensation.

It isn't, though there may be a sharp difference in cost of living and that's
a strong consideration with wages. That, and a pension and benefits is taken
for granted by younger people. Besides govt positions tending to be less
exciting, you can really put some money away. Moving up, though, is a sluggish
process.

------
zaphod12
I didn't even know schools had 'Software Engineering programs. I've met plenty
of Computer Science grads, though. It's truly different. Engineering is more
like trade school, Computer Science is foundational.

I'll probably hire you with a CS degree, but I know I'm going to need to teach
you how to be a software engineer.

~~~
6thaccount2
Engineering is nothing like a trade school if you mean Electrical Engineering,
Chemical Engineering, Mechanical Engineering... etc (probably not what you
meant here by context, but I felt I should clarify).

You basically do 4 years of math and physics with several years of calculus,
differential equations, numerical methods, programming, and solving difficult
problems. It is nothing like a trade school (no offense to that line of
work...they probably make more money than me :)).

------
Ancalagon
It could be that schools cater to large companies' needs because they pay
their employees the most and offer the highest number of jobs, and thus offer
the best graduation statistics for those schools?

~~~
WalterSear
IME, it is because colleges, and specifically tenured college professors in CS
and software engineering departments, remain woefully behind the times when it
comes to relevant engineering skills.

And the latter have little motivation to stay current.

------
habosa
Alternate headline: "Startups lack the job training that new software
engineering grads need"

------
lalaland1125
Of course. The software engineering grads lack the essential skill of willing
to be paid peanuts.

~~~
cephlanod
More like lack of will to work on uninteresting things, they usually get more
than enough peanuts to live comfortably.

~~~
geebee
They’re certainly well paid enough for their land lord to live comfortably.

------
mnazim
Revive apprenticeships - where learner goes to master and learns directly from
the one who practices the skill on a daily basis. In modern wold, this
responsibility should rest on tech giants, who should have dedicated
apprenticeship programs; and they should pay apprentices an honorarium for
investing their time in studying their area of their, instead of their
competitors.

For some reason, I don't know/understand, this responsibility got shifted to
taxpayer.

------
rbanffy
There is a relatively simple solution, one that's been the norm in many other
industries where there are shortages of field-specific knowledge and skills -
in-house training.

This may not be an option for startups but, then, maybe startups should focus
on hiring more experienced professionals who can, with time, bring freshly
graduated engineers up to speed, as well as helping design systems and
processes tailored for the company and product.

------
ProAm
This is because most grads are one step higher than interns. They really dont
know much (and shouldnt be expected to) because they lack real experience.
Startups higher them because they are cheap and will work hard long hours
without question. It's the trade off they are willing to accept.

~~~
bdcravens
VC often puts pressure to increase headcount, and unfortunately, those doing
the hiring are willing to look the other way when that's the standard for
accountability as opposed to productivity.

~~~
ProAm
Yeah I agree, it makes sense and Im not saying its wrong either. In the
atmosphere of move fast and break things its often okay to turn out bad code
and fix it later once you get your hockey stick of momentum (which in some
cases is perfectly acceptable). Hiring truly senior people might slow that
down because they know better and want more polish or thoughtfulness put onto
a product. I can see it both ways. Im not sure if Ive ever encountered a
hiring manager that expect much out of a recent college grad, especially if
its an undergrad. But they can learn fast and are usually eager, which is good
for a startup where positivity and attitude are needed to keep moving forward.

------
mettamage
Edit: I wrote a whole post but now realize that software engineering is a much
more conceptual master than computer science. I'll leave the following below
still here since it might be interesting. I mistook the perspective though,
since I talked about computer science and not software engineering.

/edit

What I'm wondering is: doesn't university prove that one is capable of
learning programming/computer-related topics?

The hardest things I've learned about were:

\- rowhammer/cache sidechannel attacks via the GPU with C and then porting
that to Javascript and do it over the web

\- creating a computer graphics engine from scratch (I did this in Java which
made it easier)

\- reproducing a simplified version of Kevin Mitnick's attack on the Boston
super computer (? not sure, memory is vague) with C, libpcap, tcpdump and
other tools/libs

\- being passable at reading x86/x64 assembly and understanding how a computer
is built from the architectural level to a modern programming language,
playing around with creating an MUL instruction for a toy ISA

\- compilers and reading a toy ISA to then be able to read the toy machine
code made for it

Is this practical? No.

Is this a lot harder than creating a new web app for a startup just starting
out? Yes, if you know a programming language or two, then it's easy to hack
things with JS together and also fairly easy to get up to snuff with ReactJS
and ES<whatever_year_it_is> since it's mostly syntax features.

I don't have experience working with legacy systems or 1 million users large
scale systems, so I can't comment on whether that's more difficult. However,
since this article is about startups. I've worked for startups that existed 2+
years, and becoming productive on the job didn't take me long and I'm not an
amazing programmer by any means.

My bachelor though, yea, that was a lot worse. My master in CS saved me by
following security courses where the professors expected you to learn almost
anything on your own.

------
coybanana
During my undergrad, I took an elective course from a visiting Professor on
TDD. I found that directly relevant to work experience afterwards. That said,
I wouldn't say my core CS classes were useless at all.

------
rdlecler1
If you learn a language in four years you can have a conversation but you’re
certainly not going to be fluent.

------
madhadron
My observation is that the CS degree starts making a difference about five
years after young programmers start working in industry. Those without the
formal background hit a wall in their technical development.

------
doggydogs94
It appears that startups need top level experienced people that they can pay
next to nothing.

------
cephlanod
This seems obvious to me since most of the jobs seem to be in web dev, maybe
I'm wearing blinders but there doesn't seem to be much out there that isn't
CRUD work. Computer science is almost a different field, to me its like
masonry vs geology

~~~
nineteen999
Web dev seems to be the majority, but there is plenty of work out there in
other sectors, eg. banking, finance, day trading, emergency services (my
field). The jobs are out there but you have to look for them. And oftentimes
they can be much more secure than a role in a startup as well.

It really depends on your skillset. I've got over 20 years experience, and
honestly, I don't feel like I have the skills that most startups need either,
nor the desire to forgo a decent salary in the hope that they "make it big"
someday.

------
bra-ket
nah, leetcode skills is all they need

