Are You a Blue-Collar Or White-Collar Developer?
jammag writes "Some developers have gone to four-year universities, where they've also studied subjects like history and sociology, while other coders go to vocational schools and focus purely on writing great software. So why, asks a longtime developer, is there a stigma attached to not having a four-year degree, when 'blue collar' coders might be better trained? Why does the software industry keep emphasizing this difference — and generally giving better pay to four-year grads? Isn't being a developer about real skill level, not the piece of paper on the wall?"
I wear a T-shirt.
"Isn't being a developer about real skill level, not the piece of paper on the wall?"'
It's really a game of social status, education does NOT ensure someone is smarter or more skilled, it only ensures that, that person had the persistance or was a very good cheater.
Persistance and skill are often confused, the education system is really about handing out status to attempt to justify who gets jobs over who doesn't merit be damned. Anyone who believes education is not mostly about social status is not very bright.
Stopped reading here: "I noticed one of the guys who was all over the tech conversation was all of a sudden very quite." Quite what? Please put some effort in! Seriously ... ugh :(
I went to college, then to graduate school for a PhD, then did a postdoc, now run a research group.
Maybe I'm too picky :(
In my experience people who have gone to vocational schools do not have the same background in algorithms than do people who have gone to four year schools. They do not have as expansive of knowledge in data structures and sorting algorithms and the like. There are many jobs where optimizing is important and knowing which algorithm has the best run time in O() notation can be important. They may know Java, but that doesn't mean that they can code just as well. Just because someone knows how to use a typewriter doesn't mean they can write a book just as well as an English major.
If you're a hardcore code monkey, sure, the university experience might not help you that much - but it's my experience, that it's a good idea for a coder to be able to relate better to other areas of a business, and this is where the general knowledge of the longer education might come in handy.
It's about the stigma about the other degree being harder to get, and subsequent implication that people carrying the longer degree could be smarter.
There really needs to be a standardized & respected degree for programming, and programming alone - with zero bullshit. Something that you can't even *apply to* until you know at least 3 programming languages fluently.
Save your wrists today - switch to Dvorak
and yeah if u did your job properly in a good school , 4 years does matter in the way u approach a problem. not neccessarily coding skills or the best way to hack a one liner, the approach and bigger picture is as important or if not more -S
Oh come on, since when did blue collar ANYTHING get paid more than the white collars?
For linux tips: http://www.linuxtipsblog.com
The short answer is "no." But by the very nature of asking if there is a stigma attached to something you're suggesting that there is.
Like - "Do you find that there is a stigma about work ethic attached to young men with mohawks?" I have just implied I believe there is and are asking for corroboration.
I don't care what experience someone has as long as they can write great code. Google on the other hand however won't hire you unless you have a Masters or PhD.
.. but have somehow managed to break through the stigma, now working in an environment where most people have at a minimum a bachelors degree...
And as much as I hate to admit it.. I really regret going the vocational school route. While I always felt I could code as well or better than most uni grads (mainly because I got into it as a hobby long before making a career of it) I've found myself deficient in the algorithm and math stuff.
Now, in most programming jobs this isn't going to matter.. I just happened to land in one of the few jobs that is heavy in the maths. I've managed to "bring myself up" to the required level and found success.. but I think it would have been a lot easier if I'd gone the uni route.
I think it's because there's more to being a developer than just the technicals. Sure, if you want to be a monkey at the keyboard churning out cookie cutter websites, that's one thing. But we live in an integrated world, and you get a wealth of intangible skills in university that help you in other areas, be it interpersonal, writing, or whatever. And studying a broad range of topics trains the brain to think in different ways. Again, intangible, but definately real.
A good coder has to understand the context they're coding for. Generally that context is use in the course of a business. Generally that requires being able to integrate concepts about the business that are beyond the scope of coding.
There are exceptions. If you're a lower-level programmer, part of a larger team, and the team is run by people who can comprehend and integrate concepts beyond the scope of the code into the system design, then a two-year degree (or four-year degree focused solely on coding without a traditional liberal arts mix) will do you fine. But that's a lower pay grade than the person who is able to grasp larger concepts, and even more importantly communicate and coordinate with people handling aspects of whatever business it is who are in a position to leverage the code being created for real profit. Even if that person, likely with the broader educational and life experiences, isn't as good a coder by some technical measure, she or he is of far more value to the bottom line of the operation.
"with their freedom lost all virtue lose" - Milton
Maybe the job requires more insight into the everyday world and it's origins than just that which can be gained from frequenting Second Life ? There are benefits to understanding the situation in which the software will be used that are only possible with experience. We all hear about how user participation is vital to making good software, but we are users too. Maybe having a good grounding in other subjects gives an insight in how to program for them. It is possible to be a good "blue collar" programmer, but only if you've got the life experience as well as the leet coding skillz.
PS. I am a blue collar programmer.
I'm a hardware engineer. You want a real engineer for some design and most analysis tasks. History and sociology don't play a part, but dedication to the profession and experience with the underlying principles behind observations are key. A two year grad, or technician, is typically very good for a subset of design, along with a whole bunch of data acquisition.
I imagine code to be the same. If you want high level stuff, architectures, in depth analysis, a full discussion of repercussions of coding choices, a 4 year computer scientist or software engineer is called for. If all that stuff is already laid out and you just need someone to type in a pile of code to do a well defined task, a 2 year would be great.
It's not necessarily the stuff learned in the extra 2 years, but the level of person it takes to invest in their future like that. The 4 year colleges provide a different group of people to "run with" and compete against. College is rarely about the classes, although they're necessary and grades are the common barometer, but it's about the friends made and the level of competition -- you need to compete with people to learn better practices.
Of course, there are prodigies who can do excellent work with self teaching, but separating them from the chaff (and overcoming their egos) is rarely worth the time in my experience.
In a free market, we would expect better coders to make more money than less good coders. The problem is that this is predicated on having perfect information (i.e. being able to actually rank coders by quality). In the marketplace, it's actually quite hard to know how good coders are relative to their peers. Sure, you could test everyone, but then that assumes your test is correct and that you have the time and money to administer it.
Therefore, employers look for discriminators. One of those discriminators is a four year degree. Though we anecdotally hear about impractical academic CS majors who can't code, most four year CS grads have a modicum of understanding.
Additionally, a friend of mine was recently in the position to hire. I asked him about the four year degree issue because my friend usually belongs to the school of "put up or shut up." His opinion was that a four year degree was important not just because of coding chops, but *because* of all the other classes that are typically required in a four year program. For him, having someone who could code and also write coherent sentences and speak somewhat intelligently with people who might be inclined to invest in the company.
. Penguins Surely Ca
Back when I started out, I chose the latter. If I interview a developer today, I want to see their code, not their paper credentials.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
As someone who spent a lot of years observing software projects gone bad ... I prefer someone with a four year degree because they have a better chance of knowing when they are in over their head. Some examples: Trying to build a mini-compiler without understanding anything about parsing, yacc, lex, etc. Trying to build a special purpose DBMS without understanding DB theory.
Well, probably because computer science is one of the few places where you really go from build to design. Sure it happens that a construction worker becomes a civil engineer or architect, but it's not something that happens by itself. In most lines of work you'll often end up with people doing it some weird way because they've never learned that sort of thing, you can see it in computers too with people that never learned any design patterns and decided to invent their own - mostly poorly. Sure, proven experience beats all but if I was choosing between someone that's learned the theory and has a little experience versus someone that's been busy writing low level procedures all that time it'd be a tough call. If I could have both I'd probably ask the guy with the academic background to draft it and ask the other to sanity check it. Code can be "ugly but works" and it's not really important, people don't touch it much unless they're changing functionality. There's no such as "ugly but works" design, then it IS an ugly design that'll come back to haunt you again and again.
Live today, because you never know what tomorrow brings
I think the difference in the words "developer" and "coder" are important to any argument made - If all you need is someone who's job is only to write code, then yeah, a coder is a coder. However, if you need someone who is familiar with algorithms, theory, life cycle management, requirements engineering, etc., then you probably would want someone with a four year degree. Granted, even then there is no promise that the person knows more if they are a coder/degree holder, but generally the person looking at a stack of resumes will see that one extra accomplishment, and it very well might make their decision that much easier.
and yeah if u did your job properly in a good school , 4 years does matter in the way u approach a problem.
Are you using "u" as sarcasm in this context?
Save your wrists today - switch to Dvorak
I don't care where a co-worker went to school, I just want to see his or her code and documentation and talk with them about the thought process that went into their work. Results matter. I've worked with PhDs from hot shot schools (CMU, MIT, etc) and I've worked with self taught folks. Both have been good and not good. The bottom line is who gets the work done, not who knows more theory.
"Almost every wise saying has an opposite one, no less wise, to balance it." - George Santayana
You say that at university, one learns more than programming. If this is true, then the difference cannot just be a piece of paper.
Don't you see that the (hopefully) liberal education one gets at university offers a different skill-set and broader world-view than one gets just simply learning to program?
I think back to Madoff's programmers. Code monkeys were all he needed. This is not to say that these programmers were vocationally trained. But a good liberal education would have enabled them - and anybody who pays attention - to ask the kind of questions that go past algorithms and enter into wider categories.
University is not for everyone - but for the right people, the intellectual and theoretical challenges of university opens minds, before it opens doors.
Law school loves people who have degrees like theater, psych, etc. Why? Because they can teach you all the law crap, it's your background that makes you interesting.
My brother (straight out of a liberal arts college) got a job at a competitive company that used a language he'd never touched before. Why? Because they were willing to take the time to train him. It seems to be less about being trained in the field than it is about having the essential skills to work in the kind of environment that a 4 year degree institute provides (presumably more pressure, more varied, and, yes, the culture/social status aspects are definitely a factor.) Teaching programming languages is useful, yeah, but programming languages go away. They want someone who is versatile. The presumption is that someone who didn't go to college doesn't have the basic degree of mental training that a college grad does.
My comments are talking about people straight out of whatever program, not after they've been in the field a while.
By exposing one's brain to information from different fields you teach them to see a problem from more than one perspective. They can understand the problem better that way. This gives them the advantage of being able to apply knowledge from other fields when designing their software.
It may not be obvious, or easy to measure, but I believe that my exposure to psychology, philosophy, and foreign languages results in the generation of pretty interesting ideas and solutions in the world of software. In the same manner, my technical background gives me advantages (or at least it gives my work a unique touch) when dealing with "humanistic things".
Of course, you don't necessarily have to go to a university to achieve the same effect, you can read books, talk to people, participate in discussions, and so on.
p.s. the summary is biased: "focus purely on writing _great_ software". The focus is on writing software, whether it is great or not - that's a different question.
The saddest poem
For some reason in my experience the degreed developers tend to be more "disciplined" which at least in the companies I have worked for means they are more likely to allow themselves to be pushed around and are less likely to question methods and proceeders. I am not sure if its the massive debt hanging over their heads or simply the years of being a dedicated student, but they just tend on average to be more willing to keep their mouth shut and keep typing while complaining less about things like overtime, workload, etc.
As opposed to the additional 4 years of experience someone can get by working rather than going to school. Either way, I'm pretty sure that no where teaches you to type u instead of you. Being able to form a proper sentence would be a good start as well.
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
The best coders I know didn't go to college, at all.
"Study your math, kids. Key to the universe." -The Archangel Gabriel
Seriously, those aren't questions in the summary. It's a bunch of statements. When you frame your "questions" the way the summary did, there's not a whole lot for anyone to say. There's nothing else for me to say except to refute the basic premise of what the summary laid out.
I went to a four year college and got my degree in CS. My college is actually very prestigious but for its humanities, economics, and other non-CS related fields. I went there knowing that because I wasn't sure what I wanted to do when I started college. With that said, I did studied a lot of humanities and non-CS subjects because they interested me and my college encouraged me to explore. Nonetheless, I did study computer science rigorously, especially in the more theoretical areas such as graph algorithms and triangulation/localization algorithms. The way the summary is written, it made it sound like people like me don't know what a big-O notation means or what a pointer is. That's really unfair. If someone mistreats you because of your two year degree, the right approach isn't to denigrate people with four year degrees.
I've been in the industry for a while. The times when the degree matters is when the recruiter go searching for candidates. They search for skill sets but also for specific groups of schools when hiring interns or new college grads. Why? It's based on the perception that those who go to prestigious schools tend to be fairly intelligent because the schools themselves do a good job of weeding out bad students. It doesn't mean all students from those schools are good nor does it mean people who go to two year schools are bad. You have to think of it in terms of probability and inference. With that said, schools pay a role mostly when hiring for NCGs and interns. For experienced candidates, we usually don't even bother look at that. In fact, most candidates put that information last on their resume and we glance at it at most. The most important part is the ability to solve problems and write good code.
BTW, the article itself is pretty horrible. It doesn't even say anything of value. It's just a bunch of guys arguing and being judgmental. Grow up.
EvilCON - Made Famous by
Isn't being a four-year grad about having gone to college for four years, not the piece of paper on the wall? Like you said, they study other things like history and sociology.
I'm a college computer science professor at a 4-year liberal arts school, so there's my bias, but in my experience, it's the difference between knowing how a tool works and how the science behind a tool works. If the tool breaks, or isn't right for the job, a background in algorithmic theory, software engineering, maths, perhaps graphics, and yes, programming languages (as in, how to build a compiler, not how to compile Ruby) is what makes the difference between someone who knows how to do their job, and someone who knows how to do their job by google-cut-and-pasting code.
I hate to say it like this, but the majority of students coming from 2-year schools simply aren't as prepared as their colleagues in the four-year universities. It's not just about the other education that comes with liberal arts schools... it's because you do 4 years of study in computer science... you just formally learn fundamentally different things at deeper levels by more qualified people. (Our department has 12 PhDs in a staff of 12 versus 1 guy with an MS at the local vocational college.)
Add to that 4 years of maths (which we require) 3 years of physics/chemistry (which we require), one full year of software engineering (which we require) and oh yeah, the history of world literature, studies of music, art, and history, etc. and what you get - grade for grade - is a better applicant.
-Clio
Edit: For him, it was important to have someone who could code and also write coherent sentences and speak somewhat intelligently with people who might be inclined to invest in the company.
Jeez, talk about an ironic lapse in grammar.
. Penguins Surely Ca
[1] once observed: the best way to select a candidate is to throw all the CVs (american: resumes) into the air. The one(s) that stick to the ceiling get hired. After all we want "lucky" people working here.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
This is the kind of story that will bring out the worst in Slashdot. It has it all:
Slashdot, what the hell happened to you? You used to be interesting and hot, but you gained 400 lbs and started smoking crack. You've really let yourself go. I don't think I can do this anymore. It's hard to say, but I don't love you anymore.
I loved programming since a very young age and did it on paper before even having access to a computer, so when I applied to a few universities it was only because it probably was expected that I should do so. By the end of the first year I got a job putting bills online for a telco site, just a bit over minimum wage, but I only was able to land that position because I was at the university (there were about 60 people trying to get that position and the reason I got it was only because I came to the interview with a magazine, sharing my excitement over some new development in an Intel CPU with the interviewer).
Now I gave some thought - did it really matter, going to a university, would it have been different if I just took vocational training? The answer is yes. It was a correct decision going with a university even though it was so expensive (I paid for all tuition, living, books myself by working all the way through the 5 years, which I did instead of 4, because I decided to go slower but around the year, summer and all.)
It was better for me - I was already able to code in more than one language, I built my own software similar to lotus/excel without ever even seeing something like that before in my life. Built games, word processors, tools, drivers etc. for myself just because it was interesting. So from point of view of a trade I could do it without any further training.
However the university gave me something I didn't have: 1. Doing things I didn't like anyway while under stress (all of those extra courses that TFA is complaining about). 2. Finding out about the math of the subject, which I would not have otherwise done myself, because it's not that crazy fun (for me at least), but since I had to pay for my education I had no choice but to do what was needed or lose the money with nothing to show for it. 3. I got myself 2 educations to get the B.Sc. , a major and a minor, and my minor was actually interesting to me as well - astronomy. 4. I was forced to study all by myself, while my university has a good enough reputation, it's not a school where you are just given stuff to do and you are good as long as you do it. There we had to push ourselves, the profs really hated teaching and most were terrible at it, while the exams were a bitch.
It was worth it, would do again if given a choice but would definitely change a few things, like not trying to overload myself that much in the first year, there should be time for some fun while doing all that.
You can't handle the truth.
Someone already covered algorithms, and that is an important aspect. I've run into a lot of coders that didn't really understand why you would use a hash table over other forms of storage for instance...
But another important factor is that someone who has gone through a traditional four-year degree has had to write a number of papers on different topics, hopefully learning in the process to communicate ideas better. Communication is really the crucial factor for working within companies, because you are dealing with so many people that don't understand the technically stuff fully and the better you are able to clearly communicate the implications of complex technical choices the better off everyone is.
A degree is something that helps you get a job right out of college because of the likelihood that you can communicate well, as you progress interviewers take much more into account what kinds of projects you have worked on (not even necessarily where you have worked). But again being able to communicate well is a key factor not because they know you can or are looking for that directly, but because it helps *YOU* describe what you have done succinctly, in understandable terms, and highlighting what you want to get across about your areas of expertise. Someone better at writing and getting ideas across will naturally have an edge in seeking jobs.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
'Cuz the first thing a company does upon being formed is hire people for the personnel department...who have four-year degrees, at least.
They don't know squat about what is happening in the company's core business, which feeds their own insecurity and drives them to set a minimum standard - the four-year degree - that they can relate to because it reinforces their own value.
Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
People who have a university degree are generally more likely to be smarter and more skilled. No, it's not a guarantee; there are plenty of stupid people with degrees out there and there are plenty of really smart people out there without degrees. But what is a guarantee is that if you get a roomful of people with degrees and compare their skill and ability to a roomful of people without degrees, all other things being equal, the people with degress will do a better job.
Also, keep in mind that rare is the job that is only about coding. When I was a developer, my job also entailed things such as writing documentation, holding training sessions for other developers and users, basic accounting and budgeting, and so on. Non-coding things I learned in college while earning my degree are useful skills that I do use today, not just how to write some subroutine. Yes, even social skills you seem to have disdain for come in useful, because I actually work with other people, not just holed up with a computer.
Persistence is a skill. By completing your degree, you have demonstrated that you are willing and able to achieve success with long-term projects, including handling things that, at the time, you might not be overjoyed in having to do. You've also demonstrated the ability to learn new things to at least some minimal degree (no pun intended) of competence that might be outside of your familiar bubble of knowledge.
A college degree doesn't just demonstrate what you've learned, it demonstrates the ability to learn. If I'm hiring someone, I certainly want them to be able to do the job I hire them for, but I also want them to be able to quickly and effectively pick up new things that I might have to throw at them someday.
I'm not saying that a college degree is the most important factor in hiring. Personally, I'll value experience any day. Given a choice between hiring a 10-year veteran of something versus someone who has only been doing it a year or two, I'll take the veteran any day no matter who has a college degree. But a college degree is important. If experience is more-or-less equal, I'd take the college graduate over the non-graduate every time.
So, I finished college knowing almost nothing that I need for my present job (above basic programming). How am I able do things that on the job that I didn't learn in school? It's almost as if I somehow learned things outside of school...
I think any developer learns a lot on the job. The guy with the prestigious degree even more-so. CS degrees usually give you more theory than anything. The stuff you actually use on the job, is usually learned on the job.
Oh, and I barely took any non-technical classes. But I learned to be a slightly better writer by debating people one the Internet, using social media, and needing to use written communication at work. My knowledge of world events, social sciences and the like is also superior to about 90% of people who have liberal arts degrees. This is because I read books, look things up on the Internet, and pay attention to the news.
Democracy Now! - your daily, uncensored, corporate-free
"Did you take Data Structures?" if the answer is yes then we're cool.
[signature]
I am a lead programmer for a marketing company and we have had many 2 and 4 year temps come through our company. I can tell you from experience that all of the 2 year programming college grads were always running into problems, causing more bugs, and needed more guidance than the 4 year computer science grads. At least all of the ones we have had never took a data structures and algorithms class.. they learned a little of that within their specialized curriculum but none of it stuck so any time they would have to do anything outside of the box, they would get confused and would need their hand held through the process. I ended up building a test to weed out the many bad programmers.
This is perhaps an isolated experience due to the local 2 year programming colleges in this area.. I have actually written letters to their universities stating that they need to rethink their curriculum as their students are not ready for real programming jobs once they have graduated.
It's mostly the lack of mathematics. Even the 4-year programs at places like ITT-Tech & Devry are incredibly lacking in math. And with Devry (for example) available at the "bargain" price of $330/credit-hour -- the appearance that you bought your degree because you couldn't handle earning a university degree is a bit difficult to overlook.
I'm a blue collar developer but I had some CS in college pursuing a degree in English. Somehow I managed to BS my way into a graduate class on computing theory which I have to say was the most valuable education I've gotten in my life. Even if you do not get a degree, you will be richly rewarded if you make an effort to educate yourself.
I would recommend:
a) learn classic data structures. learn binary trees, learn hash tables. throw away the pre-built collections you get and try building them yourself. You'll gain a better appreciation of what your libraries do and a real sense of which might be appropriate.
b) learn some formal information theory. Learn what Big O notation means and understand the difference between O(1) O(n) O(logN), and so on. If you want to be a real snob, try and learn some set theory, at least relational algebra, and then you'll really get a grip on how to use a relational database effectively, and understand why things are the way they are.
c) I would highly recommend dabbling in assembly language. Writing snippets of code in assembly language is not that hard. You just have to be organized about what you do and keep track of things yourself.
d) If you want to get into it a bit more, it would not hurt to read Turing's classic paper where he defines the Turing machine. The thing about Turing and indeed, a lot of the foundational papers by the greats in computer science, is that they are remarkably readable.
e) Have a crack at an NP complete problem, just write a code to solve one, then ask yourself why, it is so ridiculous, and then read up on that.
f) Try and do a little bit with fractals. Write a mandelbrot set generator... Everyone does it.
All of those things are great things for any developer to do. Indeed, whether you finish college or not, your education in computer science should be a lifelong thing. Like any field, challenging yourself with problems solved and unsolved will not only make you a better programmer, but also, to some degree, a better human being. Your formal training is only the beginning of your obligation to educate yourself, lifelong.
This is my sig.
In my limited decades of experience, the diploma gets you in the door for an interview. The perspective employer has an idea of what sort of person he wants and what qualifications are needed for that job at hand. He also has limited time and money to hunt for applicants, and thus leverages the secondary education process to act as a filter for him.
There are still a lot of old-school companies that require degrees because they always have, not because it's smart. There's also a lot of degreed folks who aren't qualified to pet my dog. But in general using the established education system to act as a filter works pretty well. Blindly using it also filters out lots of qualified individuals that got their qualifications in a less traditional way. But those folks may not be best served by working for an "old-school" company in the first place. So this blind school based filtering actually does them a favor as well in some cases.
I am a PhD research scientist not a coder, but I do a LOT of coding in my research (that's why I love this place). I see the same phenomenon when hiring new scientists and engineers. It's not just the IT world.
Sheldon
So I wanted to find out more about this author....
Eric Spiegel is CEO and co-founder of XTS, which provides software for planning, managing and auditing Citrix and other virtualization platforms.
This web site at www.xtsinc.com has been reported as an attack site and has been blocked based on your security preferences.
CLASSIC, so much for "smarter white collared developers" ;)
But I digress...
Look, plain and simple, in the field of software development, education means NOTHING. Why you ask? because unlike true engineering, there are no globally studied curriculums. Now, you may argue about this all you want, but these are facts. CS programs vary so wildly, it's amazing.
Secondly, since most developers don't do any actually engineering, those core CS principles rarely come to play.
That being said, what matters is the individual. There are huge differences from people that went to a tech school 'cause it was cool, someone that went to a top tier school, someone that dropped out ( for any of the reasons ), someone that went to a mediocre schoo, and someone that skipped college and just wanted to speed up their career.
But usually, those differences boil down more so to "candidate pools", and who they "mostly attract".
The good developers, come from all walks. They are the people that go beyond the taught knowledge ( wherever this knowledge may have come from ), and actually understand things from a raw, as close to true engineering perspective as possible, view.
But what do i know, I'm one of those that went to a top tier ivy, EE btw, and then decided to leave on his third year because it was too boring.
Are You a Blue-Collar Or White-Collar Developer?
It depends on what I feel like wearing that day, I guess.
After doing an art course BTEC I went on to uni to a Virtual Reality course. It was a joke, mostly really a web site design course. We had a "professional" 3d animator, who didn't know what IK or skinning was. The software we were to use couldn't do shading and texturing at the same time, and was really really slow. They were paying top dollar for OpenGL cards that just weren't as fast as much cheaper gaming cards. After the first year, over the summer I wrote a software 3D engine on my old computer, when I went back I just couldn't relate to the tutors or students. I dropped out, spent 6 months moving myself to Windows and OpenGL, and then got a job programming, speeding up a start ups 3D engine. Not looked back for 9 years, until recently, I can see without a degree to my name there is a glass ceiling. But with kid on the way and getting a bit to old to be a whiz kid anymore, even if I could stomach it, going to uni isn't an option. I've not found any quick path course for someone like me. Did some maths with the Open University, but it was easy and I struggled to force myself to complete it (though I did and got 91%). I never stopped teaching myself, got into OSs and Linux in the last few years and am just about to finish Lions Unix Commentary (a master piece!). I have worked with many who do have degrees, some are good, some are crap, I seen one guy who was a CS doctor and was crap, but I think I'm stuck with out this bit of paper.
I had computers as a hobby for many years, starting out with FreeBSD 2.2.8 when I was in 8th grade and teaching myself C and dabbling in a few other things as well. I'm 25 and have a legitimate 5-digit ID, not that it means much other than I got started with being a nerd at an early age for some reason signed up for Slashdot. I thought I was going to be a Comp Sci major, but then I quit and studied English and Classical History instead.
I still kept up with Unix-y things, and futzing around with Perl and stuff like that, and after an endless string of half-ass pseudo-success after college while trying to do the "english major" thing, I bit the bullet and got back into computers. I've been employed for the last year and change as a Linux admin at a web hosting company, and just got a new job that I start next month where I'll probably have to write the occasional C code again, too.
Now, I think I'm a reasonably competent programmer -- definitely more so than one would expect from a liberal arts major, but I'm definitely not a computer scientists. I'll read algorthims books and study stuff on my own, but I think I lack the degree of comprehension that someone who had it drilled and tested in a formal environment would. I'm not a great programmer, but I can hold my own in the certain realms in which I need to write code, but computers are also not my entire life.
Most tech school people I have met are really only interested in computers and doing computer stuff. They're the ones that throw the memes around and use terms like "lulz," and as long as they do their job, I don't really care. But those I know who studied computer science are more likely to be able to talk with me about non-computer things, and I really appreciate that. I make my living in technology, but my hobbies and interests are wide-ranging, and I don't always just want to talk about computers. I also find that the university-trained computer scientists are more likely to be able to explain WHY they are doing what they're doing, why they made the design choices they did, and in general have a better understanding of the whole system rather than just doing things "they way they were taught" whether its the best or not.
Of course, I realize this is all just anecdote and not just data, and I'm probably going to piss some people off by saying, however I will stand behind the notion that university-trained computer scientists are going to be easier and more fun to deal with than someone with a more myopic view of their "trade."
Also, if you really want to get at why those with a 4-year degree from a "real" school get offered more and are picked first, its probably because those are the degrees that management understands, whether they understand the subject matter or not. Management typically has a 4-year degree from a real school, and so they'd rather hire people with a piece of paper they "get" the value of. Perhaps its an economic or educational prejudice, but such is life.
who doesn't have a liberal arts education, including all the sociology and other "useless" classes cannot possibly understand the tremendous value of a liberal arts education.
Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
Real developers have to work with teams that are not native English speakers. It would be completely unacceptable to have such an arrogant attitude because your Chinese or French coworkers have inferior communication skills in English. If you worked for me, I would probably personally escort you out the front door.
Communicating despite language barriers is an important skill. Certainly those on a team that can write clearly and concisely in English are valuable, and generally find it easier to move up in the ranks because they can become more visible to management with such skills. But being an irritating twerp about it is a quick way to find yourself talking with HR.
“Common sense is not so common.” — Voltaire
At least roughly,
And what their work means for your programs?
If not, perhaps you need some "book larnin'"
before rolling up your sleeves and hitting
the keyboard.
Where are we going and why are we in a handbasket?
No offense is intended here, but there are - in general - significant differences between "blue collar" and "white collar" software and systems people.
/., respondents often say "proof of persistence", "better grammar", any number of other reasons to reward more highly educated software people with higher salaries. Some simple rules of economics hold; there are fewer people with BA/BS degrees than there are without; there are fewer people with Master's in any field of employ than there are people with BA/BS degrees; etc.
With respect to pay, the short answer and significant oversimplification: BA/BS | Master's | Doctorate means the holder can command a higher salary than those with a lesser degree in the job market in general.
In debates such as this, when they've arisen on
Positions that call for additional responsibility/skill may often allow an applicant to substitute "years of experience" for an advanced degree - for the same reason - there are fewer people in the potential pool with XX years of experience than there are people in the pool with 2 years of experience.
Beyond this most basic reason (supply and demand), over 20 years in software and systems design, I have seen significant differences in abstract thinking, strategic design, forecasting & preparation, etc. between more highly educated people and those who liked school "not so much". Like anything else worth anything, you get out of your career what you put in. Education is a significant input that differentiates some candidates from the great hordes.
If the Government becomes a lawbreaker, it breeds contempt for law;
Generalizations. The last bastion of the idiot.
Maybe we should worry about individuals instead of trying to create artificial categories for people that we never even met.
“Common sense is not so common.” — Voltaire
There's also a large difference between, say, the typical "college graduate" and good graduate schools too.
And in grad school there's the difference between a terminal masters and somebody who either did---or could have done---the PhD program. Past 1st year, graduate school is entirely different from undergraduate learning. The textbooks aren't the maximum to be known, they are the base of exploration. Grad students learn 95% by their own working and experience embedded in an environment (one hopes) of maximum intelligence and achievement.
If I ever meet a person with DeVry / ITT / etc. "credentials" who has done any of the following:
(a) designed fully decentralized, distributed, scalable, robust, real-time systems and successfully implemented and deployed said systems in the real world
(b) built a compiler from the tokenizer up and understands every step of how code gets turned into bits and how those bits get executed on modern hardware
(c) had an opportunity to use Tarjan's disjoint union / find algorithms and can explain where those data structures / algorithms are appropriate
I'd be interested in hiring him/her. The problem is that I have yet to meet such a person, because DeVry / ITT / etc. are degree mills whose sole purpose is to get as many people to cross the lowest possible bar that could pass accreditation -- i.e. turn a profit. As a consequence, the DeVry / ITT / etc. grads that I've had the "pleasure" of working with all have very narrow and shallow areas of competency and essentially zero ability to work outside those areas. The benefit of a four year degree is that in spite of all the fluff:
(a) you have a far better opportunity to actually cover the full breadth of theory
(b) there is enough time to mature enough intellectually to start to grok the zen nature of the theory
(c) you can't really choose between theory and practice; you have to demonstrate a degree of proficiency in both
People without at least a 4 year degree have often big holes in their education. They may not, but it is hard to find these holes at the job interview. You can't ask "What do you not know"
So:
Coders with good track record without a 4y degree might perform just fine. One benefit is that with a good salary, it is easy to keep them, as it is harder for them to find a similar paying job.
Witha 4 y. degree from a top school, they will have no holes, and also a great attitude and capacity for work. It is easy for them to leave for a new job. Same degree, and not top school, they have the same skillset, but are often less competitive and goal oriented.
A masters degree usually add little, but may solve a specific skillset your team needs for the next 3 month, like some algorithm.
A Ph.D. proves you can work under some demanding professor for many years and complete menial and often complicated work with little reward. So this adds little to code quality and volume but they do however seem to be able/willing to accept more complicated/boring/laborious tasks, and come out on the other side with it done.
So for the future coder: Get a 4 year degree from a top school, and complete a masters degree if you really like something marketable. If you don't get into that top school, use the time to build a superb resume instead.
don't cut it off www.mgmbill.org
Apologies for this karma burner, but since you are at gatech I need to know: does she still stink like a guys' underarm ? Does she still refuse to use deodorant ?
I won't say more. If you know who I am talking about you may wish to drop a word. Otherwise forget it.
During 2003, when the whole dot com bubble bursting thing was going on, I was out of work. I'd been out of work for about 4 months, when I got a telephone interview request for a major online company that offers last minute deals.
I took the interview and talked to the hiring manager about all my experience, etc. I also spoke with the team lead and another developer, who all seemed very impressed with what I had done (I had previously worked for nearly 3 years at a retail bank). They asked me if I could come up to London the next day for a face to face interview, and for what would be the final round.
Great, eh? Pleased, I said I would see them the next day at 2pm. About 5 minutes after ending the call, the hiring manager called me back. He had one question for me.
"Sorry, Stephen, but could you tell me what degree you got?"
I told him I received a pass in Environmental Biology.
"Oh," he said. "Well, we're really looking for someone with a degree in computer science."
I was stunned. After answering all their question perfectly, THAT was the issue?!!
"So, you don't want me to come up tomorrow?" I said.
"No, sorry," he replied, and hung up.
THE HONOUR OF THE KNIGHTS - CC Licensed Sci-Fi Novel
I am about as blue collar a developer as you can get.
Before I got into IT, I was a dock worker, a baker and a truck driver.
I supported myself driving a truck while I took a one year "Computer Programmer" course.
The differences in education are pronounced in junior developers, but by the time you get to intermediate and senior levels, where you went to school becomes far less important than how dedicated you are to your craft and improving your skills.
Pair programming, code reviews, and just generally working with people who are much better programmers / smarter people / better educated than I am has taught me far more than any courses I ever took.
Is there a stigma attached to my educational background? Sometimes, but not often. Mainly people care about your accomplishments and related experience often trumps education in a job search.
There is certainly something to be said for getting paid to learn on the job as opposed to paying to sit in a classroom.
So why is there a stigma attached to not having a four-year degree? Why does [any] industry keep emphasizing this difference — and generally giving better pay to four-year grads?"
I believe this result is not about blue-collar vs white collar, nor more education vs less education. I believe this is about a person's ability to understand and use circumstances that are not specifically related to the exact task at hand. In the case of a software developer or a hardware engineer, those with the best coding skills or engineering skills may not be fully understanding of the true needs of the product owner, product user, or project manager (which are often poorly presented, and require interpretation). I think that those who have a more encompassing education also generally have more exposure to the rest of the world, which can impact the project at hand. Therefore they are more likely to recognize and react to things that affect the project than those who are more purely focused on the details of the work at hand. This has value in the real world, and I think this may be why those types of people are generally more highly paid.
- James
In my experience if management is poor and doesn't know how to hire good developers then it doesn't matter if they have a degree or not. A degree doesn't necessarily mean anything but when you put weight into that and only that then you're just as likely to end up with awful developers as someone who wants to only hire those with no degrees (if there is such a thing).
A decent talk between knowledgeable employees and potential candidates can filter out the crap. Decent testing helps too. If they know they stuff I don't really care if they learned it off the back of cereal box or not.
What I find most entertaining are those jobs that specify that you have a degree from a certain university. They're clearly limiting themselves quite a bit and it clearly stinks of elitism over actual decent candidates. Even if they would give me a job I wouldn't take it. The other developers may be good but there is a very good chance the management will suck ass.
I would qualify as a blue collar programmer. I have a 4 year degree in theater and dance. Of course, I know how to produce a theatrical production from end to end and worked on every aspect and actually that's been very useful in programming. The ability to break down a project into pieces and get them all done is very important if you're going to be working in startup environments. If you're going to go work for a fortune 50 you might be able to just mindlessly work on a single dialog box for years, never really knowing how it fits into the larger project.
But I get hired as a white collar programmer and we often debate whether a degree is the sign of someone good or someone you want to avoid. There are just as many sloppy CS majors who don't really care about programming and don't "get it". At the end of the day I tend towards people who have projects they work on outside of work, as that shows me they're passionate enough about programming to enjoy it in their free time.
I can fix a lack of education. I can't fix a lack of enthusiasm.
Is it really fair to compare people who went to universities to people who went to vocational college to focus on writing great software? Wouldn't it be better to compare them to people who went to vocational college to write regular software?
Of course, I don't know exactly what is taught at a vocational college, but my guess is that it revolves more around programming than computer science, and that is the difference. If you know how to program, and you know all about the standard libraries, than you can accomplish quite a lot. However, what you don't cover in a CS program is likely going to be picked up quickly on the job, while the theoretical underpinnings of a good CS degree will not just be picked up by someone who doesn't already have them.
Depending on the job, it might not make a difference at all. If you don't need fancy algorithms and data structures, if you're not doing OS coding, if everything is straight forward to implement, or if you never have to do anything that isn't already well covered by standard libraries, then going to a vocational school is probably great preparation. However, if that's not the case, then there are things you need to learn (either in or out of school).
It really does depend on the job, though. A man who knows how to design cogs and create vast machines of his own with them isn't going to have an advantage over a man who can just put cogs together following a diagram if the job is as part of an assembly line. So I would say, there are blue collar programming gigs, and there are white collar ones. For a blue collar one, either education level works fine, and are perhaps equivalent. For a white collar one, that's no longer the case.
I believe, after 53 years in this industry, you're likely asking the wrong question.
I learned programming BEFORE there were schools of any kind, but my mentors, Bill Orchard-Hays was a mathemetician, and Eli Hellerman had his Bachelor's in Statistics, and a Masters in Conducting. Jack Moshman was a world-leading Operation Research Ph.D. These kinds of people were able to imagine things others couldn't, were able to see past appearances to find nuggets of real underlying value.
The first issue is, what do you want to do? As someone wrote, if you just want to be a "code monkey," you need about the level of skills of a "shade tree mechanic." If you want to be considered someone people look up to (and handsomely reward), however, you need to be well-read, especially in abstract thought (history, music theory, etc.).
In my own case, I started in electronics in 1956, learned programmin in 1962-3, and was one of the few people who could both draw a (workable) schematic and write (credible) code. It gave me a distinct "leg up" over my peers who were limited to one or the other. I never had the benefit of college/university, but I've taught at several, all because I have been a student all my life. I'm STILL learning, at 67 years. Along the way, my reputation was such that I billed myself (before semi-retiring) at more than $2,000/day (back when that was real money!).
The executives who hired me couldn't care if I had a "sheepskin" or three noses. What they cared about was that I had accumulated 40 years' experience, not two year's experience twenty times over. That's where most of my peers were: They were enamored of their homes, their cars, their sports, but they were NOT engaged in permanent, perpetual learning. Personally, I'm only comfortable when presented with what I perceive as a problem that is 105% of my self-perceived capacity.
So, focus on how much value you can add to your employer (or client), and build on that. Take the dirty jobs nobody else wants...and excel at making them outstanding successes. Heck, in 1963 I was a "programmer's aide," (paid lower than the department's secretary!) and by 1965 I was Chief Programmer in charge of the Beverly Hills office of the (then) world's largest "Contract Programming and Service Bureau" firm. They didn't care about credentials, they were focused on billable results.
Best of luck, but never rest on your laurels or your diploma(s). Always seek to excel, aim toward perfection (while unachievable, it's the only target worth aiming at), and understand how your BOSS gets measured, and contribute to THAT.
Personally, when I'm hiring, I'm looking for the right attitude and personal philosophy. I can teach any high school grad to program, but I can't instill them with a "can do" attitude, a willingness to take on the unpalatable jobs that still need to be done, the unquenchable thrist for learning. So, I hire for what I need (that attitude), and fill in the blanks over time.
Best of luck!
As would realising that nowhere is one word.
How much you get paid depends on your reputation. And a good school (+a good GPA) gives you a head start on that, since the assumption is that if you showed good academic performance you, at the very least, won't be as dumb as a door knob.
The degree ceases to matter about 2-3 years into your career if you do a good job. Thing is, those with a degree get further ahead and build stronger reputation. 10 years in you look at your code and scratch your forehead wondering: "It looks about as good as 10 years ago, why the heck am I paid 3-4 times as much?" And the answer is, experience and reputation. Businesses will pay dearly for a good track record.
This is not to say that reputation is the only benefit that you get from school. In anything but the most mundane of work you will need to know quite a bit from those CS classes you've taken. If you're finding yourself not needing anything at all from your educational background, then perhaps you should try to advance in your career and do things a brain damaged monkey in Elbonia can't do.
And it's not what you know either. Hopefully, if you have a college degree, you have been trained in the scientific method, and how to analyze problems rationally. The people I have worked with who didn't go to university tend to be the ones who just randomly spew code or swap out patch panel cables until something works.
It's not just tech, it's everything. Who are the offshore workers replacing Americans and Europeans? Indians and Chinese with *university degrees in science and engineering*, that's who.
Give a man a fish and you have fed him for today. Teach a man to fish, and he'll say "WHERE'S MY FISH, YOU IDIOT?"
Isn't this the age old argument between technicians and scientists? Before computers people argued why engineers with bachelors degrees were more qualified than technicians who learned the same technical material.
Compensation and position is often linked to hiring and pay standards within companies. Many companies base pay on level of education independent of the actual value the individual provides. I am guessing that these standards are developed based on industry statistics that demonstrate a relationship between education and performance. This is likely why certain schools are in higher demand than others.
Yes, there are exceptions and I imagine that many companies have other criteria for compensating individuals who demonstrate performance, but companies usually develop pay standards based on experience.
Disclaimer: I'm a CS major in the engineering school of an Ivy.
Look, computer science has nothing to do with programming. It's about taking a problem and coming up with a series of steps to solve it. Taking that mental representation of an algorithm and turning it into code is the least of your troubles.
In a tech school, I imagine that's not really the focus. Someone can be a great codemonkey coming from a technical school, but I'm not so sure that they could reliably come up with an elegant, efficient algorithm to do most anything - and more importantly, understand why.
Plus, at a university, you have the opportunity to expand yourself as a person by learning other things - which helps in any job. For example, I'm taking a (required) writing seminar that's basically about rhetoric. It's the first (and likely) only rhetorical training I'll ever receive, and I'm extremely glad I'm doing it.
Computer science is (I think) like other engineering. A computer scientist is like a structural engineer building a bridge - he might not actually build the bridge himself, but he'll figure out how to build each piece and makes sure it'll all fit together. The guys actually building the bridge (welders, crane operators, etc) are still skilled, but mostly following a cookbook.
I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
I reject the idea that the quality of a developer is primarily about "training". I want someone who's creative, intelligent, can intuit solutions to complex out-of-the-ordinary problems, has no problem expressing himself verbally and in written communication, etc. If he has the right stuff then he'll figure out the rest on the job.
"I'm an ex-physicist turned finance quant."
Perhaps you should have stopped at physics. Saying you're a quant doesn't exactly inspire confidence.
"Hard problems, whose solution may not even exist."
If there's no solution, it doesn't much matter who works the problem.
Whether a 4-year degree makes one a "better" coder or not is a side issue to the most important question from the work-world perspective: what impression does it give to potential employers? All things being equal, the perception is that having a 4-year degree makes one a better candidate. It's kind of a cover-your-ass step. If the candidate turns out shitty and doesn't have a 4-year degree, then human resources etc. are chewed out for skipping that criteria.
It's the default assumption for hiring programmers, and if you deviate from the default assumptions, you take on the risk of being criticized for that deviating. Whether that's fair or not is moot: it's the psychology of the work-place.
I generally agree with the poster who says it's the effort and energy you put into the work, not so much your base education. If you desire to perfect your art, you will find a way, be it reading, practice, or both. Wise people also know when to ask for help from others in areas they are weak in.
Table-ized A.I.
I didn't even bother with vocational school much less university. I learned programming for $100 in books from Borders.
Within 3 months, I was pulling in $75k a year and now I make a salary that's pushing on a third of a million a year as a contractor, which is better than a lot of "white collar" people make. I have considered leaving development and going into management, such as taking a Director position, which I have been offered a few times. But, I'm not sure I'd be happy in management, so I've yet to act on that notion. And even as a Director, I doubt I'd be able to make much more than $150k a year, which is about the max I could get as an FT coder at most software houses. Which is why I contract... the money is so much better if like me, you are good at keeping the work flowing.
Anyway, it all comes down to what YOU can get someone to pay you.
If you let your level of education dictate the level of salary you make, you just aren't very good at playing the game.
All developers are blue collar. Programming is the IT equivalent of brick laying, it's a trade, not a profession.
Professions have legal status; Doctors, lawyers, accountants have to be certified and approved.
Deleted
There is more to being a developer then being a good coder and as someone who had only partial training, I know the difference.
Knowing the theory doesn't make you a good coder, but not knowing the theory makes being a good developer a lot harder. NOT because you might not have the actual skills, but because you can't talk the talk, although you can walk that walk.
The bee does not how it can fly, it just does. The scientist knows not only how the bee flies, but birds and other insects as well, yet he shall never fly under his own power as long as he lives. Who is greater? The bee or the scientist?
Michael Schumacher is famous for both being a record smashing F1 driver AND not knowing much about cars unlike many of his competitors who despite their better knowledge were slower.
But then again, as said, being a developer is more then pumping out code, you got to be able to communicate what you do to others if you want the big bugs and there the theory helps, it helps in the simplest way because you will share a common set of words.
I have only a partial education but it has helped me to "know" that there is more out there. I might not have the full sets of skills but at least I know there are skills out to be learned, if I need them and that helps.
But yeah, I suppose that this debade will go on forever as us "blue collar" developers can name so many examples of "white collar" developers who ain't worth shit. At least the blue collar has proven himself over the years, many graduates have yet to do that.
That is why any good boss will take diploma's as nothing more then a hint. The proof is in the actual work produced.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
I am not going to argue if college makes you a better coder or not, but I can say, from experience working in multiple states, companies and countries, that I can always tell the difference between a college educated programmer/person and not. Just as many people understand, college exposes you to everything, or at least it should. It is the wise ones that understand how to take that knowledge and apply it to their lives and jobs. Sure you can learn from reading a book, but you can learn a lot more adding in a classroom of fellow peers and a teacher to talk about and explore the topics.
Why does the software industry keep emphasizing this difference -- and generally giving better pay to four-year grads? Isn't being a developer about real skill level, not the piece of paper on the wall?
It has nothing to do with appearance or a piece of paper. It's all about real skill and knowledge. Vocational school kids aren't sufficiently well rounded to understand the fields they may be programming for. AI programmers are often expected to take epistemology or some neurobiology. CS students are almost always required to take a lot of hard science and mathematics courses.
Because with a 2 year vocational degree, your basing your worth based only on your vocational skills. The unquantifiable benefits (your results may vary) of college include but are not limited to: a) collaboration with others b) social engagement c) research d) conflict resolution, etc. Sure you get these skills in high school and you can get them anywhere else. However, the fact that you got into a 4 year college (and I'm talking about any top 50 ranked colleges, pick your list) provides a somewhat coarse but useful aptitude assessment as to your abilities.
I associate the difference between having your work done in the US or outsourcing it to India. Sure, they have coders there and some are really damn good. But somehow things just don't turn out the same/as well as something programmed by the people I hire here (and pay an arm and a leg for). They can do the grunt work great but wow have you seen some of the interfaces or design logic they produce?
Slashdot, what the hell happened to you? You used to be interesting and hot, but you gained 400 lbs and started smoking crack. You've really let yourself go.
Dear ex-slashdot-loving geek. I gained 20lbs tops, and I've always smoked crack. You just sobered up. I don't care if you love me or not, as long as we can boink.
These posts express my own personal views, not those of my employer
I think blue collar and white collar is a poor analogy in some ways but I'll use these labels as the article has.
It's not a perfect system. There are some wonderful blue collar developers out there and there are some crappy white collar developers. This is like any other situation where you're trying to sift through garbage to find gold, and yes most developers of either type are garbage as it's a young chaotic discipline that is poorly practiced. The task is monumental and you need to take any statistical boost you can to lower your odds of failure. So managers use things like 4 year degrees and certification, and world of mouth and interview and 100 other things into account trying to limit the field. Does that mean they throw away some great candidates or underpay/value others yes but it's the only strategy they believe is available to them given the amount of garbage out there? Sure. I would in fact argue that our selection techniques are so inadequate that most places ensure they're going to have below average IT because it is about limiting risk of failure in most places. Additionally since most developers are crap you're getting below average developers from a pool who's average sucks (even the really smart ones have so many issues such as being arrogant about their ideas, being socially inept with the customer, not wanting to consider time and money as part of technical decisions, believing if they didn't invent it it's useless, etc)
That said, I do think that the GOOD 4 year degree does serve one important function in CS. It teaches how to think at a conceptual level about problems rather than just coding/programming where as training generally just teaches you the mechanics. Hence hiring good developers with a classical style education has it's benefits in that it increases your odds of finding a conceptually talented person who may one day serve as an architect or senior developer. None of this says a person who doesn't have a classical education can't do this just that fewer do.
Our field is not the first to have many of these questions asked and it won't be the last. It's the classical difference between education and training. Education is supposed to teach you how to think while training is supposed to teach you what to do (or think). Our education is broken and has become mostly training instead of education unfortunately which leads to the value of an education being lessened and sometimes nonexistent and hence conversations like this arise. That doesn't mean that there isn't some seeds of education still buried in there and that does give the 4 year graduate a statistical advantage across a large sample of them.
So I guess it comes down to the following. Would I use it as a measuring stick on which person to hire into what job? Probably because I can. In the absence of an exceptional candidate (and by definition exception doesn't mean every slashdot member who thinks they are the heir to Donald Knuth) for a job I think requires conceptual level thinking and problem solving I'll take the statistical boost.
On the other hand I don't think I would use it in any way to manage performance of those I had hired. At that point I believe I have far more relevant data related to actual job performance and an unlettered developer who shows he is much better at the conceptual pieces has a much better chance of filling my next open architect role than a lettered developer who is unproductive, bad at conceptual thinking, or just all together useless as a practical matter and the current state of our educational system will ensure I get my fill of those guys too. I'll also get my fill of "I learned it myself and I'm better than those who didn't" cowboys too and they're usually just as bad as the others. In the end you do your best in job hiring but the real place you have leverage is in performance management, training, and culling of folks after the hire and managers who don't understand this are setting themselves up for failure..
Speaking from the perspective of someone who lacks either a two or four year degree in programming, but has spent most of my life learning another trade entirely, I don't see how either degree would be all that impressive, given that your programming skills, much like their byproducts, seem to have an expiration date stamped on them.
Don't you guys get tired of relearning everything every five years? I know I do, and I never had to worry about it until all my tools were replaced by software.
I learned all my programming techniques, and the art of debate, from Slashdot posts.
Fear me.
I don't have a four-year degree, in CS or anything else. Most of my time working as a programmer, I've worked with people, most of whom had degrees (usually CS or math or physics, sometimes something else). There was a time when I was a team lead, and both people working under me had degrees.
I never found it to be a problem for my career, or when interacting with my teammates. Judging by everything that I've seen, the general perception in this industry is that good experience and knowledge always beat formal education.
There isn't much you learn in university that you can't learn by reading books.
I do not fail; I succeed at finding out what does not work.
Give me someone who can understand systems beyond just lines of code on a page. I come from the systems arena. It surprises me the number of CS students, with 4-year degrees, that can't set up a simple web server. I've had the best luck with folks who had a 2 year degree, had worked as a technical grunt for a couple years, and then are going on for a 4-year degree. They tend to have the right combination of experience and motivation. For whatever reason, they seem to enjoy toying around with systems, and when they learn something in the class room they can apply to their job, they're excited.
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
extra 2 years, but the level of person it takes to invest in their future like that. The 4 year colleges provide a different group of people to "run with" and compete against.
I think there's something everyone is missing in this discussion, what's wrong with doing both? Why not go to a 2 year college to learn the basics of programing? Graduates from the 2 year college can then work as a code monkey getting experience while they work on their 4 year degree. It'd be like having an intern for 2, or 3, or 4 years. I haven't looked lately but on the lists of requirements for jobs I've seen is x number of years of experience. Better yet, once someone has transfered to the 4 year college they could also minor in another field, such as finance. Being a programmer with knowledge of finance would be of benefit in the financial arena.
Falcon
Should there be a Law?
Manip has also proven something here. The hallmark of an educated person is someone who can ask the right questions, not only being good at answering them. Soulskill here asked a biased question, something a person who, if he/she is trained in the scientific method should not do. You can make your own conclusions.
Incompetent plumbers create more work for good plumbers down the line. He should be thankful.
Of course it might make cast his vocation in a poor light but people will still need plumbers
A 4 year degree shows you can start a complex, diverse series of tasks and stick with them to completion. People that don't
have degrees are normally the free thinker types that have problems finishing projects.
And if I can...just...manage...to...get it off I might get another job that isn't so dreary.
What percentage of successful books are written by English Majors?
Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.
That Doctor in my handle is a doctorate in computer science.
I'm a decent coder, and I work with those that are better, and by God I work with others that are worse. Those that don't have as much formal training with coding usually can get the job done but often are a little too pragmatic and short-sighted. While those that have a lot of formal training accidentally become architecture astronauts and make things too complicated in the goal of making things simple.
I don't know too many hiring managers that would prefer an egotistical genius over a team player that is willing to make things happen. Code quality, saddly, doesn't matter. In a simple interview or resume it's hard to tell if a person writes good code or bad--even in interviews that look at code. Obfuscated or bad code can look clever and complicated so the author must have been smart since he understood it *cough*. While good clean code looks so simple and obvious that it must not have been a hard problem *uh huh*. A degree says that in theory the candidate has seen a lot of different types of problems and is probably a decent coder.
People value four-year grads primarily because of their demonstrated ability to put up with significant amounts of frustration and injustice without giving up.
Software development isn't a simple trade, where you just do your one skill well and that provides value. In real-world software development, you have to do a lot of communication with people (customers, managers, stakeholders, coworkers, etc), and a wide variety of skills along those lines is critical to your success. And, of course, where ever there are people there is injustice and frustration. You will have plenty of opportunity to get really pissed about ways in which you have been wronged...and if you are unable to retain your composure and find a way to succeed anyway, then you will not have much staying-power as an employee.
There is some value in the education received, sure. In the specific case of software development, the well-exercised ability to solve novel problems is more important than familiarity with specific languages, data structures, techniques etc (as the parent poster said...the stuff you can pick up just by reading a book). Also, one needs some decent social skills (clients spend more time talking to tech support than salesmen, and the manner in which you present problems, solutions, and constructive criticism will have a huge impact on how effective you become at getting projects complete). There is also the issue of being liked by one's co-workers, which has an indisputable impact on team productivity. A vocational school, which tends to be very focused on a specific subset of necessary skills, doesn't necessarily exercise or otherwise help the student to develop such skills.
There is value in being a technology specialist, of course, but only if you are good at marketing your skills as a consultant. If you want a full-time employee position, then you need to have a wider range of skills (outside of your specific technological focus) developed, and you need to be able to adapt to a changing environment in which the skills you suddenly discover you need are different than the ones you already have. To this end, the popular belief that colleges churn out self-motivated learners gives their graduates an edge over vocational school grads (who are thought to be too focused on one specific skill).
There remains the question of whether or not college *actually* provides these benefits. But the market perception is that a college education does, whereas a vocational school does not, precisely because a vocational school is too focused on a subset of the skills a software developer needs.
paid overtime
As an engineer, very few of my compatriots get paid overtime.
I am sure some of the idea of trades making considerable money is the fact that to get one to come to your house is probably 100+ an hour (like a recent plumbing experience), but that perception is a bit off considering its not always steady work for them.
Bring back the old version of slashdot.
I don't have a degree or 2 year certificate or anything. And yet I've been doing software development for the past 30 years. I'll never work as an employee for large companies or governments but then I couldn't stand the culture anyhow. I learned to program at the local college while in high school on punched cards. Programming is a passion.
In my experience, whether one is treated like "blue collar" or "white collar" has more to do with the culture of the organization and less to do with whether the developer has a certain degree or not.
"I can't give you a brain, so I'll give you a degree."
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I am in my later 40s. I have been in "high tech" since the early 1980s.
I do not have a degree.
I built my first computer in the 1970s.
I learned the concepts of computer science from an old navy programmer in high school. (in the late 70s)
When I entered the software industry, computer science was considered a math. In many ways, it is just an expression of a series of non-linear calculus equations, only with a different set of languages to express it.
I wish the industry were heading in a different direction, but stupid people who think a degree means "learning" have infiltrated the profession. Here's the problem: 25 years ago, you had to be smart and know your shit to work in the industry. Smart people understand that learning is a personal process and no piece of paper can substitute for innate curiosity and a drive for learning. It is the stupid people who barely get through college, barely retain anything they've learned, but managed to acquire a diploma, think, like the strawman from the wizard of oz, that they are now smart. It is these people that become the gatekeepers in the industry. It is the childish and oblivious value they put on the meaningless diploma that harms the industry. Smart people who know what they are doing are passed over for frat boys. The more of them there are in the industry, the more the industry will tend to go in that direction.
It should be sobering that most of the most meaningful developments in computer science have come from smart people who never learned anything about computers in school.
When I interview guys from supposedly good technical schools, and ask them how hash tables work or what a "call gate" is, I get a blank look and the response: "Why do I need to know that?" Anyone that has ever uttered that phrase, "why do I need to know that," is an idiot and should not work in any profession that requires knowledge.
When I was younger, computer science was the science of solving problems on actual computers. It is an interesting science as "real" computers have limitations. Understanding the limitations and operation of the computer allowed you to come up with interesting algorithms. The most used algorithms of our time have come from this type of thinking. These days, you'd be hard pressed to find a computer science grad that actually has any sort of clue about how real computers work. They don't understand why there are signed and unsigned integers and think that pointers are "bad."
So, blue collar or white collar? It doesn't matter. The idiots are running the industry. Moronic MBAs are coining buzzword phrases like "AGILE" development, and generally making the software industry a hopeless idiocracy.
Was this in context to the comment or "U" just trying to say something smart ?
Mostly offtopic, why do you guys in the USA have to study history in CS or other scientific courses? There are all those long years of school before university to learn history. Why losing time with that instead of studying something related to CS? I had to study history for 13 years before university. If I didn't know it by then a 6 months course at university would have been useless anyway.
My experience is that employers (here in Australia at least) care less about paper on the wall and more about actual commercial experience. If you dont have at least 2 years commercial experience in whatever technology they are using, so many jobs are unavailable to you.
Where you GET the 2 years commercial experience I have no clue.
This is an over-simplification, but take a look at the cognitive domain of Bloom's Taxonomy. It lays out 6 "levels" of learning: knowledge, comprehension, application, analysis, synthesis, and evaluation. The reason universities require classes like calculus and liberal studies for a computer science degree is they strengthen your abilities in the higher aspects of learning: analysis, synthesis, and evaluation. 2 year degree programs focus primarily on knowledge, comprehension, and application.
Does this mean those with 2 year degrees can't be competent, even exceptional programmers? Not at all. Most day to day programming work doesn't require more than application, with a little into analysis for debugging. Additionally, those with 2 year degrees are often better than university graduates in those areas for a specific toolset, because they've spent more focused effort on it. These are the people we all know with encyclopedic knowledge of APIs. They know every little detail of the standard libraries they use. They know every little compiler quirk along with its workaround. They often code faster than university graduates because they don't have to look as much up.
Ironically, it requires good evaluation skills to see the value of the top three levels of learning. The things you learn in calculus or anthropology don't help much in just applying knowledge of a specific toolset to a specific set of requirements, which is what we spend most of our time doing, but it does help tremendously in the ability to answer questions like, "Would google's new programming language be a better fit than what we're currently using for our next major project?" or "Is this the best way to implement this algorithm?" It's also beneficial when you have to teach yourself a new technology that wasn't covered in school.
Of course, there is significant overlap between the two groups, because schooling is only one factor in one's education, but that's the general difference.
This space intentionally left blank.
often need to be "certified and approved"(usually by government issued license), as well. But most folks wouldn't consider them "professionals", in the sense of doctors or lawyers...
Remember "News for Nerds, Stuff that Matters"? Help make it a reality again! http://soylentnews.org
CS gives out a whole set of skills to analyse and develope code, processes and math. If a boss asked to implement a simple programming language that the user could use within the application-- can your average code monkey handle that? Do you grab someone who balked at calc being a tough concept to grasp? Then do they have the skills to show that it doesnt freak out on legit input?
Sure, there are a bunch of people who cheated-googled their way through CS programs, and some that crammed for tests with zilch retention. And some CS programs that are CS in name only, actually coding trade schools with some required courses to seem a bit more legit. Plenty of all of these out there, a talented code monkey will beat these any day of the week.
Plenty of non-CS degrees do quite a bit of coding, and it works fine. Some long term coders will totally school a CS grad, as practical experience plus talent means that they've assimilated most of the good tricks of the CS side of life, and they have awesome habits like "if (2==x)" rather than "if (x==2)" so the compiler will bite them when they get dumb and use one "=". As most schools wont teach habits.
A legit degree is usefull to a point.
Storm
P.S. You are not a beautiful or unique snowflake, you are the same organic decaying matter as everything else.
I have contemporaries who tell me that beyond C++ 101 you can get through a CS degree without writing any code...
CS must be heading down the same road as engineering curricula, then. It is quite worrying how many modern EE graduates never learn how to use a soldering iron or multimeter, or how many ME grads can't manage to drill and tap a hole...
Remember "News for Nerds, Stuff that Matters"? Help make it a reality again! http://soylentnews.org
More often than not you can't determine absolutely if a difficult problem has a solution. But for real-world development the issue usually isn't the lack of a solution as much as a poorly thought-out problem.
In my experience the workplace is where you learn the most practical things. When I went to school we had an internal debate in one of our classes on whether people or technical skills are more important on the job as a manager.
People skills won hands down because technical skills can be learned on the job. People skills, attitude, and experience is what is required to get the job done.
I just got my bachelors degree in Business last summer and so far it has not helped me in I.T. It did land me a job as a substitute teacher which pays more than minimium wage which is great in this economy but it is not a guaranteed ticket to a middle class lifestyle and career like some here say it is. I have a feeling if I changed my major to computer science it would not help as that degree is not as versatile in the private sector and in a down economy India looks more attractive.
Just because someone knows calculus and can write a few lines of code in Java does not mean that individual knows practical processes and working in very large coding projects with customers and real timelines.
If I had more experience and did not cut back on work to finish my education I probably would be in my field now. Its damned if you do and damned if you don't. Employers like both experience and a degree because it reduces liability when a bad employee is let go. Companies like FedEX require a computer science degree and experience as a cover your ass policy in case of wrongful termination lawsuits.
http://saveie6.com/
(Background - BS in Computer Science). Most non-degree mill CS degrees are about theory. My university had 1 "Software Engineering" program where you had to work as a team (not a required course). Obviously, working as a team in SW Development is very important in practically all projects in the corporate world. Given those 2 statements, no surprise that I learned more what I needed to be successful at my job in my first year of full-time employment that at school (not including the lack of "how to deal with all the business stuff that has nothing to do with real work" course). So, a 4-year degree is no indication of practical success (and in my personal experience) neither is a master's or PHD).
Yet, given all that, my guess would be that if you went to a vocational school, HR may well assume it's because you couldn't get into a "real" college? And given what happened turn of the century - "I have a degree in HTML programming"-types - people probably are wary of applicants without any "proof" of real work. Given that the tools of the trade are so readily available (a computer), there's plenty of people out there who think they can program because of going through a few "program in VB in 30 days". A good technical interview should weed those out, but cheaper to first filter out people who don't even have a degree.
Now, there's plenty of cases where someone has the technical knowledge and no degree and has proved it, but sometimes job requirements are not bendable by the person doing the interviewing.
********************
I object to Intellect without Discipline.
I'm as old as dirt. When I went to college, there weren't any computers available. By the time I got to grad school, colleges were enamored with computers. I actually took a course in BASIC in grad school, something they MAY do in Elementary School today--or not. I learned BASIC via punched cards where ">" was "GT" but, hey! (It was a CDC 6000, same computer as BG used as a teenager.) I thought it was SO COOL!!!! So when the Commodore PET came out I held fire, and when the Trash-80 came out (I loved the wafting plymers of its smell) I just waited, and when the Apple ][ came out, I splurged and by the time I got rid of it, I had spent $7,000 on it with the CP/M card, and all that stuff. And when my boss said, "I think we ought to investigate computers," I humbly suggested an Apple, and she gave me $5,000 to do it. The rest, as they say, is history. I bought one of the first IBM PC's, and by the time I retired, I had purchased several minis and probably on the order of 700 PCs. Also, I might add, I paid my mortgage writing about them for 20 years.
I say this to give background. The point is that when the computer revolution happened, I was there. I lived in it and I loved it, but I was largely self-taught. No one else had a computer at home, and so when our business needed to 'automate,' I was salivating at the head of the line saying "Me! Me! Me!" Who else could they possibly have chosen? Besides, by that time I had learned some Pascal, some dBase, some Fortran and COBOL, not to mention Visicalc. I did the CNE shtick just to try to keep up. And I did. I put in our first Frame Relay Ethernet network, then went to the class to see if I did it right. So that's how I became an IT guy.
But nowadays with the background I had, I could NEVER become an IT person because my industry, when they need an IT person, recruits for one with that amount of knowledge in education. This is simply the maturity of the industry. The same thing happened with electricity, with airplanes, and with any number of fields that simply did not previously exist. They turned from hobbies into professions. Once there was enough background material and a 'recognized body of knowledge' to turn IT into a profession, we folks who learned by doing and pulled ourselves into the field with our bootstraps, and, if I may say, BUILT IT FROM SCRATCH, became outmoded. As someone said, "any profession is a conspiracy against the laity."
I consider myself very lucky to have been able to participate in this field. When I first started there was a computer on one desk: Mine! By the time I retired there were twice as many computers as employees. My work here is done. I am grateful to a lot of people, including BG, for making my career possible. I am now happily retired with no network responsibilities at all, but still addicted to /.
Thank you! Thank you! Thank you! Thank you!
How about a moderation of -1 pedantic.
So... we have a bunch of people who didn't get degrees who are sure that degrees are worthless, a bunch of people who got degrees that are sure that degrees are essential, and a small number of people who cross over with "I wish I had gotten a degree" or "I know some people without degrees that are better than anyone else I know" stories. How enlightening - most people who felt a degree was important stuck out the work to get one, and are either happy with the result or are at least deluding themselves into believing they made the right choice, while most people who didn't think a degree was important didn't get one, and are either happy with the result or are at least deluding themselves into believing they made the right choice. Wow. This article is more about psychology than software development and education.
Does it really matter which one is "better"? This article seems to be about people defending own personal choices and make some assumption about which education prepared them better. The only thing that REALLY matters is what you can actually produce, not your credentials. This is about class conflict, and nothing else.
I'm met college educated morons, non-college educated wizards, and the reverse. As the comedian Ron White says "You can't fix stupid".
AccountKiller
No degree or college or professor or course can make you great programmer. All great coders are self-made -- they learn by reading the code of the best programmers they know and then write the best code they can. Training is irrelevant.
Of course, this is true of all great people, not just programmers.
I think college teaches you better understanding of the world and attempts to make more of an adult of you. We don't raise adults here in the states. Look at what we watch what on TV then ask your self, is this really what an educated person would watch? So, out of high school, sure you can program, do a little math and run a chain up your nose and out your mouth to impress your friends and of course your girl. College at least attempts to let you know that some things are not socially acceptable in the society we bred as the people we call adults. College is worth that little piece of paper if for nothing else than to let you have a more of a responsibility to whom you are. Yes, there are exceptions for everyone, but you are probably not him/her. So with a better education, your code is better. College gives you a head start into being an adult, with adult insight w/o having to age to get the same results.
The college graduate may also have better communication skills and an improved ability to create reports.
There are a lot of bright people out there with 4 year degrees, 2 year degrees, and even no degree period.
But do you want to risk a large amount of money on someone that might flame out on you?
Businesses feel more comfortable putting a big budget on someone who showed they can complete a long term commitment to getting a degree under all the various stresses that most likely occurred during the 4 to 6 years it took them to get the degree (illnesses, dating problems, unfair professors, learning large amounts of material within six weeks, etc.).
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
A developer should develop programs in an optimal manner and produce results according to given specifications. No one really cares it is done with academic skills or not, as long given specifications are met. Academics are often specialists. Non-academics are often better generalists, apply where seems fit. Where academics are more profitable there is a higher demand for academics, if supply is smaller than demand: higher paycheck. Advancement of developer skills don't connote advancement of wealth, political skills do.
Interestingly... I have one. But it's not in computer science. In fact, for a variety of reasons, it turns out that I have never taken a single computer science course in my life. Instead, I ended up with a degree in psychology.
This is not all bad. Here's the thing: In the real world, nothing is all that specialized. So, ability to handle a diverse set of kinds of problems is more useful than specialized training -- especially since, roughly 18-19 years after I graduated, any training I could have had back then would probably be only marginally relevant now. Learning to do research, learning to handle more kinds of input... Those have paid off a lot.
So I don't think it's necessarily unreasonable to think that people who have a particular background (say, a couple more years of school) might typically perform better. I don't know whether it's actually degrees that lead to the difference, or whether it's the difference in skills and experience. Certainly, of the classes I took in college, the ones that have been most useful to me from a career standpoint have mostly been in the social sciences. I learned a lot about interacting with people from a class on persuasion. I learned how to do effective research primarily from a class on Arthurian legends, of all things. In short, the classes that have been having the most effect on how I can get things done have not been the classes you might think would be relevant to what I do for a living now. (Except that the writing classes have paid off a fair bit for, well, writing.)
So, basically... For a lot of careers, I think a vocational school degree is certainly plenty to do the job, as is just happening to know how to do it, but in many cases, I think a broader education will have a big payoff in real ability to get things done, whether or not HR departments care. (And given that I'm mostly employable, it turns out that after you have 10-15 years of experience, no one really cares what your degree was in.)
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
I got a Commodore 64 around 1983, and got a modem soon after. I learned BASIC on it. In 1989, a friend of mine had a dial-in account on a local university's Unix and I began calling that. I always had Unix access since then. I began a job as a Unix Systems Administrator in 1996, at which time I began learning some Perl, and later, some PHP. In 2000, I had a lot of free time and sat down and shored up my C knowledge more than I had already.
In 2006, I went back for my CS degree. I have learned a lot that I had not learned in the proceeding 23 years. I learned C++. Despite all my experience, I had no idea what a constructor was before taking a C++ class. I learned Java, to where I have sent implemented patches to some major free software Java programs. I learned assembly language and programmed in it. I learned computer internals, DeMorgan's Law and how to create a two's complement binary calculator with AND, OR and NOT gates. I learned about big-O notation. One of my teacher's is an old-timer, and he really showed us how recursion and back-tracking could be used on a whole host of programs - it was really impressive how powerful these tools can be on a whole host of problems.
I have interviewed people, and have been interviewed, dozens, maybe hundreds of times. The world is full of programmers and administrators who know the basics of how to code, and only learn minimally when they have the job. Once in a while you meet people who really want to understand everything and almost seem to actually understand everything about what we're doing. Amidst a whole bunch of interviewees they really stand out - if they are somewhat normal and seem like they'd do the work, they're almost a guaranteed hire.
Also, on the other hand, do you want to look at yourself as a wage slave who knows the minimum to get by, or a craftsman who understands his work, even if he happens to be a wage slave? You can get caught in a trap of thinking that spending time learning is only benefiting your boss, but really your bosses will win either way, if you just consider yourself a cog in the machine, they've won in another way. People should take pride in their craftsmanship, even if the management doesn't.
I guess that is your question. And honestly you cannot compare these two. Yes a good computer scientist shall be able to program. He or she might even be a very skilled programmer. But to develop good software you do not need mainly good coders (well they will help) you need a good application design. You also need someone who is good at requirement engineering. No successful big software project nowadays is just coded. They are planned and designed and then implemented. And we use DSLs and generators and other stuff to create the final structure of the software.
So to make it short I use an analogy to build a house, you need an architect, someone who knows what the house is for, and you need people who build it. And therefore coders are for coding and software architects are for planning and designing.
And BTW some theoretical knowledge helps you to improve your coding techniques, because its not only knowledge on a programming language which is required.
For the same reason investment bankers wreck the entire economy by taking unwarranted risks with massive amounts of money, and still get government bailouts and multi-milion bonuses and call it "retaining talent".
Pay does not correlate with skill, talent, or value.
A degree teaches you how to learn, the others schools just teach content. In IT, you want someone who can pick up new things, as the tech is moving quickly.
So why, asks a longtime developer, is there a stigma attached to not having a four-year degree, when 'blue collar' coders might be better trained?
Is there? And are they? I think it depends on what you need a developer for and how your development team works. If your developers are merely coders, who are given a set of specifications and told "make it so!", then you just need somebody who can write code. If you expect more of your people, and want them to go from being just coders to taking on greater responsibility, then it may be a good idea to have somebody with a broader education. Being able to write C code doesn't make you good at guessing the effect a new feature will have on your users; a degree in psychology or sociology might, perhaps.
The other, and perhaps the biggest, benefit you get from an academical education is the training in handling complex issues in a methodical way, as well as potentially a wider outlook on the world, which is something a lot of businesses could benefit from IMO.
okay, i'm going to just state facts about my career, and let you guys draw your own conclusions.
Fact: i am well-experienced in PHP, ASP.net, C/C++, SQL, Html, JavaScript. I can code in Python/Django, I know VB6 and VB.net pretty well. I am coding an MMO, and I use Lua as a scripting language ingame (like WoW). I can even write batch files. I am a programmer from birth basically, coding since as far back as I can remember. Latest is Ruby on Rails, which I am finding really fun; training myself up there to get involved in the job market for Rails.
Fact: I don't have a degree. Just some lameass 1 year college "Computer Science" diploma. It's not highly rated.
Fact: I get turned down by some companies (many) because I don't have a degree. The larger the company, the higher the chance of being turned down due to lack of qualifications. Smaller companies don't seem to care for degrees. Why? Because degrees equate to larger salaries.
Fact: Education institutions are sponsored. Many of them by Microsoft. In my country, a Computer Science Degree leaves you an ASP/Microsoft baby. Because Microsoft sponsors them. True educational freedom comes from learning what you want. Fact: Very few educational institutions are going to teach you Ruby on Rails, for example. Opinion: Degrees are for coding in the corporate ratrace. Self-tutoring is for true hardcore coding ninjas.
don't confuse your education with your certification. It's easy to do, but not that good for your long-term career goals.
John Soward...University of Kentucky
Call me lucky, but I have no paper on the wall.. just lots of experience (and more importantly I have found), a great reputation for quality... both of which you cannot gain in 4 years of college/vocational school. I think that the big fallacy when attempting to discuss these kinds of problems is being caught up in the "market" in one's specific geographic area. What is true with the "Big Cities", is not true for the rest of the world. In fact, areas like the one I live in, have a vacuum of talent. People need coding done and will pay regardless of what's on your wall. It comes down to "Can you do It?","How long will it take?" and "How much will it cost?".
I don't know about other people with 4 year CS degrees, but I took three years of calculus (in addition to numerous other math classes); is the poster suggesting that either vocational schools cram four years of math into a two year program, or that math isn't an important part of computer science? Probably the latter. Which would explain a lot of things I've seen in industry over the years, actually.
--- SER
I don't think employers are really trying to be negative towards programmers with 2 year Associate Degrees or some college and work experience. I think it has a lot more to do with finding a "quick and dirty" measure they can use so the hiring process isn't quite so expensive. Every interview is a chunk of time the interviewer is not being productive for the company. Every test requires devising which eats up a developer's time. If they target 4 year degrees they can be reasonably assured that a potential employee has at least seen the types of programming and logic that may be required in the job. This isn't always a good measure and can seriously cost the company when they accidentally hire the idiot who cheated his way through, but its better than taking a shot in the dark. I should close by saying I fall into the "some college and work experience" group, so I've seen the sometimes infuriating practice of hiring the guys with the 4 year degrees over the ones who have experience doing the job. I never quite finished my 4 year degree because I didn't really care about the electronics behind the operation of the computer. I just wanted to design and build software. Even after 9 years of doing exactly that the stigma can still rear its head on job searches. Not all of us wanted to be Computer Scientists some of us just want to design and/or build software, but only a few colleges have a degree program that allows that kind of thing. They assume if you don't want to be a full fledged Computer Scientist you want to just be a code monkey and that isn't the case. The educators need to realize that software development is getting less and less tied to the hardware and is a separate and wholly different field these days.
When I telecommute they're lucky if I wear pants!
In the real world, persistence multiplied by skill gets stuff done.
I believe the original comment conforms to your observation. Commenter couldn't hack the calculus and eventually didn't let that stop him. He has the skill to be a programmer and was persistent. I am lead to believe your comment is a baseless, judgment on the original comment.
My experience is ...
Blah blah blah. All of what you wrote is universally used by people to reject other people. You don't approve of the fact he couldn't pass calculus and therefore reject the notion he could possibly be the kind of 'great' you fashion yourself to be.
It became apparent quite quickly that they didn't have the fundamental insight and intelligence that we want.
Or, maybe the reason they were interviewed was to have a stack of resumes to meet the perception of attempted diversity. All along, there was never an opportunity for someone outside your org's social comfort zone.
Intolerance and self-selection are legally frowned upon. But your organization culture is how it perpetuates anyway. That's how people work. Look at it this way, I'm on the other extreme. My intolerance and self selection tilts towards the opposite of yours.
You might want to reflect upon your rationalizations though.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
You just made my day. Thank you.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
...says it all.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
...in order to understand it.
Whenever you see a triple-nested for-loop, it is obvious that an increase by one in any of the three dimensions (in any of the controlling variables) will multiply the number of loops that need to be evaluated, and that probably splitting the loop into two loops with double-nesting only, even if there is a bit of increased complexity in it. Hence, he might be able to do some optimization without formally stating that he reduced from O(n) to 2×O(n).
The O() notation is not overstated, of course, it is fundamental to understand. But it is easy to understand without the mathematical formalism underneath. Of course, understanding and applying it are two different things, and being able to see the full picture with the required level of detail is often helped by academic in-depth analysis.
I meant, going from O(n^3) to 2xO(n^2). Grah.
It seems like the author has a biased opinion that learning to program in a vocational school implies a more comprehensive and focused curriculum on computer science. I disagree. I went to a 4 year uni, and although I did take many classes in physics and math, and not *just* programming, I also had four years of rigorous computer science curriculum; so much rigor, that I'm confident I learned more exhaustive CS and programming skills than others I've worked with from vocational schools have learned. But nonetheless, I agree with the author, that the skills should speak for themselves
As someone who has taken both a 4 year CS degree at a University and gotten a 1 year certificate at college I can offer the following perspective.
It depends on the school. The university I attended wasn't exactly well known for CS, but I think did a decent job. Some with more of an emphasis is CS will defiantly do better, while others will be much worse. College or vocational schools whatever you call them, are they same way. If you go to one that its focus is CS, it will likely be pretty good, if it isn't, well it will likely be very very bad. It depends of people. People are different, some are smart, some are not, others are lazy, and some have good work ethic. A 4 year degree gives at least some reassurance to an employer that the person is not dumb and lazy. It is by no means a sure thing, but it will weed out a lot. A challenging college or vocational school can do the same thing, in a short period of time, but I would say that you would have to know specifically which schools, and they would be few in number.
I found personally that University taught me how to write good code correctly, and college taught me to write code. Mind you the college was not a CS college. They were concerned about memorizing syntax (C++ and VB in this case) and getting your code to work than anything else. In university I might get marked for how optimized my code was, or if I used things like recursion properly. They also stressed the little things, like commenting, documenting, and planning (though I remember like many making my pretty little charts AFTER finishing the program). In college, so long as it worked there were pretty happy.
So I don’t see anything out of the ordinary that people with 4 year degrees generally get paid more or hired more than people that don’t, its pretty common sense. Does that mean that they are better at coding? That depends on you definition of "better at coding". That also assumes that all they ever want you for is coding. If they are looking for someone for the long term, as a company asset it is one thing. If they are looking for someone to fill a "job" then that is something else entirely.
Anyway, I think everyone should do both, though I know that can be a tall order.
I learned BASIC, Fortran, and bits of 6502 assembly before going to college.
In college, I went through the formal CompSci program and graduated with a BSCS with a focus on "systems software" (basic OS/language/compiler theory), but also had exposure to several additional languages and environments as well as team projects.
I've written software (mainly applications, though not all) for a living now for 21 years, and computers are both my vocation and avocation. I get paid to play with software, and I love every minute of it.
I wish more software developers were curious about things. I think it's that curiosity and level of interest which breeds better insight, not simply formal training or experience.
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
Don't miss the fact that Galileo was popular and controversial in his own day. Just as he had a lot of enemies calling out for his blood, he also had a lot of people who thought very well of him. The Medici, the Jesuits, other astronomers; and for god's sake, the Pope Urban VIII himself was his friend and admirer, and asked him to write the book that got him condemned.
Are you adequate?
My employer has hundreds of developers. We're growing and always looking for more. HR is challenging.
Let's say you want to hire 300 people next year. 100 of them will be software developers. You use technology that will require training; even if a new hire knows the languages you use, he doesn't know your current tools. Hiring and training are both quite expensive.
You've got some options available to you. You could give every interested applicant a test to see
You think having lawyers and bank managers as parents makes you working class?
If people work for a living yes they are working class, it doesn't matter what that work is. Or are you do want to wage class warfare?
Obama also had upper class parents.
His parents were upper class? His mother, Ann Dunham, was an anthropologist and his father Barack Obama, SR. a Kenyan who won a scholarship to go to college.
Finding this info easily I can only conclude you're making things up and are trolling.
Falcon
Should there be a Law?
it was more desireable to hire programmers/developers with a 4 year degree because of a demonstrated desire and ability to learn.
In a profession where learning is constant, these are important traits. The key word here is demonstrated. Hiring people is mostly blind, so you go with those that have completed the task.
they cant define their place and use in modern business structure, they cant tell you exactly how reliable are their methods, there arent even any widely accepted and practiced accurate methods to use in that field.
instead, they invent various stuff to justify themselves, apart from the salary handling job they do. one of these is the hirings. because this 'department' lacks valid tools, the foremost thing they rely on is the 'education' history. they determine 'requirements' to be eligible. degree from this, degree from that, this much experience, that much shit. in the end they end up refusing usable employees, and stacking up on 'career' people, who take their own careers and their own personal standing more important than anything else.
a friend of mine here, a software engineer himself, had just completed the year 2000 transition for the systems of 2nd biggest insurance company, and then set out to look for another job. he applied to the nation's largest insurance company. the company's it manager went berserk - he was exactly what they were needing ; there was only a month till year 2000, much work to be done, and the person who he was interviewing (my friend) was the person who did exactly what he needed just a few days ago.
BUT.
the insurance company belonged to a big bank. and, the human resources department they were using was the bank's. (it was central to all subsidiaries). so, as a formality, he had to send him to the hr of the bank.
but thats not all there's to it. that bank im speaking about is the largest, biggest bank in my country. and its insurance arm is the biggest insurance arm, insuring a lot of business fields and individuals.
if a single glitch happened in the insurance company's systems, due to the work not being done in time, due to the self justification needs of the MORONS in that bank's hr department, it would be a major crisis in the country, causing god knows how much damage. leave aside the public image of the insurer and the bank.
in another similar example, just look at microsoft. they value degrees, titles, credentials there. that's part of their company culture.
and look at how this works for them. look at the innumerable, half assed done stuff in their products, as if the programmers just wanted to do the bare minimum to get through the tasks, and get their salary and promotions. and look how this is working for a lot of our friends, relatives and our business circle, where their products are used.
that should be a good example of a monolithic, dinosaur minded, old corporate culture hampering everyone including themselves.
Read radical news here
"Fuck degrees - show me what you have done before"
Read radical news here
Don't we get one of these every week or so?
Without reading the responses, here's the summary:
People with a degree: "Without a degree you won't understand proper theory and your code will suck."
People without a degree: "Most people with degrees are pompous and spend weeks documenting and planning a simple project."
Add in a few anecdotal experiences why one is better than the other, argument ensues.
First, the vast majority of code in this world consists of relatively straightforward (if tedious to write) database applications. A CompSci degree is most certainly overkill for the lion's share of this code. (Note: This is the most common kind of programming that gets outsourced, which might be why the OP is having trouble finding a job doing it.)
However, for hairier apps, or more abstract things, the well-rounded background provided by a CompSci degree is valuable. A CompSci degree will include a broader range of technical courses, along with courses in business, economics, and "teach you how to think" classes like history, calculus, physics, etc.
As a side note, Slashdot should have commented on or re-worded the question, which was most obviously written by somebody who is pissed about a lack of job opportunities for his/her degree-less self.
Personally, I have yet to directly use my degree in Computer Engineering at all. In ten years, I haven't written a line of code, haven't assembled a single circuit, much less done any calculus or physics. But in my department, it is easy to tell who has gone to college and who hasn't, by means of how long it takes them to absorb entirely new topics, approaches to problem solving, etc.
It most certainly is possible for a 2-yr grad (or even somebody with no formal training at all) to produce great code, and it is possible for a PhD to produce code awful beyond belief. But all else being equal, if I was hiring, I'll take the college grad any day of the week.
SirWired
The entire tone of this discussion and the article is disconcerting. Although Mr. Spiegel does make a point to state that the cross section of skills and backgrounds was a major asset to having a good team of people at the end of his article, which I am pleased to see as I think that's ultimately the major point.
It is a rude, arrogant and fundamental mistake to classify one's point of origin in terms of how they got to their position training wise as more significant than what they bring to the table in the current state of affairs.
Working internationally, I worked in a team of people where we had as the three senior personnel significantly diverse backgrounds.
One of us was an in the trenches, hands on education for their exceptional technical abilities. They had studied independently and learned on the job perpetually.
Another of us, was from a pure educational background originally with sporadic in the field access, having both a university degree and a post graduate technical diploma in technology.
The third came from a blend of business and technical training with some educational basis and some in the field training.
What we discovered quickly was the reason we were very good as a unit was the express reason that we tackled the problems from different vantage points. Despite having some truly unique, problematic and specific cases to analyze and solve for our clients given our work environment, we rarely hit a problem we couldn't as a team resolve, be it technical, technological, interpersonal (and any tech that doesn't think people are there problem is uneducated in a whole other sense...) or financial.
We all had strengths and weaknesses according to our relative historical opportunities and operated better as a unit from leveraging those differential advantages. We all agreed, even the 'least educated' of us, that investment in training and knowledge was invaluable, and yes, the source of it DID matter for it gave different skill sets.
But that is the curious thing about working in technology we all agreed upon. Ultimately, it's aptitudes and a willingness to learn, adapt and evolve your skills as a professional that determines the value and success you have in your field.
The educational base is a starting point. It DOES matter as perceptions matter, but it matters on tangential or lateral factors, not necessarily the quality of your expertise. It's a factor, but not the sole factor.
Not enough information.
What have each of them actually worked on? And can I talk to each of them in person first?
I can't easily use a person who hasn't worked with technology at least tangentially related to what we're using, and there's also a lot more involved (when working as part of a small team) than just a person's technical skills and technical experience. How well do they get along? Can they handle pressure? Are they willing to play a 24x7 support role for the code they write? How about code they didn't write? Etc...
Mainframe/UNIX Bit Twiddler and long time Windows/Linux Hobbyist.
The Theorem Theorem: If If, Then Then.
I don’t get it. I’m a CS graduate and I can’t get a job. Apparently these vocational qualifications trump my useless education. The recruiters are even fitting little macros to filter out the people who don’t have say, MCSE or any other of this ‘kinda stuff’. A recruiter from London – working for one of these ‘dodgy Microsoft courses’ even had the balls to phone me up and tell me that I did’nt know computing because I had no MCSE. Few points here with regards to this. If you need to go on a 3 year course to work Windows then by the Gods you’re a bit daft. IN those 3 years you should know how to administrate, disassemble and fix stuff using a multitude of skills. If you did’nt get to go to Univeristy to study CS because of your grades or lack of them then let that tell you something. I’ll admit that there are people who come through the edu system and can’t even switch a computer on. They usually become IT recruiters though, eventually, when they become sufficiently embarrassed that is. Computing is a science. How many Chemists do you know without a degree? How many Physicists did’nt study at uni? I know, lets hire the tv repair guy to design our brand new s-o-a tv set and forget about the electronics engineers because they went to uni. Just another point – an important one. Are we really doomed to a future of MS, Oracle, IBM etc dictating how we should be educated in computing because it’s starting to look that way. The arseholes are making a bucket load of money out of too I bet.
Thank you for your correction. Using "origin" would have indeed made more sense.
Not to be a nit picker, but I did clearly state that I kept reading in spite of the cringe-inducing opening of the article. I'm not sure why you're calling me unwise because of that. But, your trite network communication metaphors are almost as cringe-inducing as Mr. Spiegel's writing.
You're right, the article is in fact "a stream of information not forced onto [my] consciousness." But it appeared on the Slashdot front page, and when there is something on the front page of Slashdot that annoys us, we speak up.
I fail to understand your generalization that "attack is a primitive response to a stream of information not forced onto your consciousness." To clarify, are you saying that when information is not forced on me, and I am primitive, my response is to attack? I beg your pardon. That makes no sense at all. I hope that English is not your first language; if it is, you are probably a sloppy programmer.
It's an absolute fact that not having a 4-year degree will keep you out of some programming jobs. But, it's quite likely that those jobs it will keep you out of, are ones you would want to be kept out of in any case.
calculus, physics, biology, chemistry, quantum mechanics, number theory...
I don't see alot of these offerings at so called vocational schools.
I guess this is why many (not all) vocational school student avoid hard engineering and science gigs (if they can get them at all).
The interview went fine and dandy right up until the hiring manager asked about the math behind laminar air flow, relevent because they are developing software that adapts aircraft flight surfaces in realtime to decrease fuel consumption (for example).
I am very small, utmostly microscopic.