University versus self-taught

June 22, 2008 – 2:15 am

A topic I’ve been thinking about for quite some time now. If I was an employer, looking for an employee, which would I take: The type that basically self-taught himself programming through reading books and/or websites, or the type that spend an X amount of years at university and has a bachelor’s or master’s degree? Let’s assume that, when they apply, they both have roughly the same amount of knowledge and/or skill.

I’ll unveil it right now: I’d totally go for the one that went to university and got a degree. Why? I’ll explain (or, attempt to.) Read the rest of this post for a wider view of my opinion, as well as a massive edit written when this post got a relatively large amount of attention quite suddenly and unsuspectingly.

When someone both went to university and, more importantly, actually finished it, you’ll know that he has certain properties to himself. First, you’ll know that he’s persistent, in that he’s spent 4 or 6 years (or, he would in my country) learning a job, even though he didn’t like some parts of it. A self-educated programmer would more likely have stuck to only the languages and projects he himself liked. Over here, a student would have to perform various assignments in university, and some of them spanning multiple disciplines. I somehow doubt a self-educated programmer would be working on programming both a microprocessor and a (Java) control program for a remote-controlled model boat, at least not unless he had a particular interest in that area.

In university, you’re pretty much forced to perform a wide range of projects, spanning multiple disciplines, languages, areas, and forcing the student to work together with people of different environments - for example, electronical engineers, 3D modelers, structural engineers, etcetera. I do not believe that most self-taught programmers would have such a background. Instead, I’d expect them to remain in their own safe zone - PHP webapplications, C/C++ apps for an open source project or operating system, or .NET hobby-applications for, say, maintaining an address book - you name it.

I don’t actually know any self-taught programmers, mind, so feel free to prove me wrong. I’m confident that there’s numerous self-taught programmers that have a much wider range of software engineering interests than I can think of.

But yeah. University graduates would have several points above self-taught programmers, since they’ve been through a system, they’ve persisted in doing tasks they, most likely, didn’t really want to do. I had to work on completely unrelated projects like designing / describing an environmentally friendly house, which was more concentrated on structural engineering and whatnot than programming. But because of that, and other projects, I know (read: have a general idea) what goes on in those areas. I know what it takes to write a program at the very lowest levels of the system (well, not THAT low, considering we still could use C), where you’d only have 300~something bytes of memory available to do everything in.

Anyways, to conclude this post, I believe that a self-taught programmer does not have the persistence, organizational skills, multi-disciplinary development, and finally the proof of his ability (i.e. a piece of paper saying he’s finished an education) to be as desirable for a company as self-taught one is, some exceptions left aside.

Massive edit

Whoa, stepped on quite some toes here it seems, never thought my blog would draw so much attention. Guess linking to other blogs draws massive attention. That, and having the author of said blog directly link to this post. Let’s comment on some of the comments here.

First, I’m not (entirely) trying to say that the self-taught programmers are incompetent - the example of Bill Gates et al was raised, one that I agree with, since he and everyone else that started the whole science were pretty much all self-taught, in a time before degrees.

As for hiring people, the degree does, indeed, not mean anything when it comes to actual knowledge or experience - I’m actually still in university, and the people I work with… well, aren’t that awesome, in most cases. However, and this is one point I have, last year I worked with a handful of people that came along with my previous education (a system administrator education thingy), and to put it short, they were terrible. Lucky for me (since they’d most likely cling to me so I could do their job), they failed the second year and probably won’t finish the education.

Which is one of the points I was trying to get at while (hastily) writing this post: An education filters out most of the bad ones (some exceptions there), so you know that someone who finished an education has at least a minimal level of skill, a guarantee you can’t get from self-taught people. Of course, you can question people about it during a job interview or something, but a lot of people will say something like “I made websites so-and-so blah blah blah”, which only shows that they’ve got a basic understanding of a programming language and can produce something with it - it does not however tell anything about their grasp of, say, OO principles, design patterns, proper coding, working in a team, etcetera, or at least not without asking on.

Another thing is that 99% of employers, unfair as it may be, simply want you to have an education and, preferably, an X amount of experience, else they simply won’t even ask you for an interview, especially not if you can’t provide them with a list of experience or self-taught business.

