
Tim Cook: Four-Year Degree Not Necessary to Be Proficient at Coding' - ttflee
https://www.macrumors.com/2019/05/10/apple-ceo-tim-cook-says-no-degree-needed-to-code/
======
beat
A four year degree isn't necessary for coding proficiency, nor is it proof of
coding proficiency. It _is_ , however, a strong social proof for other things
that matter a great deal.

To complete a four year degree requires a commitment, a life-altering personal
financial cost, and most importantly, a willingness to abide by the rules and
procedures of a complex organization, even when they don't make much sense or
directly contribute to the core competency. It shows a willingness to submit
to authority, a willingness to get often arbitrary work done on schedule with
acceptable quality, and other traits and experiences that matter a great deal
for becoming a functional employee in a corporate workplace.

Coding competence is nothing if the coder can't follow instructions, complete
work on schedule to spec, or tolerate doing things that seem arbitrary and
useless.

A degree isn't about proof of being a viable programmer. It's about proof of
being a viable _employee_.

~~~
scarface74
_To complete a four year degree requires a commitment, a life-altering
personal financial cost_

Only if you choose for it to be. There are cheaper ways to get a four year
degree - like going to a state school or even cheaper, go to a 2 year school,
stay at home and then transfer.

*It shows a willingness to submit to authority, a willingness to get often arbitrary work done on schedule with acceptable quality, and other traits and experiences that matter a great deal for becoming a functional employee in a corporate workplace.

All of that can also be learned by working on your typical minimum wage job
that a lot of teenagers have.

~~~
beat
Eh. A college student has a lot more independence and responsibility than a
minimum wage burger-flipper. Moreover, they're given problems that presumably
require a modicum of intelligence, literacy and numeracy, and other skills
that go above and beyond following simple instructions. Minimum wage jobs tend
to be structured so they can be done by functional illiterates/innumerates,
and happen in closely supervised, time-bound environments. Contrast this to
the freedom a college student has to do many things other than their homework.

edit: More to the point, even assuming four years of flipping burgers is an
effective way to learn the behaviors for a corporate IT job (which is
questionable), it is not _perceived_ as useful by the hiring managers,
virtually all of whom have college degrees. A college degree is a social
leveling-up, particularly in liu of professional experience in the field.

For someone with 5+ years of relevant technical work experience, a college
degree matters a lot less. For entry level, it's absurd to argue that four
years of french fries is equally effective for social proof, and unwise to
argue that it's equally effective for actual practice.

------
gatherhunterer
I am a coder without a degree and have not received negative feedback from
companies that I have applied to, though I have not been at it for very long.
No one has asked about a degree or what I did instead of going to college or
why.

That is, until today - and I am glad it came up. I had been corresponding with
a recruiter for a government job (TTS) and after exchanging a handful of
emails over the course of two days and scheduling a meeting she finally looked
at my resume (which I sent with my first email), told me that I am not
qualified and cancelled our meeting. I have a feeling that this job would have
been a nightmare. As Eugene McCarthy said, "The only thing that saves us from
the bureaucracy is its inefficiency."

I have spoken to some highly insightful people during interviews this week and
they generally seem focused on my ability to do real work that produces real
results. Most interviewers seem to want to cut through the hiring pretense and
get to looking at and talking about my code while assessing my communication
skills. It has largely been a positive experience. This application for a job
with the TTS may have been my first interaction with a professional email-
sender (aside from recruiter spam) and it was shockingly unproductive.

The coworker who taught me the most about how to treat others with respect was
a reformed convict who did six years for armed robbery. Some of the best
communicators I have worked with barely spoke English. If someone told me that
the best coder they know does not have a degree it would not surprise me at
all.

------
chomp
Note he said "coding" and "writing apps for the app store", not "getting a
coding job". Apple's website still asks for 4 year degrees for their engineers
(at least the ones I just now looked at).

The reality is that "has 4 year degree" is a rapidly deteriorating signal that
many businesses still use to separate the wheat from the chaff. All of the
smartest people I know don't have 4 year degrees. And they weren't able to
beat the "HR boss" when trying to get new opportunities.

I think it's plainly clear that you don't need a 4 year degree to learn how to
code. But you do need it if you don't want an uphill battle in landing a good
job, especially at large corporate jobs.

~~~
trafnar
I don't have a degree and it hasn't caused me any problems getting coding jobs
in silicon valley. It never even came up.

My jobs have mostly been at startups, so maybe it is an uphill battle at big
corporations like you mentioned, but I'd be surprised if lack of degree was a
sticking point for a talented coder trying for a job at Apple/Google/Facebook.

