YAGNI: Answers to some common objections to dropping out

As a follow-up to this post, here are some common objections to the argument that a young software developer is better off dropping out. (For the uninitiated, YAGNI is short for You Aren’t Gonna Need It. It is one of the core principles of the eXtreme Programming methodology)

First, some numbers: $28,080 (or the price of a brand-new top-of-the-line Prius) is the average four-year tuition at a state school as of 2010. $105,092 (or the price of owning a starter home free and clear) is the average cost of tuition at a private university. Let’s split the difference and say $67,000 is the monetary cost of a four-year degree.

EDIT: One commenter objects to the use of the median number $67,700 in this article. If you have the same problem, I invite you to replace every instance of “$67,000″ with either of the numbers cited above, or simply with the phrase “a metric fuckload of moolah”. My arguments stand regardless of which figure you use.
Now, on to the objections.

Most people won’t get the educational equivalent of four years of concentrated focus on algorithms, OO design, performance analysis, compiler design, etc. while on the job.

There are a few fallacies going into this argument.

First, I’ve spoken to dozens of developers about their college educations, and the universal consensus has been that once in the working world, they only used a fraction of what they learned in college – and then needed to learn many more things that hadn’t been on the curriculum. Let’s be charitable and say that you’ll use 10% of what you learned in school on the job. 10% of four years, that’s, let’s see, 21 weeks worth of schooling.

So what we’re really asking is whether it’s possible to get the equivalent of five months of higher education on the job. It starts to seem a little more reasonable, doesn’t it?

Second is a fallacy that I run into constantly in education discussions. It’s the idea that the time it takes to learn a new skill is constant, regardless of context. It’s exemplified by the argument “that took me six months to learn when I was in school, so if you haven’t spent six months on it, you haven’t really learned it”.

But this simply isn’t true. Graduates can (and do) come out of school with a still-hazy understanding of how Object-Oriented design applies to real-world problems. But give them three months with a team of more experienced developers writing software to manage a nationwide logistics system, and they’ll know the subject backwards and forwards. You can learn more in a week of watching an expert engineer dissect and address a problem than you can in a whole semester of lecture and canned exercises.

Finally, the implication with this objection is that while it may be possible to get educated on the job, most developers simply won’t avail themselves of the opportunity and will remain at a disorganized code-monkey state of ability.

My answer to this is simple: such developers probably wouldn’t have integrated more knowledge if they had finished a four-year program, and they don’t belong on my team or any team that wants to ship quality software. Period.

Ask any senior developer what they look for in a job candidate, and I guarantee that one of their top three attributes will be “a fast learner”. The nature of this industry is that if you want to stay on the cutting edge, you have to effectively re-learn everything you know every five years. If you can’t or won’t learn the ropes on your own initiative, chances are you’re not going to keep up when the game changes in five years. Better to get out of the game now.

Maybe you can learn most skills on the job, but what about the fundamentals of computing? A great professor can give you a solid foundation that you might miss in haphazard just-in-time learning.

The one course that I’ve seen consistently remembered as a important or even life-changing by CS grads is the introductory course based on Structure and Interpretation of Computer Programs, aka the Wizard Book. As it happens, both the book and video of the lectures by the authors are available online for free, along with much of MIT’s other courseware. Problem solved.

Which reminds me, I really need to pick up watching those videos again…

Even if it doesn’t do much for your career, college is a unique experience which grows your perspectives and knowledge of yourself.

There are any number of things you could choose to do upon graduating high school. Here are a few ideas:

  • Join the Peace Corp, and do humanitarian work overseas.
  • Hitchhike around the country, couch-surfing and busking on street corners with a guitar and a harmonica.
  • Take a job on a farm. Sling hay bales, deliver calves, and go line-dancing on the weekends.
  • Backpack across Europe.
  • Go to college.

Any of these choices will expand your horizons, introduce you to new people, and teach you more about yourself. Only one of them will cost you $67,000.

The notion that college is a way to broaden your perspective early in life is absolutely true. The idea that it’s the only way is silly. It’s certainly not the cheapest way.

