BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Do Software Engineers Need a Degree in Computer Science?

Do Software Engineers Need a Degree in Computer Science?

Leia em Português

This item in japanese

Bookmarks

The role of a software Engineer” does not necessarily require a degree in Computer Science. However, since Yahoo’s Chief Executive Scott Thompson was stepping down recently due to a fake computer science college degree, it has been a point of discussion if someone needs a  university degree. For instance, in his article for Dr. Dobb’s, “Software Engineers All!” Andrew Binstock discusses whether software engineers really require a degree in computer science to perform an excellent job.

According to Binstock,

Software engineer" is only the latest term to undergo this peculiar disconnection from the reality it implies. In earlier generations, the title of "analyst" was the favored term. In the data-processing world of yore, the entry level was "programmer." When a change of title was needed to reflect tenure, the programmer was elevated to a "programmer/analyst." Then ultimately, an "analyst." This metamorphosis might have implied that programming was an activity the employee had finally left behind. But in fact, most analysts did even more programming than their more junior brethren. Analysis was not often a large part of the job, except insofar as some of positions did require analysis as an adjunct to programming.

The article refers to Mark Zuckerberg and Bill Gates as software engineers who were successful without having a degree in computer science. Thus, Binstock’s conclusion is:

The ill-defined "equivalent" affords plenty of room for candidates with demonstrated coding prowess but lacking the academic formation. In sum, all are welcome to the party. And with that in mind, I raise my pen to you, dear readers — software engineers all!

Not all readers who have commented agree with Binstock’s conclusions. For example, user pjmlp explains,

In every profession there is a learning path that proves that the person in question has the required set of skills and it able to offer a certain quality for their work. My experience was that self taught programmers are not able to deliver the quality most software shops expect, because their skill set is reduced to what they were able to learn on free time.

RussG has a different viewpoint:

Sadly, a degree in computer science does not reliably make one a good programmer. Computer science and computer programming are generally very different things, and most graduates seem to come in with expectations that work in academia but not very well in a large team building million-line applications.