There’s also a comment about actual experience versus theoretical knowledge, one that I also agree with. Someone can have all the theoretical knowledge he wants, but if he can’t put it into practice, he will fail. I have the advantage that I have that ability, plus some practical experience where I could put that theoretical stuff into practice , but I’m sure that many people wouldn’t and would be only theoretical masters.

I also do not believe that you can create programmers just from Wikipedia. It is a very good tool as a helper - I’ve used it loads as well -, but you can’t base everything just on that. Books are also just tools, eventually, it’s all about experience. And a college will give you, at least in my case, a basis of experience if you finish it. Over here, you get a total of a year of experience in a real-world company during two internships, where you can put the theory into practice - which, by the way, is far more valuable than the actual teaching. I spent my first 20 weeks at a large insurance company, who spent an entire floor on a single website (since it’s a large and critical website, not because they have loads of people that do nothing), and the experience I gained there was invaluable. There, they wouldn’t hire someone who did some websites in PHP or did some programs in .net, they’d hire people with degrees.

Realistically speaking, only a small portion of people would get at a proper enough level without an education to be hired, and the ones with a degree will get a much higher chance of a job.

Also, there’s several categories of self-taught people. There’s the really talented ones, that spent years in they mother’s basements (or whatever) programming for a wide range of various projects, and then there’s the hobby programmer. This latter one is mostly active on the internets, posting on blogs (like this one… oops) and whatnot telling the world what an awesome PHP database class they’ve written, or whatnot. These are the category of self-proclaimed programmers that they’re on top of the world, and these are the ones that I would not want to learn from. Which, sadly, I did a few years back.

There was this dude, a self-taught web developer in PHP, who boasted about all his projects and making $45 an hour (which, for his former Russian country, was a lot). He helped me out with my first actual project, replacing a horrid block of hundreds of lines of repetitive HTML / PHP forms into a 15-lined triple for-loop that did the exact same, only neater.

Later, I took a look at his code, and already didn’t feel too good about it. He built a website CMS in a week or so, and when he sold the site after two months of getting it, he dished in $6000,-, for a week of programming. Now, some years later and now I have part of an education behind me, I realize that he wasn’t actually that good of a programmer. Sure, he made money, and sure, his websites worked, but in terms of design, he failed. He used object-oriented programming (once again, self-proclaimed), but he used it in the exact wrong way. I should see if I can still find that code somewhere on my home computer, for the lulz.

The main category of self-taught programmers falls into that category - the one that think they’re all that, but aren’t. You probably won’t see that type applying for jobs, since either they think they’re too good for that, or they know nobody would hire them for their lack of an education, but instead they’ll fill the internets with their self-botched template systems and whatnot. The problem with that is that other people will read it, and the less smart will actually praise them for it and, worse, take over their code and habits, resulting in more self-educated programmers that do everything wrong. I can’t be arsed to collect examples at the moment, but they’re there allright.

