

Student Hackers: DO NOT Intern...BUILD. - aashaykumar92
http://aashaykumar.com/2013/04/10/if-you-are-an-entrepreneurial-minded-cs-major-dont-intern-build/

======
brianchu
While I generally agree with this sentiment, I think there are other good
reasons to intern at big companies: getting contacts, learning from more
experienced engineers, learning industry practices that you would never pick
up through tutorials, and getting active criticism on your code from other
professionals. The peril with being self-taught is that you'll pick up a few
bad habits along the way.

Money is also an issue. _A viable option for students is to try and freelance
during one of their summers._ You would need to spend some time before the
summer trying to drum up a few months worth of work, but this might offer an
acceptable compromise: if you're the sole freelancer, you'll have full
ownership of the product, you'll learn a tiny bit about being entrepreneurial,
and you'll also have spare time to work on your own projects. You might even
make more than you would interning (assuming you're a Facebook-caliber
intern).

Maybe the best "path" for a student to take is to spend his/her first two
summers at a big tech company and a startup, and then spend his/her last
summer freelancing and working on personal projects.

------
adamman
I'm sorry, but if I had had the opportunity to be an intern at Facebook when I
was in college, I would have done so in a heartbeat. It doesn't matter if they
implement the feature they put me on. The contacts and experience gained are
the main reason for interning.

------
bjhoops1
While I understand that for entrepreneurial CS students, interning at a
startup or building something awesome over a summer is ideal, I think that

1) the vast majority of students would be unable to find a sexy startup to
work with and 2) you are vastly undervaluing the benefit of learning best
practices and industry standards, which you will get plenty of at a decent-
sized company.

Far better (and likely) IMHO to get a job at a (probably medium-sized rather
than large) company where you will get to do both new coding as well as code
maintenance (learning to read someone else's code is a vastly undervalued
skill that you won't learn "building something awesome"), learn as much as
possible from their senior engineers, and then start building something cool
on the side that isn't a stinking heap of unmaintainable feces like most
undergraduate-level code I've ever seen.

If you're a Rock Star Ninja who happens to be able to write quality code
straight out of school, good for you, but I think most software developers out
there would rather work with someone who's spent a year or two in apprentice
mode as low man on some company's totem pole, rather than some hotshot out of
school who probably turns up his nose at RDBMS's and Java.

------
jre
I spent many of my student holidays hacking on stuff. That was really great
and I learned many technologies/languages that we never touched at university.

But I also did two internships, one at a big, one at a small company. They
were incredibly valuable : I learned about real-world (unit) testing, code
reviews (by people more competent than me), working with a big infrastructure,
having deadlines, etc... Those are all skills that are really useful for any
programmer and they're helping me now that I'm working on a project that I
hope will become a startup.

------
iansinke
> Take risks and have fun.

I'd love to take risks and have fun, but when you're in college, looking for
good, steady, well-paid, full-time summer employment, it's just not very
appealing to take risks with your finances. I'm there right now (although an
ECE major, not CS) and I wouldn't trade anything for the paid co-op placement
I have right now.

------
mbesto
_let me make myself clear that I am ONLY referring to the CS majors who claim
to be entrepreneurial at heart._

I know very few CS majors who can decide how entrepreneurial when they are
that young. Everyone is pretty much entrepreneurial when you are in college -
you want to create the next facebook or send the next rocket to space, but
actually having the guts to do that is another story.

 _When graph search came out, he said he had worked on the Graph Search
Project but the specific part that he had worked on was not implemented at
all. How disappointing, huh?_

Not disappointing at all. He did build something and in the process he most
likely learned a myriad of intangible skills (project management, working with
people, social skills, communication skills, etc) Those lessons are invaluable
to the real business world.

Many of the skills required in today's jobs (not just the bubble of SV we all
sit in here at HN) are learned at big companies, doing nothing but working
with other people. Communication skills are often misunderstood and often seen
as secondary to technical skills. As many experienced will attest to, many of
today's software errors aren't a result of poor technical ability but rather
poor communication. No offense to the OP, but his writing skills are clearly
not great. In the land of startups, I'd be scared as an investor/customer (any
stakeholder for that matter) trying to properly communicate with him.