Another important point of discussion in this context might be more specific roles in software engineering such as software architects. Does a software architect who is responsible for the backbone of a system require a computer science degree or can she also be a self taught software engineer? Or do engineers need both academic education and profound practical experience? As Einstein once said, “In theory, theory and practice are the same. In practice, they are not”.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Word games

    by Dave Nicolette,

  • What determines a good software engineer and architect

    by peter lin,

  • Continuous education is needed

    by Dean Schulze,

  • I like the idea of a CS course

    by Leonardo Kenji Shikida,

  • Should you get a CS degree?

    by Richard Hightower,

  • 10,000 hours

    by chad hurd,

  • CS degree is not a must, the foundations touch there is a huge advantage

    by Koga Kazu,

  • No

    by Tero Vaananen,

  • CS vs Software Engineering

    by Javier Diaz,

  • No correlation

    by Anthony Shaughnessy,

  • Wrong Question

    by Cameron Purdy,

    • Re: Wrong Question

      by peter lin,

    • Re: Wrong Question

      by Michael Wenk,

      • Re: Wrong Question

        by Rickey Jones,

        • Word games

          by Dave Nicolette,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Computer science is not quite the same thing as programming. To be effective in the role of business application programmer, one need not be able to design a processor.

          Words like "engineer" and "architect" are very, very far afield from any type of work related to software. They are feel-good words people have coined to label job titles so that they will sound "advanced."

          IME it doesn't take four solid years of full-time study to learn enough fundamental programming skills to work effectively in a programming job. IMO the notion of degreed programmers is one example among many of academic bloat - the creation of ever more degree programs and the perceived need on the part of employers to insist on degreed employees for nearly every job. Soon people may have to earn a degree in "sanitation engineering" to get a job as a janitor. It's all make-believe, and it's all absurd in the extreme.

        • What determines a good software engineer and architect

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          In my 15 yrs of experience, the primary factor in the quality of an engineer isn't a CS degree. The primary factor is passion and love for software. Some of the best and brightest engineers I know don't have a CS degree. In my own experience, 50% of the top engineers do not have CS degree. Several have a degree in philosophy, 1 in chemistry, another got bored in college and dropped out his second year, several have MS in math and a few have EE BS.

          A CS degree is just a piece of paper. It's the person that makes it mean something.

        • Continuous education is needed

          by Dean Schulze,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          To keep your skills current in this field (enterprise development) you need roughly the equivalent of a new masters degree every 7 - 10 years. Most of this will be self-taught as universities are far behind when it comes to teaching new technologies.

          I don't know how much of what was taught in CS programs in 2005 is relevant now, but to stay current those 2005 grads will have had to do a lot of learning on their own.

        • I like the idea of a CS course

          by Leonardo Kenji Shikida,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I like the idea of taking 4-5 years to study the basics. I hope the next generations can afford and enjoy this luxury. I don´t think the idea is to train a student to be an engineer (the company can do this better), but to teach him how to think and how to study by himself. To give him the basics. Because not only software engineering, but any job nowadays demands perpetual studying.

        • Denying the antecedent

          by Luis Espinal,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          In my 15 yrs of experience, the primary factor in the quality of an engineer isn't a CS degree. The primary factor is passion and love for software. Some of the best and brightest engineers I know don't have a CS degree. In my own experience, 50% of the top engineers do not have CS degree. Several have a degree in philosophy, 1 in chemistry, another got bored in college and dropped out his second year, several have MS in math and a few have EE BS.


          The first problem with your statement is that you are not differentiating between the different types of engineers and scientists from the type of engineering/science disciplines required for building complex software systems (*** more on that below).

          Moreover, the problem with that kind of thinking is that it focuses on the outliers, the people that will excell in software engineering without having a formal background in programming. Yes, I've seen the same phenomenom as well. In fact, in my first programming job 17 years ago, some of my peers (who were excellent programmers) didn't have a CS degree at all.

          But the key to have a valid point is not just on finding the outliers for which the point holds true. Does the point holds true in the general case? In 17 years of working in the industry, my answer (based on what I hope is objective observation) is a resounding NO.

          In the general case, a person without a formal background in software development, be it via a CS or MIS or CE degree, does not do well in the modern software arena, where we now build complex software systems that overshadows in complexity the type of software we used to build 15-20 years ago.

          Does it mean that having a CS/MIS/CE degree will ensure its holder the capacitity to be a software engineer? Of course not. But we cannot logically use the negation of this to propose that a CS degree is unnecessary. That's a logical fallacy committed by denying the antecedent.

          In terms of defining what it is to be a good engineer, I work (and have worked) with EE degrees that are working on the role of software development (be it as they transition into enterprise development, or in embedded development).

          It is usually the case in which I've struggled in making them understand the necessity of having well-defined abstraction layers, and why it is a bad idea to to ditch that and have direct access to a region in memory.

          Are they stupid? Of course not. In fact they are excellent engineers, with a grasp of Applied Mathematics and Physics, let alone Electrical Engineering that is beyond my training. They are engineers.

          But software engineeers, good software engineers? No. They face a certain type of cognitive obstacles when it comes to building complex systems (which are becoming the norm in the embedded space.) They are simply constrained, as software engineers, by the same sophisticated skills that make them excel as electrical engineers.

          Is the ability to be good software engineers beyond their graps? Obviously not either. But they need to diversify their skills, devour software development and modeling literature (which at the core is CS-based), look at software in different ways (and if they are lucky, work at places that allow such skill acquisition).

          And typically, barring the naturally gifted, this requires exposure to CS literature and training, in particular software engineering literature based on a strong CS foundation. This is typically done on the side, on the job, by going back to school, or a combination of any of these. And I've met my share of EE majors who have made the cognitive/skill transition and excell at software engineering (sometimes more than my CS brethen.)

          The situation cuts both ways.

          I'm a CS major, and to function as, say, a DSP engineer would be beyond my grasp. I have a grasp of the theory, but that is not sufficient. I would have to rework my skills tool-set. I've known CS majors who haven't had a need to do so to make the transition. But those are outliers. I'm not one of them. I'm the general case, and so most of the rest, and by the rules of probability, even you (you the reader of this paragraph.)

          Engineers are not interchangeable chess pieces interchangeable across disciplines without formal training. Never have been. Never will be. Outliers do not disprove this. The general case observed every day in the trenches, OTH, that firmly proves it.

          Engineer is a token word that conjures the ability to solve problems in a methodical, analytical, scientific fashion. But it is also a nebulous token word that has no concrete meaning until you attach a context to it.

          Software engineer, mechanical engineer, electrical engineer, chemical engineer. You can be a good engineer, but not be a good electrical or software engineer. So to claim that you do not need a CS degree to be a good engineer is a statement that is true in principle, but that conveys no useful meaning.


          A CS degree is just a piece of paper. It's the person that makes it mean something.


          But that is also a truism that does not convey any meaning. You could say the same with, say, a law degree or a medical degree. The statement can mean anything. Ergo, it means nothing.

          Yes, there are outliers out there than can perform a task without having a formal degree on it. But again, those are outliers.

          What matters is the general case. In general, you need a formal education for a particular task (or a formal education that has sufficient carry-over knowledge.)

        • Re: I like the idea of a CS course

          by Michael Kay,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I've worked with lots of people who were excellent programmers who didn't have a computer science education. The one weakness they tended to have in common was a tendency to reinvent the wheel; they didn't recognise when there was a textbook solution available to a problem.

        • Re: Denying the antecedent

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Even for engineers that aren't elite or top 10%, I still find it to be true. I'm not saying education is pointless, on the contrary it's critical. Yes, I agree the statement applies to all degrees. My degree happens to be english literature, and the same thing applies. The reality is that when I interview, I largely ignore the degree. Instead, I look at the person's passion and dedication to doing the best job they can. Some one that doesn't have a passion probably didn't pay attention in class and hasn't kept learning, so chances are even with a MS in CS the person won't be as good as a candidate that is passionate.

          I also agree that engineers are not "interchangable", even if human resources likes to think that is the case. Most of what I work on is messy enterprise integration stuff, so my experience is probably not the typical.

        • Re: I like the idea of a CS course

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I've also seen lots of open source projects started by people with CS degree that needless re-invent the wheel. It's more about the person and whether or not that individual has a huge ego. From my experience with open source, project leads that don't have a huge ego avoid re-inventing the wheel. Project that have leads with huge ego's re-invent needlessly.

        • Should you get a CS degree?

          by Richard Hightower,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Bill Gates has an IQ north of 165, you probably don't. If you want to be a software engineer, a CS degree is a really good idea. Do you need a CS degree to program? No. But you can't argue against having training and a strong foundation in the theory behind the practice. Yes there are developers who don't have CS degrees (plenty). There are also other degrees that can help you become a software developer/analyst, etc. But if you can swing it, getting a CS degree is a really good idea.

        • Re: Should you get a CS degree?

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          For me, college should be about learning critical thinking and doing something you're passionate about. If CS degree fits that, then get a CS degree. It all comes down to doing what you love and having a passion for what you do. All of this focus on degree and papers to me is silly. Yes, education is critical and invaluable. But lets not kid ourselves and say that anyone degree is better than another.

          To use an example from real world software engineering/development. Most CS graduates had to take a class in compilers. The thing is, most software engineers can't write good compilers. A person either has a knack for it, or they don't. Sure, a person that isn't naturally gifted at writing compilers can get decent at it, but they will never be great.

          To use a different domain. I could learn the piano, but I'll never be great at it. I "might" get decent, but I just don't have the passion or innate talents for it. The same is true of software engineering. Some people are just naturally gifted at software engineering. Most people (ie 90%) just don't have it in them. I am not one of those people that are naturally gifted. Instead, I use my passion, dedication and honesty to over come my limits.

        • 10,000 hours

          by chad hurd,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          That's really what it all comes down to. You need your 10,000 hours of practice (not repeating the same 1000 hours 10 times, like so many do).

        • Re: Should you get a CS degree?

          by Richard Hightower,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          You have a couple of options really. Be born really smart and be a voracious self-motivated person with a high IQ, and/or get a CS degree (or related degree). I never said you had too. I just said if you were going to be a software engineer it is a really good idea. It is not like being a heart surgeon, i.e., you never see a dentist become a heart surgeon on his own even though they both do go to college, and college is wonderful. Software development is a lot more fluid then the medical industry, but this does negate that it is still really a good idea to get a CS degree if you are going to be a software engineer. You don't have to, but it is a good idea. In fact, I would say a really good idea, and not to be repetitious, but is is very apropos to do so. Yes there are brilliant people in the world (I know a few), and not everyone needs it, but still a good idea.

        • Re: Should you get a CS degree?

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          agree, it is a good idea. My point is that when some kid asks me "should I get this degree to get a great job?" my answer is find out what you love and do that.

        • CS degree is not a must, the foundations touch there is a huge advantage

          by Koga Kazu,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          IMHO, Computer Science degree is not a "must have" to become a really good Software Engineer.
          However, like any other engineering field, academics researched for years what are the skills and knowledge that will make difference for a new graduate to excell as a Software Engineer professional.
          I think that a degree in Computer Science from Universidade de Sao Paulo in Brazil, having being trained to be logical, deep driving in mathematics, being trained on technical-process-team work skills, gave me a huge advantage on any of the workplaces I have worked before, here in Japan.

        • No

          by Tero Vaananen,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Schools can speak about your passion just as much as just doing it on your own. I doubt CS degrees are harmful in any case. I programmed long before I took formal schooling. You do learn things in there that you might never bump into otherwise. It makes you better prepared, but it really it is up to your own passion at the end. Just count it as a plus, after passion, and some real experience. It can be a cultural thing as well - in some countries it really does matter.

        • CS vs Software Engineering

          by Javier Diaz,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I like to differentiate between having an education and having a degree. I believe GW Bush Jr. has a degree ... You do need a CS education not to make an ass out of yourself as a Software Engineer. You do need an education in some other areas to be a Sw Engineer (vs a CS teacher).

          When you start trying to make examples out of extraordinary people you get into ridicule:
          * As Le Corbusier had no architecture degree there is no need for having a degree to design houses or even full neighbourhoods.
          * Let's take one more step: As Leonardo had no civil engineering title, there is no need to have an engineering title to be as good as Leonardo in design, mechanics, painting, warcraft, architecture ...

          Last, but not least, working experience only does not favour having well grounded knowledge.

        • Re: CS vs Software Engineering

          by Javier Diaz,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Sorry I had to post twice.
          A degree in Medicine does not warrant anything. You also have to get experience before you are allowed to work. I would not use the services of experienced "doctors" without a degree. Sadly, we need to kill a lot more people or at least their reputation (and society needs to hear about it ...) before sw education is taken seriously.

          Lying in your qualifications makes you a weasel, no buts.

        • No correlation

          by Anthony Shaughnessy,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I work on business applications - insurance, banking, retail, etc - and I've worked with lots of people. I've seen no correlation between having a CS degree and being good at the job. When interviewing, I don't care what kind of degree they have, as long as they have good experience.
          If interviewing graduates with no experience, its a different matter. Then you're assessing on possibility, not experience.
          Anthony

        • Wrong Question

          by Cameron Purdy,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Perhaps we're arguing about the wrong question altogether. Obviously, there are quite a few incredibly good programmers who do not have a college degree, but whether they are exceptions or common-place will likely be an unprovable argument.

          The real question is how we can improve Computer Science education, so it becomes more and more beneficial, so that when someone does invest four years (or more) of time studying Computer Science, that they are well equipped for working in the real world on real and contemporary problems. Regardless of whether someone has a Computer Science degree or not, what I find all too often is that people tend not to have an understanding of how to design great software, and how to build great software. Even worse, very few people ever learn how to, even after years working in the industry.

          Peace,

          Cameron Purdy
          (I work for Oracle, but opinions are my own.)

        • Re: Wrong Question

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Yeah, I doubt this problem will ever get solved. Even if colleges/universities improve the course and how it's taught, it still comes down to the person making the most of it. Without passion for their education/work, it's tough to become great.

        • Re: I like the idea of a CS course

          by Mac Noodle,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I've worked with lots of people who were excellent programmers who didn't have a computer science education. The one weakness they tended to have in common was a tendency to reinvent the wheel; they didn't recognise when there was a textbook solution available to a problem.

          That is funny because that is how I typically define engineers - they always think they can do it better and thus, many times, reinvent the wheel.

        • Re: What determines a good software engineer and architect

          by Mac Noodle,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I would say the primary factor is ability. That is followed by passion and love for software. I have seen plenty of people who are passionate about software development... but probably would serve the industry better by doing something else.

        • Re: Wrong Question

          by Michael Wenk,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I don't think I would like to see CS to change to fit industry. CS is a theoretical field. I think a better approach would be to apply resources to send people to where they belong, which in majority would either be a tech school where you learn computer technology, or a MIS program where you learn to apply computational to the business world.

          Of course most colleges and unis would hate this, but this would be the better approach.

          I personally feel that degree is mostly irrelevant, because a degree doesn't show intelligence. It does show that a person was able to accomplish something, which while something isn't the end all be all.

          Note above I said degree. Some classes, especially algorithms, data organization are highly useful to working in IT. You can of course get this by reading and doing practice as well.

          Intelligence, problem solving, and adaptability are cornerstones to the IT world. If you have these skills, you will go far in IT, degree or no degree. If you do not, you will not. And unfortunately, no school can teach the first and third skills, and the teachable skill will only get one so far.

        • Re: Wrong Question

          by Rickey Jones,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I think it would be better to get degree because when you start to walk you will be recognize just as a fresher and in these field most companies need experience person so that their work should not be delayed during the time spent to teach a fresher about the work, so its a very much strong feeling that those person who has a degree of engineering, will grab quickly than a person who does not have a degree, because selectors does not have the time to check a persons overall ability in only a short time interview. what do you think?

        • Re: Wrong Question

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          That's the thing that I dislike about degrees. Rather than consider a degree as a part of evaluating a potential hire, many HR people only look at the degree. I've seen this happen in Boston's financial district, at Google, IBM and many other places. Even though the work I've done in pattern matching algorithms and temporal databases is equivalent to a Phd thesis, all they care about is a degree.

          There have been numerous instances where I felt a non-degree candidate was sharper and a better fit than a "luke warm" candidate with a degree. The HR folks ended up hiring the degree candidate, which ended up not working out. After that happened a couple of times, I had to talk to our VP to get the issue resolved. I don't blame degrees or colleges for bad HR practices. The reality is, lazy people use degrees as a crutch in all sectors, not just IT.

          In contrast, great head hunters are able to figure out which candidates fit. For me, a person's passion for their work is 25-35% of the equation. Obviously the candidate must have the experience and skills.

        • Conclusion

          by srikanth nair,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I always goes with those who says CS or anything is NOT required to become a SW professional. They all need is PASSION (this word includes everything). From ancient history Humans are not born with any Phd, still they invented so many things even nowadays a Phd holder can't even imagine. So very sorry to those A**H**** who says some educational background is required to do something in our life.

        • do they "need" a CS degree? No...

          by Jason Little,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          As others have pointed out, it's not necessary. I've worked with some great 'software engineers' with CS degrees and utterly terrible ones with CS degrees. There are extremes in both cases. Having done workshops for some local colleges and universities I'm shocked to see how far behind their curriculum is, especially around Agile practices.

        • *sigh* There is a distinct difference...

          by Ethar Alali,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Many of the arguments I have seen on here fail to acknowledge that both parties are needed to get a quality piece of software created. I personally don't think that you need a software engineering degree to be a programmer at all. I started programming at 9 years old, getting my degree with everyone else in my late teens/early twenties, whilst working as a programmer part-time, then studied mathematics at postgrad and despite also having enterprise architecture qualifications and working in solution architecture space a lot of the time, I still get regular contracting jobs as a dev/programmer.

          I have seen a couple of formidable programmers who don't even have GCSE's (equivalent to junior high graduates in North America) but at the same time, I mostly see people who tend to not really understand the 'engineering' aspect of software engineering at all and assume it is all about programming. They tend to be the people who spout that an IQ of say, 165 is high, without stating which scale the IQ was measured on because they don't really appreciate the normal distribution curve and the importance of the mean and standard deviation in that distribution of that curve say (sorry for the dig Richard, but I couldn't resist ;-). If a mensa IQ is 173 on that scale (and there are scales out there with that measure, traditionally from a good few years ago), then in the same meaning that is inferred, 165 is a bit dim!

          To link it to my old favourite analogy of building a building. It is likely that neither an architect nor a structural engineer has any idea how to lay a brick efficiently. Similarly, a builder likely has no idea how to calculate bending moments or sheer forces. Everyone is needed to get the job done and quibbling about who is best turns into a totally unnecessary urination competition. A business is investing a lot of money in building software. Sometimes as much as it spends building shiny new offices. You wouldn't normally spend that sort of money without engineering. The only reason salaries and rates are linked to those job titles is simply because of demand, not directly to sound important. There aren't that many people who totally understand, say, combinatorial optimisation and its role in enterprise scale software systems or how to test to cover 100% (no more no less) by calculating the number of tests required from pre-and post-conditions (aka Given... When... Then... for those with BDD) or how operating and optimising Kanban can be predicated by an understanding of queuing theory, the theory of constraints, linear programming etc.

          Statistically, not many people get to be good at software being self-taught, but when they are, they are truly brilliant! A degree can give you that consistency and predictability (which is what companies normally want for stock staff) but it is often the mavericks that change the world. The statistical likelihood of that happening from any background? Probably about 1 in 30,000 (and even then, they have to have a good run up :-) so a company can't usually afford to wait for 20 of them to come along and be able to start.

        • Re: *sigh* There is a distinct difference...

          by Richard Hightower,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Sorry I am too dim to get your points.

          100 IQ is average. 110 to 120 is average college student. 165 is typically considered very high (something like one in a 100,000 to 1,000,000). en.wikipedia.org/wiki/Intelligence_quotient

          The above all is moot. The point was there are exceptional people and the same rules are not going to apply to them. I know everyone thinks they are special because our moms spent the first 18 years of our life telling us how special and unique we are. But you (not you, but the global you) are probably not Bill Gates, Steve Jobs, or Mark Zuckerberg.

          Do you disagree that having a CS degree although not required is a good idea?
          I still don't understand how this can be a controversial statement.

          If you have someone design your house or office building, I am pretty sure you either want them to have a degree in architecture and/or an incredible list of past accomplishments. Vis a vie, it is a factor.

          I never said it was required. I said it was a really good idea.

          I think education without talent and passion is somewhat useless. If I had to pick two of the three, I would pick talent and passion. But, it is a better idea to get all three. IMHO.

          To those thinking about skipping college and getting a job becoming a developer, I would like to leave this special message.

          “You are not special. Your are not a beautiful or unique snowflake. You are the same decaying organic matter as everything else.” -- Chuck Palahniuk

          Stay in school.

        • Re: *sigh* There is a distinct difference...

          by Richard Hightower,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Sadly, I have used Vis a vis incorrectly. Which the comments had an edit option. Anyway arguing is pointless on the Internet. I hope one day to learn this, and not forget it.

        • Re: *sigh* There is a distinct difference...

          by peter lin,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I agree 100% with the statement "you are not special". Though unlike some people, I was never told that growing up. That could be the result of chinese culture, where parents point out every mistake and error the child makes. Not saying that's a good thing, it's just how traditional chinese parents raise kids.

          Without a doubt talent + passion + education tends to produce above average or exceptional individuals. Though, for most people passion + education can get a person pretty far. Not that they will be superstars, but it "should" be enough to have a happy and productive career.

          On the lighter side, this kind of debate will never be resolved. Humans will be debating the same thing 1000 years from now, assuming we haven't killed the planet and ourselves.

        • Re: do they "need" a CS degree? No...

          by Jeff Smith,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I agree totally. I have a New Media degree and I took enough CS classes to garner a certificate (because most of the NM classes were offered when I could not take them). What is difference between my New Media degree and a CS degree. The foundations (Computing I/II...Data Structures..Discrete Mathematics..etc...classes I could not take because I was not a CS major/minor). I have been thinking about completing the CS degree, but the curriculum is just too far behind. I am missing the foundations of CS and I know that. Those foundations will transfer to whatever development I am doing now/will be doing in the future. I have started going through the texts for those classes. Most of them them are in C/C++/C#/Java/Vb.net and its hard because I want to apply the concepts to newer frameworks/languages. I have recently found books that teach those subjects while using Python and that is a bit better.

          People use applications that are cool everyday that are built in Html5/Javascript/Mobile Dev/Python/Rails/Whatever and they want to learn those frameworks/languages. They don't want to spend money learning the foundations and C/C++/C#/Java/PHP/or Pete's sake VB.net (not my opinion...just what I hear). What do they do? They use google/watch youtube/make a trip to B&N to get a book. They show great passion and dedication while learning {insert framework/language} here. The foundations are of CS are left out and they are learning what they want to know not what they need to know so to speak. What's the answer? I am trying to figure it out, but I feel something needs to change. At this point...if I could get an associates with just the Foundations of CS I would take that hands down. Sigh...who knows.

        • Re: *sigh* There is a distinct difference...

          by Ethar Alali,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Hi Rich,

          Sorry, I wasn't meaning to troll :-) It was meant as a light hearted dig. But I thought I best point out that the 'modern tests' section does denote that the tests that are applied are 'modern' and have had the standard deviations narrowed to 15 points (which is what I stated earlier). Most modern IQ tests CANNOT measure to 165. One of the most accurate applied to the general population is considered the WAIS scales (Wechsler) and just like many, that can only reliably test as far as 140 (where the 2% interval required to enter Mensa is at 130). Most other tests test around that scale and the difference if one gets 100% is the time and the pertinent age groups.

          Also, I best point out that IQ isn't actually a measure of intelligence. It is a retrospective correlation between future life outcomes and a set of scores on a series of tests. It is an extremely narrow field of intellect (if one considers Gardner's theory of multiple intelligences which encompasses a total of at least 8), but I am not here to debate the psychometry.

          I don't believe that people are special. You can be 'born' with a genius' ability to learn, but if you don't do anything with it, or work at anything, you are a nobody. If one work hard actioning bashing a wall down with one's face, then that is also likely to get you nowhere (apart from maybe A&E). The key is both are needed and I tend to state that skill is a product of intellect and knowledge and you can make up for the lack of one with an advantage in the other to at least a certain degree.

          To relate this abstract set of statements to something more concrete, you can only get that degree of effort if you are passionate about what you do and put in the time. You either pick things up slowly or quickly, but the time that you put in is what gets you that knowledge and hence improves your skill. Others prefer to map this 'new shiny thing' to this 'old-not-so-shiny' thing, see the more abstract similarity, pick it up and run with it! Those who program in more than one imperative language will most likely have done this without thinking (Java is conceptually the same as C#, which is the same as OO Delphi which is somewhat the same as C++ etc. etc. etc.) which is somewhat stating the obvious to those that have been through it, but change the language to functional, logical or some other paradigm and that bridge is much harder, simply because the model is different whereas in imperative languages, the concept of a loop is the same, the concept of a branch is the same, the concept if inheritance in OO is the same etc. and after that, as far a the lingo is concerned, it is all syntax. What makes people stand out is how they put together these bits of syntax to make a 'thing' in the most optimal way possible and sometimes, that means putting these together in ways that other people can't immediately see the reason for at all (or ever).

          1) Anybody can pick up a paintbrush and 'paint', it takes a da vinci to paint the mona-lisa.
          2) An engineer is someone who can do for a penny (cent) what any old fool can do for a pound (dollar)

          Cheers

        • Re: *sigh* There is a distinct difference...

          by Ethar Alali,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          "On the lighter side, this kind of debate will never be resolved. Humans will be debating the same thing 1000 years from now, assuming we haven't killed the planet and ourselves"

          ...or someone finds a way to measure the optimum amount of each and the problem is then solved, ergo :-)

        • Re: do they

          by Ethar Alali,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          Your point about the syllabus being too far behind is probably the biggest problem to hit academic IT (apart from tuition fee increases here in the UK). New languages and platforms are released every couple of years (or sooner) and a bachelors degree taking three years is already obsolete by the time it is finished. So why waste the equivalent on a second mortgage?

          However that kicks the nation because the number of people who truly understand IT is shrinking, which means those that know, get more reward, but are increasingly fewer in supply which drives up the demand, which the universities certainly can't or wont supply and companies can't pay for which inflates the existing bubble until it bursts or the industry outsources which kicks the local IT economy from several angles.

          Why do the likes of Google/Facebook recruit the way they do? They know that that market is full of people who really don't understand the problems they deal with at a conceptual level and so can't play with the ideas easily enough. I remember showing just the first level of a precious years' Google code jam to some colleague and I was socked to find that none of them could answer the question. This is the prevailing capability at the moment I am sad to say.

        • Re: do they

          by Richard Hightower,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I think mostly we are in violent agreement.

        • you don't need

          by yan brad,

          Your message is awaiting moderation. Thank you for participating in the discussion.

          I am an EE bachelor.And after two years in electronic manufacture factory.I began to study linux development.And now I am a linux system integration and softwre developer.
          What you need is passion and intrest,not the degree.I love doing something about hacking.And I am going to be a hacker.
          In university,you need to learn how to learn.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT