Programming is Not Blue Collar

Programming is Not Blue Collar

There's an article in Wired by Clive Tompson entitled The Next Big Blue Collar Job is Coding which gave me pause to think. There is not much it says that isn't in the title. The author speculates that coding could be the next major jump for manual labor workers, but I wonder about that, and wondered if it was an early April Fools article. There's a few things that bother me, two of which are definitions.

The first and most important is the word coding. It is a very common word, but I do not believe it is a synonym for programming or for application development. Coding is a step in those processes, the one where a specific computer language gets entered into a system to run a program. Coding ignores steps before and steps after in the programming process. Coding can teach some very important skills, and can make an application, but coding alone is not enough. The planning steps, including the architecture of the application's modules, architecture of the data used and the user experience before coding and the debugging and validation steps after coding may be more important than the code itself. Coding may make the code syntax correct and free from errors as far as compilers are concerned, but may still for usability, security and logical perspectives be completely unusable. The Google Play and Apple App stores are littered with examples of this, excluding the ones so bad they were rejected. Coding tends to look for a part of a solution, not the whole solution. Coding introduces programming but is neither programming nor application development.

One might argue that like an architect and engineer may design a building and solve problems with the construction, the tasks of construction fall to the blue collar workers as builders. This would be the same as the graphic designers and systems engineers design the application while the coders do the coding. Here we get into the difficult definition of blue collar. In its most literal sense, it is people who wear shirts with blue collars, often denim, to work. In a more figurative sense, it is the people who do nonagricultural physical work to make products, extract raw materials for production or maintain current systems. Builders, plumbers, electricians, miners, factory assembly workers and sanitation workers all fit into that definition. Some, like plumbers and electricians are more skilled than others, and may indeed be getting paid more than starting salaries of programmers. Despite those few highly paid skilled jobs, blue collar usually has connotations of lower income jobs such as manufacturing assembly compared to white collar jobs such as sales, marketing, information technology and banking.

Thus it would seem that analogy of builder to coder stands. Yet, code is dynamic. The code one writes and the code that is written to interact with something else changes, and it is up to the coder to make those changes as they write the code. To use the analogy of a building, coding is like the worker who takes iron and makes his own beams before putting it into place -- all while other beams change size and shape around the space this beams goes. There is a high probability the beam, with all the planning in the world will not fit, and will need to be reworked to fit. That is the world of real programming. For the lower-wage blue collar workers used to pieces just fitting and not having to be that creative, is this dynamic world too much? Can they handle their work always being wrong? For a programmer that is the way of life, You cannot be just the builder here- you must understand all of the architecture. While the glazier might seem to have nothing to do with the electrician, in programming they must know what the other is doing, or the project finds conflicts and fails. Such conflicts happen all the time in programming.

Blue collar workers on mass production lines replaced another type of worker: the artisans like blacksmiths and potters. An ironworker might be able to mass produce beams, but only the blacksmith can make the custom iron grill. A potter on a wheel throws pots that require years of knowing clay. It is not just working with steel or clay, it is knowing steel or clay to work with it. So too with application development and programming. You cannot throw people into a boot camp and expect them to be proficient programmers. Programming requires time and experience, knowing how systems work -- and all systems are different. Just knowing basic Java or Swift or Python is not enough: there's how libraries work, how programming patterns can organize code, and most importantly, how this code performs best for the user, the system, and those who will maintain the code. While programming might be "elitist", it is for good reason. Code and systems are not something to trifle with, as DDOS attacks via cheaply coded appliances, the threat of remote hacking of pacemakers, and failures of space probes have demonstrated time and time again.

While I believe the "elite" college learning disparaged by the author is an important part of a programmer's education, what is learned there is the same as what the apprentice potter learns from the master -- they learn the world of application development as the apprentice learns the clay. Both college learning over a period of years and apprenticeships work. Yet unlike clay or iron, the medium of app development changes. I learned to code in Pascal, COBOL, C and Basic during my undergraduate days, none of which I use today. The medium changes constantly. I published my book Practical Autolayout for Xcode 8 only for it to became obsolete four days later due to a critical change by Apple to Xcode. The factory worker learns their job once and never has to learn again. The craftsman be it a potter, blacksmith and even more so a programmer must always be learning. The craftsman or craftswoman must be learning what is new and what is yet there but undiscovered. A thirst for learning must always be there. While those highly skilled blue collar jobs such as plumber and electrician and auto mechanic merit being called craftspeople and must have that higher thirst for knowledge, it is the assembly worker that does not learn well, refuses to learn, or most often whose organization refuses to invest in constant learning which provides the biggest obstacle to blue collar workers becoming coders: every month they are obsolete.

At the core of all this is learning. A developer is always learning. I admit my bias as a Linked in Learning author, author of several iOS books and a website about iOS learning that I 'm preaching #alwaysBeLearning. But any developer with their salt knows that application development is very much like the Red Queen of Alice Through the Looking Glass: we must keep running just to keep in place. Unless there is a strong culture nationally and organizationally and an infrastructure for learning, any attempt at blue collar coding is doomed and those workers will quickly fall behind.


