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.
My university had a four year bachelors program, a two year degree program and a one year certificate program. The four year guys had to do a few more options, but they also did a lot more CS courses, including more specialized ones such as algorithm analysis and optimization. A lot of the "options" were things like physics, math and management courses.
Plus there's the old degree of sticking to it - a significant portion of the one and two year guys bailed when the course material started getting harder and the lure of easy money beckoned.
A "longtime developer" likely has a lot of experience which can certainly make up for the extra education, but if you're comparing fresh graduates from a school with a decent curriculum it's very unlikely like that the degree holders have spent the extra two years considering about medieval basket weaving practices.
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.
I work with a lot of guys without degrees and they are great coders, but when it comes to designing software for the long-term, they need a lot of pushes in other directions. Initially when I started working at my current company, I was ridiculed for my academic approach to designing software using design patterns and architectural expertise, but I've become the go-to guy and that is because I write very stable software that survives huge design changes and iteration.
Academics counts and frankly, most of that is not learned in school but in self-study. If you read and learn the theory of engineering, then you are a bigger benefit to your employer, you'll interview better, and in the end, you'll earn more.
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 its not just about the paper on the wall, there are much more factors that do differentiate a selfgrown developer from the degree one.
Some are historical as usual a degree was a sign of competence or at least in europe a sign of ability to learn and prioritize on your own. (In the times where univeristy was not that kind of crappy school like institiution it has become by adopting to the US like model of BA and MA).
Some "geeks" might be better coders, but lets face it: What is a good coder? The guy who is all about the newest language and the freakiest code or is it the persone who understands business and who is able to deliver quality and contribution to a team?
So at the end the decision about payment and hirement is a really different one than paper vs. no paper. Paper might only be the first filter factor if the resonation is just too high to a position. The decision is based on (priority)
- Team and social competence (Thats why it is so important to have the interview, guys)
- Experience. What has been achieved? In which field? What were the targets of the achievement?
- Brain. No matter what youvde done and studied you will never be a 100% match for the company to hire you. Prove that you are able to learn, understand, adept quickly.(Maybe here the 4y shows some weight, as those people managed to educate themselves for 4 years and to learn, adept and understand new things though not always useful and meaningful)
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'm a CS major at gatech and I have to disagree with you. Most of the experience you get at university is not vocational skill--what you get is foundational theory. I'll definitely never have a chance in the commercial sector to create a computer from the transistor level up, and I probably won't have any professional opportunities to write in assembly, lisp or smalltalk--let alone work on nontrivial group projects in those languages.
Sure you can do those things in your spare time, but why not do it in a guided fashion, and get a piece of paper that proves it?
Not to mention, there are plenty of algorithms and paradigms that I simply would not have come up with on my own/with the internet.
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.
There's nothing that can be learned in the classroom that can't be learned outside the classroom. Most high quality developers started teaching themselves before they were old enough to go to college. However, many people don't have the discipline to really push themselves to learn new important concepts without a teacher directing them.
One of the reasons that a degree is required is that the employer knows that you have learned the important concepts. Otherwise you need to fill your resume with very complex projects to prove your knowledge. The alternative to a formal education is doing projects on your own time that you can talk about on your resume. If it's not worth putting on your resume you're not trying hard enough.
Another reason is simply elitism. Play the education game or prove yourself with resume quality projects. Or even better, do both.
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
I'm an ex-physicist turned finance quant. Most of my time is spent coding. I learned to code because I had to simulate my experiments in grad school. My first and only programming course was Fortran in freshman year.
But I and others in my group often find ourselves explaining the technical aspect of a process to the ones who are supposed to be the computer experts.
My conclusion is that, although they have been taught many things about many different systems, they haven't been taught how to really solve problems. Hard problems, whose solution may not even exist. It's a cliche that I never thought I'd hear myself say, but they really don't know how to think outside the box. And there probably isn't a shortcut to teaching someone that kind of ability. It just takes time and well-rounded experiences, that can come from years of varied (i.e. not just comp sci) classwork or, in my case, years of frustration in a lab. Cookie-cutter comp sci coursework won't get someone the skills they need to do my job.
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.
in NYC where there is a blurry line between the unions and the mob(s) they do pretty well (although it can be disconcerting the first time you hear the Chinese electricians speaking fluent Russian...)
in most other places their pay has to gone to shit because most people don't care how qualified the person building their house/addition is just so long as they are cheap so more and more of that work (according to the EX-master plumber I was talking to recently) is being given to illegal immigrants whether or not they actually know what they're doing.
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.
The main advantage of hiring people with Masters degree instead of vocational degree is due to the fact that most people actually do not like to do computer science a lot.
Including people that choose to "learn it"...
So at the beginning you get a lot of people that would really like to be sure that they get a well paid job without programming too much, and preferably not having too much to do with computers.
If you force them to stay for 4 to 5 years you get a greater chance that they get bored and leave (do an MBA or some equally brain damaged stuff...)
2 to 3 year is too often bellow the pain treshold...
Moreover writting great code is one thing, writting relevant code another, so having some clue about economics, sociology, art, philosophy etc... is really useful.
So in conclusion, a good IT person can have: a vocational degree, a masters degree or be self taught... but if you look at the general numbers..
Then probably the best are self taught, then people with masters, phd, etc... and vocational students are last...
On the other hand, nobody stops you from being the exception that confirm any rule of your choice...
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.
Really?
I worked for a non-tech engineering firm. We needed serious developer help to save at least 30% (often closer to 300%) on the efficiency of our data analysis and reporting.
We hired a guy... four year degree, listed his creds and languages. Lazy dude. I had to teach him how to use the goog for shortcuts. He wasted over a day trying to implement datediff.
He obviously didn't last. Suffice it to say, I started developing everything that I could reasonably do. I was asked to "clean up" a project he had done. What my employers wanted was a real program built from his excel spreadsheet that was terribly difficult to use, and often of little use. They wanted functionality out of it that simply could not be achieved from an excel spreadsheet with 1000 lines of undocumented VBA.
I told them that in 2 months I could give them a reasonably functioning prototype, for internal use only. There would be no way I could competently write, document, and debug a program that would be worth a sale, and would meet all of the legal responsibility therein.
Within two months, I learned C#, wrote and tested like 18,000 lines of code, and had a reasonably strong candidate to be a foundation for a good software package. Eventually. I had never written a windowed app before. It did some pretty awesome data analysis, and had at least one intuitive and what I would consider dynamic aspect regarding the interface. Anyway, everyone was so impressed that they decided that they needed to immediately sell this program to local engineering outfits. This poorly documented and still somewhat bug-ridden unfinished app.
They asked me if I could get it up to par, and meet the specific requirements of at least one govt. entity within a month. I said absolutely not... I would need six months and two other blue collar people. Additionally, they would need lawyers who specialized in the the intellectual property aspects. Of course this small time firm had no interest in that kind of expenditure. I said maybe a real developer could do it. You can't sell ramshackle.
They decided to move forward. I decided to quit. There would be absolutely no way I would provide support for this product. I made it clear in the beginning, I can write something for internal use, not for every possible scenario that some salesman can offer to anyone... none of whom have any idea of the complexities of coding.
White collar, definitely. Pay the extra cash, to get what you pay for. Yes, someone intelligent can write some software to do something. No, they cannot usually write a software package, with very high interoperability and expandability demands. Spec it all out in advance and send it out-of-house. Fire salesman who promise what they cannot deliver and have no understanding of. Additionally, if you are not a software firm, do not engage in the sale of software. Especially if it was hacked together under high stress and tight deadlines by someone who has no business doing it.
That is not to say that it was a bad idea for in house data analysis. It did what we needed to do. Don't stretch yourself out so thin that you lose site of what services you actually provided, instead of what pie-in-the-sky services you want to maybe provide someday down the road, though it is clearly far outside the scope of your business model. Stretching yourself too thin is how you lose Risk. Everyone wants Asia, but you can try to take all of Africa and Europe at the same. You'll invariably get defeated. After like 8-12 hours.
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
My guess is you are an undereducated technical school graduate who feels they deserve more money. You don't.
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
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.
My background falls under the blue collar category. It was a very fast, high pressure, two year course which tried to cram a lot of languages, structures, approaches into us. It worked pretty well in that I think anyone who graduated could learn any other language or approach very quickly. We learned to write usable code under strict deadlines, which was handy.
A while ago I had the chance to talk with a fellow who was finishing his white collar degree. Four years of university. He was really well versed in different methods, structures and theories. On the other hand, when i asked him which languages he could write in, his response was "Java". "And?" "Just Java". In two years I'd picked up something like eight languages and about 90% of his theory and in four he'd done a bit more theory and one language. Honestly, I'm not sure which of us was better off, or which of us would make a better programmer (I'm guessing he'd be a lot better at Java). But it was interesting to see the different approaches.
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
I went to a university and got a 4 year degree in Computer Science.... I spent 4 years studying many apsects of computer science...didn't waste time on non computer/IT related stuff.... that was back whe a degree was a chance to focus on your vocation...not some "high school" extention with broad skills.... So do I see my 4 year degree as more valuable than a 2 year vocational course...hell yeah! is what I learned still relevant today.... But I did at least spend that time on Technology subjects, not all degrees contain other subjects. Sure learning to program is great, but a longer course can cover so much more. From understnading silicon, curcuit board design, VLSI, device driver writing, microcode development... Database design, inteligent systems, Computer graphics, OO design and development....oh and some programming...
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.
The deep and barely hidden purpose of institutionalized schooling is to maintain a class based system. There are the "blue collar" workers(as Americans say) who do not have degrees and are thus locked into lower prestige and paying jobs. Then there are the "white collar" workers who have a degree, can get higher prestige and paying jobs. This is the true function of college and the university and not anything else: to create the modern class system. To get into the truly elevated class(since after all college grads are always as well a few paychecks away from being homeless bums) that in Marxian terms "controls capital with which to make more capital", going to college or not, cannot get you to such a vaulted level. Only hereditary inheritance can get you born into that status, or a chance combination of the right portions of luck, chance, proper connections, social climbing and ruthless greed in business matters. As Illich says in modern schooling the myth is maintained that "everyone has an equal chance to compete for equality," an absurd notion that modern propaganda has made into the common sentiment instead of a disturbing contradiction. This competition among the economic and social classes that are still in the similar situation of being a paycheck or two away from homelessness is what allows the disturbingly and grotesquely rich minority that can afford their own $100 million yachts and luxury Boeing 747's to remain undisturbed.
You are forced to learn in school new packets of information or knowledge all the time that serve no functional purpose within your life at that moment other than the demand the teacher imposes on you to retain the information at least long enough to be graded on. Those who just do it and get a good grade, only can do so by confirming to the institutional goals which can only exist outside their autonomy, desires and wants; such people are rewarded and promoted in school(pre-workforce). The higher prestige university you attend and higher grades you can get, the higher prestige job you can command upon graduation -- within its limits in the workforce. If a mouse is placed in a cardboard maze during an experiment and the mouse finds its way to a piece of cheese, can that mouse be compared with a wholly different type of mouse that realizing its situation chews through the cardboard when the experimenter is not on guard and escapes? As far as the hydraic institution of school is concerned, mice are meant to run around mazes to amuse experimenters through their mutual but useless competition. Thus in school whole generations are conditioned to conflate success with working against their self-desire and autonomy, a true battle against oneself to conform to the malicious modern social body and organization that only exists for profit motives or the motive of infinite institutional expansionism(since all corporations wish to grow as big as possible, all governments the same, and all organizations wish to be more successful and expansive). Modern success is the success of pleasing your teacher, who himself is a mere lose-able pawn deep in some labyrinth bureaucracy, who can only teach what curriculum stipulates he teach. Modern "success" is the success of pleasing your boss and company for a comparative trifle in monetary compensation compared to any large stockholder or President, Vice-President, CEO, etc. This is merely the "success" of working against your deep self-interests for self-defeating and paltry rewards possible only after humiliating yourself before the current social order as an obedient lackey of indifferent corporations -- the only social position left any longer for modern man.
Recommended reading:
Illich, Ivan. Deschooling Society.
Gatto, John Taylor. The Underground History of American Education.
Ultimately, ideas are much more valuable to a company than lines of code. Even if a developer is hired as a production coder, the creativity and perspective they bring to a project have benefits both in the short term (ie on the project) and in the long term (ie as a person grows and shifts roles in an organization).
A person with a broader life experience arguably has a more expressive set of symbols and ideas with which to communicate and synthesize novel constructs that are valuable to corporations over time. That experience doesn't have to be an academic one, but all else being the same, a broader academic degree has the potential to enable a broader creative perspective in the organizational setting.
In other words, corporations naturally seek to own your soul, not your sudoku solving skills and typistry.
Someone with a broader education, including sociology, psychology, history etc.. might have a better understanding out how people will actually use the software in the wild.. potentially making better choices in usability, as well as language used in the documentation or the product. Sociology might also help them see the "larger picture" of a project where someone who's knowledge is pigeonholed might view just a few elements of a project that they've worked with simply from the technical standpoint of "It works" without considering effects on the overall perception of the product from the end-user.
Another HUGE element where sociology, psychology, and history would be useful to draw upon are predicting the mistakes that end-users will make while using the product, and adjusting the user-interface to try and direct the user to the "right" choices for what they want to do.
The "blue collar" guys can certainly be given an element of a project and told "go".. but the "white collar" guys has to see how all the pieces fit together, and how they react with each other, and with the end-users, and the administrators.
One other thing to consider.. is that taking the longer path, with more education in different fields.. just makes the developer a more complete human being. In case you've never thought about it.. shortcuts to anything tend to take away from the overall experience, as well as cheating the journeyer of all of the lessons and experiences that may come along the way.
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.
I think it's a bunch of bull$h1t. I started off in highschool not having a single idea of what i wanted to do, i liked computers and saw an add for a tech school, became an MCSE in a year. And it wasn't one of those freebie mcse schools where its guaranteed. all but 3 people dropped out of the class by the end. In the end, that was just a piece of paper to get my feet in the door of a company. It showed me a few tricks but not much i didn't already know. That was back in 2000 when i was 18.
Now about 3 years ago, around 2006 I started working for a smaller company, I fixed everything in like a week. Suddenly I realized that A) Suddenly I wouldn't be needed for a full time job, and B)I really wanted to write a program, not just fix problems with them. .net, and it just immediately made sense. I didn't go to school at all, at first my programs were pretty simple and now extremely complex, maintainable, work remotely across the web securely, and i have the freedom and trust of my boss to design whatever i feel will be beneficial. I used my IT skills to ask the right questions, and then i feel as if i'm just writing them down when i code. Most of the time having an entire program in my head just by asking a few things, before i even write a single piece of code. I learned completely on the fly, ocassionally looking up syntax on google.
I got myself a copy of visual basic 6, then
As for algorithms, I come up with my own. What kind of learning is memorization? that's for monkeys. I make something that works, then I take work away from it by simplifying code. until finally it only does the work necessary, in the smallest size possible. It's simple. I didn't need college for that, no one does. In fact, in both the IT and programming industries, people who went to college are generally the ones always asking me questions, that i answer without hesitation because I don't judge them. We are a team, and the better educated my team the better. Even if that means I have to fill in a few gaps for them. What I find is that they know a lot in some areas, but lack fundamentals. By that I mean the ability to be able to figure out something they've never seen before by themselves, and fully comprehend what it does and how to best take advantage of it and apply it. The only ones i'm not fond of are the ones that want you to do something for them instead of learning when i am willing to explain something.
As for politics, here's how I deal:
I once was in a large meeting across many it groups accross the country for a bank, I was an admin. I was specifically told to do something in a very specific way by my boss during this meeting. I followed his steps. The following week he took heat for those actions, In the meeting he told me that wasnt correct etc.. etc.. etc.., well guess what? I let him finish, then I called him out (yes in the meeting). I said "Here are the exact instructions you gave me last week during the meeting ~reading instructions out loud~, If you want me to do something correctly, give me correct orders. I followed them to the letter. 2 days later me and my friend were fired. 1 week later my ex boss was fired. This is a pattern for me and my superiors in large companies because of the bullshit I won't stand for. The one that for fired before that was an IT Director. So the lesson is don't take Sh1t from them, they are a nobody if they aren't honest. Politics don't exist if you can prove facts. Write down everything, it will save you many times.
And to answer your question about the money, yes I probably make more than you. For 2 reasons, I worked for what my boss first offered, I proved myself by writing a few programs that cut their work by 50% or more, I then asked for a raise and showed statistical graphs from monster to prove i had been working for less in order to show real value. I asked for over $20,000 in a raise. In the end my boss felt ashamed he was paying me less before and even took me out to eat that same day. I'd never work for a large company since. Here I have value and people know what i'm worth.
-Kanaida
Maybe it's an issue in embedded programming, but for most business applications, one uses the RDBMS to do most of the manipulation, management and sorting of data. At least you should, since it's usually available in some form in that environment. If you are rolling complex structures by hand, then most likely you are reinventing wheels that you don't need to.
Of all the developers I've hired, the overwhelming majority of the really *good* ones had a little technical school or community college under their belts but were mostly self-taught. Time and time again I got kids with fresh new 4-year CS degrees whose skills were years behind the times - and these are the ones who expect to start at $80k doing web development. I usually ended up canning them and promoting someone who a year earlier knew nothing but HTML and JS. Passion and dedication mean a hell of a lot more than formal training, at least for web development.
Flame on MacBeth.
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 started learned boolean algebra and logic circuits when I was 9. I took a training course in computer programming when I was 10 (in 1980). That was pretty much all the training I needed in the field. My mind was too hungry to wait around for someone to teach me things. I recognized this at that young age and decided that I had to teach myself how to learn new things. I taught myself fractions and completed the workbook in one night (it was supposed to last through weeks and weeks of schooling). School became sort of a joke for me, it was where I went to sleep, see friends, and wait around until I got to go home and program my Atari 400. They put me in the 'advanced' class in school a few times but all it really meant to me was more homework (and less time to program), so I lost interest and eventually they kicked me back to the 'regular' class. At home I was building my own electric motors and experimenting with logic circuits, and at school I was stuck with too many teachers who barely knew the subjects they were teaching (I knew what hexadecimal was, but the programming teacher at our high school did not). I was frustrated with school pretty much the entire time I was forced to go there. Ok, some of the classes like English helped, wood shop was fun, and history and social studies were necessary though still nothing more than rote memorization. Later in high school, chemistry was interesting, though I had also already dabbled in that on my own time as well. Towards the end of high school I hated the idea of sitting through 4 more years of boring lectures on topics I already was already thoroughly familiar with. I went to a vocational school to get a quicker 2-year piece of paper to put on my wall and I got to work ASAP. I'm doing pretty well now, though I don't really have a chance of getting a job at places like Google because I'm not a PhD (though my friends that are PhDs and work for Google "fucking hate it there" - their words, not mine). I'm pretty happy with my job, I make over 100k/yr, and I still never stop learning and teaching myself new things.
School has always seemed more of hindrance to me than anything. If someone wants to learn something, they do not have to go to a school to do it (given that they have a reasonable amount of intelligence to begin with). The only thing school really gives you is the piece of paper on the wall.
I have a BS in Electrical Engineering and an MS in Computer Science. I started in engineering and moved into programming after getting the MS in comp sci.
I stressed programming when doing my electrical engineering degree but it was really the MS in Comp Sci that helped the transition in my career.
I have done hiring for developers. The degree helps for consideration. It's only one way that helps though. If I got recommendation from someone I trusted that worked with the person before (as a developer) it would mean more than the 4 year degree. But in a vacuum the person with the BS (or MS) definitely gets a closer look.
My advice would be to go for more education, the more the better.
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 went to a liberal arts college and got a major in Comp Sci and a minor in English. My minor probably doesn't help a whole lot in my job (except for writing test plans with correct spelling and grammar) but has helped me to be more human and more rounded outside of work. I have always felt that going to college, although in some ways a preparation for a career, should not be "just another stop on the assembly line".
So while I agree that your minor and other courses can help you in your job in other ways that can't be as quantified as a course in database systems, I have never worried that those courses are not going to have as high a "return on investment" as my comp sci courses. I feel that software development requires a creative mind as well as an analytical one, but don't see many employers that do more than pay lip service to valuing creativity in their developers. Bottom line is that I took English courses because it is something that has always interested me and continues to interest me, and I don't even think about how it helps me in my career. We as humans were not meant to distill all of our interests into one singular endeavor that society has determined will make us more money than all other subjects we are interested in.
So, what's wrong with studying History or Sociology?
Might it not be useful to understand the historical divisions between Suni and Shiite, or the evolution of the Corporation as an organizing mechanism of capitalism? Couldn't one apply knowledge of collective behavior and group dynamics?
If you ever want to leave you coder-cave, having a broad-based education is tremendously useful. Nobody would expect a CS major to have a deep understanding of 17th century French literature but a good, four-year liberal arts education will give a student tools to at least engage intelligently on a range of topics.
Either that, or you can look down your nose at everybody else. Either way.
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..
I am a blue color developer, and I work with a very talented white color developer. I have to say, that this argument about who is better and why is really missing the point. No matter who you are, are you developing great software that people actually use and benefit from? Are you creative, and do you have a passion for writing great software? Blue or white color, the above is what really matters.
Jason-Palmer.com
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.
The most working code is achieved when you get your collar gray. If you do the real user job with real users you'll immedeately notice things that suck.
Ville / Varuste.net
I learned all my programming techniques, and the art of debate, from Slashdot posts.
Fear me.
Yes, the dude didn't go to college or university. Wow, newsflash.
The guy who did can't even spell quiet. It's QUIET, not quite. Very
easy to know the difference. Just tell yourself that you're being
not quite quiet yet.
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?
I realize that the following is a generalization, and there are always exceptions. In this discussion, I consider "White Collar" to be a real university such as Ohio State or Carnegie-Mellon - an institution rooted in education and not profit. "Blue Collar" is a technical institute such as DeVry, ITT Tech, or one of the for-profit online schools.
I theorize that the level of thought of a particular developer largely depends on his or her experience and "adventures" before school - and the selection of school follows this pattern.
Someone who ends up being an excellent developer was likely down the right path before college. Furthermore, if someone who is traveling this path accidentally attends a Blue Collar school, they will quickly ascertain that such a school is 'below their level' and a waste of money, and leave.
Why does this matter? In a real University, the classes are challenging enough that folks who are "just in it for the money" will drop out. The folks who love what they are doing will enjoy the challenge and persist.
The "Blue Collar" schools are motivated by money (continued payment of tuition) and just getting folks through the program, so their classes are less likely to be challenging, and therefore more folks who are "just in it for the money" will pass through. Because the classes are less challenging, the quality of the education is lower. The wrong motivation and lower quality of education mean an employee who will make more mistakes and create less efficient software.
Furthermore, someone with another degree, either as a full degree or a minor - or someone with CS as a minor - will do a better job, because such a person is more apt to look at problems from many different angles instead of just the "CS" angle.
I base these assertions on my own experience. After one trimester at DeVry, I started to get disturbed with some of the things being said by seniors. I moved to a real school and never looked back.
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.
I think the reason a lot of people look for degrees when filling jobs is that it is a good sign of the work ethic and desire to finish of the person. In the absence of an extensive job history it is all a lot of people have to go on to know if the person who may know the skills will actually show up and do the work.
I went to a 4 year school... I'm a computer science engineer... the big differences is that not only we focus on writing software for all kinds of platforms, wether it be .NET, Java, Assembler... SQL... whatever... we also focus on mathematics, computer algorithms, calculus, physics and other subjects that will help us to THINK... that is what makes the difference in my opinion... anyone can take a book and star coding, but can anyone become a real software developer?
I didn't know Billy Corgan wrote code.
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.
Blue collar vs White collar is a false dichotomy. Yes a four-year college can provide you with connections and other advantages; however, the only thing that matters in the end is your persistence in continuing to challenge yourself and improve your knowledge and intelligence. You must never stop learning. Don't worry people make exceptions for talent, since talent itself is exceptional. If a university is more efficient for you, then get a 4-year degree. If you find university inefficient, or slow then learn yourself, just strive to be ahead of your competition and understand the factors you will be missing/gaining. Value what you have learned and know that you will never stop. Value education, knowledge and the challenges it brings. Your education is about you. A degree means nothing to you, it is worthless. In fact, a degree is for others...what does that have to do with your unquenched constant thirst for challenge and knowledge? Nothing. Do not think of universities and colleges as degree granting institutions, but instead think of them as a place where you can share and exchange knowledge freely. Your education is what you make it. How you want to get there is up to you. Once you value education at the most fundamental level, I promise there is no degree or lack of degree that will stop your success. Proof is in history and our very nature as humans.
Trying to install linux on my microwave, but keep getting a kernel panic...
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.
Historically, it has not been all that long that formal credentials have been required for physicians, nurses, lawyers, engineers, accountants, teachers, scientists, architects, etc.
I'll bet that when degrees were first required, for any of those professions, the self trained in those professions were screaming and crying about how they don't need a piece of paper to prove anything, and about how those with formal credentials often had inferior skills.
If software developers don't need formal credentials, then why does anybody else? Why not do away with requirements for all formal training of any kind? Instead, when you go to a new doctor, you can give him, or her, a technical interview. Wouldn't that make more sense?
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.
Coding is an art, and talent is fairly random.
However, someone who has gone to university would be expected to have a broader base of experiences from which to pull inspiration. Linguistic or philosophical knowlege might trigger a new connection that results in a more elegant solution.
Additionally, academic training teaches you not only where to find information, but to know whether something is already known or not. Without an academic grounding you are more likely to try reinventing the wheel, or worse, give up when a problem has already been solved elsewhere.
Additionally, people with broader skills and intelligence are more likely to go to college in the first place. So it might not be that college causes success, but that it's correlated with it: people with the attributes needed for success are more likely also to have been accepted to and completed college.
From an employer's point of view, college provides two important 'known' attributes about a potential hire: that they have a baseline understanding of the subject, and that they have the ability to finish what they started. Because the risk is lower, they can afford to pay more.
No matter how clever or talented you are, it is going to make it easier to market yourself if you have that piece of paper.
Does Bill Gates qualify as "Blue-Collar" or "White-Collar"? He doesn't have a degree and yet was Chief Software Architect of Microsoft for many years. If you were calculating the comparative compensation of Blue Collar v.s White Collar, I'm sure he would seriously slant the statistics lol :p
Let's face it, it was stupid to corner him. It demonstrates a lack of maturity that these extra 2 years you spent in school should have given you.
The point is, he may very well be even more skilled than you are, on technical stuff. That's were his interest is and where he is likely to spend more time than you actually do. (simply, at same "raw" skill level, you can't compete if you spend less time on the subject)
On the contrary, you may be better prepared for a management position, given your education level and open mindness (at least you should).
As for me, I have experienced both situations.
I started programming at age 12, out of passion. I worked punctually on dev stuff to make some money from 16 to 20. I learned quite a lot and managed to get some respect for my skills and publications (IT security), but I soon realized that you need a degree to get into the real stuff. Otherwise, people just don't take you seriously (even more when you are young).
Now, I enjoy coding, but not like I did at first. I can't spend countless hours reading books and API anymore, as I used to do. It is just that I am interested by others things that come around the coding: the business side.
Anyways, what really matters is to be happy with what you do.
My 2 cents (I have an MSc in CS and an MSc in embedded software).
Unless it's 4 years in an Indian "university". Then all you can really claim is that you practiced the rote memorization of lots of shit (probably obsolete now, too) that the rest of us would just perform a quick Google search for.
That, and you probably got lots of practice whining and bitching to your professors to adjust your grade upwards when you did your rote memorization poorly.
Odd way of phrasing it -- blue-collar is about manual labor, rather than no academic training. Programmers are by definition not white-collar.
But it seems from TFA that the term was applied by a bunch of self-described "immature snobs", who most likely were drunk. Oh well ...
I'm neither, but here's how I see it: Someone who went to a vocational school will be very good at doing one thing. However, an employer will probably prefer someone who is good at more than one thing, and able to adapt to new roles.
My Photography - http://ian-x.com
The Deathlings (comic) - http://thedeathlings.com
The intelligent people realize that there is a stigma attached to not having a degree, and therefore will get one so they don't have to fight their way through proving themselves separately at every job.
I have a 4 year CS degree from an accredited Canadian university. I have a small team of developers that I work with. I am the lead developer, but we function as equals more or less. Except on days when I'm in a bad mood. I have been working since I graduated, almost 18 years ago, in this field of software development and have worked with dozens of developers who had degrees from canadian and US universities/colleges, as well as dozens who had no education at all in any formal setting, and dozens who had what we in Canada call "community college" or "trade-school" diplomas.
The difference between a university and a technical program at a community college is vanishing quickly in Canada, and it's only about 100 years too late, that it happened. It is well known that university degrees help you land jobs, and it is also well known that university degrees do you almost no good, when it comes to really doing your job. I use almost nothing that I learned in school, but the skills that I had, that enabled me to get into the school are the same skills that make me highly employable now. In other words, it's not about what the piece of paper means (nothing), it's the fact that you were capable of getting the piece of paper that matters (and it doesn't matter that much, but it *is* something you accomplished, that definitely required intellectual capability, ambition, effort, money, and time).
I give people who apply to work with me some credit for being intelligent, if they have a computer science degree, because even the lamest of computer science degree programs still fails out some of the lame ducks who applied, and some of the lame ducks who got in, didn't finish. I discard anyone from consideration who started out a University or College degree and gave up. But I do not discard from consideration people who have a ticket to work as an Electrician and also happen to be ace programmers. I expect them to have some blind spots, and some areas where they need to learn some of the formalisms and ideas that are communicated in the C/S curriculum, but there isn't one of those ideas that is so abstract and useless that it can't be learned on the job, as long as I don't need to train this person to be a software developer.
I hire and keep people based on their ability to write great code, debug code, and understand and read code, and their ability to use version control systems, to follow and create bug tracking and version/release management procedures, and their ability to ship software that works perfectly.
I think the original question implies a certain bug up someone's ass. Why didn't I get a job? Well. Maybe you're going to have to work harder to find a decent job if you skip the piece of paper. So shut up and just work harder. You chose that path, or had that path shoved down your throat, but either way there isn't a whole lot you can do about it, other than to bust your ass, and make it work for you.
So, why can't we all just get along, eh?
Canadian Guy
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?
It's the lazy type that can't finish projects. The problem with free thinkers is they break the rules and disobey orders.
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.
hi,
I'm almost laughing, having a degree in agriculture and working as IT professional. It's about having the skills to learn, and apply that to the specific problem. Coding never is the problem, what you are trying to solve with the help of computing is. Being really smart at it is tough. An equation I use often, it is really easy to play a guitar, to excel at playing one, is a different story, and a broader sense of learning will help.
my 2 cents
The companies that depend on the programming theoreticians who know a hundred algorithms but no syntax to implement them, and know PROLOG better than C, tend to go under with the first problem in the market.
The companies that depend on a solid programming skill are more successful.
I worked at one of the latter kind. The unofficial guidelines were:
- make it so bulletproof that if 80% of the system goes down, the remaining 20% should still do its work just fine. Example: operating for a week from memory cache only is perfectly acceptable if the database went down and takes too long to be replaced. (so first check if new data can be obtained, only then expire the old).
- write it in a way that makes understanding the code take less than write the documentation for it. Then don't write the developer documentation. Just user-side one, and only the needed content, no fluff.
- make it so that it could run for years without maintenance, then run it without maintenance. When the need arises, a new developer will spend extra 2 hours researching the system before applying the (sometimes 5-minute) fix. It's still cheaper than to keep someone maintaining it over the whole period.
- a system that does 90% of the job for 20% of the cost is better than one that does 100% of the job for 100% of the cost. A reboot once a week is cheaper than 6 days of developer's work eliminating all the leaks.
There were some side-effects. Some subsystems were written in 3 different variants independently, and coexisted, with no preference which is the right one. Some stuff was simply easier to write from scratch.
The funniest one was a lost portal. I mean, the company maintained some 200 different services, portals and so on. News, hobbies, some very generic, some very specific like a shop with projects of houses or an artists service. And one day someone asks on the company-wide "offtopic" list, which business unit "owns" [some URL]. It seems the service under that link is a strict duplicate of functionality of one of our more prestigious services, only much poorer in content and not updated in some 5 years (although the fora kept by the users and moderated by moderators who are a kingdom by themselves, are alive, with users asking their questions and other users answering.) Nobody admits, some research takes place - yes, there is the code base, not touched in well over 5 years, there are the tables in the database, yes, it is one of our services, fully functional, new articles can be posted at any time, generic and targetted ads get rotated, the mailing list accepts new subscribers even if no new newsletters are created, and the user database sees some 5 new users every week. And someone recalls... it was rewritten from scratch 5 years ago, the new version went online under a new address, and is our new flagship product, and the old one was to be scrapped a month later, except someone forgot to scrape it. And so, a forgotten ghost portal existed somewhere in the monstrosity, and worked for 5 years with nobody in the company ever noticing its existence.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
No, one prof. demands UML, & formal consistent headers + documentations. This has carried over to my other courses, & the profs don't mind it (though they don't stress it as much as the former prof. does (which makes sense, he comes from a Fortune 100-500 corporate background (ones part of the "eishower military industrial complex" etc. et al where a lot of officers end up after the service, especially those w/ skills) & that of the US Military too).
Enough said on THAT account, here we go about YOU specifically yURINAL kLASSLESS:
LMAO - Well, well: If it isn't 'Yuri Klastalov', of the "RBN" (Russian Business Network), @ his "finest", lol!
Hey, new news "yURInal":
Please - Spare us your "KLASS"-less rants already: I know why you've put this up all over the wire about me:
http://www.bandfocus.net/Alexander%20Kowalski
(LOL, what a fool you are... is THAT the "best you've got"...? Effete & puny @ best (but, what I'd expect outta a "script kidde" like you, & those LIKE you)).
I understand though:
LMAO - You're just "ticked off" that I am one of the folks that put your INFAMOUS "botnet" & criminal enterprise in the RBN, straight outta commission, by spreading it around via "HOW TO SECURE Windows 2000/XP" ( Folks like ZDNet's Mr. Dancho Danchev get the same, ala -> http://ddanchev.blogspot.com/2009/06/from-ukrainian-blackhat-seo-gang-with.html . His "Ukrainian Fanclub", as he calls them, lol, they do as you have tried to "irk me" with, per the 1st URL I post here where you state "I should suck your sweaty cock" here -> http://www.bandfocus.net/Alexander%20Kowalski [bandfocus.net], then we wouldn't be the ones "SMITING" your botnets outta commission then, lol (AND? Please, @ least tell the truth, in your rant online in regards to myself, & replace that 'sweaty cock' of yours, with SMALL cock, & I'd believe it, lol, because it'd be far more truthful old man))
APK
P.S.=> Hehe - Hey, just so you know? People like myself & Mr. Danchev just laugh, knowing we've helped "knock the chocolate" out of online scum is all (we WIN, not YOU & your kind - just judging by the puny effete reactions those like you have when your betters get done with you... all you have are your effete retaliations, & no more botnet,/b>, lol...))... apk
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
I got a BS in CS from a liberal arts college. It was like getting 2 degrees. I hated the non core liberal arts classes at the time but now, 15years later with outsourcing and the shitty economy I feel like my education was very well worth it. I do not have to fear a changing economy because my education has prepared me to survive. Tech schools have their place but a true education will last a lifetime. The ability to critically think and problem solve is an asset an education provides. Task based trainings are valuable but I think training for a profession is much different.
Of course the cost benefit of college now a days is much different then when I graduated but I think folks that knock college wish they attended.
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.
Sure, if you're hiring someone into a first or second job, there would probably be a difference (on the average) between the 4 year CS grad from a good school vs 4 year any degree vs took programming in high school. So it's a valid selection criterion for HR (although one would like to see some sort of equivalence like they have for the experience requirements for professional engineer licenses.. 4 years of an ABET school = 2 years professional experience or some such)
But should that distinction be built into the system after, say, 10 or 15 years experience (because it does exist.. payscales differ as does the exempt/non-exempt distinction). After that span of time and experience, one can have folks with 1 year of experience 15 times (degreed or not) and folks with 15 years of high quality experience.
I'd venture that after 10 or 15 years, a non-degreed candidate could have easily picked up the "breadth requirement" sorts of knowledge embodied in the classic 4 year liberal arts education: politics of the workplace; english composition; etc. Or not. One would have to interview the person to know for sure. Likewise, there are degreed candidates with 15 years experience who dragged through those breadth requirements and promptly forgot them and have spent the last 10 years head-down coding in whatever language you care to name.
And, once you get past the "top school" thing (evaluated by whatever means: USNWRs method, how many entering freshman took AP tests, percentage of applications rejected, entering freshman SAT scores, etc.) how much difference is there, really, in technical skills between the *average* BSCS grad from UCLA or Cal Poly Pomona? And is that difference bigger or smaller than the standard deviation of those graduates from one school. if the difference between schools is 0.1 SD of the overall population, then it's not that important, eh?
In "fashionable" industries where "who you know" is important (entertainment, wall street law firms, etc.) where you went to school has a big effect, but if you're grinding out algorithms to update home loans in a database, or designing control algorithms in an engine controller for an automaker, I suspect that's not such a big deal (unless the hiring supervisor thinks that all grads of XYZ uni walk on water, because he/she went there and had a good experience).
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
You probably don't understand the value of a 4+ years degree. It is not just about "coding" or any other highly specific portion of the technical realm. Its about thinking. My experience is that 4+ years degrees require critical thinking, not just "learning the ropes."
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/
That's the trick. University (contrary to what even some professors think) isn't about gathering knowledge. It's about learning essential knowledge-gathering skills. Learning how to distill knowledge from a book in the fastest way possible. Learning to not believe everything you see / read.
Informatics who have only been taught the practical side of things, are deprecated when they come out of school. A diploma isn't a certificate of how much you know, it's a certificate proving you can assimilate large amounts of knowledge in very little time. It's a certificate that any training the company gives you will not go to waste.
And it's those guys that the IT industry needs. Not the developers who will cling to C++ like it's their mother, because they don't know how to learn anything else.
not collar
sorry....XD
(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.
I find it kind of funny that Spigel makes this argument since he himself studied information science, not computer science.
(I'm an undergrad at the University of Pittsburgh, which is where he did his B.S.)
It's nothing like a CS major. All the courses are practical in nature - a class on databases, class on human factors, a class on telecommunications/networking. You do a concentration like Security or User Centered design. You do NOT take anything above Algerbra. (Whereas the CS dept requires calc 1, calc 2, and linear algerbra)
It's pretty much the happy medium between CS and no degree, and is by no means an engineering degree.
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
I met an architect that couldn't use a tape measure. (Thats like a programmer with no keyboard)
You insensitive clod! I couldn't afford a four year degree!
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 went to college and my colleague didn't. In terms of what we do professionally, it makes absolutely no differrence.
I can tell him boring stories about long forgotten subjects while he tells boring stories about his previous jobs.
My colleague says the only difference is that he never learned to drink like I did in college.
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.
I studied 6 years for my Math/CS degree.
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
I almost stopped reading there. But I kept going, hoping to find some redeeming value.
Rejecting all future information because of a few errors (whatever level of the message stack it originated from) in initial part of data packet stream?
Not wise.
Some more corrections:
Furthermore, Mr. Spiegel, you are keen to use cliche phrases without even putting in the effort to understand their origin, or know their correct spelling. This helps you come across as a pompous idiot. (hate words not compulsory)
For example: "Queue awkward silence."
The correct spelling is "cue awkward silence." It comes from stage and movie production, where the producer will "cue" actors, lights, or special effects.
How does one "queue" awkward silence?
This is the said rhetoric that takes time out of good work
Mods seem to love strong opinions with a few American conversation smarts thrown in as spices.
I have no idea what your collar looks like, and I don't have one (T-shirt), but I must mention that attack is a primitive response to a stream of information not forced onto your consciousness.
You are a douchebag, period.
Hmmm.... Do we see a distinct affinity for certain human organs here?
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
When you walk in to your interview all sharp and clean and you have your shiny New BA degree and your are 40k+ in dept and you are getting teary eyed getting ready to beg the HR and your new boss to hire you THAT is when you get the job. Remember there is no one that is better for the job then someone that is so far in dept he or she is willing to do anything to get hired. Welcome to America!
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
Because they have HR departments that need to answer to legal departments, that's why. The more objective criteria they use in hiring decisions, the more they'll be able to:
1) stave off hiring/firing related lawsuits.. you didn't hire me but you hired him and I have a four year degree and he doesn't...
2) attract investors who need the hand holding of knowing that they only hire "the best".
3) create an artificially tight market (we can't find qualified candidates, Congressman X, so please let us import more H1Bs.
mostly 3
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.
Here's a question:
A candidate with 10 years of real world experience and rave reviews or a candidate with an MS fresh to the market? All else being equal, who would you take?
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.
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.
Blue Collars were blue because the sweat and dirt of labor was too hard to get out of white shirts. White collar people are just people who work at jobs that don't require sweat.
...and that's why I stay at home for the rest of my life and code what I want.
fuck your collar world... fuck you buzzwords... and have fun wearing your yellow badges in 2009, 2010, forever...
Blue collar programmers smell.
only programmers get paid about 100,000 more than brick layers...
'nuff said.
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.
I have been working in the software industry (embedded system, flight controls, verification) and can tell you I have never seen a tech college guy who was better than a good performing University student.
The reason I think is that getting through a University is tougher than a tech college. Therefore only the most dedicated and intelligent make it through.
One final point. If there is no difference and that University education wasn't a step beyond tech college, then by all means take night classes and graduate from the University. You have the power...or you can come here and make a bunch of silly statements that the University students will agree with you to your face and chuckle at you inside.
Yes yes yes...you know your a better programmer than Mr. X. You can find Universities that produce poor candidates...being a University grad is not a guarantee...it just is a good filter to eliminate most of the small fry.