
Four Steps to Google, Without a Degree - davidbyttow
https://medium.com/this-happened-to-me/8f381aa6bd5e
======
robomartin
Fantastic. The OP scored.

As for you, the average reader, go/stay in school and get a degree. Life
throws all kinds of curves at you. At 20-something it might be cool and trendy
to be a modern hippie-techie drinking latte's and coding for Google, Facebook
or whoever. One day you might wake up in an entirely different landscape at
thirty, fourty or fifty years of age and regret the fact that you did not take
the time to complete a degree before your life got more complicated. I've seen
this happen.

Not everyone is going to drop out of high school or college and launch a
billion dollar company.

Don't be a moron. Get a degree.

BTW, I am not just talking about CS degrees. A friend of mine was rejected for
a sales engineering job over someone with a BS in Architectural Landscaping.
He had years of experience as a technology developer, just didn't have a
degree. The large corporation a a strict requirement for BS degrees as a
minimum, even if the degree was bullshit or unrelated. He was told they wanted
to hire him but could not due to the lack of a college degree.

~~~
lsc
>Not everyone is going to drop out of high school or college and launch a
billion dollar company.

Neither did this guy. Most of us without degrees did something similar to what
this guy did; do a high dollar job for a while for a low-dollar wage, and
eventually you build up enough reputation that you can get paid market rate.

>As for you, the average reader, go/stay in school and get a degree. Life
throws all kinds of curves at you. At 20-something it might be cool and trendy
to be a modern hippie-techie drinking latte's and coding for Google, Facebook
or whoever. One day you might wake up in an entirely different landscape at
thirty, fourty or fifty years of age and regret the fact that you did not take
the time to complete a degree before your life got more complicated. I've seen
this happen.

Serious question: What is the downside to going back to school later?

I mean, sure, if you have someone giving you free money to go to school, yeah,
that might be a time-limited offer, and you should take it. All other things
being equal, you should take free money. But for those of us who have to pay
our own way? seems to me like it would be much easier to go back to school
when you can make a bunch of money working part time.

I mean, I don't know; I haven't seriously attempted to go to school. But I can
tell you that when I work part-time, my hourly rate is more than 10x what I
could get when I was 17, and trying to go to school while working. My cost of
living isn't much higher than it was then, either. (biggest difference,
probably is that I've gotta pay for health insurance now.) - I could live
pretty comfortably and pay reasonable state school fees, contracting myself
out 1/3rd of the time.

So from where I stand now, in my early '30s? it looks like going to school
would be way easier than it was when I was 17, and thinking I needed a degree
to increase my salary above sustenance levels. But then, I haven't seriously
tried to go back, so I don't know.

~~~
flatline
I went back in my mid-30s, with one kid. I had flirted with a variety of
work/school balances up until that point, but working full time and doing
school part time was going to require about 8 more years of sustained effort
to finish a B.S. With a kid, full time school pretty much precluded me
working, as my spouse works full time, so I ended up taking on much more debt
than most undergrads, which brings up the next fundamental problem of
opportunity cost. I left a $100k/yr job to do school, so that loss of income
on top of paying for things like daycare and a mortgage made it a much more
expensive proposition than when I was in my early 20s. I don't regret doing it
at all, I'm very glad to have finally finished the degree, but there are lots
of extra costs and obstacles that come up when you have other substantial
responsibilities.

That being said, the actual schoolwork was way easier in many ways than during
my first foray from my 20s. I had time management skills, a supportive wife
and stable home situation, and years of experience in the software industry
that gave me a reasonable baseline of knowledge.

~~~
lsc
>I left a $100k/yr job to do school, so that loss of income on top of paying
for things like daycare and a mortgage made it a much more expensive
proposition than when I was in my early 20s

Why did you decide to go back to school if your income was already that high?
did you change careers? or was this just a social status/personal enrichment
project?

~~~
flatline
Mostly the latter, though I was tired of writing business applications and
looking to move into something, broadly, in the domain of scientific research.
Which is not terribly straightforward with only a B.S., but seems to be pretty
much impossible without one. So for the moment, I'm still on the job hunt in
this area.

