
Ask HN: Startup vs. big corp fresh out of college? - howon92
I don&#x27;t know if it has been asked on HN. I have been asking people around me (developers) whether I should start&#x2F;join a startup fresh out of college or join a big company. The answers varied. What are your opinions?<p>To put more context: I have done an internship both at a startup and a big company. The pros and cons of them were in agreement with what people usually say. Startups are tougher and riskier but make you grow quicker, while big companies tend to be less interesting but guarantee a comfortable life. What would you choose if you were a senior in college who&#x27;s about to begin your career?
======
kasey_junk
I think people overemphasize the difference to be quite honest. What I would
recommend is disregard the startup/corp distinction and instead look for the
following:

A company, where software is the product (ie you get paid based on customers
wanting software that your company writes) and there is a good mix of
experienced vs junior developers.

There are lessons you can only learn at a software company and the sooner you
learn them the better. Further, learning from experienced developers will jump
start your own experience in ways nothing else can.

If I had one major knock on the advice to join a startup right out of school,
it's that so many of them are lacking in experienced software professionals.
Full disclosure though, I joined a software startup right out of school
(during the first dotcom boom).

This advice is largely based on the assumption that you want to have a long
term career writing software for a living. If that isn't the case the
variables change dramatically.

~~~
billyhoffman
This. So much this.

School taught you the abstract and theory of computer science and development.
Working for a company takes your college level education and fills in the
"real world" gaps that you don't even know are there. If you were a self-
taught programmer before going to university, a good CS program will fill in
the holes in your educations (typically data structures, algorithms, dynamic
programming, etc).

In the same vein, a real world programming job rounds you out and makes you a
stronger developer. You might understand things like
program/object/interface/API design, Code reuse, documentation, etc in an
abstract sense, or even some practical knowledge from working on small team
projects in school. Finding a good team to work with in professional setting
will help you mature.

This is why company size doesn't completely matter here so much as composition
of the team. You need diversity. You want a team with 5-6. This will have a
mix of junior and senior folks. It just large enough that having effective
communication and planning becomes important.

If

------
ganarajpr
Unless you can join Google or Facebook, I would say startup.

Here are some good reasons to go with a startup ( If its in your powers,
CHOOSE.)

1\. Startups are more fun. Like the other commenters said, in just 1 year you
will learn quite a lot more in a startup than you would in an enterprise
company.

2\. If you are joining an Enterprise, you are mostly working on code that is
already built by someone else - you have to adapt to that - adjust to that.
This is not in itself a bad thing - but my belief is that when you do things
from scratch - you learn a lot more. As a freshman - out of college - your
main aim should be learning - not money.

3\. Startups have the advantage of being a possible rocketship. You never
know. If you happen to get on one - you will be set for life. You dont have
any remote possibility of doing that in an already established company.

4\. I am overly generalizing here - but in a larger company - you will have to
deal with a lot of bureaucracy and politics. Its an unavoidable thing when
more than a few humans come together. This is detrimental to your growth. It
wont allow you to move fast and break things.. which is something you should
constantly do as a freshman.

5\. Again generalizing, startups are more tech focused ( assuming you are a
techie ) and enterprises are more management focused. If you join a startup
that is a rocketship, you will most likely learn both tech and management at
the same time. If the startup you joined dies, go join another one.

------
xyzelement
You will get advice like "do it now while you don't need a lot of money." But
that's not how money works, assuming you have discipline. All else being equal
- the more you make sooner, the more you will have overall.

Two big reasons for this: you will invest the money you have now and will earn
interest on it. And: what you will make in your second job will generally be
based on what you make in your first. Settle for less the first time around
and you will always be playing catch-up.

You want to find the best of both worlds: something that offers you good
compensation and stability, while also giving you a chance to learn and grow.
A big company can do that, you just need to find the right one. Get as many
interviews and offers as you can, feel out the company cultures and do
research. Someone else mentioned Google and FB. I am sure that's true, there
are also lots of other companies where that's true as well.

Personal anecdote: I work in a fairly large NYC based fin-tech firm. Started
12 years ago out of CS undergrad. Now in my 5th role, including having run
multiple dev teams and done product management. The firm supported my growth
in other ways (grad school tuition.) I would challenge the notion that I
learned less than I would have in a startup.

