"I was a bro-grammer, I went in because, like, tech was cool man!
But I realised that, dude, just being an ass-hat doesn't get you shit. Actually enjoying your work is, like, a big deal! And start ups are cool! And my earlier self was right to want to work at a startup man!
Also, hater's gonna hate ;-)"
;-P OK... no where near that bad, but yes.
I think the number of people who do a CS degree because they want to get into "tech" is cyclical. I entered after the first dot-com crash. There was no longer talk of big money, but burn out and despair. There were very very few people on CS who were doing the course because they "liked tech". There were a few, but they are not in tech any more. I wonder if there is a cycle for how trendy start ups are. I expect it's in a similar cycle to dot-com boom/bust.
Fair enough. Then I would like to see the speech from the employee who jumped ship from their stable job at BigCorp to a startup that went bust 6 months later. Or the person who works at the slow-growth startup where little exciting happens because the company never really goes viral (or whatever), but he's still expected to work 60 hours a week.
The chances that the startup you go to work for is the next GitHub is incredibly small.
I think your viewpoint is unduly pessimistic. Yes, if you're a Java programmer at a BigCorp, you can be making considerably more than a programmer at a startup. But a programmer at a startup is still making considerably more than average income in this country. Yes, some startups are badly managed and burn out their employees. But I've seen plenty of death marches at BigCorps - witness the tales of terror from the game industry especially.
In the end it's up to you to judge the company for both human and career aspects, and to choose wisely who you work for. In ten years of working in the bay area, I have not regretted working for startups once. In short - mileage will vary.
He actually devotes a few slides to picking the right company (the part about the company being a burning money pit or whatever). I think you're reading a whole lot of optimism that isn't there.
I don't work as a programmer, but many of my friends do. A number of them worked for startups or smaller companies right out of school.
Over beers I got a few impressions, not sure if they're reliable as an outsider, but it seems like, yeah, best case is in the slides. Even if you're not an insta-millionaire, you make a dent in a really great product.
But I saw more of the worst case: a lot of 80+ hour weeks for a kinda nutty guy who keeps trying to replace your salary with stock options that hold dubious value. His sense of vision is so strong that he doesn't listen when you offer advice (like chuck the half of the code, you fired the guy who wrote it for a reason.)
I know, it's easy to say, "if you aren't 100% sure of the product's value, or it doesn't have great people, then quit..." But fresh out of school, no idea what businesses are ultimately going to succeed or fail, not a lot of experience to know what working dynamics are normal and which are incredibly sketchy... it's hard to know when to leave, or where you'd go if you did. Especially if you're looking to build a resume with experience that doesn't include 'bails at the first sign of trouble.'
Maybe those are the lessons to teach new CS grads: how to evaluate your first job (since you have nothing to compare it against). Maybe quit ten jobs after a month, then keep the next job that's better than all the previous jobs? :)
That would be me. I was part of three Start-Ups for the last 10 years. I burned out in more ways than one at the second(my longest stretch), and at the third, it was very obvious it was a sinking ship. Neither place was fun to work at.
The first one was ok while i was there.
None of the Start-Ups made impact, left me unfulfilled and with little money and not a great body of work to show for it. there were the occassional fun times no doubt.
But i still think Zach's presentation has plenty of merit. But i think when you're NOT a developer or an out and out tech guy - it's much harder to find work at a start-up. At least that's been my experience.
We've seen a number of times people who are completely clueless about work when they get out of college. And we've seen people who are so engaged that they don't even finish college because the stuff they are working on takes over.
Between those two extremes are a whole bunch of people with questions, and I read the presentation as something Zach would have liked to have known when he was in that 'I'm in college but soon won't be, now what' phase. Clearly his advice isn't for everyone. I heard a talk at "career expo" from some guy in the enterprise consulting business and I immediately knew that "enterprise consulting" was not a career path I wanted to pursue.
Zach clearly works at a startup because it is fun. For him. For others it may not be. I personally like the shorter decision cycles that a smaller company offers, but see the appeal that a more established company can offer. Some of my best jobs have been where the company was small when I joined and then got big enough that I didn't have to worry about it going away without some notice.
Working 60, 70, 80 hrs a week on something you don't like is not fun. I would strongly recommend you not do it. Working 40 hrs a week at BigCo that you don't enjoy at least frees up 20, 30, or 40 hrs a week to work on stuff you do like.
It seemed like Zach was saying do startups because you enjoy doing them, not because you want to get rich. You can get plenty wealthy working at BigCorp and participating in the employee stock program and socking away your 15% into your 401k. The warning though is that if you're doing this to get rich, you might want to re-check that. There is a lot of luck with getting rich, there is a lot of fun by following your passions.
The last bit is the 'unsuccessful startup' thing. Since a lot of startups fail at one time or another, it helps to think about that ahead of time. Since startups you weren't even at fail all the time you should re-assure yourself that it isn't your fault. The only personal failure you can have with a startup is that you don't learn anything. If you're not learning something you are doing it wrong. Lots of ways things can go right, lots of ways they can go wrong, and sometimes both on the same day.
Think of your career as a 25 - 50 year journey and realize that you the prize is learning a lot. At some point you drop dead and just before that, its nice to be able to look back fondly of the previous years.
There's less luck with getting rich than you might expect, assuming "rich" means "don't need to work anymore". Check into the early retirement scene for examples. earlyretirementextreme.com or mrmoneymustache.com are great examples.
Rich is a sucker's game. What you want to be is wealthy.
that takes a lot of luck. Rich is a result of hard work, wealth is a result of hard work plus luck.
Where rich means "I can afford practically anything I want" and wealthy means "My money makes so much money I could stop actively working and have more money when I die than I do now. Possibly enough for several generations."
I find his hyper-self-deprecating tone at the beginning of the talk to be a little off-putting. He's obviously fairly qualified considering that he managed to secure a job at Github (which is a very well respected company that is, at least anecdotally, incredibly selective with their employees) and was invited to speak at a school. He obviously must have inordinate tallent or we wouldn't be reading these slides.
In addition, the slides were pretty unsubstantive. He took ~70 slides to convey 1) startups are fun; and 2) don't be a sociopath and/or a recluse.
Total opposite for me, I enjoyed the presentation a lot and he wrote about way more than you're giving him credit for (risk-taking, emotions, power of perseverance; the exact thing a college student would want to know).
As for the self-deprecation; humility is a great trait in someone, it's always reassuring to know successful people still have doubts about themselves. I also enjoyed the fact that I could read the slides and not need to listen to the audio or read a transcript to get the sum of the talk. I generally just want to get to the meat of something and, without actually being at the real talk, I feel like I got a good story out of it.
As for the length, flipping through that many slides when you're presenting is different than just reading them online; you keep the audience engaged by moving their attention around in reasonably short bursts.
To be fair, slides usually accompany a talk. If he stood there and just read off the slides verbatim, yeah, that'd be lacking in substance. I'll give him the benefit of the doubt that his actual presentation went into more depth.
Harsh! To be fair, it's meant for students at the university to see a real-life success story from their program. My school had these all the time and used them as a way to keep people engaged.
How often do students learn about real-life failure stories? For famous historical examples with books about them: GO Corp (1990-era pen computing) and the Chandler project (personal information manager, mid 2000).
I've personally found some stories about failures to be quite informative, because they help show failure modes I had never suspected. But I had to learn about most of these post-school.
That's neat. It still leaves one related question unaswered for me. How would one go about making something like this [1] (but with arbitrary similar changes)?
Mostly it's confusing when advices of the type "do this" and "don't do this" are mixed together. For example, slide 64 and second line of 89 seems to contradict each other, or the "don't be an asshole" but "it's alright to be a dick" one.
Exactly, I'm actually mostly confused by this. At first it seemed like a good talk. I didn't agree with everything, but I don't have to, it was still a good talk... Now having read all, I'm more confused than anything else.
If you made a gigantic list of every piece of unique and actionable life advice you've ever heard or given, you could probably find 30% of them contradicting another 30%.
I don't mind it too much. Sure we could get all the details from a 30 minute talk video/mp3, but I'm a lot less likely to view/listen to that than I am to read a presentation in big writing that I can read in < 5 minutes, and which I will still probably get the gist from anyway.
I'm the opposite - I find video/audio so inefficient. I get impatient and I can feel my blood pressure rising. :-) Wish there were better ways to skim audio/video. I like the videos/audios with auto-scrolling transcripts but those UIs have a lot of room for improvement.
Our team is actually working to solve this very problem. Our goal is to make it way easier to skim and find the best parts of videos (and possibly audio later on). It's not visible on our site yet, but we have a really cool 'highlights' feature in the works that lets you quickly watch the key parts of several videos to determine if they're worth your time.
That's actually really cool. I'd be curious to see how that works with music videos, too. I also wish, however, that videos had summaries of what actually happens that we could skim ahead of time.
I'm with you. Transcripts are golden, but if that's not an option, at least the Stanford MOOCs and Coursera got it right with the ability to increase the playback speed. Most talks lose nothing at 1.5x speed.
I've always wondered what it was with publicizing sheets instead of a talk. Didn't I get taught in school every year for the past decade that sheets are supposed to support the material I'm talking about and should not say much on their own? When designing new presentations lately, it made me doubt a lot how much text should be on. Even my teachers publish sheets only nowadays, which are good reminders if they ever talked about it, but not good to read only on your own.
A structured article instead of a talk would also be fine. It's quicker than watching a video or listening to the talk and still conveys all the information or perhaps more.
> I've always wondered what it was with publicizing sheets instead of a talk.
Laziness, mostly. Slides are a printable material and less effort to publish than a transcription or a full article write-up.
> Didn't I get taught in school every year for the past decade that sheets are supposed to support the material I'm talking about and should not say much on their own?
I wasn't aware people were actually teaching decent presentation skills. They certainly weren't while I was pushing for them. But yes, this is correct.
But it's important to recognize that "correct" isn't good enough. If you need to cater to people like CamperBob2 in the sibling comment, you need to structure your existence around his schedule so that he isn't inconvenienced by a desire to know what you want to convey.
Didn't I get taught in school every year for the past decade that sheets are supposed to support the material I'm talking about and should not say much on their own?
If so, you were taught wrong, IMHO. If I have time to sit through a (decent) talk, the slides don't matter. If I don't, the slides are very important.
Slide decks are created for different reasons. Some are made to fully contain and communicate ideas then widely circulated - these decks are content. These decks don't need someone to deliver them.
Decks accompanying presentations aren't those slide decks. Presentations are expected to use human communication skills to express more than what you can fit in slides. In school, you give just these kinds of presentations. You aren't asked to create slide decks and circulate them among your colleagues. The slides are not the content. Which is why these slides in particular mostly make no sense alone.
I thought I got the bulk of the content in less than 4 minutes. I actually preferred this to a video... where the first 4 minutes are frequently just introduction and fluff.
Even though I'm sure just about everyone here on HN will somewhat agree with the gist of the slides (startups are fun!), I'm not sure if this is good advice for students. I'm 27 and just now finishing up my undergraduate degree (at a top 10 US university) as I took several years doing various startup stuff and working. Most of my friends have already been done with their degrees for a while -- a very small minority work in start-ups. The start-up world is NOT for most people. To be successful (which I am not, don't get me wrong) you have to be very smart and technical, but you also need luck, good timing, and (most importantly) persistence.
In many ways, the start-up world is like professional body-building. Sure genes can help (genius prodigy 16 year old goes to MIT), but what really makes you a winner is persistence. Also, steroids can't hurt (connections in the Valley).
Most college students are NOT fit for the start-up world. At all. Especially considering CS departments have taken a dive since the late 90s.
> To be successful (which I am not, don't get me wrong) you have to be very smart and technical, but you also need luck, good timing, and (most importantly) persistence.
Do you mean that you need these things be a cofounder in a successful startup? If so, I'd agree.
If you mean to define everyone's personal success on these terms, though, then I beg to differ. Zach's slides clearly state that the startup world is for him. Slide 27 ("You'll be filthy rich"--crossed out) even sets the tone that it's not something you do for the money.
There's a world of difference between various types of startups. Each will deliver different employee experiences. Consider whether the company is bootstrapped or VC-funded (even within VC-funded startups, is it Series A, B, or C?). Being employee (developer) #1, #5, #10 or #25 are all likely to be very different as well. Oh and of course, is the company already profitable or not?
> you have to be very smart and technical
This talk was given at Carnegie Mellon--I'm willing to bet the people graduating are both smart and technical.
> but you also need luck, good timing, and (most importantly) persistence.
I'm not sure why someone following his advice would need luck, timing and persistence. My interpretation of this talk is that he's encouraging people to work for startups, not found them. Github launched in 2008 and Holman joined in 2010. Github was operated profitably since the founders started the company [1]. As far as salary goes, Zach was probably looking at a comfortable--not handsome--but consistent salary.
I think you make fair points and I don't have any strong disagreements. And it's true that I may have extrapolated "working for a start-up" to "founding a start-up."
However, I really do think that places like Github aren't dime a dozen and even calling Github a start-up (at this point, or even in 2010) would be somewhat of a misnomer. Working for a start-up seems to be defined by "wearing many hats" as the presentation states. The "wearing many hats" phase generally only occurs in the early phases of a start-up. That's where my extrapolation stems from.
And don't forget that many start-ups go under (again, we're talking about actual start-ups here, not Github in 2013). This was briefly mentioned in the presentation. But again, I don't think most college grads are resilient enough to handle that. I guess I just have a very serious problem with the romanticization of start-up culture -- it's a jungle out there.
Those concerns are valid, but I disagree with you about college grads lacking that resilience. By your own admission you've been through some start ups. Could you handle it? What does it mean to not be able to handle it?
I think this touches on the core of the talk--people are afraid to jump into the startup world because they don't think they can handle it. It sounds like he's saying it's not that bad. Your company may fail, yes...but then you just get out there and find a new company to work for.
Zach Holman was Github employee number 9 [1]. I'd say they were a startup at that time. His perspective is obviously colored by their success, but they only sought funding 2 years later. Still, the definition of 'startup' is indeed vague, and PG wrote an essay on it [2]. I interpret PG's definition--a company designed to scale fast--to mean that so long as a company is growing by a multiplicative factor, it's still a startup.
I'd actually disagree with working for a startup when first graduating. The thing to do is get the highest paying job and kill off all your debt, then be picky.
This was the standout quote from this pack for me, because I think positivity opens up a lot more doors than the realistic skeptical viewpoint which is (at least my) default. Would others agree? Or is there some time when you've given positive feedback and caused unrectifiable damage?
My main hesitation is if someone only gives positive feedback, especially without varying the intensity, that person's feedback can become just noise. If you are relying on a signal in that type of feedback, it certainly can be damaging due to omission or overstating.
There is almost no content here. "Go work at a startup, concentrate on working on the product more and less on bullshit." Yeah, that's great advice. It's like telling someone to get rich by making more money.
There is literally no hard or interesting question that has even the vaguest outline of an answer here.
Not sure somebody who worked in only two companies for short periods should be giving such "life experience" talks, making some broad generalizations and giving advice.
How about a PoV from somebody with 30 years of experience, 6 countries, 14 companies which includes 5 startups (3 very profitable exits and 2 failures) as well as big corporates?
Sure, working for a Global 2000 sometimes sucks. In 9 out of 10 times your impact on a product might be lower, you might be spending too much time in meetings and you might have a PHB.
But you know what? 9 out of 10 times your startup work will suck too. You might still end up with a PHB. Your amazing product ideas might be rejected. You might end up working 100h weeks and not get paid at all for weeks.
Even after all my startup experience I prefer working for large corporations. Number of times I was able to build and justify a business case for using latest and coolest technology. I got to envision and develop products which were backed by up to 100M in funding. I got to wear more hats than in a startup. I get paid 400K+ per year + an occasional nice surprise of a full year bonus.
There's many more people you have to deal with in a large corporation and many times those people will be close minded, selfish and not interested in your ideas. It did frustrate me for a while, but then I started approaching it like any other technology problem, learned more about applied psychology, negotiations, facilitation and now I enjoy the combination of dealing with people problems, policies and technology problems at the same time.
As a Senior in high school who already works in a startup, I have another question: what shit should I being trying to learn in college?
There's a prominent attitude here that a degree in CS isn't all that practical—work experience matters more. What should I try to get from college? Just wondering if anyone can chime in.
I graduated pretty recently, but I can tell you what I thought was most helpful.
-Lots of language exposure. Take classes in different languages (classes comparing languages are even better). I find it difficult to learn new languages, particularly new paradigms, without the help of someone who knows them.
-Low-level stuff. Assembly, basic electronics, C. These are the topics I found classes covered the best (compared to learning on my own). It's not directly relevant to my job, but I just have a generally better sense of how computers work.
-Work in groups. I didn't do enough of this, and I think it handicapped me a bit. This is less applicable to you than to most people entering college, since you are presumably doing that at your startup.
Thanks. The low level stuff certainly seems like a good thing to learn—I made an effort to read Code[0] a while back and most of it went over my head. The high level programming languages most people work in today are abstracted to a point where it's extremely hard to see their relation to the low level stuff. It would be nice to understand that link better.
One approach would be to take a complementary major, since you'll already have the job experience. Electrical Engineering or Mathematics come to mind. Another approach would be to indulge whatever else you're passionate about, be it Philosophy, History, Literature, or whatever.
I studied Physics and ended up in this industry without any formal CS classes. I would have liked to get the formal knowledge of Algorithms, Programming Languages, and Operating Systems. Perhaps a course on databases. I'm glad I took the EE intro course on digital circuitry, and I'm glad I took the math course on graph theory. I think taking a lot of math courses is a good idea.
So all of those in the previous paragraph are my suggestions for courses to take. The other point I'd make is that college can be a lot of fun. You're around a lot of other people of the same age, and everyone has a lot of free time and not many responsibilities. College has value outside of just knowledge acquisition. But it's not for everyone, and it's fine if you decide not to go.
College is a good environment to learn theoretical computer science and to be in a research environment. If you intend to go into research either at university or in a big company, college is a must. To be around other bright CS students, professors, on a campus where there are is always some exciting project going on, it is an excellent place to be, especially if you come from a background which didn't give you such exposure in high school. At a job, you will not have the opportunity to invest all your time on arcane algorithms or data structures, or in any subject for that matter which doesn't directly involve your job. This is a pro or a con depending on where you want to go with your life/career.
If you want to work at a social media start-up working with hot web technologies, or already have a foot in the door in the tech industry, then college probably isn't very useful for you.
Many of the comments in here are of the form "hey well of COURSE you love startups you work at one of the most successful startups in existence."
I think that's a poor representation of the talk's main points. He actually provides a level comparison of the pros (freedom of technology, ability to impact the product directly) with the cons (wake up, kid--you're not working at Luckygram, and the company might fail) of working at a startup. He doesn't characterize startup life as money tree horticulture at all!
More importantly, he spends more than a few slides discussing the human side of development. This is something I've run into recently too, and it's nice to remember that problems aren't always solved with code.
It's quite common to leave school/university and enter a big corporation that provides more than financial benefits. As someone without any experience, surrounding yourself with brilliant people is humbling for one.
Also I found myself learning far more than school ever taught me.
After a tour of duty at a big company then startups make the most sense, bringing your experience and connections into a world where you can learn to think outside your specialities and have a far larger direct impact on a company.
This is exactly what I did. I think to be really beneficial to a startup, you need to have at least a little experience in the industry. Big corporations are a good place to learn the ropes, since they usually have lots people to cover for you while you learn. Once you've become a productive part of a team, it's also a great place to discover that the corporate model can kill your spirit. :)
I'm sure there's an interesting story behind "the GitHub interview got me kicked out of a bar."
That's actually a pretty good heuristic. If you go to an interview and end up getting kicked out of a bar or waking up with your head shaved, you are pretty much guaranteed an offer. And you should totally accept it.
I felt like I could here the talk just from reading the bullet points. I know some of these things and some things I knew and forgot or hadn't considered. It is good to have a check against other professionals guiding compasses. Thx for sharing.
I know this accompanied an in-person presentation, but I still feel that it should be repurposed in a way that summarizes all the main points - of which it makes a lot, albeit spread over way too many slides.
sounds so easy but those kind of jobs are rare. I currently work for a web startup in the enterprise business and they really like meetings and planning milestones to be able to show investors were we are and how we are doing. I dont like it but given that its a pretty massive project, i dont really know how to improve it.
Cool slides, but does 5 years of work experience already make someone under 30 a senior programmer? i know titles dont mean much and all, but in that case it doesnt really add any value anymore.
It's easy to hate on this presentation as "unsubstantive" and biased, but if I could had heard this talk when I was in c̶o̶l̶l̶e̶g̶e̶ high school, it would have inspired me in a big way.
I'm sure Zach is a brilliant guy but it's not a very good slide deck.
He lists "nosql" as a technology that it's easier to use outside of the big-company matrix. There is no such thing as "nosql". There are various databases. There is the relational database which solves its problem excellently and whose limitations are well-known and sometimes very painful, especially when dealing with huge amounts (multi-node) of data. There are other data models with different trade-offs. There is no such thing as "nosql". It is not a technology or skill or anything else. There's Cassandra and MongoDB and Redis and various others, but there isn't a "NoSQL". I can't type "nosql start" at the command line and get anything useful to happen.
Sorry, I had to do that.
Also, Zach works at Github and I've heard that it's an amazing place. Great! I'm glad he works for the rare good company and hasn't lost his passion. I hope he never does. Still, I don't think he knows what VC-istan startups are like for most engineers. He works in a company that (from what I'm hearing) is successful enough that it can stay in Real Technology and keep the work interesting.
For most, VC-istan is not "a great industry, even without the millions". The millions are the goddamn fucking point. The millions determine who gets to be CEO and CTO and call the shots, and what shots are called. The millions determine which projects the company can afford and which are nice-to-haves and which are ignored. The millions are why people will sacrifice their 20s to implement the lame idea of some well-connected guy who went to boarding school with the VCs.
If you're Working For Money, which most people are, and you're not making some... you're doing things wrong. This is not a judgment; I think most of us will make a bad call at least once.
He's in Real Technology, and bless him, but that makes him biased. He works in a good company and so he gets interesting work, so he's happy even if he's not a millionaire. That's a different thing. If you work in social media startups and answer to non-technical managers and don't make "fuck-you money" within 10 years then, guess what, you lost.
Even worse, he lists "brainfuck" as a technology that's easier to use outside of the big-company matrix. There is no such thing as "brainfuck". There are various dialects and derivative languages. There is the object-oriented programming language which solves its problem excellently and whose limitations are well-known and sometimes very painful, especially when dealing with huge amounts (multi-node) of data. There are other models of computation with different trade-offs. There is no such thing as "brainfuck". It is not a technology or skill or anything else. There's Toadskin and Smallfuck and Doublefuck and various others, but there isn't a "BrainFuck". I can't type "brainfuck start" at the command line and get anything useful to happen.
The concept of "brainfuck" is one that is constructive, whereas "nosql" is deconstructive: one defines something from nothing, and the other defines something only by what it isn't. When you look at the ecosystem of NoSQL solutions, you don't really find much commonality... there are patterns, but they are largely defined by prototypical examples that are insanely disparate (BigTable, Dynamo, memcached). Your past experience working with HBase (other than in the general "problem solving skills transfer" way) doesn't help one later work with fundamentally different systems like Riak.
Your sarcasm thereby definitely hits the exact statement made, but seems to entirely miss the underlying point: you are correct that even for SQL you have to use a concrete implementation, not the abstract concept, but to an important extent which database you end up using doesn't really matter... they are all pretty much the same (and yes, this is coming from someone who in different contexts will implore people to not judge "SQL" poorly due to problems inherent in "MySQL"). That is just not true of "NoSQL": if you want to be a little more honest in the comparison, you could try something like "not-Java" (which one also imagines is difficult to use inside of a big-company matrix).
You should give this type of talk after 20 years and 5-10 jobs or at least students should hear the other side...you know, the 'I spent 4 years at a start-up hoping to strike it rich, worked 80 hour days, depression kicked in, stock options are valued at negative considering taxes and my last two paychecks bounced.'
Lots of hate in this thread. It's just a cool personal tale of lessons learned after college. Just because he works at giyhub doesn't make his word golden.
Where is the speech from the burnt out entrepreneur who lost all their savings... They might have a little bit different perspective.