Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Student Hackers: DO NOT Intern...BUILD. (aashaykumar.com)
42 points by aashaykumar92 on April 11, 2013 | hide | past | favorite | 53 comments


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.


'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.


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.


"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!


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.


like using Voronoi diagrams to see which restaurant chain 'dominates' an area

That sounds incredibly cool. Would you mind going into more detail?


I agree. Not only does a young programmer have no idea what to build but the main purpose it to escape from the academic coding world and into the actual business coding world.

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.

This is the main reason to intern.


Agreed with exposure to businesses and domain knowledge and contacts. But I disagree very strongly with the idea that young programmers (college students) can't come up with ideas. Ideas are cheap and plentiful. I have never met a CS student who didn't have at least several ideas bouncing around in their head. And sure, most if not all of those ideas are not billion dollar ideas. Keep in mind that one of the benefits to side projects that the OP mentions is the ability to show employers the projects, in which case the uniqueness matters much less than the actual technical proficiency.


Exactly, thank you! And especially entrepreneurial-minded CS students which is the target of my entire post.


No reason for the issue to be either/or. Fine, a new graduate needs real-world organized domain-exposure experience, and a paycheck. Day job.

I'd bet nearly all of the young'uns in question are NOT spending much of their remaining waking hours building something of their own on their own. Yes, the world doesn't need another to-do list, but there's a zillion other small projects anyone can do with overhead expenses approaching $0. Even if they're doing just a to-do list, then they're doing SOMETHING on their own, learning about building & polishing & documenting & packaging & distributing & advertising & selling & etc., creating a portfolio of personal experiences. So what if it's unoriginal? follow the unoriginal path until it ends, then be somewhere the path is heading and be the first one there with something original.

Programming and entrepreneurship are like being a musician: if you don't do it at every opportunity, if it's not your preferred time-filling activity, if it's not darn near oozing out your pores, you're not one. I'm realizing people don't understand "I want": it's not a vapid expression of desire when pressed for an answer to "what do you want?", it's something you crave & pursue without prompting by others. The author noted that 75% of those saying "I want to be an entrepreneur" were doing absolutely nothing to make it happen, ergo they don't want it.


If you build a to-do list app and see why it fails, you also gain understanding (hopefully).

A lot of the stuff I built in my spare time as I was learning to code failed. Afterwards I questioned why and took that knowledge with me. Probably not as much as working with real business problems, but it is not for nought.


> Build what, though?

It's part of being an entrepreneur. You have to keep thinking and keep looking for ideas consciously. It's a cultivated habit.


luckily mark zukerberg did not listen to this.


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.


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.


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.


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.


> 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.


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.“


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.


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.


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.


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


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).


+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 :(


I'd like to add that it doesn't have to be a start-up at all, it could be any small company.

Where I'm working, I started as a (paid) intern, doing some research and just seemed to stick around. I would occasionally sit in on meetings and training just to see how the other parts of the business worked.


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.


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."


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.


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.


"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."

False. 100%, completely and entirely, false.

School is frequently grounded in theory. More often than not, Internships are on actual products. Being able to traverse/understand source code and build productively into an existing product is an invaluable skill as an engineer.

Not only that, but it's during the internships that you meet all the people from outside of your collegiate bubble and where you FIND the people you want to build with. Not only that, but a fair amount of (us) students are consumed by loans, and any sum of pocket change (though the thousands of dollars you make at a place like Facebook or Google is in no way trivial) is invaluable. Not to mention that you get that building experience at the same time.

And yes, internships help you get a job. There is nothing, NOTHING AT ALL undignified about doing that.

The mindset of building for the sake of building is great! No qualms there. I think your view on internships and their value to students is a bit oversimplified.


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?


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.


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)).


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.


Why not? HN sometimes seems to act like there's some ticking clock and you must start a startup right now or die poor.

There's a lot more to entrepreneurship than just starting a company, it's more a way of thinking. So you can work for a BigCo with ambitions of doing your own thing in the future and learn as much as you can about how BigCo operates. What seems to work, what doesn't, why are they doing X this way?

In fact in most industries , successful entrepreneurs are very often those who have experience in the industry as an employee. They know how to business works, so they know what to optimise and what mistakes to avoid.


It's always a good idea to diversify who you hack with. Hacking with other CS students compared to some seniors at some company might be very different. Could be a nice experience. Playing with some seniors.


Nothing has helped me get better at what I do than the knowledge/fear that a senior developer would be integrating my work.


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.


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...


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.


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.


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.


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


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.


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.


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.


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.


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.


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.


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?


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.


Intren.

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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: