Beta

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Case For the Blue Collar Coder

timothy posted about 2 years ago | from the cue-the-call-for-unionization dept.

Education 233

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

cancel ×

233 comments

Sorry! There are no comments related to the filter you selected.

Coding is a skill, not a profession (5, Insightful)

concealment (2447304) | about 2 years ago | (#41583627)

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.

Re:Coding is a skill, not a profession (2, Interesting)

Anonymous Coward | about 2 years ago | (#41583651)

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.

Re:Coding is a skill, not a profession (5, Insightful)

mikael_j (106439) | about 2 years ago | (#41583753)

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.

Re:Coding is a skill, not a profession (1)

Anonymous Coward | about 2 years ago | (#41583997)

CS-dudes using floats is not limited to currency calculations and the problem has nothing to do with what is being calculated on.
The thing is that there are a lot of guys in CS who doesn't understand what a float is and what happens to it when you use it in iterations. You can easily end up with physics simulations where the number of significant bits are less than one just because of the automatic scaling and rounding that occurs when you use floating point calculation.

I guess fixpoint is a lost art.

Re:Coding is a skill, not a profession (0)

Anonymous Coward | about 2 years ago | (#41584023)

I always assumed that no-one used floating point except for games, and even then it's risky unless you normalise sufficiently frequently.

Re:Coding is a skill, not a profession (0)

Anonymous Coward | about 2 years ago | (#41584159)

Games and finance and, uh, grocery store scales? Is a CGI script the most complex program you've ever seen?

Re:Coding is a skill, not a profession (1)

olau (314197) | about 2 years ago | (#41584203)

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

It's true you can have pathological cases, but any efficient number representation you pick will necessarily be a trade off. There's a reason floats are implemented in hardware.

Floating point in financial transactions (5, Informative)

sjbe (173966) | about 2 years ago | (#41584541)

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.

Re:Floating point in financial transactions (0)

Anonymous Coward | about 2 years ago | (#41584693)

When you are dealing in money, rounding errors are an extremely bad thing because then the books don't balance anymore.

..Or you can just change the rounding rules to always round up or down in specific cases and stop dropping money left and right to make broken book keeping a self-fulfilling prophecy.

Re:Coding is a skill, not a profession (1)

RabidReindeer (2625839) | about 2 years ago | (#41584211)

I always assumed that no-one used floating point except for games, and even then it's risky unless you normalise sufficiently frequently.

Unfortunately, you assumed very, very wrong.

Very few programming languages come with native fixed-decimal capabilities as a first-class operation the way COBOL does. Most (such as Java) have to do financial calculations using cumbersome support packages and some don't even have that much. Everyone else just fakes it using floating-point, and even a lot of Java and C financial code is done in floating-point because the pressure is on to "Git 'er Dun" and that means using something where you can type "balance += transactionAmount;" instead of a lot of clumsy dancing around with method calls.

Re:Coding is a skill, not a profession (1)

h4rr4r (612664) | about 2 years ago | (#41584243)

Why would you need fixed decimal at all?

Can't you keep track of pennies instead of dollars and just avoid that whole issue?

Re:Coding is a skill, not a profession (1)

h4rr4r (612664) | about 2 years ago | (#41584281)

Actually scratch that, I guess parts of pennies can somehow exist. Never mind that they can't be paid.

Re:Coding is a skill, not a profession (1)

serviscope_minor (664417) | about 2 years ago | (#41584457)

Actually scratch that, I guess parts of pennies can somehow exist. Never mind that they can't be paid.

But by that stage, you may as well use floating point or fixed point binary. Fixed point decimal is no better at representing fractions than fixed point binary. Nothing wil help if you need 1/3 of a penny.

Fractional pennies (1)

sjbe (173966) | about 2 years ago | (#41584595)

Actually scratch that, I guess parts of pennies can somehow exist. Never mind that they can't be paid.

Not only can they be paid, they often are. Remember that most currency is not actually coins and bills. Most of it is just numbers in ledger somewhere. Stock transactions are often to as many as 5-6 decimal places. My company quotes parts with prices containing 4 decimal places. When you are dealing with many thousands of parts those fractions of a penny can add up to real money pretty quickly.

Re:Coding is a skill, not a profession (5, Insightful)

0100010001010011 (652467) | about 2 years ago | (#41584955)

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.

Re:Coding is a skill, not a profession (0)

Anonymous Coward | about 2 years ago | (#41584401)

Right, anecdotal evidence is great! But what do you think is more statistically likely? An associates degree guy knowing that or a master's degree guy knowing that?

That's a pretty low hanging fruit I would think.

I think the real issue here is that finding a person worth their salt is still ridiculously hard, and a decent coder that can get shit done is worth their weight in gold.

Indeed:Coding is a skill, not a profession (5, Insightful)

luis_a_espinal (1810296) | about 2 years ago | (#41584737)

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.

That's a Very Generic Thesis (4, Insightful)

eldavojohn (898314) | about 2 years ago | (#41583723)

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.

There is a substantial amount of math and logic that should be used as a foundation for programming. I know the coworkers that would otherwise be installing air conditioners when I ask people if they thing we could use a more functional-type language for a new project instead of an object oriented language. You're usually met with blank stares.

Coding is not a profession. It's a skill

This could be said about anything that people pay you to do. Anything.

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.

What? Look, I think you're trying to discuss what you feel is the percentage between creativity and regurgitation in each of the above subjects. And I will tell you right now that all those fields are diverse with jobs that require more than one of the other. If you want to say programming requires more creativity and that's something that cannot be taught then at least give me a compelling argument for that.

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.

If only you could see the spaghetti code I've seen. Ordinary people are free to write code, in fact I love that and I hope that continues to expand. But when you're talking about commercial grade software being written for a company that is being sold to people for real money ... that's when I start to cringe that "good enough to tinker with in my home means good enough to be deployed to millions of personal devices across the world."

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.

Personally I value my liberal arts college degree and I think my employer does as well. I can communicate better with customers and I now understand much more of the world now than I did in high school (when I thought I knew everything).

You're free to apply to jobs but when you're going up against people who have rigorously studied mathematics, logic, philosophy, English, etc you have to be ready to show an employer what you're made of before your application is automatically rejected by some routine resume sorting algorithm. It's not that those algorithms are correct, it's just that employers are too lazy to spend two hours with every single person on the planet trying to find the right applicant. Instead, if I didn't go to college, I'd buy a virtual private server and be going to town on developing things that look good so I can show them off. Honestly, I think it was easier, more fun and more eye-opening (yet way more expensive) for me to go to a liberal arts college. It's your life, so do what you want. You can tell the recruiters they're doing it wrong but then again it's their job and that's their decision. This sounds like some very talented hackers venting about the problems with entering into the workforce.

Re:That's a Very Generic Thesis (2)

Attila Dimedici (1036002) | about 2 years ago | (#41584067)

If only you could see the spaghetti code I've seen. Ordinary people are free to write code, in fact I love that and I hope that continues to expand. But when you're talking about commercial grade software being written for a company that is being sold to people for real money ... that's when I start to cringe that "good enough to tinker with in my home means good enough to be deployed to millions of personal devices across the world."

Have you seen the wiring put into houses by people who are "good enough to tinker with in my own home" when it comes to electrical work? It makes spaghetti code look straightforward. I've known several people who were very good "handyman" electricians. If you needed one new outlet run, or a single light fixture added, they were very bit as good and reliable as a certified electrician. But, if they wired more than five or six circuits in a house (usually only happened if it was the house they owned and lived in), if you needed someone else to wire anything in the house (such as after they sold it) you would usually have to rewire the whole house in order to figure out what outlets and fixtures were on what circuits.

My god, it's a liberal arts major :) (4, Insightful)

concealment (2447304) | about 2 years ago | (#41584193)

I enjoy your comments on the site, so you'll get more than the standard drive-by response from me.

There is a substantial amount of math and logic that should be used as a foundation for programming. I know the coworkers that would otherwise be installing air conditioners when I ask people if they thing we could use a more functional-type language for a new project instead of an object oriented language.

First, I'd like to make it clear that I am not scornful of these fields. Air-conditioning installing, building wiring, etc. are not devoid of creativity and intelligence requirements.

In fact, like programming, there's a huge gulf between doing it and doing it right that is determined by degree of intelligence and creativity.

You may find that intelligence level is the difference between the blank starers and the thinkers, if you look back over the years.

Look, I think you're trying to discuss what you feel is the percentage between creativity and regurgitation in each of the above subjects. And I will tell you right now that all those fields are diverse with jobs that require more than one of the other. If you want to say programming requires more creativity and that's something that cannot be taught then at least give me a compelling argument for that.

I'm not communicating effectively here. I'm not trying to make this a comparison of creativity levels, or regurgitation, except to say that I think education over-emphasizes regurgitation, which is not the skill that differentiates an excellent programmer from a hum-drum one. This was a statement I made in support of the apprenticeship idea.

Professionals are different from all other careers in two crucial ways: first, they must be able to handle a huge amount of detail and balance those details against one another; second, they are responsible for greater impact than most others, and as a result need to have critical thinking, leadership and human perception skills that are not normally required.

I'm thinking of doctors, lawyers, CEOs, architects and probably a few other groups here. I don't know if creativity is what is needed; most jobs call for inventiveness, or the ability to apply different forms with a bit of fudging so that new uses arise. But so does life itself.

Are we shuffling too many people into these professions? Yes, unquestionably so, just like we're sending too many people to college. This doesn't mean we should forget what these professions actually require, especially since most who attempt them fail.

If only you could see the spaghetti code I've seen. Ordinary people are free to write code, in fact I love that and I hope that continues to expand. But when you're talking about commercial grade software being written for a company that is being sold to people for real money ... that's when I start to cringe that "good enough to tinker with in my home means good enough to be deployed to millions of personal devices across the world."

Why do you assume I haven't seen similar forms of spaghetti code? The first workplace skill I mastered was Lamaze breathing so I could avoid shouting expletives when looking over other people's projects. However, I'd be lying if I said these people were not well-credentialed. Some came from what are considered good schools and had good resumes, and make more money than just about anyone else.

Ordinary people are going to be writing more code. For most coding, what is required isn't a mystery. In fact, it's well known and well publicized, so that cut-paste-and-modify programming will continue to be the norm. If you haven't looked at the average web developer these days, you might take a peek, and you may see where programming is going. Mastery of libraries, frameworks and commonly needed syntactical devices has replaced the roll-your-own coder.

You're free to apply to jobs but when you're going up against people who have rigorously studied mathematics, logic, philosophy, English, etc you have to be ready to show an employer what you're made of before your application is automatically rejected by some routine resume sorting algorithm.

I'm not sure where the thought that I might be attacking liberal arts colleges comes into this debate. I didn't criticize any of these degrees, except to point out that as a general matter, education has become detail-management and not critical thinking skill-oriented. An apprenticeship works around the problem you mention, which is that people come with great resumes but have few practical skills, and I think that's the point I was attempting to make.

Re:My god, it's a liberal arts major :) (-1)

Anonymous Coward | about 2 years ago | (#41584327)

My god, it's a liberal arts major :)

Nowhere did the GP say he is a liberal arts major, just that he attended a liberal arts college [wikipedia.org] .

A liberal arts college is one with a primary emphasis on undergraduate study in the liberal arts and sciences.

Of course noting that would require reading comprehension ... instead of knee-jerk jumping on someone because they mentioned "liberal arts."

Doesn't look that way (1)

concealment (2447304) | about 2 years ago | (#41584781)

From the post:

Personally I value my liberal arts college degree and I think my employer does as well.

That's a degree in the liberal arts, unless he chose a deliberately awkward "liberal arts college" + degree formulation.

Re:Coding is a skill, not a profession (2)

Dasuraga (1147871) | about 2 years ago | (#41583827)

I agree. Despite what we want to believe, it's not as if the act of coding is in itself a skill that requires 5 years to learn. Especially considering that a large majority of code is not necessarily going into Google, but into some enterprise software where bubble sort is fine, and they're running on such fast machines anyways that it doesn't need to be using bit twiddling tricks to win a handful of cycles per second.

I think what we need to move more towards is getting CS people out of coding and into becoming software architects. Most software can be easily divided into (relatively) simple chunks, and if you have enough skills put into actually building software, instead of writing code (which is probably the least important part of the process), then the divisions become trivial.

We'll always need the super-skilled programmer to work on the single blocking function that eats up 90% of CPU time, and requries intricate knowledge of all the subsystems involved. But most of the time the code itself is just a translation of pretty simple ideas. Anyone with enough time and motivation can absorb the knowledge necessary to work on them. Think of all the Excel spreadsheets in the world, and how many people who would never say they are programmers actually build complex systems in them, because programming in itself isn't hard. What's hard is building something that is clear and maintanable.

CS grads, who do have (if superficial) knowledge of many different systems, have the knowledge to do the very sort of big picture design that is necessary to building maintanable software. We need to get these guys out of the workshop and into the design bureaus, because they are the ones with the knowledge necessary to become the architects of software. Much like how architects don't build houses, software architects shouldn't be relegated to writing code.

A well-designed system might have many small parts that can be hard to maintain, since it might've been written badly. But if the system is well-designed, the intent of the code will have been set on the outset, so you could rewrite it. And if it's small, a person with enough courage and time could decipher it. But the inverse situation is a true nightmare. A single "genius" programmer might by himself write the most amazing subroutines the world has ever seen, but if the general structure is incomprehensible, then the program will be maintanable.

Let's get CS grads out of coding, and into places where they're really needed.

Re:Coding is a skill, not a profession (1)

0xdeadbeef (28836) | about 2 years ago | (#41584603)

into some enterprise software where bubble sort is fine

For fuck's sake, a business dataset is never going to be so small that "bubble sort is fine".

You see, people? Do you see? This is why we fucking need college.

Re:Coding is a skill, not a profession (1)

dunkelfalke (91624) | about 2 years ago | (#41584655)

Except that for most businesses you don't write your own sorting algorithm implementation but take the dataset sorting method instead. Reinventing the wheel - or worse, reimplementing the wheel - is often a bad idea.

Re:Coding is a skill, not a profession (1)

0xdeadbeef (28836) | about 2 years ago | (#41584911)

That is completely irrelevant, though it explains how someone who is completely ignorant of why some sorting algorithms are classified as better than others could be gainfully employed.

Re:Coding is a skill, not a profession (3, Insightful)

The Snowman (116231) | about 2 years ago | (#41584881)

into some enterprise software where bubble sort is fine

For fuck's sake, a business dataset is never going to be so small that "bubble sort is fine".

You see, people? Do you see? This is why we fucking need college.

The real issue here is talking about the sorting method to begin with. Coding is like playing with Legos. You plug in the "sorting brick" and forget about it. Whatever library you are using should have a properly optimized sorting algorithm with any necessary speed hacks or whatever else is required. Such a library should be well-tested and proven.

Unless you're a Ph.D. candidate looking into sorting highly specialized data sets such as Google's search index, you have no business implementing a search algorithm. You need to be using whatever standard implementation is defined by the language or framework libraries.

At this point in the evolution of Computer Science, "sorting" is a problem that is solved. People smarter than either of us have proven that O(n log n) is the fastest it gets, and we have multiple algorithms to do it. Other smart people have plugged these algorithms into standard libraries and frameworks. People dumber than us decide to reinvent the wheel. /facepalm.

Architecture and craftspersonship (1)

concealment (2447304) | about 2 years ago | (#41584983)

I think what we need to move more towards is getting CS people out of coding and into becoming software architects. Most software can be easily divided into (relatively) simple chunks, and if you have enough skills put into actually building software, instead of writing code (which is probably the least important part of the process), then the divisions become trivial.

This is a good point.

Coding is, in my view, one tool in the belt of a CS grad. The biggest skill is how to apply technology, and that's where critical thinking and analytical skills are essential. Sometimes, coding is the answer; not always.

Often times, the architecture is in integrating multiple systems to work together, and multiple tools are used, including but not limited to coding.

The roll-your-own days are mostly gone. While I'm nostalgic for some aspects of them, we need to acknowledge that today's coder may be stitching together complex chains of software, hardware, operating systems, network, libraries, scripts, shells, etc. in order to make a project as a whole work, and that's where architecture (a career) is more important than programming (a tool, a craft).

Re:Coding is a skill, not a profession (4, Insightful)

Dcnjoe60 (682885) | about 2 years ago | (#41583867)

Another thing lacking in the traditional CS route is understanding of the business one is coding for. I managed projects for a large taxing authority. We found it much more productive to take existing employees who understood the various tax procedures and workflows in the department and train them to program versus hiring CS graduates and train them in tax policy and procedures. People from the "floor" have a totally different insight than management and CS graduates and their insight leads to much more efficient ways of doing things. Of course, the people we pulled from the floor did have an aptitude for programming and desingFor the record, we also hired some CS graduates, depending on specific skill sets needed.

Business IT shops would do much better to consider apprenticeship programs. What is taught in most CS programs did not transfer well into what we needed most. My recommendation to students wanting to pursue a career in IT would be to get a business administration degree with various CS classes as electives (or even minor in CS). That is, unless, you want to work for the big tech companies, in which case, I would flip that and go CS with a minor in business.

At least that is how it works in the Midwest of the US.

Re:Coding is a skill, not a profession (3, Insightful)

BVis (267028) | about 2 years ago | (#41584413)

Training existing employees in needed skills represents a conscious desire to improve the skill set of your existing employees, so you gain ability without the expense and hassle of finding someone new to hire. It treats your employees like assets to be improved, not liabilities to be minimized.

Unfortunately, ISTM that most employers would rather rip off an arm than provide training for their employees. Their logic is that helping employees to expand their skill sets only leads to freshly trained employees that quickly leave because they can make more money/improve their working conditions/get away from a horrible manager by going to another employer. The problem is, while it's short-sighted, they're right. Keeping employees happy is expensive, complicated and time-consuming. Lots of times, it requires a change in the corporate culture. It's hard to go from treating your employees like liabilities and cost centers to treating them like assets. It's *very* hard to convince employees that the culture has genuinely changed; they'll assume it's just another case of management saying all the right things while not actually changing anything of substance, which they have more than likely done before.

In an ideal world, companies that treated their people like shit would quickly find themselves without employees, having had said employees leave to go to another employer that treats them like human beings. (The free market in action, no?) The trouble is that, in practice, the employee is at a severe disadvantage when it comes to how their employer treats them. Their employer basically controls their entire lives (literally, in the case of employer-provided health insurance). Wage slavery is a real thing, and the norm. Most companies treat their employees just well enough to keep them from leaving immediately, which results in employees doing just enough work to not get fired. Management does not want to provide the employee with more ammunition in the battle by making them more marketable as employees; they like them right where they are. Yeahh, I'm going to need you to go ahead and come in on Saturday, mmkay?

Re:Coding is a skill, not a profession (1)

decairn (669433) | about 2 years ago | (#41584043)

GEC Marconi in the UK ran Software Engineering Apprenticeship programs 25 years ago; they were sick of getting COBOL programmers from schools and universities so made a more technically oriented program that taught fun stuff like C, Pascal, LISP, Ada alongside computer operations, QA, project management, hardware design and electronics.

Re:Coding is a skill, not a profession (0)

Anonymous Coward | about 2 years ago | (#41584275)

I've never seen someone without a degree code anything that wasn't a giant turd. Horrible architecture and inappropriate collection use. Don't comprehend basics as to why using a Vector is bad form in a single threaded operation. Does my anecdote negate yours?

I've also seen some real shit slung by people with degrees Bachelors and Masters level.

Re:Coding is a skill, not a profession (1)

TheMathemagician (2515102) | about 2 years ago | (#41584759)

Uhhh ... OK I'll bite. What is wrong with using a vector in a single-threaded operation? And what would you use instead? I can only think you must be talking about a very specific language or domain because it's a very bizarre statement to make.

Re:Coding is a skill, not a profession (1)

RabidReindeer (2625839) | about 2 years ago | (#41584417)

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.

W

T

F

????

A "skill" isn't a "knowledge", it's an application of knowledge. Not everyone who knows how to operate dangerous equipment should be allowed to do so. Not everyone who knows how to cut gemstones can cut them reliably.

Furthermore, there's at least a myth that mid-level coders will someday be senior coders and in an era where even the entry-level people are expected to know and do everything, the whole idea of a static "mid-level, semi-skilled blue collar coder" is just plain absurd. Unlike, say, apprentice plumbers, even the least of coders is not only expected to make decisions, he/she cannot even function without making decisions all day long. If it weren't, we'd be machine-generating the code.

I do favor a guild-like track, where formal academic training and apprenticeship are components. Neither one is, I think sufficient unto themselves.

Most people in the field consider programming to be a craft - a combination of art and science, just like the traditional (non-software) profession of architect. Although the traditional dividing line between blue- and white-collar trades was how sweaty you got (literally, since blue shirts are easier to launder), the ultimate difference is in how much autonomous decision-making you do. That's while programmers tend to be so anti-union. They identify with the decision-makers (management). Unfortunately for them, the reverse isn't true.

A craft is not a profession. (1)

concealment (2447304) | about 2 years ago | (#41584921)

Most people in the field consider programming to be a craft - a combination of art and science, just like the traditional (non-software) profession of architect.

Traditionally, blue collar work has included artisans and craftsmen, and as I recall that's where the apprenticeship method started.

Although the traditional dividing line between blue- and white-collar trades was how sweaty you got (literally, since blue shirts are easier to launder), the ultimate difference is in how much autonomous decision-making you do. That's while programmers tend to be so anti-union. They identify with the decision-makers (management).

I think this is insightful because "autonomous decision-making" is a good dividing line. However, most blue collar work of the type I've mentioned occurs by independent contractors or people with a fair amount of autonomous decision-making, such as installing hardware or planning construction. I don't think "blue collar" should be assumed to mean "because they sweat, they're dumb," which is an assumption that our television shows seem to make.

Re:Coding is a skill, not a profession (0)

Anonymous Coward | about 2 years ago | (#41585005)

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

Complete bullshit. Ordinary people ARE NOT coding every day. The average person barely knows how to

Coding might be an applied skill, but it's about as applied as a mathmaticians use of algebra. It's a tool in a professional software developer's toolkit. You CANNOT build software without software developers - we are highly specialized professionals who not only can code, but can think and solve specific problems that other people cannot.

I'm really getting sick of people talking down my profession and claiming that it's 1) just coding and/or 2) something anyone can and should do.

Already blue collar (2, Insightful)

Anonymous Coward | about 2 years ago | (#41583633)

It's been a blue collar job for most of us ever since I've been coding professionally (since about 2000).

Re:Already blue collar (0)

Anonymous Coward | about 2 years ago | (#41583767)

It's been a blue collar job for most of us ever since I've been coding professionally (since about 2000).

Agreed .... started in '92. Most business application jobs don't require one with a CS degree.

This.... (0)

Anonymous Coward | about 2 years ago | (#41583635)

This, this, this, this.... 100%. Stop talking about it and make HR Depts do it. For most business application development, you DO NOT need a CS degree. Generally, you're not the application designer, you're just working on bits.

   

Programming is applied Math (1, Insightful)

afidel (530433) | about 2 years ago | (#41583643)

Why would we want more un/under educated programmers? Programming is applied Math and very few high school students are going to be equipped to do it well.

Re:Programming is applied Math (4, Insightful)

cnettel (836611) | about 2 years ago | (#41583711)

Programming, in this sense, is applied method calling into your supporting libraries and framework. It has more similarities to designing a nice-looking Word template or using Excel in not overly creative ways. If a programmer of this kind ends up designing her own algorithms or even worse a full class hierarchy, it will surely end up on thedayilywtf. The thing is, they should not need to. You don't expect a household electrician to rewire stuff with a new transformer design just because it seemed fun to do for one specific customer and maybe 10% more efficient. You do standard stuff in standard ways. It's not trivial, but it's all done within well-defined bounds.

I would never want this kind of a job, but if you consider how many things that are still done manually in one way or another by people having GFLOPS on their desktops, it's also obvious that cheaper and more plentiful access to people able to just crank out code to do stuff has a tremendous value.

Re:Programming is applied Math (0)

Anonymous Coward | about 2 years ago | (#41583861)

agreed.

Re:Programming is applied Math (0)

Anonymous Coward | about 2 years ago | (#41583737)

That was my first thought.While 90% of the coding jobs don't require anything higher than algebra, based on my memories of HS combined with my wife's experience as a HS teacher for 20 years I'm pretty sure that the average "blue collar" worker simply can't handle the math (set theory, matrixes, boolean logic, etc.). Hell, a huge chunk of the supposedly STEM-prepared students that go into technical fields in college end up bailing on the sciences and doing something else. For decades there has been hype about tools that "let anyone program." So far, nothing has delivered.

Re:Programming is applied Math (1)

Anonymous Coward | about 2 years ago | (#41584075)

I'm pretty sure that the average "blue collar" worker simply can't handle the math (set theory, matrixes, boolean logic, etc.).

You can work as a programmer for 20 years without uising set theory and matrixes. Most programming is just about moving data around anyway.
As for boolean logic; have you ever tried ordering a hamburger? A McDonalds worker probably uses more boolean logic than what is necessary for most programmers.

Re:Programming is applied Math (1)

XDirtypunkX (1290358) | about 2 years ago | (#41584215)

Programmers might not know set theory in a formal sense, but as a programmer you pretty much have to use set theory in some way (even a boolean expression on integers expresses a set).

Computer Science is applied math (2)

sjbe (173966) | about 2 years ago | (#41583773)

Why would we want more un/under educated programmers?

Because there is a lot of work that needs to be done that doesn't require a degree in computer science and people with those degrees tend to be expensive. You don't want under educated people but there is a cost to having over-educated people as well.

Programming is applied Math and very few high school students are going to be equipped to do it well.

Computer science is math whereas programming can be a bit more abstract than that. Programs are a set of instructions to a machine and sufficiently abstracted it really doesn't require deep knowledge of math for someone to do useful work. While ultimately any computer program can be reduced to mathematical equations, the actual programming often really isn't math from a practical standpoint. To use the simplest possible example, I don't need to know any mathematics to write "hello world". Up to a certain level, being able to instruct a machine requires little/no specialized training. Think of it a bit like saying that an electrician putting some wires in your house should require a bachelors degree in electrical engineering - the extra training would be pointless almost all the time. Lots of useful work can be done by those with less formal training.

In fact it's to our benefit to write tools to make simpler problems solvable by more people and free up those who are more highly trained working on more difficult problems. That said, there does come a level of sophistication where you need someone with more understanding of the underlying concepts. Just like a nurse can help you to a point but once the problem gets sufficiently complicated you need a doctor who has a deeper understanding of what is going on.

In all the years of programming .... (0)

Anonymous Coward | about 2 years ago | (#41583795)

In all my years of programming, the most math I've ever used was some linear algebra for a custom UI I did and maybe you could argue some discrete math for a database query I did.

Never needed calculus - ever. My philosophy class came in more handy.

But saying programming is applied math is a stretch in business environments.

Re:Programming is applied Math (-1)

Anonymous Coward | about 2 years ago | (#41583949)

Well they'd be like plumbers or welders or auto mechanics. They would show a lot of buttcrack and you should know buttcrack leads to buttsex and all geeks are buttsex deprived.

Re:Programming is applied Math (1)

h4rr4r (612664) | about 2 years ago | (#41584267)

To drive wages down, that is what this is really about.

Re:Programming is applied Math (1)

Seumas (6865) | about 2 years ago | (#41584601)

Exactly. Equate software engineering with digging ditches and suddenly you can justify paying ditch-digging wages.

Re:Programming is applied Math (1)

M. Baranczak (726671) | about 2 years ago | (#41584271)

Yeah, it is. So's bartending.

Face it, the level of math knowledge that you need to be a competent programmer is really not that high. Probably no more than what's required of carpenters or electricians. (There are some math-heavy sub-fields, like crypto or 3D rendering. But most of us don't need to delve into them.)

I'm sure that a carpenter could benefit from going to college and taking courses in math, physics and engineering. Would it be worth 4 years of his life + $100,000? Probably not.

I am a blue collar coder (5, Interesting)

Big Hairy Ian (1155547) | about 2 years ago | (#41583669)

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 :)

Of-course (4, Interesting)

udachny (2454394) | about 2 years ago | (#41583697)

I have been arguing this [slashdot.org] for quite a while [slashdot.org] , there should be more apprentices and fewer university graduates with insurmountable debt, however this is not going to happen given the labour regulations, tax incentives, even inflation. All of these prevent jobs from appearing. A businessman doesn't need an incentive to hire people, his incentive is to make more money, it exists already. What he needs is not to have incentives to do things that are not actually useful to him. A business could have a bunch of apprentices, if it was possible to pay them a very low wage. As things stand (never mind the inflation, which kills savings and jobs), the labour law makes it illegal to hire people below minimum wage while still allowing to have students as 'apprentices' who have to work for free. All this does is incentivizes the kids to go to higher education, where they don't actually need to, while working for free as apprentices, while getting deeper and deeper into debt. Instead the kids must be able to skip school entirely and learn the trade at work making a little bit of money, that would give them an incentive to show up and do the work, while not getting into debt and learning the skills. This is something that businesses have always done before governments screwed this up.

Re:Of-course (1)

thePowerOfGrayskull (905905) | about 2 years ago | (#41584793)

Maybe as individual programmers we should hire apprentices.

They could fetch coffee, make copies, and clean up compiler warnings behind us.

Apprenticeship is under-rated (1)

concealment (2447304) | about 2 years ago | (#41584807)

there should be more apprentices and fewer university graduates with insurmountable debt

When we graduated college, an old-timer said something to the effect of, "Now that your degree program is over, your education can begin."

What followed for the lucky amongst us was finding people in our industries who could teach us from the benefit of experience. Education tries for comprehensive and lacks in application; an apprenticeship teaches application.

Both are necessary, but one can be had by cracking a book on your own time (use the Abe Lincoln method, just make sure you do an hour a day) and the other -- experience/apprenticeship -- cannot.

Re:Apprenticeship is under-rated (1)

udachny (2454394) | about 2 years ago | (#41584845)

No, both are unnecessary. Both are only as necessary as you need them to be.

Some people need and want to attend higher education, they can actually use it for something that really requires it.

Others don't need higher education, they only need to learn what is necessary to hold a job, they can become proficient in it without wasting their time, which is what a university experience would be for them and they wouldn't have the insane debt that the modern system would force them into.

what use? (2)

O('_')O_Bush (1162487) | about 2 years ago | (#41583779)

Sure, this would be great if programs required no math, were short, single threaded, didn't require complex algorithms, and didn't require interfacing to other things... but that isn't how programming works in the real world. If your design can be done by someone with the education levels or mental faculties of a welder, it can be done by outsourced talent more cheaply anyways.

What we need is more specialized, difficult, and deep CS programs, not programs that people can sleep through and come out of with little technical knowledge beyond Java application development.

Re:what use? (2)

gbjbaanb (229885) | about 2 years ago | (#41583875)

Unfortunately that's all businesses care about nowadays - you're more likely to get a job because you know how to use Visual Studio than you are if you know how to program effectively. Today much of the technical expertise is being eroded in 2 ways:

Developers being given RAD tools where coding is more "if you do this it just works, don't think how it works, just trust it does". This is particularly relevant in the .NET world where Visual Studio isn't a tool to help you code, its a tool that defines your environment and tries to envelop you in wizards and properties (its the only tool I know that has 2 property sections that refer to different types of properties!). Sure, you can use it as a glorified text editor, but you can also use it as a giant configuration machine.

The other is obviously the continual chasing of new technologies. Nobody becomes an expert in anything anymore, they;re too busy catching up with the latest, and once there.. its time to drop that old cruft in favour of something shiny and new. Sometimes this is peer/industry pressure, sometimes its forced upon you by the tool manufacturer (Windows Phone anyone?)

Now I exaggerate slightly, but only so much. There are people who get to code the old-fashioned way, but I think they get called system engineers now, rather than application engineers, and I know a lot of support guys prefer "plain-speaking" files to "magic" packages, but in the whole, the industry of app engineers is definitely moving towards treating programmers as plug-and-configure resources.

Still, Microsoft will sell you more tools that do more stuff "for you", the Architects will adopt them as they want to play with the new shiny and the PHBs will buy them to keep up with 'latest standards' and the cycle repeats forever.

Re:what use? (0)

Anonymous Coward | about 2 years ago | (#41583937)

You need both, you need guys who kick out efficient algorithms and you need those who program the new cristal report for the TPS reports etc.

What I mean is, you need the guy who actually programs the SQL server and the TPSQL interpreter etc. and you need the guy who uses it to program something with "business value" (except you're selling sql server software).

batch file versus kernel (2)

sjbe (173966) | about 2 years ago | (#41584717)

If your design can be done by someone with the education levels or mental faculties of a welder, it can be done by outsourced talent more cheaply anyways.

Apparently you have never tried welding if you think welders are dumb. (hint, it's really quite difficult to do well and requires a LOT of training)

That said, there is a lot of coding that is not practical to outsource. I am not a programmer professionally but I do some coding here and there as a part of my job. I'm not about to write a linux kernel or anything like that, but some simple coding to do my job more effectively is useful. Should I have to go get a CS degree before writing a few macros or a batch file or a shell script? Are you seriously arguing that I should outsource my macros to India? Some programming simply isn't very hard and can be done effectively by someone who isn't a highly trained specialist.

There is a place for highly trained CS experts and that is working on the large scale and challenging problems. It really is a waste of everyone's time to have them working on simple programs that can be adequately by people with far less training.

H1-B Hell (1)

Anonymous Coward | about 2 years ago | (#41583787)

Why should someone pickup coding as a trade? They'd be on permanent unemployment due to the infestation of H1-Bs.

Germany - 1960's (4, Informative)

MadMaverick9 (1470565) | about 2 years ago | (#41583819)

They've had that in Germany since the 1960's.

http://de.wikipedia.org/wiki/Mathematisch-Technischer_Assistent [wikipedia.org]

Re:Germany - 1960's (0)

Anonymous Coward | about 2 years ago | (#41583871)

Not to forget the Datenverarbeitungskaufmann, who evolved into Informatikkaufmann, IT-Systemkaufmann, Fachinformatiker (both flavours).

Re:Germany - 1960's (1)

Anonymous Coward | about 2 years ago | (#41583963)

I have yet to meet somebody who is a Mathematisch-Technischer Assistent and actually knows how to program. And I don't mean well, but actually create a non-trivial program that somehow works, not even considering boundary conditions and optimization. These people usually just want to do IT and it seems their programming tests are very easy to pass.

Re:Germany - 1960's (0)

Anonymous Coward | about 2 years ago | (#41584001)

I've met German CS/Business Informatics graduates who weren't even able to write a simple loop.

Re:Germany - 1960's (0)

Anonymous Coward | about 2 years ago | (#41584879)

There is a difference between "I have yet to meet" and "I have met".

Re:Germany - 1960's (2, Informative)

Anonymous Coward | about 2 years ago | (#41584029)

A highly misleading post, not least since the link is in German.
Yes, MTAs have been around for quite a while, but they require either a "Realschul" Diploma or a full-blown Abitur (says so in the linked article), which more often than not includes material that's usually taught in freshman years at colleges in the States.
So, it's back to the main point, namely, that you need to go to college for at least a year in the States. Then you might as well finish your CS degree.

Re:Germany - 1960's (1)

dunkelfalke (91624) | about 2 years ago | (#41584035)

I think Fachinformatiker - Anwendungsentwicklung is more fitting

Done and failed over a decade ago in Germany (-1)

Anonymous Coward | about 2 years ago | (#41583829)

This kind of education/apprenticeship for "application programmers" and "system integrators (administrators)" was introduced back in 1998 in Germany. Despite the efforts of the chambers of commerce in every state, the German IT lobby, namely "BITKOM", is literally crying for green card specialists ever since.

According to the local job centers, there is 200.000 unemployed IT-professionals and 100.000 available jobs; now you tell me whats wrong with that.

Re:Done and failed over a decade ago in Germany (1)

Anonymous Coward | about 2 years ago | (#41583943)

If it's anything like the job market in Sweden they are most likely rejecting potential employees with four-year degrees because they lacked "core skills" in some in-house app which they helpfully enough made sure to first train a bunch of "consultants" somewhere else in (actually ran into this one once, the guy handling the recruiting didn't seem to happy about it but implied someone else had made the decision and he was honest with me about it, his bosses had paid to have Indian "experts" trained on their in-house software so they could pretend like they had to offshore their coding jobs (or rather, "import" Indians long-term) to get the required skills).

The employers here in Sweden are constantly screaming about the lack of qualified developers yet its not unusual to see junior web dev positions advertised as clearly only for people with at least a MSc in CS and a couple of years of industry experience. That's like demanding all your janitors have degrees in Architecture or Building Services Engineering...

Re:Done and failed over a decade ago in Germany (0)

Anonymous Coward | about 2 years ago | (#41584473)

Yep, same here. Companies expect to hire fully trained specialists at the lowest cost possible. I think that 19 out of 20 companies do never, ever train their employees to their needs and this is where the core problem lies.

You need to be jack of all trades and a specialist in a certain field of expertise. However, both are mutually exclusive. And even if there is such a beast of developer, it wont come cheap.

Let's sum it up: cost > expertise in area of expertise > pre-existing, broad knowledge of various technologies and tools

Re:Done and failed over a decade ago in Germany (0)

Anonymous Coward | about 2 years ago | (#41584121)

What happened to those who finished the apprenticeships? Or were there never many to begin with?

In the small country south of Germany, I know about 30 people who did an apprenticeship in IT and now work for software companies, banks, insurance companies - you name it - along with their fellow coworkers who may or may not have a degree. A success IMHO.

Re:Done and failed over a decade ago in Germany (0)

Anonymous Coward | about 2 years ago | (#41584425)

I can only tell you that I have worked for a decade in the IT as developer, done Websites and -apps (Gaming, local business, intranet, online calculators for the construction industry), Desktop software (Controlling, Finance), any flavor of SQL (My, Ms, PostgreSQL, Oracle), javascript + whole library shebang, Unix/Linux/*BSD/Windows, much, much more and got certified "application developer" after that one decade by the chamber of commerce in an external exam.

Now that I am certified I went to a few job interviews and demanded 1.200 EUR; after taxes. My demand was being honored with over-the-top raised eyebrows, almost accompanied with hysterical laughter in the 5th biggest, one of the richest and most important cities of Germany (Frankfurt am Main).

I rather go do night shifts at McDonalds or Burgerking than signing a contract for 40 hours/week and do 60 hours/week with tight deadlines.

Proven technologies (1)

Errol backfiring (1280012) | about 2 years ago | (#41583857)

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.

Wait, no more bleeding edge hacking? What in the world is left for the sales drones to do?

IT / tech needs apprenticeship not years of colleg (2)

Joe_Dragon (2206452) | about 2 years ago | (#41583877)

IT / tech needs apprenticeship not years of college with big skills gaps.

And the tech schools get dragged down by having to be part of the college systems and some of the college time table.

Re:IT / tech needs apprenticeship not years of col (0)

Anonymous Coward | about 2 years ago | (#41584207)

In the US we have a 4 tier training regime.

1) you learn it as you go make lots of mistakes and hopefully are around someone who is any good to help guide you a bit. Then study at night and try to get your 4 year.
2) you goto a 2 year college prep school then do 'ok' out in the real world and hopefully are around someone who is any good to help guide you a bit. Then study at night and try to get your 4 year.
3) you goto a 4+ year college and then hopefully are around someone who is any good to help guide you a bit.
4) all the above end up with OTJ training anyway and you better take it or you will be out by you are 40

You can succeed as 1 and 2. There are many out there. Some of the most successful people in our business never finished 3. However, 1 and 2 are at a disadvantage from the HR filter sort POV. You are missing a degree. HR gets 400+ resumes for every position open they will use many filters.

Apprenticeship is an excellent idea. In fact we used to do this. Right up until the mid 90s. Then suddenly everyone had to know everything after step 2. I was lucky to have a very good guy help turn me into a decent programmer.

Some shops will not even look at you unless you have a masters degree or better. Instead of training someone to do things now we just drop people in and expect them 'to hit the ground running'. Which makes it even worse as the very people who should be helping train better people are not able to as there are NO junior people. So they do not get the exp of training. Which means you can not even home grow people even if you wanted to.

Part of the issue is we want masters/doctorate level people with 15+ years exp and pay entry level wages. We need to be realistic.

Right... (0)

Anonymous Coward | about 2 years ago | (#41583879)

Because blue collar jobs are looking so great for Americans right now.

Junior coders, nothing new (0)

Anonymous Coward | about 2 years ago | (#41583895)

Simple maintenance and utility coding is usually done by what we used to call Junior Programmers; haven't seen any around in a while so I don't know what they're called these days. Usually had a associates degree, did sloppy work, and ended up costing more than someone who know what they were doing. But their salary was less so management though they were getting a great deal.

There is to much put on degrees and the name of sc (1)

Joe_Dragon (2206452) | about 2 years ago | (#41583897)

There is to much put on degrees and the name of school over real job experience and NON degree classes.

There are lots of people with degrees and big skills gaps and lot's people who have real skills but no degree or a tech school degree.

Coding is entry level for 90% of jobs (1, Interesting)

Anonymous Coward | about 2 years ago | (#41583901)

I was a hard core cross-platform, client/server C/C++ developer for over a decade. Basically, I wrote code for every platform except VAX. Before that, I wrote code for an extremely specific embedded space craft system and after that, I became a systems architect, software architect and enterprise architect.

Writing code in the real world is very different from learning to code in the class room. For small, trivial projects, like 90% of web sites, a community college coding trained person can be re-trained to be useful and productive. I teach at a local "commuter university" ... that feels more like a community college to me. The vast majority of students are confused by anything that is not memorization, but a few are brilliant and could easily compete at Stanford, MIT, GA-Tech, and similar tech-centric schools. These are the students that I try to help.

If the others don't switch to different majors, they will be flunked out after 2 yrs.

The lack of talent for software isn't really true, but talent wants to be paid better than average salaries and they want better environments.

I stopped coding because coding was only $75/hr (about $150K/yr) and I could earn $200+K/yr as an "architect." Wouldn't you switch too?

I also stopped coding because the schedules were always too tight - usually completely unrealistic for the tasks and I was tired of working 80+ hrs per week.
As an architect, my work week became predictable - usually 40-45 hrs/wk. So, I'm working fewer total hours, more predictable hours, I have a greater input to system design and outcomes, and my true hourly wage $/hr is much, much higher .... only an idiot would remain as a coder given those choices.

Coding is entry level for most people. Average people will eventually see their positions replaced by younger, cheaper entry level coders. Moving up and out of coding becomes necessary if you want a longer career in software or computer technology. There is always room for truly talented software people ... the top 5-10%. Many of those people, like me moved on to have more impact, more control and a much better lifestyle.

I miss coding, but I don't miss all the other aspects. As a coder, anything I wrote ... anywhere became the property of the company according to the employment contract. As an architect, that wasn't included in the contract. My hobby coding was mine. Another reason to leave coding.

I forgot to meantion, I went free-lance as an architect and bumped my pay plus I get 3+ months off a year. Usually I travel.

So, if you want "coding talent", the environment needs to change to be much more flexible, greater control over work schedules and time off.

Perhaps I've just been lucky. Perhaps my "talent" lies in being an architect, not with software development?

Perhaps I'm just a troll here pointing out how great it can be after leaving the coding daily grind.

One last thing - certain very popular languages have completely destroyed the software development as an art progression.
* Java - 90% of these developers are clueless. They really believe that the OS and physical machine don't matter. Idiots.
* Php - I learned to code by reading a book group. People that only learned php have become the destroyers of solid software development. The entry barrier became too low so that almost any idiot could get something working. There's a big difference between working, and working well AND securely.

I don't want to say that all php or all java programmers are idiots. There are some true experts and arteeeeests using those languages. It is the masses who program in those languages that are a waste and should be flipping burgers somewhere for the safety of the world.

Might want to take a look at Switzerland (0)

Anonymous Coward | about 2 years ago | (#41583911)

I did something like that 8 years ago: In Switzerland there are 3-4 difference apprenticeships for IT workers (hardware, support, network, developer).

Takes you 4 years, you learn the basics of algorithms (sorting, mostly) and solving many real world problems in practice and theory. This does not result in world class programmers you find at the obvious big IT companies, but it gives the banks etc. what they need.

Plus, it offers a clear path for those who want to study later on (what I did).

Here you'll find the website (german/french only, sorry, also google translate does not work with its JS) [ict-berufsbildung.ch]

degrees take to long and can cut out people who ar (1)

Joe_Dragon (2206452) | about 2 years ago | (#41583955)

degrees take to long and can cut out people who are not college material. But can do the job / handle Community Colleges and tech schools as they are a better fit for people like that and are have more hands on learning.

Also degrees are a poor fit for continuing education in the IT field.

Also there is a lot fluff and filler in a degree and it can be cut down to maybe 2-3 years or better yet for some parts of IT a mixed 1-2-3 years of class room and on the job apprenticeship.

Re:degrees take to long and can cut out people who (1)

h4rr4r (612664) | about 2 years ago | (#41584309)

Which leads to the contractos I have to deal with. They have no idea how anything actually works, just the knowhow of which button to press when in some program. If anything breaks they are lost, firing up wireshark and watching packets on the wire is totally beyond them. They would not even know what to look for.

The Case for the "Blue Collar" Coder (4, Interesting)

Anonymous Coward | about 2 years ago | (#41584049)

"U.S. tech talent shortage discussions tend to focus on getting more young people to go to college to become CS grads"

THERE IS NO TECH TALENT SHORTAGE. What there is, is disinformation about what one needs to really
know to really program. Plenty of unemployed and students out there who have figured this out.
But they are blocked out of the market by both employers, employment agencies and state unemployment offices
who don't have a CLUE as to the nature of the skills needed and have created a ridiculous artificial set
of evaluative criteria.

In addition, there are brilliant programmers out there with no degrees or associate's degrees or liberal arts degrees.

Also, you do NOT need calculus to program or be a software engineer.
You do NOT need Dykstra.
You do NOT need to know how to write a compiler.

There is no "Blue Collar".... there are competent skilled programmers, reasonably skilled ones, screw-ups, and Ivy League graduates with big degrees who would not last a 10th of a second in real world programming. I know, I've worked with all of them.

There is one key JOB REQUIREMENT in this field. The ability to deal with the unknown, to learn and to adjust. Period.

Reading and communication skills are paramount too. Above all else.

From a retired Software Engineer of 32 years experience

Looking at things the wrong way. (2)

Jartan (219704) | about 2 years ago | (#41584091)

The problem with looking at coding this way is too many people will fail. When you're looking for a vocation/apprenticeship the last thing you want is something risky.

It's also way too volatile. Training to be a "microsoft .net programmer" is insane. You're whole profession could get flushed down the toilet instantly.

All that education is necessary to constantly retrain yourself.

Re:Looking at things the wrong way. (0)

Anonymous Coward | about 2 years ago | (#41584731)

In my experience, most people who will wash out do so in programming 1.

We're not talking about theoretical programs here. There are tons of associates degrees already available from community colleges and places like itt tech. I've worked with people with these degrees. Some are very good.

Overspecialization (1)

concealment (2447304) | about 2 years ago | (#41584827)

Training to be a "microsoft .net programmer" is insane. You're whole profession could get flushed down the toilet instantly.

Unfortunately, it seems like many degree programs are going in that direction as well.

Is This Rhetorical? (2)

bistromath007 (1253428) | about 2 years ago | (#41584101)

What I mean: the article says "let's not forget that we can do this, too!"

Can we? I've... never heard of anything like this. Which annoys me, because I'd really like to do it. I want to learn coding, but I am not a self-motivated hacker stereotype. I need a project given to me, and if I'm operating without guidance, there is a ceiling on the types of problems I can solve in a timely fashion. I'm not stupid, but I'm not brilliant either, or at least I haven't been called that since high school, (which I dropped out of) and generally programming is considered something only a supergenius should be allowed to do, especially by programmers.

I know this isn't true, as I've taken a programming course once at a community college and did well and enjoyed myself. But taking a course means I get to do a bunch of stuff that I never use because I can't find work related to it, if at all, and so I forget it. An apprenticeship is the only way I can think of that would supply me with steady work to cement the skills in my head. As far as I know, apprenticeships do not exist, because those who would be masters usually believe in the old-school cowboy hacker DIY-elitism. The most help they'll offer is "here's a book about a language you might be able to understand. Get to work, you pleb."

What work? I have no idea what I want to code! Just give me something.

Absoultely correct (0)

Anonymous Coward | about 2 years ago | (#41584105)

Yep, what this country needs is to rein in the salaries of all those techies.

It's uncomfortable enough to the upper classes that "these people" think they are worth paying at all.

If the poor (and yes, that includes anyone who works for a living) would just learn their place things would go so much more smoothly.

The next Zuckerberg? (4, Insightful)

aNonnyMouseCowered (2693969) | about 2 years ago | (#41584117)

You mean the next undergrad to drop out of college thinking he can change the world with one hot idea? Education would be wasted on the next Zuckerberg. Just introduce him to some venture capitlaist with money to burn and let the wheel of fortune spin.

In other words... (0)

J'raxis (248192) | about 2 years ago | (#41584125)

...now that IT is a firmly established sector of the economy lead by an elite, we should encourage new tech workers to just be satisfied being life-long, middling employees of that elite.

The modern American dream: Working for someone else your whole life. Be happy you have "job security" and "benefits," peon.

Re:In other words... (2)

judoguy (534886) | about 2 years ago | (#41584331)

That's really the historical American dream. Most people will only want to work somewhere where they get decent pay for decent work, but no real hope of wealth. It's the exceptional person that is willing not to just move up in a company over time, but to really make the effort to go for the gold.

I see this all the time in business, sports, entertainment, investing, etc. Most people are willing to work for a tangible reward, but only a few are really ready to risk everything for huge success.

I'm not talking about lottery ticket buyers here, but people willing to take calculated risks in a productive way knowing that they might fail and will pick up the pieces and try again if it fails. Probably the best world has a stable base of workers from which true entrepreneurs can launch.

"U.S. tech talent shortage" Myth (0)

Anonymous Coward | about 2 years ago | (#41584289)

There is no shortage. There is only a shortage of qualified people willing to work for substantially below market value wages.

Same old whine (4, Interesting)

0xdeadbeef (28836) | about 2 years ago | (#41584361)

Beware anyone who calls your profession a "priesthood", because he operates under the assumption that he is entitled to more than you, is either jealous or contemptuous of your market salary and wants to put you in your place. For whatever reason our culture regards doctors, lawyers, stockbrokers, and CEOs as deserving the benefits of scarcity, but it is a huge problem when you can't you hire a computer nerd for less than six figures. If you aren't an extrovert, you don't deserve to be on top of the status hierarchy.

We already have vocational technology education, but it's widely regarded as a joke. Putting it in high school isn't going to change that. And if you have the knack for it, learning programming or learning computer maintenance is easy. After all, every time the subject of college degrees come up, there are always people very adamant that they didn't need one, and that "the best people I know didn't go to college". So if it is unnecessary, why are they arguing for "blue collar" programmers? These people argue "nature" in one breath and then "nurture" in the next. Dash is actually saying that the self-educated or non-degreed don't deserve to be considered "white collar" professionals.

Dash also makes the mistake of conflating programming with "IT", something the Slashdot peanut gallery is also apt to do. I'll leave that stupidity for a different flame war.

Uh, shortage? (4, Insightful)

rsilvergun (571051) | about 2 years ago | (#41584435)

There's no shortage of tech workers, which is why you can't get college bound kids interested. Off shoring + H1B Visas has seen to that.

I'm pretty skeptical of this entire story. In my experience whenever anyone talks about retraining blue collar workers for tech work it's just a desperate attempt to deal with the fact that robots and outsourcing have made these people obsolete, and we want to pretend there's something for them all to do besides starve...

Craftsmanship doesn't come without understanding.. (3, Insightful)

Fished (574624) | about 2 years ago | (#41584453)

I actually regard the fact that someone could say this as a great example of why computer science education is broken. The reality is that there's a tremendous amount of REALLY BAD code out there, written by C.S. Majors and non-C.S. Majors alike. I'm minded of one case where a self-taught perl programmer in a company I worked for absolutely could not figure out why his code to convert a few megabytes of data was taking days to run. Turned out he was appending to a string in order to add a few bytes to it, and every time he did it perl was copying the string to a new location. Simply by "pre-allocating" the string we cut the run time down to a couple of hours. This would have been obvious to him if he'd ever coded in C, or taken a data structures class. But he hadn't. Things like data structures, algorithms, and most importantly security are hard. They can't be taught in a trade school, because people in trade schools lack the necessary background. In the case above, I tried to explain to the guy the whole concept of "big O", and quickly discovered that he didn't know what a factorial was, nor a logarithm, and was a bit sketchy on the concept of geometric expansion. Please don't dump more half-trained programmers on us. We don't need them, and those of us who do understand information theory (with or without degrees) will spend way too much time fixing their errors. I'm not saying everyone needs to be a CS major (my B.S. is in Philosophy, my masters is in Theology, and my Ph.D. is in New Testament.) I AM saying that there should be a requirement to learn some basic skill before you're allowed to write code for a living.

Wisdom follows, pay attention! (0)

Anonymous Coward | about 2 years ago | (#41584467)

> encourages less of a focus on 'the next Zuckerberg'

That guy was a mere puppet face for the Sanhedrin, when constructing the "Tesco Value NSA" as Facebook is commonly called here. Essentially Facebook collects all the world's human intel for Unit 8200, which the goyim and the ishmaelite willingly hand over for free - what's more, the silly goyim even pay fortunes to own shares of the very instrument that trojans them! Should be called Goldberg, not Zuckerberg, although the deal is really sweet. Who needs nukes, airstrikes, Mossad and Entebbe raids to force one's way any more, when it is possible to read and influence the mind of the entire world over the net?

Ingenious, one must admit! However, Mr. Zucker had little to do with the grand plan, he was simply a public face who looked like a young ancient greek hero enough to sell the project over the screen. The idea came from a massive secret service scheming that was brewing for years, maybe a full decade in advance. Facebook was already being implemented in code, before they first thought of Stuxnet.

Blue collar coder - it's redundant (3, Interesting)

blind biker (1066130) | about 2 years ago | (#41584493)

All developers, programmers, researchers - we're all blue collar. People working in administration and accounting are considered white collar.

As a scientist, I don't feel insulted to be "blue collar". I'm fine with that.

I don't think apprenticeships are it... (2)

XDirtypunkX (1290358) | about 2 years ago | (#41584523)

Part of the reason I don't think an apprenticeship model works for teaching programming is that by its nature it is a scholarly profession. I don't mean that in the ivory tower way, I mean that programming is largely research based and requires an active mind. You need meta-skills of the kind that allow you to assess, filter and process a lot of information, but be able to focus in on and find the particular bits that are relevant to you. Doing an university degree often teaches this skill indirectly and some people develop it themselves though natural dedication (autodidacts). I don't think an apprenticeship style of learning gives people the time or inclination to do this. More practical experience and mentoring is definitely valuable, but it shouldn't be the sum total of a programming education.

I also think that there is also a defensive thinking mindset required to properly produce robust software that requires a certain level of formal knowledge as well as practical experience. Degrees at the moment don't necessarily teach this, but you do see a lot of software written without this knowledge and quite often it becomes obvious that it's only going to work *some* of the time and quite a lot of this software comes from people with a weak formal education (but not all of it).

Yes, not everyone needs to know everything (1)

gestalt_n_pepper (991155) | about 2 years ago | (#41584559)

To build a house, you not only need the architect, but the guy who hammers nails and lays flooring. Similarly, to build a program, you don't necessarily need to know much about virtual void functions, but you'd better be able to handle integers, strings, arrays, if-then statements and loops. These are the hammers and nails portion of the industry.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?
or Connect with...

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>