Steve Lipton is the mind behind the makeapppie.com website for iOS development, author of several books on programming and iOS development and a linkedInLearning author. He is the author and host for iOS Development Tips Weekly. His latest courses are Apple Watch OS4 App Development Essential training and Advanced iOS App Development: Core Location . #AlwaysBeLearning.

I've written an article about the implications of losing net neutrality. you can find that here

Yeah coding is like the easiest part of development, for every 3 hours of serious coding i spend like approx 5-6 hours hours of everything thing else(researching, design, test, debug etc).

Iryna Kravchenko

Chief Editor at DICEUS

7 年

Thank you for explaining the difference between coding, programming, and app development. And for motivation to never stop learning, too!

Michael MARIANO

CEO / Founder at Billiano Inc.

7 年

DOCTORS AND LAWYERS WISH THEY CAN BE PROGRAMMERS!! A DENTIST TOLD ME TODAY!

回复
John Furr

Chief Technology Officer at Duelly

7 年

First I kinda loath the blue vs white collar mentality... But truth be told there are in fact different mentalities and thus some people are better cut out for certain kinds of work. Nothing wrong with that. We can't all be doctors and lawyers... thankfully!! There are plenty of people working in so called "blue collar" jobs that can in fact retrain themselves and become productive software engineers over a period of a few years. Certainly not from a coding bootcamp, though they are probably a really good jump start. Having worked in several blue collar jobs before going to college I'm confident in saying that most definitely can not make this jump... or they won't put forth the effort. Right now in Boston you can walk out of a 4 year CS degree and land a 100k+ job and yet many of these kids find they don't make it past the 3 month trial period. This field is flat out hard at the upper levels. I support anyone that can't get here by any means, but by no means do I see this field becoming the next blue collar revolution anytime soon. The author correctly pointed out that software engineering is a life long pursuit of learning. If you love learning and love computers then it just might be a good fit!

As someone that has transitioned from trade-work to programming I find this article somewhat offensive. The author obviously has very little familiarity with trade-work and although his analogy may stand up with some segments of trade workers, as a whole its completely off-base. Firstly, most trade work is not fitting together pre-formed sections that magically always fit. Tradesmen not only have to be trained and competent working with their tools (which are becoming more and more complex) but they typically have to be able to read drawings, match up cut-lists to those drawings AND be familiar with the regulations regarding their trade so they can make adjustments to those plans when there is missing or incorrect information. A construction project often follows an Agile development process (with the exception of tract homes). As much detail as is put in blue prints it still only encompasses 60-70 percent of the required information, which is filled in by Project Managers and skilled tradesmen. Things change so much in construction projects that one of the first things an apprentice electrician is taught is how to fill out change order and get it signed.

要查看或添加评论,请登录

Steven Lipton的更多文章

  • Predicates and Predicate functions in HANA

    Predicates and Predicate functions in HANA

    #Bizoneness: Over the last few newsletters, we reviewed functions in HANA and their SQL equivalents. Our last in this…

  • LucaERP part 5: Building A Form

    LucaERP part 5: Building A Form

    In this series of biweekly columns, we're building an ERP from scratch, starting with the general ledger. We've learned…

  • BizOneness: Aggregate Functions in HANA

    BizOneness: Aggregate Functions in HANA

    #HANA #Bizoneness Over the last few newsletters, we've been looking at the basics of HANA. This time, I'd like to look…

  • LucaP: The Anatomy of User Interfaces for ERP

    LucaP: The Anatomy of User Interfaces for ERP

    #LucaP In the last installment of building the LucaP ERP, we discussed the part of the general journal. We have yet to…

  • Bizoneness: Common SQL and HANA types, Operators, and Functions

    Bizoneness: Common SQL and HANA types, Operators, and Functions

    Bizoneness: Common SQL and HANA types, operators, and Functions #Bizoneness #HANA Two weeks ago, I wrote the first of…

    1 条评论
  • LucaP ERP part 3: Adding General Journal Entries

    LucaP ERP part 3: Adding General Journal Entries

    #LucaP *Note:As I've gained a few followers and subscriptions in the last few weeks, I want to remind everyone that I…

  • Bizoneness: Introducing HANA

    Bizoneness: Introducing HANA

    #Bizoneness While I had planned something about the General Ledger for this newsletter, circumstances changed, so I'll…

    3 条评论
  • LucaP ERP part2: The Chart of Accounts

    LucaP ERP part2: The Chart of Accounts

    #LucaP #ERP In the ERP application, we have established credits and debits on a ledger with the five major accounts…

  • The Bizoneness Migration Guide

    The Bizoneness Migration Guide

    #Bizoneness Data migration is taking data from one source and merging it into another source. If you're very lucky, it…

  • LucaP ERP Part 1: The Basic Equation

    LucaP ERP Part 1: The Basic Equation

    #LucaP How do you start to understand the workings of an ERP system? By making one. In this biweekly column, we’ll make…

社区洞察

其他会员也浏览了