At the end of the day, you want both: money and opportunity. If you are good,
you will have options that give you both. Good luck.

~~~
NhanH
If you don't mind, may I ask which firm is it?

------
ChuckMcM
I expect that expectations will vary so its really a personal decision. When I
came out of college I was interested in starting my own company but I wanted
the company I built to grow into a big company, and to that end I wanted some
experience working at a big company to understand a bit about where the
destination was.

I've noticed that many people work for companies and don't bother to invest
the time in figuring out _how_ the company works from top to bottom, how do
people pay, where does the money go, how do you decide what to spend it on, or
how much to spend, how do you decide between path A and path B. All the very
real decisions that are made and how they are made, how do you have 20 people
make a decision that they are all signed up to support? How do you know if
your company is getting bigger, smaller, or suffering.

A startup, at the initial stages, is a handful of people, its a group project
to achieve a singular goal. It isn't really a company at that point. When it
gets traction and needs to become a company, what is missing? what is needed
first? What is less important? All of those things you learn at a company
which is already established.

When I came to the valley I joined Intel a "big" corporation at the time
(which was better than my other choice Western Digital :-) I spent a couple of
years trying to figure out how the company was put together as a system. Then
I joined a late stage startup (Sun Microsystems) and worked there while it
went from a "small company" (something bigger than your basic startup but I
still got to know a lot of the company) to a "large company" the first billion
dollar a year in revenue, and on to a run rate of $5B. Then I went back and
started a company with some friends and we took it from the 5 of us to product
launch and into the second product before we were acquired. And then back to a
larger company to figure out some of the things I couldn't quite figure out in
growing a company how folks had got there (mostly around sales to enterprises
and getting the business model right).

The point being that my career to this point has really never changed its
objective, which is to learn how to build and grow a great technology company.
And helping me learn has been a number of friends and companies over the
years.

So your objectives will tell you whether or not you should start at a big
company or a startup.

------
davismwfl
Startup for a few reasons, with an assumption you aren't married with kids.

1\. You will never have the freedom you have when you are young. Once you are
more established with family, kids etc it is harder to take risks, not
impossible just harder.

2\. You will learn more good and bad in a year at a startup then 3-4 years at
an Enterprise. You will be forced to grow and do things you didn't know you
could do, but you can.

3\. Even with the cons, startups are one hell of a fun ride. Yes, at times it
will suck, but better to have some excitement then be bored after your first 6
months at an enterprise job.

Now, the other side of that is. Enterprises can still teach you a lot and let
you grow some while giving you greater stability, it just takes longer. You
will also get to see how screwy corporate cultures can be and some good parts
too. There are just things about working in and around Enterprises that you
can really only learn well by being inside and seeing the beast.

If you want an easy life, and to retire fairly young in a more "guaranteed"
way, you will be better off taking an Enterprise job, working 20-25 years and
saving well. You'll be well compensated, can save and invest well to retire
quite comfortably. Not to mention you will rarely be working crazy hours and
can take your vacation regularly etc. Yes it will involve stress, but IMO 75%
of the stress is the bureaucracy you have to learn to navigate.

In the end no one can tell you the best choice. My brother and I both came
from the same entrepreneurial family and I went on my own after some
experience in Enterprise businesses and he stayed in the Enterprise space.

~~~
dreaminvm
I agree with 1 and 3, but 2 seems exaggerated. Enterprise jobs vary a lot
depending on the organization you fall into. There are lots of engineers at
Big Corp that are innovating and pushing the envelope.

~~~
davismwfl
I agree with you in that some Enterprises are innovating and pushing the
envelope, but it generally isn't global to the enterprise, its in small areas
they can accept the extra "risk". And at least in my experience it generally
isn't done by a recently hired new grad, its usually a trusted insider team
with some history at the company.

------
poof131
Why not split the difference, go for a mid to late stage startup? If you don’t
really know the founding team of an early stage startup and don’t have
experience, it’s tough to assess the risk regarding the team, the product, and
the market. If they’re hiring you out of college, they may be looking for
cheap labor. A mid to late stage startup likely has product and market solved,
and is focused on growth. You will still have an impact, likely learn from top
notch people, and see what success looks like. Then you can move smaller or
bigger as you choose depending upon what you want.

