One of the reasons I love Slate is they have a lot of diversity in their contributors and a lot of them are not journalist by trade. Recently an article went up written by a software engineer. It’s a well written article with several good points and links that were mostly negative on the “Everyone learn to code” trend going around. As a software engineer I would like to poke holes in my fellow engineer’s implementation since that is easily our favorite past-time.
The primary problem with our current population of coders is that we are a scarce resource. This is a problem for all of society because there are a lot of apps that should exist and a lot of bugs that need to be fixed. Now most people would think that’s a good thing for coders because we can command higher salaries and never have a problem finding a job. To a certain extent this is absolutely the case.
However even at the height of the dot-com boom there is only so much that we can command in compensation relative to our non-IT peers because some HR person or bean counter will nix anything that smells of overcompensation for any given aggregate sub-group and for comparison they use aggregate salaries of the company, or their own if they’re jerks about it, when approving salary requests. The formal and continuing education, skill set, and experience required to get the job done is commiserate with the salaries we command. There is no real scarcity premium. Yes it’s nice to make more money than the average non-IT person because more money is always nice but it’s simply an appropriate return on the investment we make in ourselves.
The amount of work and resulting stress that comes with that money is significant. The backlog of work to be done makes it really hard to see the light at the end of the tunnel on any given day. Our departments are chronically understaffed and our deadlines driven by business concerns and not how long it will actually take to create something with the resources available. Because the products of our work run around the clock and we are individually responsible for what we build our jobs are truly 24/7 jobs. The applications and servers have no problem paging us at dark thirty in the morning to tell us they need our attention and they will not wait until a more reasonable hour.
The scarcity issue also means a lot of coders are promoted beyond their ability or simply get in over their heads. They end up creating a lot of bad code that seems to work well to the untrained eye but under the hood it’s a complete mess and when they finally throw in the towel and move on the next coder has to come in and clean up the mess. We can’t just see the bad code and leave because the next job undoubtedly has bad code and that much job hopping looks bad on the resume. Besides we love a challenge and most of us have the “I can fix this” mentality. You also don’t want to become known as the coder that bails at the first sign of trouble. That kind of attitude earned Han Solo a hefty price on his head.
We also have to import coders from other countries which is undoubtedly a strain on their home countries economies. I believe there is some additional increment of global economic instability that comes from the U.S. soaking up the world’s coders. That peppers our departments with not yet assimilated adults with heavy accents that make it that much harder to get the job done. But we are absolutely grateful they are there and show up everyday.
And that’s just the highlights. Don’t get me wrong, coding is a great job if you’re up for it. The pay is good and the sense of accomplishment upon completing the smallest of tasks is always rewarding. It used to be a social scarlet letter to be a computer nerd, but now it’s a badge of honor. And coders are the top of the food chain in the IT industry. Everyone should at least try to learn to write code. It will give you insight into reductive reasoning and logical and incremental problem solving that will serve you in many other aspects of life. You already have all the basic equipment you need if you’re reading this: a computing device, your brain, and a basic command of English. The vast majority of you will fail to become professional software engineers but you will have gained something in the process. Those of you that make it through to take that first step into a career in coding will join the few, the proud, and the just basically glad to see another person joining the club.
Note: Before I comment on something someone else wrote I try to research the author. Both Google and Bing came up virtually empty which is unusual for a technologist, especially one with an uncommon name. Not a big deal, it maybe even a pen name, but I wanted to add this disclaimer.