EDIT: Also forgot to add this: _"Professional networks were important to the
success of their current businesses for 73 percent of the entrepreneurs. In
comparison, 62 percent felt the same way about personal networks."_ [1] That's
something you will definitely get in a big company.
[1][http://www.kauffman.org/research-and-policy/the-anatomy-
of-a...](http://www.kauffman.org/research-and-policy/the-anatomy-of-an-
entrepreneur.aspx#)

------
precisioncoder
An internship is effectively getting paid to learn. Maybe there are better
choices for the company to work with but hey, you may never get another chance
to learn how Facebook builds things. If you get an opportunity to get a look
at software development in a household name take it. Hell if someone offered
to have me come code with them at their company for a day on one of my days
off I would take it in a second. It's incredibly valuable to get a chance to
look at a company's practices, culture, and the general feel of things there.
You're not committing for years, you're committing for a summer. Enjoy it. If
you decide later that being an entrepreneur isn't working for you for whatever
reason having a big name on your resume and contacts in the industry can be a
huge leg up.

------
awaxman11
Great post. The internships at big name brands are perfect if you want a good
job at a good company after school. However, the best jobs at the best
companies (which may be your own) are going to be reserved for those that
learned in 3 months what takes people at a large company 1-2 years to learn.

As Adam Pritzker from GA said, "The cost of building technology is dropping so
low that people can actually afford to take the risk to learn by doing
something that, in our minds, is a much more effective way to learn than
anything else."

------
EddieRingle
I started developing Android apps in 2009, teaching myself gradually by
building a GitHub client (as the official app did not exist then). Three years
later (2012), I graduated from high school. I was offered a chance to intern
for the summer at GitHub, but a few things got in the way of me doing that.

However, nearing the end of July I stumbled into my first contract job after
helping out in #android-dev on Freenode. I'm now almost a year out of high
school, still indecisive as to whether I'm going to college in the Fall (the
same things that prevented me from interning at GitHub prevented me from going
to college last year), and I am gradually building up my portfolio. Every
recruiter I've talked to over the past few months have made a point to note
how filled-out my resume is for someone my age. I guess my point is that I
probably would not have been in that chat room at that time had I been
interning in California.

------
ceeK
I'm a student hacker currently in my third year of a 4 year masters course.
Last summer I interned at a startup in London working on iOS apps, some from
the ground up, some just updates. It was a good experience, although I had to
work on my side project during my lunchtimes, evenings and weekends.

This summer I plan to work with a buddy of mine on my CS course. We have an
idea in mind that I've already been working on (www.housequest.co.uk), but
really we just want to work on something for three months and try to create
something useful.

In the end, I'd say it's a good idea to obtain an internship for one of your
summers in university. Although you don't get much time to work on other cool
stuff, I believe you'll benefit from it in other ways. It's a good fall back
plan for when you leave university, as past experience accounts for a lot.
Secondly, you learn a lot. I was building iOS apps before my internship, but
building them professionally was completely different. I was doing silly
things. Lastly, it's good for networking with professionals.

The other summers you can then use to build even better software.

------
onemorepassword
I'm somewhat confused by the observation that the first choice for CS majors
is to be an entrepreneur. Shouldn't the motivation for CS be either theory
(academics) or practice (build stuff), but not "starting a business"?

Being an entrepreneur is something that is either your primary ambition, in
which case you don't start studying CS, or something that grows out of the
ambition to use your skills and knowledge to make something happen.

Studying CS with the ambition to become an entrepreneur seems like it's based
on the notion that "that's were the easy money is". In my experience, those
kind of people aren't good at either being a maker or an entrepreneur.

~~~
solistice
The "easy" money is everywhere and nowhere, expect maybe for drugs and
infomercials.

------
octo_t
The problem is I _needed_ my summer internships at university to be able to
afford to live for the next year.

"Building" over the summer would have been really fun, and the benefits of a
9-5 was that when I got home I worked on some of my projects which I had
ignored during the school year.

------
freyr
What did I learn from this article? I learned that a college junior at the
University of Michigan will stop talking to me, and won't be impressed with my
resume, if I take a summer internship. Great.

Obviously, a student could learn a lot working on a personal project over a
summer. That could be a great way to go.

On the other hand, the initial exposure to the operations of a successful
company bombards an intern with valuable information. He or she will discover
that some things function extremely well and some things don't quite make
sense, learn basic business etiquette, learn how things scale, etc. All of
this information can be extremely valuable when you're ready to grow your own
company.

I'm sick posts telling young people to "DO this, NOT that, or ELSE!" What
works for you might not work for someone else. There isn't one path to
success. This an extremely limiting view of the world.

