Slashdot Mirror


The Case For the Blue Collar Coder

theodp writes "U.S. tech talent shortage discussions tend to focus on getting more young people to go to college to become CS grads. Nothing wrong with that, writes Anil Dash, but let's not forget about education which teaches mid-level programming as a skilled trade, suitable for apprenticeship and advancement in a way that parallels traditional trade skills like HVAC or welding. Dash encourages less of a focus on 'the next Zuckerberg' in favor of encouraging solid middle-class tech jobs that are primarily focused on creating and maintaining tech infrastructure in non-tech companies. Dash also suggests 'changing the conversation about recruiting technologists from the existing narrow priesthood of highly-skilled experts constantly chasing new technologies to productive workers getting the most out of widely-deployed platforms and frameworks.'"

7 of 233 comments (clear)

  1. Coding is a skill, not a profession by concealment · · Score: 5, Insightful

    This makes sense to me. Most of the best programmers I've known are guys who otherwise would be installing air conditioners, fixing big trucks or re-wiring buildings.

    Coding is not a profession. It's a skill, which is a part of a series of job descriptions and career paths, but in itself it's a form of knowledge more like what an electrician has than what professionals like architects, doctors, lawyers and assassins must know.

    Apprenticeship is an excellent idea since most of the "best practices" can't be taught at a school, and apprenticeship allows people with applied skills to shine, instead of schools where those with excellent detail memorization shine. Most of the best programmers I know either never went to school for it, or didn't do all that well at school.

    Bring back the hacker aesthetic. Professions are for those who want to super-specialize and master specific high-level skills. Hacking is something anyone with the gumption and dedication can do. As the world expands into mobile devices, ordinary people are writing code every day.

    That being said, CS needs to find a new career type that might belong to professions. I suggest "product architect" (like Steve Jobs) and "total systems integrators" (like what the Google guys do, interoperability) for those who will need college degrees or equivalent and a professional mindset.

    1. Re:Coding is a skill, not a profession by mikael_j · · Score: 5, Insightful

      And I've seen guys with Master's degrees in CS and systems science using floats for currency calculations. I've even been the one to clean up after them, despite the fact that I dropped out of college and by the standards of some people should be the one using hash tables where I should be using lists, floats where I should be using decimals, shouldn't know what a modulo operator is, shouldn't have a clue when it comes to how the quicksort algorithm works, should never even have heard of big O notation...

      Just as you shouldn't assume that everyone without a degree is completely lacking in skills you also shouldn't assume that a degree somehow makes someone competent, there are hordes of developers out there who took CS in college in the late 90's because they thought "computers = big money" and somehow managed to graduate. Hell, looking at a lot of the guys I went to HS with who went on to major in CS in college I suspect most of those just thought "I like computer games so why not study something with computer in its name?", I even had a few people like that as classmates in college (gotta love being the only one in a four man team actually writing code, the others all volunteered to write the documentation)...

      And no, I don't think I'm a "rock star coder", I'd consider my skills as a developer to be pretty average. A decent enough CRUD and business coder who writes some slightly more interesting code in his free time.

      --
      Greylisting is to SMTP as NAT is to IPv4
    2. Re:Coding is a skill, not a profession by 0100010001010011 · · Score: 5, Insightful

      Fixed point is very much a lost art. There should be an entire class dedicated to it and anyone in ME or EE that wants to do robotics should be forced to take it. We have to train every single CS, ME and EE that comes in how to do it in Simulink (We use auto code generation and fixed point everything before production).

      I do embedded controls and floating points are 'expensive' with most of the chips we use. They're still not that common. But people don't understand how much faster they can be than floats when your stuff doesn't have an FPU.

      I picked up an Arduino and ran some floating point vs fixed point benchmarks:

      Each of these calculations was run 500,000 times.
      d=a+b; e=c+b-a;
      f=a+b+c; g=a*b*c;

      Floating point:
      a=1.1298373 b=2.3249869 c=3.8923873
      d=3.4548244 e=5.0875368 f=7.3472118 g=10.22
      Execution Time: **14528 ms**

      Int:
      Integer Representations:
      a=36 b=74 c=124
      d=110 e=162 f=234 g=2656
      Floating Numbers:
      a=1.1250000 b=2.3125000 c=3.8750000
      d=3.4375000 e=5.0625000 f=7.3125000 g=0.0625000
      Execution Time: **348 ms**

      Long Int:
      Long Representations:
      a=36 b=74 c=124
      d=110 e=162 f=234 g=330336
      Floating Numbers:
      a=1.1250 b=2.3125 c=3.8750
      d=3.4375 e=5.0625 f=7.3125 g=10.0625000
      Execution Time: **1951 ms**

      Now when you're using a 16 Mhz controller to make das blinken lights it doesn't matter. But when you start getting into autonomous control and trying to do real time processing of a few dozen sensors to make sure your flying robot doesn't smash into the wall it does matter.

  2. I am a blue collar coder by Big+Hairy+Ian · · Score: 5, Interesting
    Been in the business for over 20 years now. The only issue I have makes getting jobs difficult as too many companies wont touch you without a degree.

    BTW The closest my school had to Computer Science was a couple of Commodore Pets and a maths teacher who thought all that was involved with CS was logic. Ah well where there's a geek there's a way :)

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  3. Floating point in financial transactions by sjbe · · Score: 5, Informative

    Huh? Floats is the standard representation of numbers almost everywhere.

    Not in financial transactions. While there are ways to do financial transactions with floating point numbers, they have an alarming tendency to introduce rounding errors. When you are dealing in money, rounding errors are an extremely bad thing because then the books don't balance anymore. One common way to deal with the problem of rounding floats is to treat the stuff to left of the decimal as an integer and the stuff to the right as another integer since there are no rounding issues with integers. While not as fast as floats, the extra accuracy is worth it in this instance. There are other ways to solve this problem but you'll find conventional floating point is used with great caution in the financial world.

    There's a reason floats are implemented in hardware.

    Which has nothing to do with why floating point numbers are often not used for financial transactions.

  4. Indeed:Coding is a skill, not a profession by luis_a_espinal · · Score: 5, Insightful

    That's all well and good until you find out they've been using floating point for currency calculations, and they can't figure out why their bubble sorts are so slow.

    I've worked with programmers with associates degrees. Some bad; some good. I'm not entirely against them, but I would not want an entire team made up of them. They have huge blind spots that CS grads don't have.

    You see that also with people with BS degrees, and I know about those (and a lot more) when I got my AA degree. Truth to be told, I knew more about programming and CS when I left community college than my sophomore/junior peers when I transferred to a 4-year university... and I met quite a few senior students and even grad students who couldn't picture an array of pointers to structures with function pointers as fields (not that you want to do that every day, but c'mon a senior CS student or grad student should have no problem visualizing that.)

    I got a BS in CS, went to grad school and now I'm trying to go to grad school to switch into a more hardware oriented degree. I have 17+ years working on this, and I can say with great confidence that most "enterprise" programming tasks do not require a BS-level education in computer science.

    More importantly, a good community college can provide, via a AS degree, all the tools needed to do work : systems analysis and design, structured and object-oriented programming, all that mixed with an intro to the basics of algorithm analysis (without the proving part), hands-on RDBMS, basic network/sysadmin skills and other fundamental skills like using/setting source control and bug tracking systems and technical writing.

    You are right when you say you don't want to work with a group made solely of AA/AS graduates. I know; I started my career with a AA only, and I know for a fact that such a group needs more senior members to give technical direction.

    But, for IT and the typical enterprise programming, we really do not need to know about the pumping lemma, prove the equivalence of turing machines to lambda calculus or the differences between micro kernel and monolitic kernels or proving some something on the structure of bizantine problems.

    Blame it on the dot-com that we had a push for MOAR!!!(10+1)! 4-year degrees for web page design, which in turn converted most CS 4-year programs into Java/.NET vocational schools (where a person can graduate w/o even understanding what a pointer or a segfault is.)

    The correct thing back then would have been to promote more community-college level vocational education as 2-3 year AS/AAS degrees. It would have been the best for the career, the nation and for all the students involved.

    I love CS, I love my degree, I love my grad education, and God willing, I will get my Ph.D, and I love my line of work. But hell that I will ever propose that a BS degree is the minimum required to work on IT/enterprise programming.

    I pray to ${DEITY} that this will become a firm step in the right direction.

  5. It doesn't matter. by Anonymous Coward · · Score: 5, Insightful

    This kind of misunderstanding isn't what is causing the major pains in the industry.

    Changing the educational emphasis won't address the major pains.

    The major pains are caused by:

    1) The perception that one cannot build a career on software development, because agism forces people to change to a completely different career sometime after they turn 35. True or not, this scares people away from the field, as it should, because if it is true then anyone talented/intelligent enough to do software development is talented/intelligent enough to do something else instead.

    2) The perception that software development pays less than other fields that require comparable talent/intellegence. If true, it makes perfect sense that people who know they have what it takes would turn their noses up at a low-paying waste of their talents.

    3) The perception that one is perpetually at risk for having their job outsourced to cheap foreign labor. Nobody likes working jobs where they don't know if they will still be employed the next day (and the deciding factor isn't even dependent on their performance).

    4) The perception that developers are expected to overwork, sacrificing their personal lives for a company that won't even pay them overtime wages for it. Work-life balance is important, and people will shy away from careers that deprive them of it.

    Address these perceptions, and address the issues that cause these perceptions, and you will see people naturally choosing to do software development again.

    Refuse, and employers will face a lackluster market populated mostly by people with social/professional problems (or timezone, native language, and cultural acclimation problems).