Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
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 Anonymous Coward on Sunday November 15, 2009 @01:26PM (#30107180)
    I wear a T-shirt.
  • by blahplusplus ( 757119 ) on Sunday November 15, 2009 @01:27PM (#30107188)

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

    • Comment removed (Score:5, Insightful)

      by account_deleted ( 4530225 ) on Sunday November 15, 2009 @01:32PM (#30107228)
      Comment removed based on user account deletion
      • by commodore64_love ( 1445365 ) on Sunday November 15, 2009 @02: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 Cattle...er, Resource people need to filter-out the "hirables" from the chaff somehow.

        • by Blakey Rat ( 99501 ) on Sunday November 15, 2009 @02:44PM (#30108054)

          The longer you spend time in school (2, 4, or 6-year degrees), the greater value you have to the employer.

          Only because the Employer *thinks so*. That's a self-fulfilling prophecy.

          In the real world, I've seen no correlation between education and programming ability, or communication skills, or planning skills. Absolutely none whatsoever. Despite that, I've worked at companies that require candidates to have a 4-year degree, a policy I thought was grossly unfair.

          Why don't I have a degree? For some reason I've never understood, a CS degree that my University required calculus. I can't hack calculus... my failing that class multiple times destroyed my self-esteem to the point where I dropped out of school rather than try again.

          What does calculus have to do with programming? From my experience, nothing. Absolutely nothing.

          I don't have a degree because the degree program required a difficult, pointless, and utterly useless class. After a few years, I realized it wasn't me who was dumb. And that was confirmed when I entered the industry and began interviewing candidates who had calculus degrees, but couldn't code worth crap.

          Obviously, maybe I'm a weird and special case, but you can see that I really don't care whether a job seeker has a degree or not, I'll give them a shot either way. If they can hack it, they can hack it.

          (Oh, sure, there's going to be someone who stands up and goes, "well what about programming video and audio compressors?" But that's not using calculus as a *programming* concept, that's using calculus because it just happens to be relevant to that problem domain. Just like you'd be better off knowing the GAAP if you're writing an accounting application.)

          • Re: (Score:3, Insightful)

            Comment removed based on user account deletion
            • Re: (Score:3, Insightful)

              by Blakey Rat ( 99501 )

              But you're in a problem domain that would have required calculus even if it you were solving the problem with rulers and graph paper. If you were working with accounting software, you'd do much better if you knew the generally accepted accounting principles... but do CS courses teach that? No.

          • by joss ( 1346 ) on Sunday November 15, 2009 @03:04PM (#30108266) Homepage

            > I can't hack calculus...

            Sure you can be a great programmer (in most areas) without knowing calculus, but still.. there is the fact that you just couldnt figure out something that a lot of people can cope with. As an employer I would have to wonder what else you couldnt figure out. Unless there was something pretty damn significant in your favour to counterbalance this, I would hire the person capable of jumping over the (somewhat arbitrary) hoops necessary to get the degree

          • This is an over-simplification, but take a look at the cognitive domain of Bloom's Taxonomy [wikipedia.org]. 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 mbkennel ( 97636 ) on Sunday November 15, 2009 @01:55PM (#30107514)

      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.

      And who exactly were they cheating off of? You think everybody in Caltech is cheating off of the guy going to DeVry?

      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.

      Somebody who believes educational success is all about social status in technical subjects is probably somebody who was lazy and prefers to say stuff like "Persistance and skill are often confused."

      In the real world, persistence multiplied by skill gets stuff done. And yes those students who had the social maturity to recognize that even though they may be smart they also have to put in their labor too are the ones who get ahead. As they should.

      What level education are you thinking about anyway? My experience is that the level of intelligence and skill at the top level universities is truly very high. Moreover, people from that environment tend to be (mostly) pretty well adjusted and agreeable, especially since they've had enough experience with other very smart people that they realize they're no longer the only sharp fork in the drawer by any means. People who may have been bright but always surrounded by mediocrities can have a pretty arrogant attitude, like "the education system is really about handing out status to attempt to justify who gets jobs over who doesn't merit be damned".

      I've now been on the other side interviewing for open positions in my company. In my group we typically take MS and PhD graduates in serious quantitative subjects from major research universities---that works quite well. However I have done some interviews with others who didn't fit that, but tried to convince us that they had the get-it-done-skill. It became apparent quite quickly that they didn't have the fundamental insight and intelligence that we want.

      • Re: (Score:3, Informative)

        Wow, I hope you pay well

        In my experience, 99% of the tech industry is EXTREMELY mediocre. It's about paying the absolute bottom dollar, regardless of skill.

        Being employed in this market is about charging less than the next guy, and the next guy shares a Soviet-era apartment complex with two people in the Czech Republic.

        Sound bitter or cynical? That's because I've not only lost most of my educated and skilled colleagues to these people, I've lost the initial off-shore/outsource people (typically from Singapo

      • Re: (Score:3, Insightful)

        by sjames ( 1099 )

        Really, the degree MAY indicate those things, or may indicate someone who went through all the motions for 4 years or who has no idea how to apply what they've learned.

        The skilled programmer without a degree either had aptitude so far over the top that by the time they graduated high school they were already qualified to go directly into the industry, or they at least had adequate self-motivation that they didn't need to be guided through how to learn. Of course, they might also have big holes in their know

    • No, it's not. (Score:5, Insightful)

      by KingSkippus ( 799657 ) on Sunday November 15, 2009 @01:57PM (#30107528) Homepage Journal

      education does NOT ensure someone is smarter or more skilled

      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.

      Persistance and skill are often confused...

      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.

  • by acidfast7 ( 551610 ) on Sunday November 15, 2009 @01: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 SupplyMission ( 1005737 ) on Sunday November 15, 2009 @01: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.

  • Algorithms (Score:5, Insightful)

    by moo083 ( 716213 ) on Sunday November 15, 2009 @01:28PM (#30107196)
    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.
    • Re:Algorithms (Score:5, Insightful)

      by JustShootMe ( 122551 ) * <rmiller@duskglow.com> on Sunday November 15, 2009 @01:32PM (#30107234) Homepage Journal

      The really good "untrained" programmers know where to look for the algorithms. I don't have a degree, but I can use doubly linked lists, sort algorithms, mandelbrot, etc., because when I needed them I learned how to use them.

      You're not talking about trained vs. untrained, you're talking about stupid vs. intelligent, and not only do you not need a degree to be intelligent, you can be stupid while still having a degree.

      Which I think was the OPs point, masked in a thinly veiled class warfare reference.

      • Re:Algorithms (Score:5, Insightful)

        by Sir_Sri ( 199544 ) on Sunday November 15, 2009 @02:20PM (#30107730)

        yes, the trick with the advance degree is that you learn in advance about them and when to know how to use them. It also depends very much on what you end up doing at the end of it all,if you end up in a job where traditional search and sorting are your bread and butter you'll pick that up quickly, but not all jobs are like that. Linked lists and sorting is a first and second year problem, Greedy algorithms, graph theory, (shortest path stuff), linear programming are 3rd year and so on.

        I'm taking a grad course in machine learning, where we learn about the backpropogation algorithm (the first algorithm we talked about in class, in I think the first real lecture or maybe second). If in highschool someone had told me go look up and use the backpropogation algorithm for something I could have. But the guy with the degree is supposed to know which to use. Oh and you know all those big O notations... well we have a grad course in algorithms which is all about trying to calculate the numerical coefficients in front of the n^2 or whatever. In that case when they adverted the course to us, the prof gave this sample of two different implementations of the same O(n^2) sort, one had a coefficient of 1.7 the other was 2.something. Maybe important, maybe not. Maybe more education in this case is diminishing returns, but then you don't offer more education to that many people.

        All things that of course you can learn on your own, if it's important, if you have time. The point of having the advanced degree person is they have taken the time, and may know other algorithms as well, and can direct the learning of the other people, who didn't have the time or if at the time it wasn't important. Just the same when you're actually at a company not everyone has time to read the literature, someone has to read, and understand a lot of literature and filter down to the important stuff which is then sent off the relevant people.

    • Re: (Score:3, Insightful)

      Comment removed based on user account deletion
      • Re: (Score:3, Insightful)

        by moo083 ( 716213 )
        Agreed. But it all comes down to probabilities. An English Major is more likely to write a successful book, but then there are many with no degree who have gone on to do great things...
    • Re:Algorithms (Score:5, Interesting)

      by Planesdragon ( 210349 ) <slashdot@castl e s t e e lstone.us> on Sunday November 15, 2009 @01: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.

      • Re: (Score:3, Funny)

        by lennier ( 44736 )

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

        Your ideas intrigue me and I would like to enrol for a PhD in History at your institution.

        Preferably sometime with zeppelins.

    • Re: (Score:3, Interesting)

      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 l

    • Re:Algorithms (Score:5, Interesting)

      by Omnifarious ( 11933 ) * <.eric-slash. .at. .omnifarious.org.> on Sunday November 15, 2009 @01: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.

  • Oh come on... (Score:3, Insightful)

    by JustShootMe ( 122551 ) * <rmiller@duskglow.com> on Sunday November 15, 2009 @01:30PM (#30107212) Homepage Journal

    Oh come on, since when did blue collar ANYTHING get paid more than the white collars?

  • No. (Score:4, Interesting)

    by Manip ( 656104 ) on Sunday November 15, 2009 @01: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.

    • Re: (Score:3, Informative)

      by Omnifarious ( 11933 ) *

      Google was all set to offer me a job and it fouled on a bit of bureaucratic stupidity. But I passed their technical interview. I have no degree, and my lack of degree didn't figure into the bureaucratic stupidity.

      It took a lot of people inside the company recommending me for them to give me a serious interview. But it happened. So the idea that they only hire people with graduate level degrees is a myth.

  • by Anonymous Coward on Sunday November 15, 2009 @01: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.

  • Maybe ... (Score:3, Insightful)

    by smoker2 ( 750216 ) on Sunday November 15, 2009 @01:34PM (#30107254) Homepage Journal
    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.
  • by chrysrobyn ( 106763 ) on Sunday November 15, 2009 @01: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.

    • by DustyShadow ( 691635 ) on Sunday November 15, 2009 @01: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 hackerjoe ( 159094 ) on Sunday November 15, 2009 @03:01PM (#30108236)

      What you may not appreciate, as an engineering graduate, is that a computer science degree is a science degree, not an engineering degree. 2-year technical diploma programs are sometimes closer to engineering degrees than computer science generally is.

      The (admittedly anecdotal) evidence I've seen is that at least at institutions local to me, engineering programs include training like project planning and estimation, teaching you to keep a log while you're investigating so you can double-check you covered all possibilities, as well as including several practical project courses. Computer science, on the other hand, while it does focus on math and the math behind logic, doesn't include all this practical training that's essential to your actual job as a programmer.

      I have contemporaries who tell me that beyond C++ 101 you can get through a CS degree without writing any code -- which is perhaps appropriate for an academic who's interested in group theory, but not for someone I'm going to hire.

      So while I'd rather work with someone who's had that rigor and practical knowledge drilled into them, there's no guarantee that's what you're getting when you hire a computer science bachelor's graduate. Which is why I think we need 4-year software engineering professional degrees, but then while we're at it maybe I could get a pony too..

  • by Kjella ( 173770 ) on Sunday November 15, 2009 @01:39PM (#30107322) Homepage

    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.

  • by Comatose51 ( 687974 ) on Sunday November 15, 2009 @01:47PM (#30107430) Homepage

    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.

  • by noidentity ( 188756 ) on Sunday November 15, 2009 @01:48PM (#30107444)

    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?

    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.

  • by petes_PoV ( 912422 ) on Sunday November 15, 2009 @01:49PM (#30107460)
    When you get dozens of applications for a single position there's got to be some pre-interview filtering - otherwise people would waste all their time (no matter which side of the desk you sit on) interviewing. After you've discarded the poorly spelt and punctuated offerings and before throwing the pile into the air[1] you might as well try one more layer of objective selection. What could be better than preferring people who've got more education?

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

  • Please no... (Score:5, Insightful)

    by QuoteMstr ( 55051 ) <dan.colascione@gmail.com> on Sunday November 15, 2009 @01:52PM (#30107486)

    This is the kind of story that will bring out the worst in Slashdot. It has it all:

    • provocation for pragmatic and the elegant schools of programming
    • bringing the know-nothing anti-intellectuals out of the woodwork (Durr! I just need to know dem PHP!)
    • bringing all the hyper-sensitive academics out of the woodwork (E Gahds! I can't let the PHP guy go uncorrected! *typetypetype*)
    • inflaming emotions over an issue that can't possibly be resolved objectively
    • a complete lack of substantive merit; nobody will walk away smarter
    • setting up a divisive us-versus-them mentality that's practically purpose-built for flamewars

    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.

  • by tjstork ( 137384 ) <todd.bandrowskyNO@SPAMgmail.com> on Sunday November 15, 2009 @02:02PM (#30107580) Homepage Journal

    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.

  • by fooslacker ( 961470 ) on Sunday November 15, 2009 @03:12PM (#30108352)
    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..
  • What stigma? (Score:4, Insightful)

    by shutdown -p now ( 807394 ) on Sunday November 15, 2009 @03:18PM (#30108410) Journal

    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.

  • by ducomputergeek ( 595742 ) on Sunday November 15, 2009 @03:27PM (#30108502)

    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.

  • by mlwmohawk ( 801821 ) on Sunday November 15, 2009 @05:08PM (#30109380)

    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.

  • by mschuyler ( 197441 ) on Sunday November 15, 2009 @09: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 br00tus ( 528477 ) on Monday November 16, 2009 @03:29AM (#30113034)

    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.

  • by DarthVain ( 724186 ) on Monday November 16, 2009 @12:38PM (#30117708)

    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.

  • by unity100 ( 970058 ) on Monday November 16, 2009 @02:19PM (#30119708) Homepage Journal

    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.

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

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

Real Programmers think better when playing Adventure or Rogue.

Working...