~~~
obviouslygreen
Not only is it extremely limiting, there are so many explicit assumptions and
so little reasoning in this article, it's barely even anecdotal. If it were,
that's still one person's experience/opinion; as someone else predictably
pointed out in this thread, Mark Zuckerberg. No, you're not him, and even if
you were _it wouldn't matter_ , because if he'd come along and someone had
popularized an FB-like product first, chances are he'd still be just as
obscure as most of us here.

Further: _I’ve talked to more CS majors who say, “I want to be an
entrepreneur” than I care to share..._

Then they may be in the wrong program, unless they mean "I want to be a YC
alum" or "I want to be a technical co-founder." An "entrepreneur" is someone
who deals in business, _not_ just a programmer who doesn't work for anyone
else. If that's their goal, they shouldn't be in CS. In the reasonably likely
case they _do_ want to be something more specific and technical, hopefully
they've thought about it further before committing to such a statement.

------
rlanday
As another University of Michigan student, this extreme enterpreneurial
mindset seems incredibly arrogant to me. “I have nothing to learn from those
more experienced than me, I can do everything by myself, and as a 20-year-old,
I understand how to solve the world’s most important problems.“

~~~
aashaykumar92
Sorry if I came off that way, but I am definitely not trying to nor do I see
it from many people as explicitly as you stated.

------
vy8vWJlco
Same thing applies to politics. Don't beg for change. Make it. (And right now
we need more P2P.)

------
hmottestad
In Norway I have yet to meet a fellow informatics student who has interned at
all, ever.

Finding a summer job (with good pay) is easy here. If you are on your final
year of bachelors or first year of masters then not getting a summer job is
literally impossible if you actually want one (ie. apply). Companies will even
take you in with rubbish grades if you seem ok, just to test you for two
months in order to see if you might be suitable for the company once you
graduate.

------
hawkharris
I disagree. I've always loved programming and building things in my free time,
but I had no idea how a technical business operated.

Interning for a tech company gave me an invaluable opportunity to network and
learn about business strategy, workflow, etc.

I think young programmers need to learn through experience how a successful
company operates before they try to start one on their own.

------
edu
Full disclosure, I'm looking for an intern in Madrid starting ASAP. So if you
are interested don't hesitate to contact me :) (details on my profile) we work
with Ruby, we are agile and we will mentor you :)

I'll say... do an internship but be careful where and with who. Working in a
small startup for a handful of months will show you how a company works
inside-out, and probably will allow you to do networking with interesting
people. Go where you can get a good mentor.