~~~
haihaibye
I dropped out of CS to work in the games industry. After that I took a
financial coding job instead of going back to school, and a few years later am
back at school (top 1% in the world), but as a research fellow. Everyone else
doing my job has a PhD. It was extremely hard for them to hire me and they had
to break the rules but they did. I'm a terrible student but a good researcher
- maybe because I have what Feynman would describe as a "different box of
tools"

Sure I'll never be a professor, and make decent but not top $$$, but compared
to more senior people, I actually prefer what I do day to day (90% coding &
research) rather than the meetings/teaching/grant writing etc that those with
higher prestige jobs seem to spend their time doing.

I'm probably an outlier, and don't advise others to follow me. If I could go
back in time and get the degree I would, but at the moment the opportunity
cost is too high. Not just the considerable amount of money, but also the
interesting new work and real world problems that I can solve now, compared to
memorisation, sitting exams and redoing old problems.

------
vinkelhake
About one and a half year ago, a long time IRC buddy from the states suggested
that I'd apply to Google. I was a 30-something programmer with a wife and kid
who had spent the last 12 years working on trading systems in Europe. I
decided to go ahead. Both because I wanted to see what the interview process
was actually like and if I could pull it off. Going to work for Google seemed
very distant at the time.

After telephone interviews and on-site interviews in Mountain View (got to
meet my friend again on Google's dime!) I got the offer. Up until that point
it had been "what the heck, we'll see what happens". Now it was real. We
decided to pack up our stuff and leave the country and now I work at Google in
MTV.

The only reason I mention all this is because I don't have a degree either.
Getting into the United States turned out to be more tricky than getting
getting into Google.

~~~
zaphar
Google happens to be one of the companies where getting in without a degree is
possible. It also happens to be one of the places where your advancement has
pretty much nothing to do with your degree.

All that said a degree _will_ make it easier to get to the interview stage at
Google so even though I work there and don't have a degree myself I recognize
that having a degree _does_ give you an edge over someone else.

------
ultimoo
I believe I am a good engineer, I have heard generally positive things about
my professional work, have a college degree, etc.

I am however terrified of programming challenges (topcoder, spoj, interview-
street, etc.) I have tried solving some problems there using Ruby (back when
it was 1.8.x, too slow for these kind of problems) and given up. Maybe I
should give it a shot with C. Any ideas how to start, considering these
competitive coding websites are quite important when interviewing at certain
companies?

~~~
spaghetti
My experience participating in TopCoder SRMs (quick algorithm development
competitions) has payed off quite a bit when it comes to white board coding
style interviews (both as the interviewee and the interviewer). Just thought
I'd share a few pointers:

\- participating in SRMs is great practice for interviews because you're
forced to learn to think clearly while under intense time pressure.

\- The TopCoder tutorials are a great resource. In addition to review of
useful mathematics, data structures and algorithms they'll give you an
introduction into how to participate well. For example time management between
the easy, medium and hard problems.

\- You have four language choices for SRMs. My preference is C#. I like using
Visual Studio because the auto-complete/intellisense comes in handy when you
have to write a bit of boilerplate code (like "new Dictionary<int, int>();".
I've also used MonoDevelop on OS X. It worked well. iirc almost all problems
are solveable using C# except a few where, to my knowledge, C++ was necessary.
Read-up on Petr's advice. I believe he's a fan of C#.

\- My knowledge of C# isn't particularly deep so don't let learning a new
language scare you away. imo you just have to effectively use dynamic arrays
(List<T>), hashtables (Dictionary<Tkey, TValue>), static arrays and strings.
Also a sorted key-value store like SortedDictionary comes in handy once in a
while.

\- Last bit of advice: solve lots of problems and have fun! You can access a
vast archive of problems from previous competitions and match editorials which
usually have decent explanations for the problem solutions.

~~~
curiousDog
I believe Petr has switched to Java now though

------
anxx
My Google interviewer was a HS-educated guy. My parents couldn't believe it. I
tend to think - if he is as good at the job as me, what does his education
matter? Why should I be offended that a HS-educated guy is in the same room
with me?

Education is meant to produce a difference in job performance; it's good for
the worker, not directly to the employer. If I with my college degree can't
get a better job than a HS-graduate, it's on me to change.

My parents find my lack of ego around this subject so weird. Also, the world
at large is probably more similar to my parents.

~~~
lawnchair_larry
I was on a team of about 10 that had at least one of each: HS dropout, HS
diploma, bachelor CS, masters CS, Ph.D. CS.

Most people weren't really aware - many came from other teams, so they didn't
interview each other, and it just never came up. Everyone is just known by
their title/responsibilities.

There were two people in particular that were carrying a lot of that team. Not
only did they do the most work, they fixed broken design, and other engineers
relied on them for support as subject matter experts. One of them happened to
be the HS grad, call him Sam, another had a BSc.

It came to be interview time for a new hire, and the hiring engineer (head
engineer made team hiring decisions there, manager just signed) asked me for
feedback on the candidates. "That guy? He didn't even have a degree!", was his
response, even though this guy did objectively better in the interviews than
anyone else.

Confused that he would be surprised that I would vote for the clear winner, I
said, "Huh, since when has that been a consideration here? Sam is one of our
strongest contributors and his lack of a degree sure doesn't seem to be a
problem, right?"

"What do you mean? He only has his Bachelor's? Wow! Really?" he said,
completely shocked.

"No, Sam doesn't have any degree. He didn't even go to college _at all_."

After some feelings of both shock and skepticism, he muttered something about
being uncomfortable with it, and legal liability, then walked off.

Just a few weeks prior, I watched this guy rave to the VP like a fanboy about
how smart Sam was. His favorite employee, until then judged on his merits over
the last year, was perhaps not up to his standards now. Boggled my mind. I
always thought that a degree is one of a few positive signals that you have a
worthy candidate. If someone is already proven, how can it possibly matter?

~~~
munin
I was a Sam in one of these stories once. Now I'm back in school, finishing my
degree. In my version, the next few weeks were not happy ones for Sam.

You can ask yourself "how can it possibly matter" all day long but it doesn't
matter. Just get the degree. You'll thank yourself later.

~~~
georgemcbay
I don't have a degree and have no intention of getting one (not because I
think getting a degree is worthless in general, but rather I feel it is
worthless for me at this stage).

I did go to college for a few years but quit to work at a company I was co-
oping at (which presumably was against the rules of the co-op program the
company was in with the school, but I never gave it much thought back then).

I'm currently nearing 40 and don't feel that the lack of degree has negatively
impacted me. Of course, YMMV depending upon career arc -- I'm still coding,
and have no interest in management roles.

Also, one of my multiple moonlighting side projects is volunteering at a nano-
engineering lab at UCSD working on writing Go code to control a UV-light-based
polymerizing nano-scale biomaterials 3D printer. Nobody there seems to care I
don't have a degree, nor has it come up negatively at my current or any of my
previous jobs.

~~~
munin
That's awesome for you. I wish that had been my experience. I will share with
you (one of) my stor(ies).

I had been working at a big company for almost five years with no degree and
asked my boss "what's next". He arranged a meeting between me and the
technical director for our division.

During the course of this meeting another employee reveale to the technical
director that I did not have a degree. The technical director refused to talk
to me (or even look at me) during and after that meeting and it became
apparent from that point forward that there was both no way for me to advance
and that my days could be considered numbered.

Your milage may vary. Until that conversation I was a valued member of
technical staff that had taken on a variety of leadership roles, authored
white papers and was on very good terms with the senior technical leadership
in our customers. The lack of a degree killed it all.

~~~
georgemcbay
Yeah like I mentioned YMMV, I'm sure.

For some people getting a degree might be the right choice, especially if they
intend to get more into management in largish companies.

------
stevewilhelm
Sounds like he reproduced the college experience without a college. Good for
him.

But in general it's probably more efficient to just to go to college and get a
degree.

~~~
mahyarm
Even with six figure student loans?

~~~
jamesaguilar
There are many, many solid schools you can go to that would not require six-
figure loans. Alternately, if you can be in the top 1% of kids, the best
schools, like Stanford, are starting to only charge those who can afford it.

~~~
lawnchair_larry
But he had a bad GPA, so none of the schools offering those programs were
options for him. Six figures seems high unless you make some major mistakes,
but remember, he is paying tuition and living expenses _and_ losing 2-4 years
of salary, experience, and opportunity cost.

I don't think the "school" vs "no school" argument has to be as black and
white as it turns into. I think circumstances vary and in his particular case,
he probably chose the most optimal option.

And I'd give him some bonus points for beating ("hacking") the system by
finding an alternate path to his goal when it became clear to him that his
current position became highly disadvantageous.

~~~
jamesaguilar
Don't get me wrong, I'm not saying the guy in the article should have done
something different. I'm solely responding to the guy who implied that going
to college -> >$100k of debt. That is a false implication.

------
jcampbell1
> I made mention of a Paint Bucket and the interviewer asked me to implement
> it.

That is one interesting question. It can be solved trivially with BFS, but
there is also some crazy way of doing it without using the stack (or a queue).
I am sure the MS Paint uses what I call it the smart zamboni algorithm. You
basically pretend you are a zamboni driver, and paint the screen avoiding
obstacles but being careful not never paint yourself in a corner. It is
complex but uses no stack space. I don't imagine there are any people that
could implement it on the whiteboard. I was glad to see that he didn't do some
impossible feat.

~~~
coyotebush
[https://en.wikipedia.org/wiki/Flood_fill#Fixed_memory_method...](https://en.wikipedia.org/wiki/Flood_fill#Fixed_memory_method_.28right-
hand_fill_method.29)

------
justanother
Interesting to see this latest incarnation of the whole Degree/No Degree
thing. My time on HN has evolved my opinion of the situation somewhat. As a
high school dropout (later, GED recipient) who has drawn decent six-figure
salaries despite a strict telecommute-only policy ("If I can't do it from my
subtropical island, it ain't worth doin"), I more or less considered the
subject closed; I'd done fine without a degree.

The other side of this, however, is that yes, I've done fine without a degree,
building countless line-of-business apps, a few games, and doing some amount
of administration. I also fix my own large appliances and boats when they
break, instead of calling someone. What I'm getting at, is that I am not a
computer scientist, or a Rockstar Programmer, just a Handy Guy. And if your
ambition only goes as far as line-of-business apps and living comfortably,
being a Handy Guy is often enough. Everyone wants guys like us on their team,
after all.

I've never dealt with discrete math or graph problems, but only now at the age
of almost-36 (and being a computer professional since age 15), am I beginning
to think about learning computer science. Or maybe not. It's looking like a
decent fishing day. It seems likely, however, that a degree that taught me
some of these things, would yield more interesting jobs, and perhaps more
enthusiasm for work.

------
ivv
I wonder how he parted with the first employer that had paid for him to build
the first game.

~~~
davidbyttow
Simple: I was honest and direct with them. I told them I had an opportunity
that I could not pass up and had to put in two weeks.

In the end, I was savvy enough to know that the rate they were paying me to
develop their sites and the amount they were paid was a huge margin.

------
alberich
I'm a bit curious, why do most programmers like to call themselves engineers
even though programming is not engineering?

~~~
mwfunk
No, you're not curious, you're just passive-aggressively pointing out that you
don't think programming is engineering, but phrasing it in such a way as to
make it sound like this is some universal truth that everyone accepts.

Anyway, the answer is because it is engineering. Not in the capital "E" sense
of engineering where you have some sort of official certification from some
governmental or professional body that states that You Are An Engineer, By
Golly. But it certainly is lowercase "e" engineering in the sense that it is a
highly technical discipline that lies squarely in the middle of the spectrum
between an art and a science.

Plus, it's just common terminology in the field, so there you have it.

~~~
btilly
But there is an insanely huge difference.

When a credentialed engineer puts their signature to the statement that a
particular design is sound, the engineer is liable. Not the company. The
engineer. If that bridge collapses, the engineer can be sued. And if the
company cannot find an engineer who is willing to sign, that bridge cannot be
built.

This is very important. Before we instituted this system, the USA had an
average of one bridge collapse per _week_. And it wasn't nearly as large a
country as it is today.

As long as I do not have this kind of liability, and likewise lack the power
to tell a company that they are not allowed to release a website with the
defects that I can identify, I do not consider myself an engineer. I may be
forced to accept that my job title says "engineer", but I am firmly of the
opinion that I am not one, and anyone who thinks that I am is uninformed on
what it means.

~~~
tracker1
Programming _CAN_ be a system of Engineering (and often is wrt medical and
weapon systems). Most programming is done as a craft in businesses, with
business needs that reward turn around time and coming in under budget more
than ruggedness, or real maintainability.

In a more corporate environment, it tends to favor the use of "Architecture"
roles, and the use of many different design patterns even when they are not
necessary and only add complexity in the name of "consistency" with other
"enterprise" implementations.

Just the same, most software development is a model of crafting, not
engineering. The exceptions to this tend to be with designing software that
works with physical devices for a given role, not generic computing devices
that are virtual representations of business logic.

------
callmeed
Thanks for writing this. I was one of the original people who asked about this
in your previous post.

Working at Google is something that intrigues me. After doing (my own)
startups for 10+ years, it's one of the few big companies I'd consider working
for. It's also one of the few reasons I've considered finishing the last year
of my CS degree.

------
MojoJolo
As I quite what I written earlier
(<https://news.ycombinator.com/item?id=5770682>),

 _"Those people are not the norm, they are the special case. Well yeah, you’ll
not know you’re a special case unless you took a chance. And that’s the hard
thing about it."_

------
navs
So what's the take away message from all this? Work hard and enjoy your work.

I've got a lot of the former and none of the latter. While building websites
for random clients and studying at a University, I've discovered my interest
in the digital world has waned.

------
chrisa
You mention Ruby on your "become fluent" list, but I get the impression that
Google doesn't use much ruby. Is the feeling there that skills in ruby can
transfer, or is it more important to focus on Java, C++ or Python?

~~~
mseebach
Being a good developer in any language is pretty transferable. Google isn't
going to care if you have to fumble for a few weeks getting comfortable with
the syntax.

The important bit is being a good developer, not which language.

~~~
6d0debc071
Just a warning that, at least in the UK, I've heard that many companies do
want you to know a list of quite specific programming languages and advertise
for a programmer that does X language with Y years experience in it, rather
than going after the computational knowledge side of things. So, you know,
just check what you're going for first if you're still at the making decisions
about what to learn stage.

Can't speak for Google though. Just if you were thinking in general terms.

~~~
kelnage
As a software engineer in the UK - in my experience, the companies who want
you to list very specific programming languages aren't worth working for. If
they don't/can't understand that programming experience is transferable
between languages, they probably aren't going to respect you for your skills
either.

------
kniht
These are all things you should be doing anyway, even if you're pursuing a
degree, and want to land a good software engineering job. So the "without a
degree" caveat doesn't really matter.

------
charleslmunger
By comparison, here were my steps to Google: 1\. Attend a 4 year state school,
majoring in computer science. 2\. Enroll in mixed bachelors/masters program.
3\. Apply for job at Google, pass interviews. 4\. Graduate.

I'm saying this because for nearly EVERYONE getting a bachelors degree is the
correct path, and if you can get into a program that will let you do a masters
degree in less than the usual 2 years then it's a great idea. Less risk, same
reward. My high school GPA wasn't quite as bad as OP's, but I had a 2.7.

------
mmanfrin
As an upstart-from-QA developer with a liberal arts degree, #3 is my biggest
concern. I've been reading as much about data structures and theory as I can
in preparation for the day I have to interview again. It's scary. I feel I am
competent developer, can code well, but I know that there's a glaring hole in
my computational vocabulary that will bite me in the ass.

I've been considering trying to see if I can get a masters in CS, to
supplement.

------
gems
You should work on redefining your goals if all you're concerned about is
working at Google, or at another large company.

~~~
jamesaguilar
I too know what other people should want to do with their lives.

~~~
gems
My opinion is that it (exactly what I stated, nothing more) is most likely a
manifestation of insecurity, rather than a product of anything that's not
superficial (desire to help people, for example). I'm not telling you how to
lead your life (a fiat), I'm offering an opinion with a suggestion. I give
zero shits if what I said applies to you and you decide to stay on the same
course. You should get that straight.

~~~
lawnchair_larry
I feel like those statements against Google are _also_ most likely a
manifestation of insecurity.

A lot of people want to work at Google, and there are always some who have to
point out that it's not the ultimate prize, reserved for the best. After all,
if it were a universal goal, and you haven't attained it, you must not be the
best. The insecure person's solution? You don't work there, because although
you could if you wanted to, you have reasons why it isn't worth aspiring to.

Although I agree with your statement, being compelled to call it out
demonstrates insecurity. To be frank, some days I wonder if my own insecurity
is the reason I tell myself that I don't want to work at Google ;) I'd be
curious how many detractors could get an offer from Google and reject it.

~~~
jamesaguilar
It's not that hard to get a job at Google. Rather, it's hard, but there's not
much you can do about the difficulty -- the company's low tolerance for false
positives leads to a high rate of false negatives.

I am under no illusion that we are the best of the best. We're probably better
than average, but only a handful of us are gods (I'm not one of them) and
plenty of engineers elsewhere are just as good as those guys. The real upside
of working here is the low rate of genuine incompetence.

I just react negatively when ever someone calls out someone else's dream as
unworthy. That is true whether the dream is to work at big G or start web
startup #102341. IMO, they can both be fulfilling pursuits.

------
JoeKM
Although the author didn't go to college and had a low GPA in High School,
it's evident he had a penchant for math, and therefore grasped advanced
Computer Science concepts.

Now take a high school graduate who sucks at math, but may be a great web
developer. My advice to them, should they want to work at Google, is graduate
from college.

------
tytung2020
I have a Physics and Maths background, NO programming skills.

But I like industrial design, and two years ago had created a few designs that
anticipated products/patents/concepts that companies like Microsoft, Nokia,
Apple announced only recently.

I wonder if Google would like to hire people like me, especially since now
they are also building hardware?

~~~
pramodliv1
They did hire an industrial designer for Google Glass

------
jmgrosen
Where are some good resources for learning the details and practical uses of
the various algorithms and data structures one should know? Even if I never
end up using the information in my line of work, I'm interested in them just
out of curiosity (and they probably wouldn't hurt for job interviews, either).

~~~
declan
I would look at the syllabus that a sophomore-level computer science class
would use, which when I took it was called something like Data Structures and
Program Design. Take a look at the books taught at places with good CS
departments (like Stanford, CMU, and MIT), and see what ones are most popular.
Also a syllabus may have example problems, lecture notes, and previous exams.

------
mindcrime
Or cut it down to two steps:

0\. Found a startup

1\. Get acqui-hired

After all, as they say, "startups are the new grad school".

------
zerr
David, one question - what percentage of the knowledge acquired only to
prepare for the interview did you actually used at the job?

~~~
davidbyttow
Hard to quantify really. Often, it's not the exact knowledge that you use, but
the byproduct of knowing something that helps you learn something new. For
example, learning the nuances of a new language became much easier once I took
a stab at implementing my own compilers.

I still had a LOT to learn, and Google is a fantastic place to soak up as much
knowledge as possible. Mostly everything I learned about distributed systems
came from Google.

------
surano
but the goal behind TopCoder problems should be improving thinking skills, not
preparing interviews, I think. Because not the actions which determines more
our future, but the intentions, I think

~~~
davidbyttow
TopCoder problems quickly become pattern recognition and that becomes (brain)
muscle memory.

Knowing exact solutions to exact problems is not helpful.

~~~
surano
it is helpful is most cases, but it has to be just a tool not a goal. a
developer can reach the same thinking level just by working on its personal
projects and by searching and reading about algorithms. However timed problems
improve rapidity, which enterprise-oriented skill.

~~~
RohitS5
I agree, whole purpose of those learning is to improve thinking ability and
problem solving skills, but it also intention of learner, which makes
difference.

------
MostAwesomeDude
Huh. I didn't do any of this. Maybe there isn't a single way to do things.

~~~
readme
timtowtdi!

------
EvilLook
I hope step one is making your site work on tablets because your site doesn't
work on the Kindle Fire browser.