------
luckydude
Unless you have an unusual background, find the best big company you can and
try and go there. I'm old so when I was in college it was Bell Labs. By the
time I got out it was Sun so I went there. Don't regret it for a minute and I
stayed there for about 7 years.

If you are a grad student thinking about a PhD, here's what I remember about
that. A hard part (there are many) of a PhD is your thesis. Finding a good
topic, while you are in school, is hard. However, go into industry and look
around and you'll find topic after topic.

Getting back to startup/big company, I would pick a big company if you can go
to an interesting one and do interesting work. Facebook seems like they are
doing a lot of pretty interesting systems stuff, languages, tools, etc, along
with all the social stuff (that I don't pretend to understand). Google used to
be the cool place but some of that has worn off, might still be worth a look
but it would really depend on what you are doing.

Oh, one other thought: don't be afraid of paying your dues. When I got to Sun
I joined the kernel group and they gave the job nobody else wanted: make the
kernel conform to the POSIX spec. Seems like a bunch of shit work but for a
relatively fresh programmer it was a fantastic education. If I had turned up
my nose at that work I would have lost out.

------
mindvirus
I would recommend going for an A-list big company out of school (Google,
Facebook, etc) for a couple of years. They will teach you a lot about
infrastructure and software engineering, you'll find a mentor, and the name on
your resume will basically guarantee you interviews for the next 10 years.
Plus you'll meet a big network of people. You'll also peg your salary at a
higher level which compounds throughout your career.

------
ryanstanton
I'm not a developer, I'm an engineer, but I think the same principles apply.
If you want to become the best at what you do, you must surround yourself with
people smarter, more experienced, and more capable than you. So, go to the
company from whom you can learn the most. If a particular startup has an
experienced / innovative team, go there. If you find the same thing at a
corporate giant, go there. I started my career at a startup, but found I
quickly exhausted their expertise since their team was 'limited' in
experience, capability, etc. So I ended up at a Fortune 500 where there were
thousands of engineers to learn from. In the developer world, it might be
completely opposite - the good ones are at startups. Just as employers pick
their employees carefully, you should pick your employer carefully :)

------
starlord
Depends on what you want to achieve out of the next few years of your life.

As in any other choice in life, you have both pros and cons in both the
choices.

As also pointed out in other answers, it would hold true that doing your own
startup will be the easiest now, as this choice will only get harder as you
grow older and your responsibilities/obligations increase. This would
definitely give you a good overall growth in many areas.

If you want to develop skill-sets in a particular domain, then I would suggest
to go join a big corp where you can learn some best practices, get mentors and
maybe even find interesting folks for you own startup at some point later in
life. Also a somewhat middle path can be achieved by joining an early stage
startup where you can find the above mentioned things in the team, and the
pace of growth will be faster as well.

Will share my personal experience as well, maybe it might help. (Though take
it with a pinch of salt, as it's not purely objective for me anymore.) I had a
good chance to do a startup right out of college with a few friends and some
ready funding/accelerators acceptances, but I took the option to go with a big
corp. After about an year, I really regretted that decision. I have been
wishing to go back and change that... So I left the big corp job after about 2
years, and have been working in core founding team of a startup for 2 years.
Learning pace is much quicker in startup, but be clear in what you want out of
the time you give to the organisation you will work for be it your own or
someone else's.

Big points of regret for me: 1\. I had a good team with me then (damn
difficult to find this), 2\. I was quite passionate about the problem we were
working on (again not as easy to develop as it sounds). 3\. Seed funding was
readily available, so finances would also have been taken care of while
working there (as you grow this starts becoming a concern as your burn rate
increases...)

Also, I would suggest you to watch both Paul Graham's lecture (L3) and Dustin
Moskovitz's advice (L1) @
[http://startupclass.samaltman.com/](http://startupclass.samaltman.com/) to
also maybe get some more perspectives.

Hope it helps. All the best!

------
brudgers
There are shit jobs at startups and great jobs at big companies (and vice
versa) by almost any set of metrics you can choose. It may be better to
compare specific opportunities and therefore keep your options open. What will
matter more than anything else in the long term is the quality of the team you
join and the quality of the work they are doing.

Good luck.

------
howon92
Thank you so much for all the gems guys!!!