Of course, if you intern in a big-corp just to be a code-monkey it might not
be that fruitful (even though you might still learn about 'real life
programming' or big architecture).

~~~
yosoyzenitram
+1, a part-time internship doesn't mean you can't keep working on your side
projects!

And there are a lot of cool offers and places where you can learn a lot on
Madrid (I myself started last week at Vizzuality), yet too many uninterested
students that end up selling their souls to Indra/Everis/Accenture :(

------
blakeshall
Interning was a great start for me and helped me meet a ton of people. The
difference was I interned at a startup. The problem is that they are sometimes
hard to find, and you'll probably have to travel. Many students I've talked to
don't know where to find smaller companies that offer internships. The big
companies give the most money to colleges and in turn that's what most
students are exposed too.

------
gusgordon
As a student, I agree, but it's not this simple. My parents still expect me to
get a job, and I need something to do other than just sit in my room all day
on my computer. It's nice to have people to talk to, and I don't have any
friends who are entrepreneurial and hackers who can be a good cofounder or
whatever. It doesn't seem like there are any great solutions to these
problems, but maybe I'm not looking/thinking hard enough.

------
ronilan
Intren.

You won't be able to do this later in life while time to build you'll have
plenty.

------
jiggy2011
What about the value of experience seeing how the big boys handle large
software projects? Getting the chance to work with and be mentored by more
experienced developers? Knowing what the inside of a profitable software
business looks like?

------
frederico
although in an ideal world this is excellent advice; however many students
aren't fortunate enough to have their school bankrolled for them and need to
work throughout the summer to pay for their education.

Big companies offer pretty outstanding pay when you're interning, helping you
pay for college.

I do agree that building is something which is invaluable; however while in
college before you've really been proven and shown off development skills to
work at a startup or have funds to work on a new idea you're really forced
into a corner for working on side things in your spare time.

------
aashaykumar92
I figured this would happen. In the comments already posted, it is obvious
people aren't reading my entire post and missing key details. 'Twas expected,
I guess (sigh). I figure since it is my post, I'll address some of the
comments below:

"Working for someone else is not all bad, even if building your own thing is
your ultimate goal." -Kyllo

I am not saying it's bad at all! It's perfectly fine to work for someone else
but if you are entrepreneurial-minded, it's best to intern at either a startup
or a completely unrelated field to what you are used to, SO that you may be
able to find an area in that industry where software/hardware can optimize it.

"There is a huge difference between that. A good job will have some nice
engineers there, that might be willing to help you out and push you to learn
how to code correctly." -stevoo

So the main reason to intern is to just become a better coder? Doubtful. Just
to be completely blunt, the main reason college students intern is to have a
secure job after graduation.

"Interning was a great start for me and helped me meet a ton of people. The
difference was I interned at a startup." -blakeshall

Yeah I explicitly say this in my post! Working for a startup is completely
reasonable as you will hopefully be able to directly help with the companies'
organic idea.

"it's just not very appealing to take risks with your finances" -iansinke

There is very little risk taking with finances in the sense that you really
don't have to spend anything to build. What you are losing is the money that
COULD be made doing a summer internship. Being an entrepreneur is risky,
though, so this risk will have to be taken at some point if you want to
exercise that desire, right? Better now in college than after where you really
will be taking risks with your finances (living expenses while trying to have
a startup).

My Takeaway: This post should be titled differently because it seems that
people are just reading the title and not the actual post.

I also may have not taken into account the money aspect as much (I promise I
am not a snob)...I guess if money is an issue and you need to work, then
interning is fine but at least do it at a company that will help to enhance
your entrepreneurial mind! I actually do make explicit mention that working
elsewhere IS reasonable.

~~~
jbail
I think your post would be better received with a bit more facts and a bit
less anecdotal evidence. Moreover, you have a clear bias that big companies
are bad and startups are good. Having worked professionally for both, it's not
that black and white.

There are wide variations in company culture and work habits and my advice is
to not be immediately turned on or off simply by the size or life stage of a
company. You need to ask much more in depth questions to understand if the
company is a good fit for what you're looking for at a particular stage in
your life.

------
saosebastiao
Such condescending tone for someone that hasn't done much for himself (or even
lived long enough to do so). You might wanna lay off the sage advice until you
actually become a sage. Or, maybe you could express your opinion on the matter
without the snide remarks and presumptuous attitude towards those that
disagree with you.

~~~
aashaykumar92
I apologize if I came across as condescending, was not my intention at all. I
just took a side and went with it--my motivation for this post was from
hearing friends tell me that they didn't get much out of their internship at
big companies because they were just told to be code monkeys. Again, sorry for
coming off as condescending.

------
cjbprime
Can you really not think of any good reasons for students to intern at a large
engineering company other than the paycheck/a fear of being unemployed?

~~~
aashaykumar92
Not at all, there are probably plenty of good reasons including
learning/getting the opportunity to work with other bright individuals.

HOWEVER, I make it clear in my post that I am only referring to
'entrepreneurial-minded' CS majors. These are students who presumably want to
have their own startup or simply enjoy taking an organic idea and building
upon it. Doing an internship at a large engineering company, in most cases, is
not going to help/encourage you to be entrepreneurial spirited and do this. At
least not as much trying to build something on your own. Another option that I
present is to work at a company that is completely unrelated to your field and
see if there is room in which software and/or hardware can help optimize that
area.

~~~
eob
If successful entrepreneurship just required proper spirit, then Mao's
policies in 20th century China would have all worked [1].

There's a lot that's good about your advice and intention, but don't forget
that large companies tend to be large because they're extremely good at what
they do. Interning at a few companies (diversity is good) can teach you what
"being good" looks like in a way reading a blog post can not, because you
learn by doing and seeing.

[1] (A gross approximation of his message was essentially that with proper
Maoist thought, everything else would righteously fall into place.. but then
it turns out that enthusiasm alone doesn't give you the skills to make proper
steel (see <http://en.wikipedia.org/wiki/Great_Leap_Forward)>).

~~~
solistice
I guess that's more motivation x ability. If you know how to, but don't want
to, you're not going to. If you want to, but don't know how to, you're out of
luck too.

I don't agree with the large companies are large because they work well
hypothesis either. It wouldn't cover disruptive startups gobbling up larger
companies market share, nor would it cover companies which are small, but very
good at what they are doing. Google did search better than Yahoo, and it
dethroned it. Was Yahoo larger than Google when Google started out? Yes. Was
it better? Not neccesairily. And no matter how good your flight checking app
is, you'll never become as large as Google, which doesn't mean you're doing a
worse job than them.

Also, size breeds inefficiency because it averages. If your a 2 person
startup, and one of you has no clue at all, you'll fail. If it's a 2000 people
corporation, incompetence can and will slip through the pores (Else I honestly
can't explain how some programmers got their jobs). The same way a large
company can teach you what "being good" looks like, it can also teach you what
"being bad" looks like, but they believe it's "being good". Organisational
size is no guarantee for quality, the same way popularity isn't. Else Java
would be the best language.

------
kyllo
Build what, though? Most of the ideas young programmers come up with on their
own are unoriginal--the world doesn't really need another to-do list app.
Getting a job or internship first can expose you to actual business problems
and domain knowledge, plus give you some good contacts and references, and
help you save up some money to use when bootstrapping your own product.
Working for someone else is not all bad, even if building your own thing is
your ultimate goal.

~~~
daniel-levin
'actual business problems and domain knowledge'

This is critically important. In the past few months, I've done a lot of
networking with the tech entrepreneurs in my city. After speaking to these
guys, I became aware of problems I didn't even know existed. It turns out that
corporate South Africa (and probably the world over) have a massive number of
problems they need solved. For example: fleet management, business reports,
operations (like using Voronoi diagrams to see which restaurant chain
'dominates' an area). This surprised me because as someone without exposure to
a real business environment, I couldn't conceive why people would actually buy
reports products and resource planning software. If you asked almost any CS
major to explain what a 'enterprise resource planning application' should do I
can quite safely bet that they won't be able to accurately describe what
problems it addresses and how it solves them (assuming the grad has no first-
hand experience in dealing with this kind of problem).

I realised how as an individual I have been exposed to mainly B2C companies.
Now, having been introduced to real, profitable B2B companies, I see that the
domain of problems to solve and businesses to build is huge. 'Get out of the
building' really summarises this concept well. Get exposure to real business
problems and you _will_ find someone who has an unsolved problem that you can
attack. A nice example of this (not a _business_ problem but a real one
nonetheless) is the other day I had to collect my calculus test. There were
1000+ people contending with each other to find their paper in 50 semi-sorted
piles. It was chaotic. I know that there is a better way to do this (fast and
efficient distribution of unique papers to 1000+ people) - I'm currently
thinking about how to solve this problem. The takeaway idea here is that there
are tons and tons of problems out there and exposure to the real world will
give you the opportunity to see these problems and begin solving them.

~~~
solistice
I don't believe you can get that cross polination at Sun Microsystems (or
other big name IT Company) though. Yes, they'll be working on problems that
other companies need to have solved, but they'll be working on these problems.
So if you are an enterpreneurially minded CS Student, then that means they got
a headstart on these problems, along with a bigger budget and more coders to
solve them. I would approach the problem as follows. If I'd intern, I'd first
find an internship in a totally unrelated field (like metalworking or
gardening)and see whether I can help to implement systems to make work easier.
And if it works, you have a first product which the company you intern at
won't try to sell.

PS: Divide 1000 papers into stacks of 1000 and give to 10 people to subdivide
into stacks of 100, which divide between themselves and 9 other people. Let
all those people further subdivide the sheets till everyone has someones
sheet. Put out an alphabetical list of those 1000 people where they can write
some way to contact them. Or let them write their email adress/phone number on
the paper next time you have a test. This way, everyone has to deliver 1 paper
to one other person and receives 1 paper. There's most likely a better
solution, but I can't think of one right now.

~~~
aashaykumar92
"If I'd intern, I'd first find an internship in a totally unrelated field
(like metalworking or gardening)and see whether I can help to implement
systems to make work easier. And if it works, you have a first product which
the company you intern at won't try to sell."

Thank you. I stated this as well but was missed by so many 'readers', glad you
mentioned it here!

~~~
solistice
I mean you don't even need to intern anywhere to get your hands itchy with
other peoples problems. I mean yes, the usual startup folklore is "Fix
something you do", but I make to do lists. Should I code up another digital
todo list? I personally think that's just a simplification of "Fix something
you want to fix, and fix something you understand". And because less people
graze in those slightly off pastures, the grass might be lusher over there.

