Chris Dixon

The only college major that matters

If you want to work in venture capital focusing on internet/software companies, or start one of those companies, or work as an employee in any role at one of those companies, there is only one undergraduate major you should consider:  computer science.*

I’m not saying you need a computer science degree, but I am saying it’s incredibly helpful to know computer science.  Lots of great computer scientists are self taught. But almost all of them started coding in their teens.  If you are a coder already and want to spend your college years majoring in something else for the heck of it, great.  I spent my whole childhood coding, and worked during college as a programmer, so decided to major in Philosophy because I thought it was interesting.

Why is it so much better to learn computer science in college (or before)?  Because after college it’s very hard to find the time and discipline to teach yourself coding.  On the other hand, it’s pretty easy to pick up business skills, economics and all sorts of other skills on the job or in grad school.

Why is a computer science degree so important to VC and startups?  I would estimate in about half the conversations I have at my own startup, with tech founders, and with venture capitalists, there is a moment in the conversation when we start getting technical.  Sometimes someone will even ask “Are you technical?” before starting down a topic.  The non-technical people in the room just sit there like we are speaking Greek.

It’s a shame that student enrollment in computer science is in decline.  The thinking apparently is that computer programming is increasingly moving overseas.  What these students fail to realize is you don’t need to be a professional coder all your life to find computer science an incredibly valuable major.

