Programming as a Non Programmer - Part 2Mon 16 January 2017
This is Part 2 in a series about how learning how to program could affect your career and some of the experiences I've had with programming in mine
- Intent of series and introduction
- What Programming as a Non Programmer means
- Why Programming as a Non Programmer could be helpful for your life and career
- Why Programming as a Non Programmer could be bad for your life and career
- My lessons and experiences writing code as a non programmer
- Steps I'm taking in the future
Programmer, or coder, is a pretty broad term these days but in this series we'll use the following split to differentiate programmers from non programmers
I would describe the split as
- People that get paid primarily for their skill to write code (Programmers)
- People that get paid primarily to do something that isn't write code (Non Programmers)
There are people at all companies at which I've been employed which fit into category one, they are given software programs and the expectation of their role is to write code of some sort that solves a business problem. I consider these people to be programmers.
I fall into the second category, my position is more dependent on domain expertise of supply chains and manufacturing processes. My coworkers only know very rudimentary programming, Excel sheets and basic SQL at most. The expectation of our job is make the manufacturing execution more efficient. I do write programs at work, but I'm a Non Programmer
This is what Programming without being a Programmer means. Essentially Programming (as a technical activity) without being a Programmer (in job title).
While it seems like a subtle difference in theory, but in practice it leads to major organizational differences. Group 1 is valued by the company by their ability to produce robust technical solutions that solve major business problems. Because they are valued for this the specific focus this group the people in this group are the ones we hear about all the time, the one that hires people that can implement FizzBuzz blindfolded, the ones that setup continous integration environments, or are now using Docker containers to increase uptime. This organization focuses on hiring people that have lots of experience in Computer Science, Programmers as defined above. If you're in this group learning to program is very much tied to your ability to produce value, and your organization will more than likely support increasing your programming ability through paid trainings, finding you other programming colleagues, and investing in programming resources for you, like really nice computers. Simply put if these programmers can't program they're probably going to get fired. Learning to program has a very obvious and clear correlation with your ability to produce value to society, and improve your life condition.
Group 2 is all the other organizations, the accounting department, building maintenance department, purchasing department, or sales department.
These people are valued by their ability to do something that's not write code, for example purchasing departments are typically valued on their ability to procure materials and services for a business as cheaply and effectively as possible. Facilities maintenance is usually valued on their ability to keep physical buildings as functional as possible by doing things like changing lights or maintaining plumbing in restrooms. Quite clearly these groups are not valued on their ability program. A plumber is valued on his or her ability to fix plumbing issues. In their role they won't primarily be evaulated on their programming ability, if at all.
If you're in this group learning to program might do nothing for your career, and in fact learning to program might be a complete waste of time and effort.
With that distinct made in the next two posts will cover my opinion the upsides and downsides as programming as a Non Programmer.