~~~
everdev
I've hired dozens of programmers and never once looked at what college they
went to or if they went to college (or where they live, just what time zone
they're in).

In web/app coding, all that matters is what you've done in the last 1-4 years.
Anything beyond that is too dated to be relevant.

It's been a highly successful recruiting practice. There are so many brilliant
self taught developers that would get overlooked if I only looked at college
graduates.

~~~
scarface74
But how can you possibly be a good developer if you don’t know how to invert a
binary tree?

~~~
everdev
Or know how to quick sort in C?

~~~
scarface74
Well that’s different since qsort() is part of the standard library....

Yes, for the pedantic I know whether qsort() actually implements the quicksort
algorithm is implementation defined.

~~~
everdev
Lol, didn't know that. We had to write it ourselves in high school.

------
edejong
Well, what you could learn at a four year degree program:

\- Space-time complexity of algorithms

\- Statistics

\- Management

\- Parallel and concurrent programming

\- Formal reasoning and logic

\- Linear algebra

\- Machine and operating system architecture

\- Communication theory

\- History of computer science

\- Database implementation

\- Quality assurance

\- Technology assessment (impact on society)

\- Effective team work

\- Multi-disciplinary design and architecture

\- Presentation skills

\- Research skills

Could go on, just a few of the things I learned during my degree program. All
of which I value of myself and others, although they don’t always come up.
Coding is just a tool in a large toolkit. Unfortunately it is undervalued to
do it right, badly taught and reinvented hundreds of times.

~~~
scarface74
How much of that

A) couldn’t be learned on a job

B) is relevant for your typical yet another software as a service CRUD
developer or the typical “dark matter development” that will never see the
light of day outside of a company.

I have a 20+ year old degree and most of what you list. I learned on the job.

~~~
xiphias2
For me the hardest and most interesting part working at Google was statistics,
although I have a Masters degree in CS, and I was very good at math in high
school.

A lot of the really interesting work at Google is data mining and modelling,
and for that you need some level of statistics understanding. Of course for
developing an app, it's not needed (could be a counteractive skill as well in
iterating fast).

~~~
edejong
Yes, statistics is a corner stone. I've come to appreciate it during my career
as a software engineer as well. It's not just at Google but across many
(competitive) companies.

Developing an app... How is one going to be competitive doing that? It's dime
a dozen, unless it provides something algorithmically interesting. And that is
generally only possible when you have large amounts of data.

In my opinion, the real skill is not in coding, but in data. Understanding the
flow, the quality, the entropy, the structure, the meaning, the value, the
meta. And code is data, and as such subject to the same understanding.

~~~
rland
Easier to teach an engineer how to program than to teach a programmer how to
engineer.

~~~
scarface74
By the time I graduated from college, I had been a hobbyist for a decade. I
was a good _programmer_ and created a C based data entry system that double
the size of the company six months out of college.

But, after changing jobs and staying at a company too long, I became an
“expert beginner” and in hindsight was a horrible _engineer_.

Learning how to engineer happened on the job working with more experienced
architects and managers, changing jobs 5 times, and by reading and studying a
lot. There is nothing magical about college that you couldn’t learn on the
job.

------
whitepoplar
...and two-year MBA programs are not necessary to run businesses.

~~~
beat
Steve Jobs didn't have one...

~~~
SketchySeaBeast
And how many people are the next Steve Jobs?

------
msla
Right. A four-year degree _isn 't_ necessary to be proficient at coding. It
isn't necessary to be proficient at debugging, either, which I think is one
real test of how good of a programmer you are, the other being architecture
and making good design decisions.

That last one doesn't require a degree, either, but it requires more
experience with larger and more ambitious projects than either coding or
debugging does. And that's what a four-year degree should provide experience
with: Giving people larger and more complicated projects in a setting where
their errors will be corrected and it won't cause a huge amount of pain for
anyone else if the project collapses or is never really finished.

And I think Cook basically agrees with me:

> "I think that's an old, traditional view. What we found out is that if we
> can get coding in in the early grades and have a progression of difficulty
> over the tenure of somebody's high school years, by the time you graduate
> kids like Liam, as an example of this, they're already writing apps that
> could be put on the App Store."

It's entirely reasonable to begin working on ambitious projects in high
school, at ages 14-18 for those who are unclear on the education system being
discussed here. People have the mental maturity to tackle big things at that
age if they're motivated and given sufficient guidance.

And that concept of tackling big projects involves working in a team, with
coordination between team members, which is another part of being a mature
programmer.

------
throwaway55554
When I got my BSCpE, there were no language classes. There was an OOP class,
but no "Welcome to C++. Here's how you write a function." classes. It was just
understood that you either had to learn quickly on your own or you knew how to
code already (which I did).

So, technically, Tim is right. But man, I am so glad I got an engineering
degree. I learned some really cool stuff (that wasn't strictly coding).

------
zelpo2
He's right, actually with some basic knowledge of Express/Pug you could
probably work for DARPA

------
WheelsAtLarge
True. BUT most people need some kind of structured teaching environment. They
need to be nudged to move forward. Or else most people fall into the hole of
never learning because they find the subject too hard or dull to move forward.
I wish anyone that preaches that you don't need a four-year degree would also
make sure to point out that very few people have the self-control to follow
through when they have to do it on their own.

------
tanilama
Better convincing your recruiter to follow, until then I would believe it :)

------
algaeontoast
And Apple will be able to reasonably pay you 20% less if you don't have a
degree and knowingly have fewer reasons to leave or potential opportunities
that could cause you to leave than those with degrees...