College is an important social experience.

We’re a little off-track now, since the question at hand is whether college is a worthwhile preparation for a programming career, not whether it will get you laid. But it’s true that this is my biggest regret in not going to a four-year school. I’m frankly envious of the college social experiences a lot of my peers had while I was working.

But if you’re making this argument, it behooves you to at least be honest about it: you’re telling a student to spend $67,000 over four years in order to socialize. Is it worth it?

Conclusion

What I hope you take away from these articles is that the decision to go to college, like any other major life decision, should be subject to a cost/benefit analysis. I’ve done the math for my particular industry, and found the argument for getting a degree wanting. On the benefit side you have a marginal amount of work preparedness, all of which could be gathered in other ways; and an increasingly irrelevant piece of paper. On the cost side you have tens of thousands either in out-of-pocket cost or student loan debt, plus four years time, salary, networking, and vital hands-on experience lost. It just doesn’t add up.

14 comments

  1. Disclosure: I am a graduate of Georgia Tech. Not trying to knock anybody who took a different path than myself but just want to make the argument that not everybody that took my path is a smuck.

    > Let’s split the difference and say $67,000 is the monetary cost of a four-year degree.

    What is up with this statement? I know you are just trying to simplify your argument but it makes no sense. You can't just “split the difference”. You have two questions Is public college worth the cost? Is private college worth the cost? You can't just lump them into the same question and average the cost.

    > you have to effectively re-learn everything you know every five years

    This is just crap. Things really don't change that much. Sure you have to learn new tools and technologies. Sure they rename, refine and re-market existing concepts. But for the most part new ways of doing things only come along once in a blue moon. If these refinement seem like “re-learning everything you know” then I would argue you didn't really learn it the first time around.

    Your argument seems to be centered around comparing education vs. experience. But that is not really the question. Obviously experience matters and someone with 4 years of experience is a better hire than someone with 4 years of education and no experience.

    The REAL question is which is a better hire? Someone with experience OR someone with experience and education? Because after say 10 years both candidates have experience but only one has the education.

    You might object and say “but the person who didn't get an education has 10 years of experience while the person who got the education only has 6”. But experience has a diminishing return. Your first year of experience is a HUGE benefit to your growth as a professional. Your second year is a BIG growth. Your third year is a SIGNIFICANT growth….. You get the point. So that extra 4 years of experience is important early on (i.e. when comparing someone with 4 years of experience to someone with 0 + education) but as time goes on the advantage the person with only experience has is lost and after a while their difference in experience is negligible and so the only real differentiation is the education.

    Of course this entire conversation is really dependent on comparing equal people in other respects. Obviously the quality of the person is really the biggest factor in determining a good hire.

    1. Thanks for the reply. You're right, I make some generalizations. That's necessary to keep the article a readable length.

      The REAL question is which is a better hire? Someone with experience OR someone with experience and education? Because after say 10 years both candidates have experience but only one has the education.

      After 10 years they both have the education, unless the one who chose to go straight into work is a complete slacker. Education isn't exclusive to school.

      1. Yes, my use of education was a poorly chosen word. I should have said formal education. I think a formal education does bring certain things that are not often learned on the job that do come in handy. So my statement should have been:

        If you are trying to choose between someone with experience vs someone with experience AND formal education which do you pick (assuming all other attributes equal).

        That is where the value of the school comes in. Is it worth $10,000-15,000 a year for four years (cost of my own)? I would probably say yes but obviously I am biased as I paid that and want to justify my payment. 🙂 As you said it is a cost-benefit analysis that each person should determine.

  2. I tend to favor my own experience. I got an associate degree in computer science. I learned the basic fundamentals of many concepts. Then I quickly got out into the “real world” and put them to use.

    The ROI of what I ended up paying in tuition was pretty good I think. I get some of your points; I see it where I work. I currently work in Academia.

    There are definitely B.S. inequalities. Experience and education are both hints at the real measurements. The real measure is effectiveness and competency.

    I work with two better educated and older (more experienced) people. I hate to toot my own horn but I am both more effective and more competent.

    In the end I think it's about what drives you. I am a pretty competitive person, so that is one thing that helps me.

  3. Avdi, I feel you may be overstating the case. As someone who regularly interviews computer science graduates for web programming jobs at a startup, I 100% agree with your point that you don't have to attend college to be an awesome, successful programmer. I don't use college degrees as criteria because I don't have a CS background either, and I've learned what I needed to know just like you describe. (I do think there are areas where formal training would be a big help or would help me teach myself faster)

    But I don't think college is really supposed to be a vocational training ground, even though many Americans treat it that way. It seems to me your point is that as programmer vocational training, college is probably a ripoff, especially when you factor in opportunity cost. I agree. Yet you are overlooking the mental development and intellectual well-roundedness that a good college education can engender. Not everyone will be as acquisitive or self-directed as you are and I think many would benefit from having their minds expanded by a rigorous curriculum. I bet you would love attending a small liberal arts college like Goucher! Come to think of it I wish I had gone to such a place instead of where I went.

    My ideal job candidate would be someone who has your gumption and open-source chops, with a few years of real-world experience, and BA in something like philosophy. My advice to any college students reading this is to max out as many internships and real world experiences as you can, and start building up your open source experience.

    1. This resonates strongly with me. I'm going to go ahead and give the same disclaimer everyone else had: I'm probably biased to think I did it right. I think a lot lot LOT of people (in the US, anyway) make the mistake of thinking that a University (especially research Universities) should give you vocational training. No. They should teach you how to learn. I feel like doing a start-stop in a couple of degrees and then finding one you really enjoy studying can be more valuable than getting a degree in whatever you think it is you might want to do for a living. That's, anyway, how I ended up in Linguistics, and I feel like the experience has made me more able to teach myself programming. If you go into college to learn a skill, you're probably not going to get your money's worth.

      Of course, what do I know? YMMV.

      1. I will reflect my own biases here and say the only reason a college is needed to teach kids how to learn is because the public education has systematically beaten that ability out of them. Perhaps in the best cases college is able to partially reverse this process; what I hear from students and college teachers is that most of the students would be better off waiting until they come back a few years later with the highschool burnout in remission and the desire to learn somewhat renewed.

    2. Maybe I haven't made it clear enough, but with these articles I'm trying to keep the focus strictly on the kind of success (i.e. monetary) that College is typically sold as a prerequisite to.

      I'd love to have taken a philosophy class. It would have been fun and I would have gotten to have the late night philosophical debates at coffee shops I always missed out on. But would I be doing better, career-wise, at this point? Maybe. It's not a certainty; I wouldn't even say it's a probability. So I can't really recommend it from a career perspective, especially when factoring in the costs.

      And here's the other thing. While I would have enjoyed taking a philosophy degree in my late teens, I'd really enjoy it now. I've only recently hit the point where I sit around and read Bertrand Russel on a Saturday for fun. One of my low-priority goals is that IF I ever have the opportunity to do so without impinging on my family's quality of life, I'm going to go back to school for something like philosophy, music, or religious studies. I'm pretty sure I'd get more out of it now than I would have back when I was starting out, because I'd be doing it out of sheer desire for knowledge, rather than desire mixed with a sense of obligation.

      From anecdotal evidence I think you're right that being a philosophy major seems correlated not with being a successful pro philosopher, but with being fulfilled and self-actualized in some other line of work. Although there's always the question of which is cause and which is effect. But even if the major is the cause and the satisfaction is the effect, I'm not convinced that fresh out of high school is the right time to do it for most people. What I hear from both students and teachers is that ~80% of the kids in college don't (yet) have the right attitude for it to make the expenditure worthwhile.

  4. Of course we like to think the road we took was the best one, so I can understand your point. I didn't finish college, and for the most part, I don't think it has hampered my career any. Any of those times where I think it might have mattered, I'm sure I wouldn't have liked the job anyways.

    I guess it is up to the individual. Most people need structured learning, and can't soak up knowledge through osmosis. School is for them. You really are in the minority, and you should be proud of yourself.

    I wouldn't go as far to say that college is a waste of money. I'm going to encourage my daughters to go to college, because I'm quite certain that most people get something from it. I hope I'm in a position where it doesn't matter how much it costs. They'll go on my dime, and hopefully turn out for the best.

    1. (Note: Apologies if you get this reply multiple times; Disqus has been acting up.)

      Like I said, it's a cost/benefit analysis. If the monetary cost is $0 because your parents are covering the bill, then the result of the analysis shifts accordingly.

      I do contest your statement that “most” people need structured learning. I think that some people learn better in a structured environment, but I am convinced they are in the minority. Most people people think they need a structured environment because exposure to educational structure from a very early age has compromised their natural learning ability. When you have been conditioned to think of learning as work given by an instructor, you are more inclined to see a structured framework as necessary. Humans are born as voracious learning machines; the success of unschooling and Sudbury schools confirms this.

  5. Like I said, it's a cost/benefit analysis. If the monetary cost is $0 because your parents are covering the bill, then the result of the analysis shifts accordingly.

    I do contest your statement that “most” people need structured learning. I think that some people learn better in a structured environment, but I am convinced they are in the minority. Most people people think they need a structured environment because exposure to educational structure from a very early age has compromised their natural learning ability. When you have been conditioned to think of learning as work given by an instructor, you are more inclined to see a structured framework as necessary. Humans are born as voracious learning machines; the success of unschooling and Sudbury schools confirms this.

  6. Like I said, it's a cost/benefit analysis. If the monetary cost is $0 because your parents are covering the bill, then the result of the analysis shifts accordingly.

    I do contest your statement that “most” people need structured learning. I think that some people learn better in a structured environment, but I am convinced they are in the minority. Most people people think they need a structured environment because exposure to educational structure from a very early age has compromised their natural learning ability. When you have been conditioned to think of learning as work given by an instructor, you are more inclined to see a structured framework as necessary. Humans are born as voracious learning machines; the success of unschooling and Sudbury schools confirms this.

  7. Maybe I haven't made it clear enough, but with these articles I'm trying to keep the focus strictly on the kind of success (i.e. monetary) that College is typically sold as a prerequisite to.

    I'd love to have taken a philosophy class. It would have been fun and I would have gotten to have the late night philosophical debates at coffee shops I always missed out on. But would I be doing better, career-wise, at this point? Maybe. It's not a certainty; I wouldn't even say it's a probability. So I can't really recommend it from a career perspective, especially when factoring in the costs.

    And here's the other thing. While I would have enjoyed taking a philosophy degree in my late teens, I'd really enjoy it now. I've only recently hit the point where I sit around and read Bertrand Russel on a Saturday for fun. One of my low-priority goals is that IF I ever have the opportunity to do so without impinging on my family's quality of life, I'm going to go back to school for something like philosophy, music, or religious studies. I'm pretty sure I'd get more out of it now than I would have back when I was starting out, because I'd be doing it out of sheer desire for knowledge, rather than desire mixed with a sense of obligation.

    From anecdotal evidence I think you're right that being a philosophy major seems correlated not with being a successful pro philosopher, but with being fulfilled and self-actualized in some other line of work. Although there's always the question of which is cause and which is effect. But even if the major is the cause and the satisfaction is the effect, I'm not convinced that fresh out of high school is the right time to do it for most people. What I hear from both students and teachers is that ~80% of the kids in college don't (yet) have the right attitude for it to make the expenditure worthwhile.

  8. I will reflect my own biases here and say the only reason a college is needed to teach kids how to learn is because the public education has systematically beaten that ability out of them. Perhaps in the best cases college is able to partially reverse this process; what I hear from students and college teachers is that most of the students would be better off waiting until they come back a few years later with the highschool burnout in remission and the desire to learn somewhat renewed.

Leave a Reply

Your email address will not be published. Required fields are marked *