Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?
Businesses Programming

Are You a Blue-Collar Or White-Collar Developer? 836

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?"
This discussion has been archived. No new comments can be posted.

Are You a Blue-Collar Or White-Collar Developer?

Comments Filter:
  • by acidfast7 ( 551610 ) on Sunday November 15, 2009 @02:28PM (#30107194)
    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 :(
  • by sundru ( 709023 ) on Sunday November 15, 2009 @02:30PM (#30107210)
    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
  • No. (Score:4, Interesting)

    by Manip ( 656104 ) on Sunday November 15, 2009 @02:31PM (#30107218)

    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.

  • by Anonymous Coward on Sunday November 15, 2009 @02:32PM (#30107222)

    .. 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.

  • by chrysrobyn ( 106763 ) on Sunday November 15, 2009 @02:35PM (#30107266)

    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.

  • Re:Algorithms (Score:5, Interesting)

    by Planesdragon ( 210349 ) <slashdot@castlesteelst o n e .us> on Sunday November 15, 2009 @02:37PM (#30107298) Homepage Journal

    Just because someone knows how to use a typewriter doesn't mean they can write a book just as well as an English major.

    An english degree helps you write in the same way that a history degree helps you change the world.

    Unless, of course, you meant edit, or perhaps write a book review.

  • by SupplyMission ( 1005737 ) on Sunday November 15, 2009 @02:43PM (#30107390)

    I agree with acidfast.

    Furthermore, Mr. Spiegel, you are keen to use cliche phrases without even putting in the effort to understand their meaning, or know their correct spelling. This helps you come across as a pompous idiot.

    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?

    I almost stopped reading there. But I kept going, hoping to find some redeeming value.

    It was hard to finish your article, as your tone makes it clear that you are a cocky, holier-than-thou ladder climber. You provoke a regular guy eating his lunch into a pissing match, and then you claim to have said things like, "Everyone is making valid points," in actual conversation. Who does that?

    God help any of us who may have to work with you, or even worse, for you. I don't care if you have Asperger's or not. You are a douchebag, period.

  • by Anonymous Coward on Sunday November 15, 2009 @02:47PM (#30107432)

    No, education is about education. Education is not always what happens at schools, but that's not to say it doesn't happen there or can't. It depends largely on the individual's desire to be educated and the available resources. Take these two examples:

      My education was broad based and exposed me to all of the different schools of thought in nearly every serious academic endeavor. I soaked it up like a sponge, attending every special lecture given by every department I could cram into my schedule. I mixed it up in my classes writing software for my Intro to music class, applying physics to the study of musical instruments in my independent research, Economics in my ethics class. its not surprising that I'm addicted to wikipedia.

    My coworker has an even more advanced degree from a premier school in CS. Its pretty clear that's all he's ever studied, and all he ever did was the class work. He sucks. He has never written a real useful program before being hired for us. Has no freaking clue how to do anything he hasn't already done, and has no idea how to figure out how to do anything remotely new or different. His time and money spent in college was a complete waste. All it did was get him this current job, which he won't have for much longer. He will not get a good reference from us.

  • Re:Algorithms (Score:1, Interesting)

    by Anonymous Coward on Sunday November 15, 2009 @02:48PM (#30107442)

    I think this is too broad a generalization.

    - I've seen CS programmers do fantastic work.
    - I've seen 'programmers' with degrees fired for spending eight months doing what should have taken 3 weeks
    - I've seen non-degree programmers create monstrosities
    - I've also seen amazing programming work from very intelligent people whose degrees weren't even CS

    The one thing I've observed is to take with a grain of salt those who present their CS degree as proof of competence. Take each case on it's own. What carries more weight is what work one has accomplished and how well it was done.

  • by Anonymous Coward on Sunday November 15, 2009 @02:48PM (#30107450)

    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.


  • Re:Algorithms (Score:3, Interesting)

    by Savage-Rabbit ( 308260 ) on Sunday November 15, 2009 @02:49PM (#30107462)

    Just because someone knows how to use a typewriter doesn't mean they can write a book just as well as an English major.

    I don't think that being an English major is going to make you a good writer, either you have talent for it or you don't. An English degree may improve your writing style and open your eyes to different schools of literature but it won't increase your ability to write good books that people want to read. Much the same applies to programming. I have met people with CS degrees from very respectable schools who wrote very naive code and others who were brilliant developers. Much the same goes for people from less snobby schools, there are people who can code and ones who don't. When hiring I'd take a second look people who display an enthusiasm for development and see it as a fun thing to do rather than a chore they have to perform to get a good salary. Education matters, but just blindly going by what academic titles people have picked up is no guarantee that you will get somebody who can code worth a damn.

  • Re:Algorithms (Score:5, Interesting)

    by Omnifarious ( 11933 ) * <(gro.suoirafinmo) (ta) (hsals-cire)> on Sunday November 15, 2009 @02:54PM (#30107504) Homepage Journal

    When I was 15 someone recommended the second book in "The Art of Computer Programming" series by Knuth. It was "Searching and Sorting". I read it.

    I knew more about the common algorithms their order, and other details of when they were and weren't useful than your average college graduate before I even got to college. I wrote my own b-tree indexing system when I was 18.

    When I was in and/or hanging around college I ended up helping a graduate level student with their AI homework. He didn't understand what a heap was or why it would be useful in an A* search. He didn't know how to code a linked list.

    That stupid piece of paper is nearly meaningless. And when I've interviewed people it was only a minor data point. I usually used their time at college to probe how much they remembered about the stuff they did work on and whether or not they had a fine grasp of the details. I could care less about their degree or their grades.

  • by DustyShadow ( 691635 ) on Sunday November 15, 2009 @02:58PM (#30107536) Homepage

    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.

    This is basically what it all comes down to. There are risks that come with hiring employees. Narrowing your selection to those with 4 year degrees or more minimizes that risk as much as possible.

  • by Anonymous Coward on Sunday November 15, 2009 @02:59PM (#30107556)

    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.

  • by mbkennel ( 97636 ) on Sunday November 15, 2009 @03:27PM (#30107816)

    "I'm sorry but you didn't understand my post at all, I'm saying beyond a certain point, degree's are about status and NOT what you are capable of."

    I understood that fine.

    It might be somewhat true at the lower levels but I find that at the highest levels it is impossible to get a degree without a substantial level of achievement and capability. I agree that degrees are not only about what you are capable of doing, but what you actually did. That's not "social status" but willingness to work.

    Lets calibrate your experience. Have you, or people that you know, been admitted to, attend, or have attended PhD programs in technical subjects in top 25 universities?

  • by commodore64_love ( 1445365 ) on Sunday November 15, 2009 @03:33PM (#30107888) Journal

    >>>Sounds like you're confusing education with schooling.

    No. The original poster was right on. The longer you spend time in school (2, 4, or 6-year degrees), the greater value you have to the employer. It's a status thing... like jumping over hurdles to prove how "fit" you are to your boss.

    The annoying thing is that having a high school degree used to be good enough to prove yourself competent enough to hold an office job, or technical job. But once everyone was getting HS degrees, suddenly the goalpost moved, and you need two years of college. If college education ever becomes universal, we can expect the goalpost to move even further away (you'll need a six-year masters degree). The Human, Resource people need to filter-out the "hirables" from the chaff somehow.

  • Re:Algorithms (Score:4, Interesting)

    by rainmaestro ( 996549 ) on Sunday November 15, 2009 @04:34PM (#30108572)

    Depends on what kind of developing you do.

    If you are responsible for the GUI on a large project, then no. Calculus isn't gonna do you a bit of good. If you're optimizing DB calls for a project with thousands of concurrent connections, then yes, you do need that. Advanced math is needed for *some* types of development, not all.

    Same goes for algorithms. Yes, you'll learn about all kinds of special algorithms in a formal class. But then you get to the real world, and 99% of the time you're gonna use quicksort, heapsort or merge sort depending on your needs (average vs worst-case sort time, stability, etc). The dozen special sorts you memorized are so rarely required that it is almost a waste of time to spend 16 weeks learning them. Yes, there are fields where those sorts are helpful, but for *most* development projects it is unlikely you would ever use them.

  • by Carewolf ( 581105 ) on Sunday November 15, 2009 @04:50PM (#30108732) Homepage

    All developers are blue collar. Programming is the IT equivalent of brick laying, it's a trade, not a profession.

    If your development includes tasks that are equivalent to brick laying. I think you should consider automating the tasks. Once all trivial tasks are handled automatically there are no trivial tasks left, and thus it is no longer a trade, but either art or science depending on your point of view.

    That said: Developers are often treated as blue collar, perhaps because of this mistaken view you share?

    And in some companies hiring untrained programmers, they have never automized their trivial tasks, maybe because their untrained programmers have never thought of the idea, or thought of reading a book that would teach them that idea.

  • by DoctorJB ( 1677550 ) on Sunday November 15, 2009 @05:03PM (#30108862)

    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.

  • by CrankyFool ( 680025 ) on Sunday November 15, 2009 @05:09PM (#30108922)

    So basically ...

    There was a limited part of the workload you couldn't do, and wasn't directly relevant to everything else. But because you couldn't do it, you reacted to that failure by falling apart and not being able to do other things that, by your admission, you should be able to do. In other words, you're self-defeating, and under pressure are prone to falling apart.

    I don't know, man. I can see how that'd be of concern to me as an employer. I promise you that, calculus or not, there'd come a day when there was something you couldn't do and I don't think someone who falls apart under the pressure of failure is a fantastic find.

  • by francium de neobie ( 590783 ) on Sunday November 15, 2009 @05:17PM (#30108986)
    Maybe the US is better. I'm in Hong Kong and these are what I see with local graduates:
    • Theory - they can recite to you how to write recursive quick sort if you ask them, but they still write unnecessarily complicated code that runs in high polynomial times or even exponential times nevertheless. Worse, they don't even know why their program ends up running slowly afterwards. When the time comes for optimization, they take blind guesses instead of using proper profiling tools.

      The most common reasons for slow programs aren't never about someone using bubble sort rather than quick sort, or performing random access on a linked list rather than a skip list - that almost never happens. If a particular algorithm is very important for a particular operation I would have told the programmers beforehand. The most most common reason for slow code is because somebody doesn't have a good sense of design and a good sense of what's happening in library functions, and did something stupid without knowing it. 4-year (it's 3 years in HK) college alone doesn't help that. In fact, what I've seen is that university graduates grossly overestimate their ability at it. Technical college people would just look at the profiler or timer outputs and optimize accordingly, or ask me if there's something they can't understand (uni. graduates hate asking, for some reason).
    • Exposure to lots of different programming and design styles - everybody is bad at it here, except those who go to learn it themselves. Everybody in the CS or Comp. Eng. programs need to learn Assembly (x86 and MIPS), C++, Java, Scheme and Prolog - everybody hates the Professor who teaches Scheme and Prolog (who happens to be my FYP supervisor, but I actually liked him) because they don't see how they're used in real jobs. Almost everybody hates the C++ courses because their understanding of memory management stops at new and delete, and thus the most common thing that anyone's C++ program does is segmentation fault. Only those who learn things themselves would care about object ownership and memory debuggers like Valgrind. Java is perhaps the only thing that most people can actually code in, but my university's courses are mostly taught in C++. People do well in asm projects - but that's only because those projects are exceedingly simple. A game of mastermind in MIPS asm is considered "very difficult" here.
    • Database design - they can draw E-R diagrams. It stops there. What's normalization? Why do you need indexes? What's a constraint? Why are you asking me to search Google? Fuck. I just wasted a lot of time explaining exactly these things to a university graduates 2 weeks ago, when I asked him to design a relatively simple PostgreSQL db schema with very clearly laid out requirements. "What did YOU do in your database course projects, at all?!" "My course db schema only had three tables!" I gave plenty of lecture on that guy and had him redesign the schema, and he got it after 3 tries. But had I not been busy at other tasks, I could have done it much quicker.

      Oh, and forget about asking these guys to use the command line client (mysql, psql, mysql-dump, etc.) - they can't navigate a Linux shell for the life of it. You HAVE to give them a GUI or web based management interface like phppgsql.
    • Strong English writing and speaking skills - I guess it's less of a problem in the US. Hong Kong is far better than mainland China here - you get grammatically correct English most of the time. Then, it stops there. They don't know how to use it to convey meaning. Code documentation looks like something written by a bad AI chat client - what the reader gets from the English can very often be totally different from what the programmer tried to convey.

    btw, I'm a recent university graduates here and I'm also an employer here (I worked for a commercial open source project [] in my first two years after graduation and I'm now running my own startup) so I know both sides of the picture. Except for a few, unive

  • 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.

  • by Anonymous Coward on Sunday November 15, 2009 @08:02PM (#30110324)

    Ok I just want to say first off that I agree with your assertion that you don't need a degree to be a successful software developer. It helps if you had a good CS program and put in the work for it. That being said there are a few ways, especially searchable on Google on how calculus can apply to computer algorithms. Take the whole aspect of Big-O notation. Analyzing your algorithms and taking a mathematical approach to optimizations. Now, this also depends on what level of programming and what domain you're in doing this. Many software development jobs don't require you to think about functions and algorithms in a Big-O sort of way as many of the layers below whatever language you may be using has already taken care of this (optimizing compiliers/Bytecode optimizations, etc). A good computer science curriculum can give you the mathematical tools for good programming practices but again it depends on what level of development you are doing and what industry you are in. I can say that Discrete math was a lot more useful to me than calculus which is marginal in my line of software development.

  • by mschuyler ( 197441 ) on Sunday November 15, 2009 @10:16PM (#30111140) Homepage Journal

    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!

  • by Mr. Slippery ( 47854 ) <> on Monday November 16, 2009 @12:12AM (#30111878) Homepage

    All developers are blue collar. Programming is the IT equivalent of brick laying, it's a trade, not a profession.

    A "developer" is more than a "programmer". A software developer designs and implements software, while a programmer is merely an implementor. If programmers are brick layers, developers are architects.

    Professions have legal status; Doctors, lawyers, accountants have to be certified and approved.

    One definition of "profession" is "something that you need a government permission slip to do". This definition is much favored by those who work in those fields, and who feel that these permission slips make other people respect them. This is, to my mind, a laughable contention: you need a license to be an "esthetician", you don't need one to develop software, yet I'm pretty sure software developers get more social respect.

    Most people, though, when they think of a "professional", think of someone with extensive knowledge -- of both theory and practice -- who continually updates their skills, who works with a certain amount to autonomy, and who commits to the development of their field above and beyond their own personal interests. Journalism, software development, and the sciences, for example, would all be consider to be "professions" by most people, yet practitioners do not (thank goddess) need government permission.

  • Yes it's true... (Score:3, Interesting)

    by Kazoo the Clown ( 644526 ) on Monday November 16, 2009 @10:11PM (#30124966)
    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.

Thus spake the master programmer: "Time for you to leave." -- Geoffrey James, "The Tao of Programming"