Source - as someone who effectively "dropped out" for a few years but decided
to finish and undoubtedly has benefited from my degree.

------
ronilan
_"... What we found out is that if we can get coding in in the early grades
and have a progression of difficulty over the tenure of somebody's high school
years, by the time you graduate kids like Liam, as an example of this, they're
already writing apps that could be put on the App Store."_

FYI - Apple student discounts are only for college students. High School (and
elementary school) kids get none. Source: bought a MacBook for my kids and
they learnt to code with it.

Talk is cheap...

------
beat
Proficiency in coding isn't the interesting part of solving problems with
software, though. Or as I sometimes say, "That's not programming, that's just
typing".

~~~
dkarl
I'm glad you have that much respect for the word "programming." I hate it when
people try to define a hierarchy out of words, like programming < development
< engineering < architecture. Using different words for programming in the
large and programming in the small, or programming well versus programming
poorly, has aided and abetted so much bullshit and earned us nothing.
Programming can be and should be like writing, a word that manages to span
Virginia Woolf writing _Mrs. Dalloway_ to me writing this comment without
being any the worse for it.

~~~
dbcfd
Writing a program is like writing. Engineering a system is not like writing.

That's not to say there's not a lot of bullshit around the terms programmer,
developer, engineer, and architect, but there are different skill sets when it
comes to programming vs engineering.

~~~
dkarl
I don't think you're doing justice to the diversity of challenges that can be
involved in writing. Writing has high-level structure as well as low-level
structure. Someone can be skilled at constructing a sentence but not a book
and vice-versa. I could go on, but tl;dr there are a lot of considerations
that affect whether a piece of writing "works" and correspondingly large sets
of skills, processes, and approaches.

------
pixelrevision
This really isn’t some new revelation. Steve Wozniak was building and
programming the Apple 1 after being expelled from college, Bill Gates dropped
out to create Microsoft. These are 2 amazing programmers who have been quite
successful,

I have also heard both of them speak about how important education is. I can’t
imagine they required degrees from the folks they worked with but they both
value the benefits that an education can provide.

------
RickJWagner
Totally agree. In 29 years in the business, I've met many excellent coders
without a programming degree (some with no degree at all.)

The corollary is also true, I've known some programmers with doctorates that
were absolutely worthless.

------
mpweiher
Apart from the nefarious reasons mentioned elsewhere, I really don't take his
pronouncements on programming seriously. Calling Swift a language for kids to
learn coding is, er, _interesting_.

------
xchip
He should define 'proficient' and 'coding' because there is a lot to unpack in
that sentence.

Anyway, this guy is making my job safer :)

------
rahuldottech
The fact remains that you won't get a job without one. It's the first thing
they use to filter out candidates.

------
fullshark
But is necessary to get a hiring manager to care about you (I know there are
many exceptions but generally this holds).

------
master_yoda_1
Yes but so does carpentry.

My point is 4 year degree is useful if you learn and use your educational
resources well.

------
Grustaf
Of course it isn’t, but life is not just about becoming a good coder.

------
protomyth
Is Apple hiring coders without four-year degrees?

------
seiferteric
Nor is it necessarily sufficient...

------
alando46
Lol duh hahaha

------
tepidandroid
This is the coup de grâce from all the big tech corps: the commoditization of
their most expensive recurring cost, the cost of skilled labor.

This is the reason for the strong push for programming in early education in
the past few years, with companies like Apple and Google setting up education
camps and code literacy programs for kids. This is the purpose for pounding
home the message "anyone can code!" over and over again. Its been happening in
many countries world-wide, not just the US.

Along with the boom in coding bootcamps and open courses online, they hope to
dilute the skilled labor pool to such an extent that programmers will no
longer have any negotiating power and salaries can start to decline.

The big tech companies only do what is in their own self interest. This is
_not_ to say that there won't be people benefiting from this as a second order
effect. People without other prospects of employment (either because of
location or circumstance) will have a chance to earn a good living and escape
poverty or upgrade their social class. But this will come at the expense of
practitioners already heavily invested in the industry.

~~~
guiomie
The parent post sounds borderline conspiracy theory. Working in big tech, I
see a lot of volunteer opportunities to promote STEM among the youth because
it's obvious that those CS jobs provide good salary and great living
conditions, and people wanna share their passion. What I haven't seen are
internal memo, OKRs or shareholder messages stipulating a strategy to
commodize CS to reduce labor costs.

~~~
lalos
1\. Salaries are reported to Wall St 2\. Profits go up, stock goes up. Costs
go down, profits go up. 3\. Wall St and investors want higher profits 4\.
Salaries depend on supply and demand. Demand is high and supply is stagnant
then cost goes up. 5\. Companies push for increasing supply of workers.

It's economics and business not a conspiracy theory. Doesn't Apple apply the
same logic for all the components to make an iPhone? Even going as far as
doing their own chips to have a hand in increasing supply. This is the same
Apple (along with Google and the rest) involved in this lawsuit
[https://en.wikipedia.org/wiki/High-
Tech_Employee_Antitrust_L...](https://en.wikipedia.org/wiki/High-
Tech_Employee_Antitrust_Litigation)