* There is a whole separate world of VC and startups in energy and healthcare.  In those areas I’d recommend analogous technical undergraduate majors.

  • http://www.parkparadigm.com parkparadigm

    I'd disagree – university, at least the best ones, isn't meant to be a vocational school. If you are fortunate enough to gain admission to a top flight university, I would suggest the best thing to do is to find a subject you are passionate about (motivated, intensely curious and excited about) and pick that. You will succeed on many different levels and graduate a more confident and wise person.

    The second thing I would suggest is to embrace (even if only a little) the breadth of a 'universal' education: if you are a comsci major take a poetry or fine arts class. If you are a English Lit major, stretch yourself and take Physics 101 etc…

    The final thing I would suggest is perhaps acknowledge the point Chris is trying to make by suggesting that a minor (official or unofficial – not important) in an appropriate technical subject (comp sci, biochemistry, etc.) is icing on the cake and a good idea if you can do it (without compromising 1 and 2).

    • cdixon

      I totally agree about getting a well rounded education. At many schools you can do this and still thoroughly learn computer science.

      My main point is if you want to go into the software/internet business, understanding the tech side is a huge advantage.

      • http://www.parkparadigm.com parkparadigm

        “understanding the tech side is a huge advantage.” Definitely but not sure a ComSci degree is the only or even the best way to this understanding as you acknowledge and other commenters point out below.

  • http://ouriel.typepad.com OurielOhayon

    Chris, although i agree this is helpful, i disagree on one thing. you can be a great entrepreneur in that field or even a VC without having learned that. I am not saying i am an example but i know many people like me that have not a clue about coding. however i want to believe i have a rather good idea about what people would like to use or what makes a good product. Coding for me is like scales for music. It's nice to know how to use, but does make the art.

    And to be honest, i think really there is no single discipline that can help you understand that except practice.

    • cdixon

      I agree – I'm not saying it's necessary to understand CS to be a great internet/tech entrepreneur. Just that it helps.

      I've met many people who want to go into internet VCs/startups who don't know CS and study economics undergrad because their parents told them that's where the future is and CS is all going offshore. I'm mainly arguing against that view.

      • http://ouriel.typepad.com OurielOhayon

        i'd second that too

      • http://phrenzie.com Sekou Murphy

        Yeah, how I took Chris' is that if I'm getting something tech-focused started, that could be a biz, then it's better for me to build the basic model than for me to have an idea and have to pay someone to build it, which might not be what I want anyway. So need to the tech side.

        To this point, if I know CS, then I know what to ask for, how long it should take, can help trouble shoot, and, maybe, how much it should cost if/when I do bring on someone on to do the heavy lifting.

  • http://streamhacker.com/ Jacob

    Coding != Computer Science. I'm not disagreeing with the post, but if your goal is to learn to code, university is not necessarily the best option. I've learned far more about programming on my own time on my own projects than in class. However, a background in computer science can definitely help with understanding the more esoteric programming concepts, such as machine learning and natural language processing. So if the startup is doing highly technical software, studying computer science is a big help. But if the startup is doing highly practical software development (web apps, mobile apps, etc), computer science might actually get in the way, because practical programming is not what's taught at university. If you're already doing practical programming, I'd actually recommend studying design and psychology to better understand your future customers and their needs.

    • cdixon

      I agree. I thought I made this clear when I gave props to people who learn to code on their own.

  • http://LeanStartups.com Apolinaras Sinkevicius

    I have to wholeheartedly disagree! People should be studying “thinking” majors like liberal arts. CS is too regimented, too much in a box kind of thinking. Very few schools put in the right curriculum for CS majors. Out of 200+ developers I had hand in hiring, the best ones not only did not get BS in CS, but started their careers in something else. They also write more efficient code (my observation).

    You also don't have to code from teenage years to be good either. Close friend of mine writes in almost every programming language out there. He started coding in mid 20s. Even during the downturn he is booked 6 months in advance.

    Most important point though is: if you (technical person) can't communicate to a business person without your jargon, you will remain coding monkey in the back room for the rest of your career. Worse off, we will be outsourcing your work. What I can't outsource from any size startup is people who can speak the language of business and translate the needs into code in most resource-efficient way. Those guys and gals are worth their weight in gold and it is high chance they did not bother with CS in college.

    • cdixon

      As a citizen and for my own kid, I'd agree. I am a big fan of the classic liberal arts education. I went to Columbia undergrad where they have a 2 year “core curriculum” which was one of the best things that ever happened to me.

      But if you want to work in the tech startup world, the reality is there are those who understand CS and those who don't, and all other things being equal you want to be someone who does.

      • http://lmframework.com/blog/about David Semeria

        Well said. There are 10 types of people in the world: those who understand binary, and those who don't.

        • http://LeanStartups.com Apolinaras Sinkevicius

          Well… my degree is in talent management (entertainment industry) and I spent almost entire career in business operations at startups. No formal training in tech. I've worked with HTML and PHP, when I need to hack something. I taught myself IT operations. My point?
          I consider myself a techie and to be technical (or at least to be dangerous enough, so you can set course and so devs can't bullshit you), you don't need CS, you need to know how to ask questions and how to listen to answers.
          My friend, who I use as #1 resource if I need software developed, has zero code experience. But he wrangles his devs and translates biz needs into software so well, he does not need sales people (all referrals). His company is always busy.
          At the same time I have a brother with masters in CS. His coding was crap, but he was smart enough to realize he should continue doing what he is doing well – sound engineering (and he is in top 1% in this country) and leave the CS for others.

          You are either born a techie or you are not. So learn how to think, create, and communicate in an undergrad. If you want to specialize, leave it for masters. Better off, skip the masters, go get some real life experience, build track record. Track record is MUCH sexier, than education pedigree.

  • http://twitter.com/tomall Tom Allason

    for once do not agree with your post. a good tech startup is a startup that uses tech to solve a problem. hopefully the problem is a big problem to a lot of people and can generate $. tech is not the end, it is the means- this is overlooked way too often. i would bet my bottom $ that a far greater proportion of startups fail because they haven't addressed market rather not becausethe tech not working. yes it is important to know what tech can do, but to know how to code? perhaps in the 80's and 90's when coders were a scarce commodity… but in this day and age i can think of no good reason reason that a founder/ceo needs to code (unless your startup is a development shop or like)… surely infinitely more important that a CEO have a good cto (with CS degree or 3) so that he/she can spend his/her time worrying about what the tech is doing. as a one-time dartmouth sociology major, perhaps i am a little biased.

  • http://caterpillarcowboy.com dlifson

    I'm surprised to find myself in the minority – I completely agree with you.

    I first started coding when I was 15. I went to Cornell and did my undergrad and masters in computer science, focusing on distributed systems and graph theory. My undergrad was done through the liberal arts program (I have a B.A.) so I was still exposed to history, foreign language, sociology, and music.

    I was recruited out of school to be a software developer at Amazon.com, where I learned incredible lessons on building scalable systems. And now, as the founder and CEO of a startup, I don't do any coding at all, but the knowledge I have reveals its value constantly.

    Usually, the technical background is valuable in adjusting requirements. If you define a problem for engineers, they will figure out how to solve it. As the product guy, you need to understand the different ways in which your requirements can be flexible, potentially saving you weeks or time or thousands of dollars in infrastructure costs. For example, having 100ms latency vs 1000ms latency can be a huge difference in architecture, as is 100k requests / day vs 10M requests / day (how's that partitioning treating you?). If you understand the decisions your engineers make, you can also more easily trust them and understand why it will cost x and take y time to build.

    • Raj

      Couldn't agree more.

  • sachmo

    Disagree my friend… There is plenty of precedent for other engineering disciplines (ME, EE, etc.), math, physics majors getting into tech start-ups.

    Though I would say that it is a big advantage to have that technical expertise in your field when you enter the start-up world.

    Tech start-ups aren't all programming-based though. You coders would do well to remember that.

    • cdixon

      I'm a fan of other engineering degrees as well. Math & physics especially. Better than international relations or government etc which I see a lot of on resumes.

      • spaley

        Electrical engineering is probably a very good hybrid for this, combining advanced mathematics and physics, along with plenty of programming.

        Of course, I'm biased. That was my major…

  • http://twitter.com/socialcoop Ben Ackles

    The value of a computer science degree is only as valuable as the modernity of each program. If you were to attend a school in Silicon Valley, you may find a CS degree extremely valuable to tech startups. The truth is many CS programs (with few exceptions) outside of the Valley are falling way behind because of the pace of the discipline.

    I understand your point is the importance of learning the technology before the business logic. The problem is it's not as easy as declaring a CS major. It really depends on where you're learning & how each program is keeping up with the times.

    I'm completing my undergraduate degree in Business Administration with a Concentration in Entrepreneurship at the University of Oregon. I also have a minor in Computer Information Technology. I thought about working on a CS major, but I concluded that the program curriculum was obsolete. For example, the department head didn't even know about RSS or RESTful web services. I keep reading articles hinting at the fact that we need new & better ways of teaching technology. Actually, I hope we can find a more efficient way of overhauling our complete education system through a tight integration of internet technology.

    • cdixon

      True, but at the same time CS changes so much that if you can just get the foundations in college I think you'll be able to update your skills later.

  • Raj

    Chris,
    While you did clearly outline the scope of your conclusion, most people have seemed to miss the point. On the contrary, I couldn't agree more.
    I am a Stanford/IIT CS alum and after a year of coding, moved to product management to gain business skills. After a few years of product management, I am now the co-founder of an Internet startup, which is being power by some serious deep technology. My co-founder is a solid technical guy (again a CS undergrad) with years of experience developing web products and he is somewhat business-savvy. With me being the technically-savvy business guy and he being the business-savvy technical guy, I think it makes up for a good founding team and we, as a team, can 'communicate' very well with eachother, customers, partners and investors.

    To the point about getting a well-rounded education, no ones stops a CS major from taking a class or two in music, english or whatever catches your fancy. No point burning 200k at Stanford and getting a BA in International Relations *if* you really want to be a startup entrepreneur or VC in the Internet/software industry. Your time, effort and money is better spent getting a CS degree.

    • cdixon

      Yep, exactly my point. Thanks for you comment.

  • Pingback: Are MBAs Necessary for Start-ups or VC?

  • Pingback: Are MBAs Necessary for Start-ups or VC? | CloudAve

  • Pingback: Process for the Enterprise » Blog Archive » Is Computer Science the Only Major that Matters?

  • http://laughingmeme.org kellan

    My experience in hiring is that a CompSci degree is in no way indicative of whether someone will be any good. CS degrees simply don't teach readily applicable for building a product. Coding teaches one to code.

    The handful of people who can apply the advanced theory to everyday problems are a god send, but they nearly universally have advanced degrees, not an undergrad's understanding of Java.

    What I've been really wish I had lately was a degree in Economics, not because I find the discipline particularly compelling but because those people have the best mathematical toolset around for dealing with Big Data.

    Similarly I wish a few more of the coders I worked with had any sort of formal background in aesthetics or business in order to help them more successfully weigh cost-benefit.

  • tech_finance_guy

    Couldn't agree more. In my case, I am an infrastructure engineer (primarily at Wall St Firms and hedge funds) that dabbles in software development. As I progressed within the infrastructure side of the house, I found myself more and more involved with software development projects whether for systems management or full-fledged development efforts. Seeing this, I enrolled in a software engineering masters program. I cannot tell you how helpful this has been in terms of seeing the entire picture within an organization.
    Having been involved with numerous startups and currently working for a financial services startup, learning the business side has been relatively easy in comparison

  • tech_finance_guy

    Couldn't agree more. In my case, I am an infrastructure engineer (primarily at Wall St Firms and hedge funds) that dabbles in software development. As I progressed within the infrastructure side of the house, I found myself more and more involved with software development projects whether for systems management or full-fledged development efforts. Seeing this, I enrolled in a software engineering masters program. I cannot tell you how helpful this has been in terms of seeing the entire picture within an organization.
    Having been involved with numerous startups and currently working for a financial services startup, learning the business side has been relatively easy in comparison

  • Pingback: The Paintbrush and the Canvas – The Story of the Next Gen of .com | Tim Chae