Obligatory list of social network links:

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • bodytext
  • del.icio.us
  • Google
  • E-mail this story to a friend!
  • Print this article!
  • Reddit
  • Slashdot
  • StumbleUpon
  1. 30 Responses to “University versus self-taught”

  2. Hi! I followed you over from Geeknews and updated the article to link over here.

    For the most part you are correct, but you also hedge your bets there at the end of the post. I’ve been fortunate (lucky?) to have hired two out of 20 software developers on my team that were self-taught. They were also highly motivated and very intelligent people with interests in everything from software engineering to black hole theory to political science.

    I don’t seek out folks without degrees, but my interest is peeked when i stumble across a resume without one. If something there catches my eye, i’ll dig into the history and if it’s still interesting i’ll follow-up with the candidate. The thing that made these two individuals stand out was their sheer passion, the breadth of knowledge, the volume of coding experience, the fact they code for work and code for fun in their offtime and their ability to deal with ambiguity which is a must have for my project.

    I would just caution hiring managers to not simply discard the resume if the degree isn’t there and if there are no other warning signs to disqualify them.

    By Andy on Jun 22, 2008

  3. I’m self-taught. I’ve been coding and using Linux since early high school. I went to college for music and recording. I’ve been doing web dev for years both freelance and full-time. I’m pretty sure I’m a great asset to the teams I’ve worked with and run.

    CS majors are not graduating with trade degrees in programming, they’re learning a science. Many CS grads I’ve worked with, especially when just out of school, expose a distinct lack of knowledge of both the web stack from server through HTTP up to HTML/CSS/Javascript. They also have little to no experience working with a team or using collaboration tools- I’m working with an ivy league intern right now who used CVS for source control this last year. Come on.

    Learning a science should not be assumed to be the best preparation for a profession. If you are coding BigTable at Google or writing router software, yeah a CS degree is an undeniably huge asset. Students will find themselves disappointed if assume writing a TCP stack means they intuitively know everything else that happens in a professional coding environment or niche skills area (ala the web). They commonly do.

    I can’t reverse the characters in a string using C, but the programming I do every day involves a thousand other things I can do.

    “I believe that a self-taught programmer does not have the persistence, organizational skills, multi-disciplinary development, and finally the proof of his ability (i.e. a piece of paper saying he’s finished an education) to be as desirable for a company as self-taught one is, some exceptions left aside.”

    Come on, really. Please stop implying only CS majors finished an education. The scope of your argument is way too wide here- it reflects a lack of understanding about how unique every developer and development position is. They all call for wholly different and widely divergent skills.

    By Matthew Beale on Jun 22, 2008

  4. “I believe that a self-taught programmer does not have the persistence, organizational skills, multi-disciplinary development, and finally the proof of his ability”.

    That’s hilarious. Your second sentence spells it out. Ok, so you’re not an employer and you obviously have not had enough experience in the real world to offer anything other than your own opinion.

    A self-taught developer, most especially one that is an independent consultant, goes far beyond the attributes described in the paragraph I previously quoted. Why? Because the independent has to put food on the table, pay the mortgage, make the car payment (etc); is responsible, himself (or her), for delivery to the client; have to be highly organized because the independent is usually working more than one project (different clients). That’s an incredible responsibility. Moreso than doing some canned school assignment.

    So, what’s the proof of ability for the independent? Working software, or other activities/deliverables that the client requests. Independents do much more than just develop software - the top consultants offer a broad spectrum of talents. And, oddly enough, independent consultants are brought in to a company because the company’s own staff can’t deliver.

    The real issue with degree’d developers, at least initially, is that they have no real-world experience - you know, “the workplace”. The independent throws himself into the mix cold turkey. Also, many degree’d developers feel they are “owed” something, because of time in service. I strongly believe this is the root of this blog post. You’ve sweated through school, so you believe the best developer comes out of a university.

    90% of university grads can’t get through my [combined] technical and project interview. Why? Because they have no practical experience. School projects have no equal in the real world.

    Look at some of the most successful people in business (who are in the IT industry). Many of them are college dropouts.

    I’m one of those self-taught folks (but do have time at the university). I was young, bored with school, so left and started my own consultancy.

    And I’ve done it all, such as: embedded systems development, systems programming, network programming, application programming, worked on various compilers, worked on various Unix utilities; I’ve worked with Pascal, C/C++, Java, Modula, Assembly, Actor, Ada, Lisp, and quite a few others; I’ve worked as a developer, BA, SA, Project Manager, systems administrator, etc; I’ve worked on various platforms, such as Unix/Linux, Windows, OSX, and with mainframes, mid-range, minis and micros; I’ve worked in aerospace, military, petrochemical, electronics, insurance, and so on.

    I’m a published author of four technical books (programming languages and Linux), have been a Technical Editor to two books, and am an Adjunct Professor.

    My brother could be viewed as your typical university-bred employee. Went to a great university, got a job at a corporation, and has been stuck in a cubicle, wishing he could get off the 4-year old project he’s been working on. He has no breadth of development experience, has no breadth of experience with various roles, and has to wait in the pecking order line to move up.

    Of course, not all university bred developers are like that. Many go on to do great and wonderful things. But it’s not BECAUSE of the sheep-skin, or how much time they’ve spent in school. It’s because of their drive to excel - school doenst teach you that, life does.

    In closing, I’d like to say that all you’ve offered is best-guess opinion. You obviously do not have enough experience and do not have enough facts to draw upon to provide a factual and intellectually accurate and positive analysis.

    Regards.

    By tjm on Jun 22, 2008

  5. I agree with tjm. You must hav exceptionally good organizational skills (need to manage your own projects), sales and marketing skills (need to sell your services) and even better technical skills, because you need to deliver or go out of business. There’s no better way to gain programming experience than doing the actual work.

    By Josh on Jun 22, 2008

  6. BTW, following your theory we should probably never hear of Bill Gates, Paul Allen, Steve Jobs, Larry Ellison, Michael Dell, because none of them have degree.

    By Josh on Jun 22, 2008

  7. Degrees are for lazy hiring managers. They provide one simple yardstick for measuring a candidate instantly. Not surprisingly, such a simple metric cannot help but fail to account for the many unique components of a complete human, or even those components that make for an effective software developer.

    Speaking from 30 years of experience, I’ve found this yardstick to be a very unreliable predictor of programming ability. I’ve worked alongside guys with MSCS degrees who really couldn’t program their way out of a paper bag. Their expertise seemed to consist of a lot of theoretical concepts of how software ought to work, backed by very little in the way of coming up with workable solutions for the problem at hand, or at making the sorts of pragmatic trade-offs that are often required to get the solution out the door.

    I’ve also had the privilege of working alongside a number of fellows who were self-taught programmers. In four of these cases, these guys were, hands-down, the best developers I’ve ever come across.

    Most of the developers I’ve worked with have had CS degrees, and for the most part, this has been no distinction. They’ve all been regular guys, part of the team, productive contributors. Yet I bet nobody on the teams I’ve worked on could reliably sort degreed from non-degreed without foreknowledge. It just doesn’t matter.

    By Greg on Jun 22, 2008

  8. I agree & disagree with you in a lot of respects. I am a self taught programmer, and a student in college now. Although I took mechanical engineering rather than CS because I feel there is nothing in CS that you can’t teach yourself. The pace at which things change means that you constantly have to learn new things whether you have a CS degree or not, and nothing ever gets built up to a huge depth. Compare that to the other engineerings where things haven’t changes in decades and the depth of a subject IS beyond what you can teach yourself. I would never hire a self-taught engineer, but I sure would hire a self taught CS major. This is not a knock on CS but just a reality - the field is so young and so dynamic that the most valuable skill of all is the ability to learn without instruction. The kid who comes out with a CS degree has stale knowledge in 5 years, the kid who can learn on his own keeps up with the times. A lot of CS students are intimidated by it because they HAVE spent a pile of money and time “learning”, so they think without a course and a professor guiding the way the topics are insurmountable, but that is completely false.

    By Kevin on Jun 22, 2008

  9. I have to dispute your assertion for one simple reason: it doesn’t hold up to the reality that I (and others) have seen and are seeing in the workplace.

    The best people I know in this industry did not go to college to learn this stuff. They were doing this stuff in high school on their own time. If they went to college straight out of high school it was more accident than anything else. In fact, because of my age most of my peers that went to college straight away are WORSE OFF than if they had not. (I graduated exactly 4 years before the bubble popped badly, and would have graduated college in time for the tech market downturn.)

    That’s not to say there’s not a place for college, but it seems like college is about teaching kids who have never seen a horse how to jump fences and rope cattle. Worse, the colleges have the kids ride mules and rope donkeys to “learn the theory.”

    The very best people I know working today who went to college all went to study CS after working in the bubble economy. They quickly surpassed their peers, who were struggling to learn how to program while also trying to learn algorithms. Today they are building the new software and storage systems that really are quite amazing when you stop to look at what they’re doing. (If you don’t believe me take a work at the “Data Deduplication” work being done by the SAN vendors right now, to cite one of many examples.)

    I can’t think of a single person I know that went to college to learn CS that I would consider to be in the top 10% of programmers. There are a few that are “good”, but I wouldn’t have them making any design decisions. Rather, those with a CS degree went there to learn the theory they had already been applying for years.

    Finally, you are right in your notion that when choosing between two programmers “with the same skill,” the better choice is the one with a degree. Your reasoning as to why to choose that candidate is exactly correct. However, I would submit that if you are faced with such a choice you are both extremely lucky and facing a once in many lifetimes decision. :) Skilled programmers are so rare that you normally have to work hard to hire them away from whoever has hidden them away. To have two at once is virtually unheard of.

    By Zach on Jun 22, 2008

  10. Are you talking about people who have no work experience? By the time a self taught programmer has been working professionally for four to six years (much less actually) then that person has done a lot of jobs that he or she would rather not be working on. That person has likely experienced the same sort of stresses of staying up all night to meet a deadline. The self taught programmer is doing all these things to survive while the university programmer can take things easier after school knowing the degree will carry him or her along.

    By Gexla on Jun 23, 2008

  11. I worked at OSAF with some of the smartest developers in the field. About half of them had either non-computer-science degrees or no degree at all. On the other hand, some of the laziest, must unmotivated, mediocre developers I’ve worked with actually had comp-sci degrees.

    In today’s tech landscape, it’s pretty easy — and way smarter — to take a look at what the prospective hire has actually accomplished in their career. I’d hire a guy with no degree, and open-source contributions that I can actually look at, over a guy with ostensibly the same skills, a comp-sci degree — and nothing I can see.

    Full disclosure — I have a degree in English Lit, and sometimes I wish I’d gotten my comp-sci fundamentals in college. But realistically, a university degree is a lazy filter — and nowadays there are better, real-world ones available.

    By mde on Jun 23, 2008

  12. I found your article reading another site, but you made me include you in the post. I hope that being a self thought developer that’s currently going through the education system I may be able to persuade you to looking this way.

    Will
    M!ll

    By dubayou on Jun 23, 2008

  13. I started teaching myself to program at an early age. Given the choice, I would be more likely to hire a self-taught programmer because he loves programming enough to do it on his own. Because the university student waited and did not do it on his own, I think he is more likely to have different reasons (like money) for choosing a career in software development.

    My experience is that a self-educated programmer doesn’t just “stick to the languages and projects he himself likes,” but because he enjoys his work he is more likely to do a wider variety of things than a person who is just doing what he must to make a living. I doubt the large majority of my fellow students will progress far beyond what they were taught to use in class, because they will stick with what they know and feel comfortable with.

    I agree that a variety of experience is important. I think that someone who waited until the university level to start learning how to program is more likely to forget those lovely multi-disciplinary things he learned at the university because he will stop practicing them once he doesn’t need to. If he doesn’t love to program, why would he go beyond what he needs to do for his job? Why would he seek out challenge?

    I would rather hire a self-taught programmer because he is more likely to enjoy it, and I think that is more important than the ability to persist through unpleasantness. Isn’t it better to find ways to eliminate the grunt work rather than waste time forcing through it? I think the most valuable form of persistence comes from completing important work, and an eager programmer is more likely to care about what he works on.

    Finally, as a self-taught programmer who has also earned a B.S. degree in Computer Science, I would say from observing my classmates that earning a degree is neither necessary nor sufficient as qualification. In other words, that bar ain’t high. Given the choice between two beginners, one with a fresh degree and one with equal skill and experience but no degree, I would not give much weight to the degree because attitude is a lot more important.

    By Daniel Terhorst on Jun 23, 2008

  14. Double edged sword. If you teach yourself something then you will be better at it than ANYONE who has had to learn it. University will prove persistence in doing things you don’t necessarily wish to do; but self-teaching can prove persistence and dedication as well as initiative.

    I’d say for run-of-the-mill/jack-of-all-trades jobs get uni’s and if there is something truly specialist in one area then get whoever is best for the job; self-taught or otherwise.

    By AJ on Jun 23, 2008

  15. I’ve met too many completely incompetent college graduates to believe obtaining a degree makes any difference to any but the smartest people with a real desire for learning and a passion for programming.

    By ASDF on Jun 23, 2008

  16. I am a self taught guy that started in my basement when I was 12yo. I have had a love for it and was always way more advanced then my classmates. I was a self taught learner and it helped me in all my Comp Sci classes all the way through my masters where it was seen by both professors and students themselves that I was three steps ahead of the curve.
    That being said I think you missed a glaring point that I would like to bring up here. Let’s say you have the self taught learner who did not know OOD or knew very loosely about the concepts and you had the college student who had a class in OOD that either barely passed by, cheated, or they did not take an OOD class because it was optional. Who do you think is more willing to learn and change their ways to fit into your company? Who says that the OOD class that your student took matches with what your company uses. The self taught always will have the edge on this if they are still willing to learn new things, they will probably learn it a lot quicker.
    The rest of your points are valid. I just wanted to add this little bit.

    By Jaysin K on Jun 23, 2008

  17. I have to disagree with you. Simply put: The right person for the right job. What does it matter if the individual has a degree on just the right motivation, experience and passion for the position…..regardless of what type of job we are referring to. You speak about some dude that you “thought” was great and how he “thought” he was great…..well….as if YOU think you are great.
    I am a hobbyist and I have worked the IT field professionally. I am not a programmer, though I have dabbled a bit. I know that there are others with more experience and abilities than I and I have known people with certifications and degrees that didn’t know crap….and a guy with no degrees or certs that has written books in the field……..hmmm….maybe it just comes down to is passionate and truly loves what it is that the are doing.
    Round pegs in the round holes….square pegs in the square holes………THE RIGHT PERSON FOR THE RIGHT JOB.

    By Corro on Jun 23, 2008

  18. your point seems quite superficial to me.
    would you hire for your project(say you need to do a web project) a graduate that is so so competent and has little interest in it or a person with strong LOVE for the job he is strugling to do it the best?
    doing at university lots of project in very different areas not forcely teach you something.
    if you are doing yourself, say, web programming, and you study HTML CSS JS, then serverside lang like Ruby PHP perl python, frameworks and sql db and so on, in real projects for real business, in the same time( 4 to 6 years), you got a web programmer.

    By taz on Jun 24, 2008

  19. your question is wrong, would be better to ask if is better to hire people who love what thay are asked to do in the job you offer or people who should be good enough becouse they survived the school.

    By taz on Jun 24, 2008

  20. i would like to make you a question: can you learn to swim on the ground?
    school is much like a simulation of real job: there are no real clients, no real business, no real dead lines, no real boss, no real collegues, no real passion, no real money.
    can you say it is the best training you can get?

    By taz on Jun 24, 2008

  21. I actually believe it is not an either/or thing but a both thing. You need to be self taught initially and then you need to go get a degree.

    Self taught means you are interested enough in something to work out the basics. Then a degree is like drinking from the firehose to paraphrase someone at MIT.

    A degree is _not_ a job qualification. People with a passion for computers should do the degree to suck up even more knowledge faster. They do it for fun. Some don’t - some do it for a career. But the best programmers do it for enlightenment because what’s out there is nothing you will find in your everyday techie book.

    It is simply a coincidence that employers want degrees from their employees. They assume that people willing to rush into varsity and endure 3 or 4 years of totally arcane information is simply for the love of it.

    Also note that degree people make better use of information. Degree people can connect the dots behind why frameworks are designed the way they are. When clever people get together and build something, degree people are the first to realise what it is that makes it clever.

    And finally - degree people and self taught both start somewhere. I have a degree and yes I was embarrassing when I first started my career but so were the self taught people = they were just younger.

    But spending 4 years at varsity teaches you to pick up a book and read it. Those books you read are not storytelling books. They are not techie books written to sell millions. They were written by the demon gods in hell - looked and sounded as though Egyptian hieroglyphics made a comeback in the 90’s. They say you read for a degree. I agree and you also sweat for one.

    By Justin Blaauw on Jun 24, 2008

  22. “Also note that degree people make better use of information. Degree people can connect the dots behind why frameworks are designed the way they are. When clever people get together and build something, degree people are the first to realise what it is that makes it clever.

    And finally - degree people and self taught both start somewhere. I have a degree and yes I was embarrassing when I first started my career but so were the self taught people = they were just younger. ”

    Wha..? A person holding a degree is not guaranteed any of those skills. In fact, if you had taken a high school level logic course you’d realize how utterly ridiculous your statement is.

    All that a degree tells an employer is that you’re willing to suffer. I have a double bachelors (English/Philosophy) and have been successful as a developer ever since I pursued it on my own while in college. I’m probably never going to write the great American novel, but I can tell you that employers and clients don’t care if I have a degree. They (if they are intelligent) know that an emerging market will need skillsets that are typically not taught in most universities, which in terms of progression are usually a few years behind the curve.

    As far as the original article, I think the author is just green in the gills. There is a marked misunderstanding of how the industry behaves and how the companies that are innovating make hiring decisions. If you want to work for large corporations that are not doing anything exciting, a degree is the most important thing. If you want to work with companies that are innovating, making waves in the industry and building the next technology that will change our lives, there are only a few things that are important:

    1) Your body of work and abilities
    2) Your ability to work with a team
    3) Your ability to work on your own
    4) Your ability to come up with creative solutions to problems

    In emerging markets and new tech, a degree might help, but demonstrable qualifications are much much more effective. Want to built a next gen mobile application with a specific company? Showing that you’ve worked on open source mobile applications with a team on your own time, designing features X, Y and Z, implementing feature A and providing architecture and vision for the recommendation engine is much more valuable than saying, “Well, the first year in college we learned BASIC, VisualBasic, then I took a summer class in Arrays and by the third year I finally had a decent understanding of object oriented languages and now that I’ve graduated I can do some pretty nifty things like use scantrons and write well documented if only academic code.”

    By Aaron on Jun 26, 2008

  23. include English.c;

    Really? I had to force myself to finish reading your post. It was one of the driest self-important speeches I have ever come across with StumbleUpon and surely such speeches are in no short supply.

    You make several logical fallacies that drove me up a wall; several of these have been addressed by other bloggers commenting on this post, but it seems like if I took the time to read what you had to say, I might as well give you the straight dope when I’m done.

    As has been pointed out: you seem to conclude that the breadth of your experience in education is the result of a CS degree. This is a total logical fault that neglects the possibility that even the most base of liberal arts educations require the same thing.

    There’s a saying when it comes to hand-to-hand combat: you have “just enough knowledge to get yourself in trouble.” This means that you assume because you sat through several lectures on structural engineering, chemistry, history, etc., that you have even the most rudimentary understanding of how these things work. Out in the professional world, this doesn’t fly very well. There are no shortage of programmers bred from the university industry with the idea in their heads that just because they can write some pretty decent java, they must also be able to parse other information in entirely different, non-digital formats. These people do really well until it’s time for a staff meeting and everyone in the room concludes that you have the personality of a package of Tic-Tacs.

    Really, though, the worst of all, is that you proclaim to be a student of a discipline that has it’s roots in anarchical engineering. The idea behind the entire scene that you’re lambasting and simultaneously claiming to be better than is that people of all walks of life with all varying degrees of education have a right to wade in and give their shot at making something. If you’re too stupid to be able to distinguish good code from bad, that’s not the fault of the people posting their projects. It was the hobbyist that put together this community, the hobbyist that makes it run and it will be the hobbyist who in a just society takes that job right out from under your nose.

    This is one of those “easier to throw rocks than build something” scenarios. Might I ask you something else? Since this is a wordpress blog using someone else’s theme, is it not thanks to these people posting these same templates that you’re whining about that makes it possible for you to do such whining?

    I guess what I’m trying to say is: stay in college because you apparently haven’t learned anything yet.

    By alienbinary on Jun 27, 2008

  24. “All that a degree tells an employer is that you’re willing to suffer.”

    Though that may be a quality the employer is looking for :-)

    By Anthony Lawrence on Jul 2, 2008

  25. I have no doubt that you can become an expert in computer programming without formal education. I know many people who are self-taught that I would rather hire than some other people I know with master degree in CS (so what I’m saying here is that the formal degree by itself doesn’t really count for anything).

    Given two persons that are good programmers then, one self-taught and the other with a formal university degree, what I think you really have is two different breeds of engineers.

    For pure programming/engineering, the self-taught one may be the best choice. He has learned by experience, knows how to seek answers on the net, enjoys spending his spare-time on some geeky problems, and has hands-on knowledge of real-world technologies. He can be a great asset, productive from day one, and able to manage himself.

    However, if you are dealing with advanced customer specifications, develops your own API that others will depend on, have a focus on security, create distributed and fail-safe systems or design long-living and innovative solutions, I would go for the one with the university degree. He should know how to plan ahead, be able to foresee consequences, understand the differences between available technologies (and reflect on how to chose among them), use programming patterns for easy and long-term maintenance, and ultimately could be able to utilize all of this to help take your company one step further.

    Also, I don’t think any good university degree today is purely theoretical. Take the wikipedia article(s) on operating systems, linked to from the geeknews article. While it may give you some overview on how operating systems works, during the OS course in my university degree we developed our own OS from scratch. That means creating a bootloader, disk-swapping, context switching (threads), virtual pages (memory), file system etc. Although you will seldom need it directly later on, it gives you an unique insight into for example how different synchronization mechanism really works (since you must first create them yourself), the penalties of switching context (and all about threads, stacks, passing of parameters etc.) and so on. This is knowledge you can take with you no matter what programming language you have to use. Similarly for most other subjects (take or give a few; some professors should just never be allowed to stand in front of a class!).

    I do believe there are only a select few self-taught persons that have this sort of deep understanding for the basics of computer science. On the other side though, I didn’t learn a ZING about web technology during the time at the university (except the very basics of markup languages, protocols, etc.).

    Z

    By ZarK on Jul 11, 2008

  26. Self-taught is not about hobby projects.

    Consider self-taught developer Alex that did hobby projects till about end of highschool, and then started working professionally, making money for family or whatever and not having time for uni. In the same field that you’re hiring.
    Alex worked for 6 years while Bob was going to university.
    Which you’d choose, A or B?

    Real jobs require you to do things you don’t want, in a way that you think is wrong or inelegant; you have to meet specifications written by other people, discuss corrections to specifications when required, et cetera. Much more so than university. Uni graduate is more likely to ignore specifications, in my experience.

    By Dmytry on Aug 3, 2008

  27. also, to add: @ author of that blog:
    Ahh, i see you’re still studying? Had any experience working full time as programmer, did ya?
    That’d explain your position. Dunning-Kruger effect in action.

    By Dmytry on Aug 3, 2008

  28. hmm sorry for third post in the row, but…
    As you’re still studying, it is quite obvious what is the point of your post. You’re feeling insecure and want to reassure yourself that you’re allright.
    The self-taught PHP developer that you told about, likely, programs ton better today than back then. Better as in more productively and writing more maintainable code. Who are you to say that he used OOP in a wrong way? Lemme tell you: you have NO cue whatsoever what is right way and what is wrong way until you have several years of commercial development experience seeing other people’s code.

    By Dmytry on Aug 3, 2008

  29. Ha. Utter bollox. The last few lines before edit:

    “and finally the proof of his ability (i.e. a piece of paper saying he’s finished an education)”

    I have had 3 jobs in development, with no degrees or “pieces of paper”. If i’m a good developer I already have my own websites there for empoyers to look at, a real world example of my work.

    What would an employer rather see? A piece of paper, or a full blown website? It’s an easy question trust me.

    People who go onto further education, or pay for education just aren’t “logical” or have enough free time to teach themselves, self taughts need to be logical persistent and have the will to keep on a project, THAT THEY DONT EVEN GET PAID FOR!

    My dad is a self taught Systems Analyst on over £150k per year - easily the best in his business too!

    There is maybe one difference between a self taught and a degree holder and thats background knowledge. A self taught will know how to write OOP, a degree holder will know WHEN OOP came about…. if you ask me, knowing when OOP came about is useless knowledge.

    Whats funny?
    (On the about page:
    “As for me, I’m (currently) a student heading for a bachelor’s degree (for now) in computer science / programming (whatever it is)”)

    1. You’re using WordPress… (Make your own website maybe)
    2. You use too much of your time writing blog posts… You could be learning something new
    3. With no history as head of department in a business, who are you to say whos better?

    I agree with the last comment:

    “You’re feeling insecure”

    To conclude

    I easily believe you’re wrong… In about 1000 different ways… I’m 18 myself and my knowledge of programming etc easily outdoes any others I know at my age.

    Get some business experience… Get to know some self taughts… Get to know your own knowledge and go beyond what your taught.

    Email me to discuss further :)

    By Adam on Aug 25, 2008

  1. 2 Trackback(s)

  2. Jun 22, 2008: Geeknews » Who Needs a Computer Science Degree When There’s Wikipedia?
  3. Jun 24, 2008: Chris @ Olstrom (.com) » On the Benefits of Self-Taught Skills

Post a Comment