There is a stereotypical programmer. We all know the one. The Marky Marks, stripy bois, Steve and Steves. The wiz kids. Hacking away on their something 64s when they were 8 years of age. Shipping their first products at 12. By 16 they were winning competitive programming competitions or some shit. Idk. I am not one of these people and likely neither are you or most of the people who program for a living.
Why did you learn to code?
For many people, it is because of money. Maybe you got a degree in communications or theater and you found yourself looking at a bleak job market. Everyone talks about “learning to code” so you go to a bootcamp and learn some javascript and html. There is a high demand in the market and you find a job. It is great. Well not great but it is a job. It pays the bills and food is on the table. I am no different in the motivation and I think I am in the majority.
I never wrote a single line of code until my second semester of collage. CS1 was a very hard class for me. It wasn't the hardest class as I had arguably the best professor at the school teaching it, (he was a math guy at heart) but I struggled. I had no idea what the hell was going on. I wasn't that interesting in programming. I learned because I knew there were jobs and I kinda liked computers.
Once I did “learned to code”, I found myself making things particularly games. Why? Because I love games. I spent way too much time in collage writing jank little game engines using Java and Swing. Yes, you heard that right, Swing with JFrames. To this day I still know when to use a volatile image vs buffer image. Eventually, I moved to OpenGL using LWJGL because JavaFX was DOA. I found myself reading these thesis papers on novel volumetric rendering techniques. I didn't understand any of it. I just wanted the smoke in my game to look cool. I didn't particularly care if it was C++, Java, or GLSL powering it, as long as it looked cool.
In the summer I worked part time as a plumber on a bomb shelter. The money was so good I almost dropped out of my CS degree. $13/hour will do that to you and as an apprentice $18-$22/hour was on the table. If I ran my own business, I could charge $45/hour because that was what my boss charged for me. I didn't drop out though. A large part of that is because I had been told there was more money as a software engineer. My first job out of school paid $20/hour. I negotiated for $22.50. This was a decade ago.
In my career I have come across the earlier stereotypical engineer many times. The “ogs”. The engineers engineer. A true developers developer. There is a bitterness about them. All these “normies” have come in and destroyed what they love. They do it wrong. Software is broken. Calculators now run on electron and use 500mb of ram, 600 if you ask it to do anything. Websites destroy the environment with 15mb js bundles. VCs and the latest batch of MBAs don't understand software spending technical debt faster than the US prints money. And it is sickening, just so sickening. The world is over engineered, under-engineered, unreliable, inefficient and no one cares about quality tech anymore. Software is broken.
I don't get it. I am both old and young. In my first job we owned our servers. They were in a rack in the building's basement. I never saw them. I just ssh'd. The codebase had over a million lines. It was free wedding websites. 1 million lines of code for free wedding websites. It was a mess but the company was also almost 10 years old when I joined. We'd play hot potato with the Extjs tickets. I hate Extjs. My second job, all cloud, all mess, an even older company. And my third? You get the picture.
Did you know that 99% of companies could run their entire tech infra off the hardware on a 5 year old smart phone?
Seriously. And I bet if they left the phone in their closet with a fan on it, there is a 50% chance it would beat us-east1
in reliability. Clearly a joke but is it? Could it work? What if someone bumps the phone? What if the power goes out? What if the phone cpu just….dies? Did anyone think about the data? Would someone please think about the data!?!? It doesn't sound very reliable, a bad idea.
Take a look outside.
Come on, get up, go look out your window or imagine a window if there are none nearby. Look at all that. You see it? Maybe some trees, a garden with flowers, streets, power lines, buildings, infrastructure in one form or another, and all the people who rely on said infra. Shit breaks constantly, all the time, nonstop. It is always in a state of disrepair and actively being repaired. There are millions of people employed to keep that shit on. To keep it running. Now think about the building/home/apartment you live in. All the plugs, connections, wires, pipes, prongs, doodads, and the people who fix the doodads.
The ceiling in the town home I rent collapsed recently due to a water leak spilling all kinds of nasty onto my office desk. Something had been living up there and insulation was the litter box. Why did this happen? Someone hooked up the emergency water drain to the “non-emergency” drain rather than running another drain line when they installed the AC unit. Sound familiar? The first guy that looked at the AC unit didn't know what the core issue was. He was just a normal handyman who could repair the ceiling among other things. The second HVAC guy knew what the problem was in under 5 minutes. I bet that also sounds familiar.
I will be the first to admit I have cut corners and if I did a self install with an AC unit I may have done the same thing. I may not have known I was cutting corners. Ignorance can run deep. Is the solution to properly install an emergency drain line? Maybe, but that can be expensive and it wasn't even the root problem. No, it is to fix the emergency shutoff that didn't work which prevents the machine from running if water builds up in the pan and doesn't drain. Now, if water builds up for whatever reason, the system will turn off before flooding. And if the system turns off, you now know that the drain line likely needs to be unclogged. I cannot say I would opt for this solution but it sounds familiar to me.
I have no idea how AC units work let alone what it means to be “up to code”. I do fancy myself as someone capable of seeing patterns, real or otherwise.
Software is broken.
In my life, software has never worked. Wait that isn't true. Software has only worked 99.99% of the time—certainly more often than the AC units I know. That last .01% is just super super hard, complicated, and expensive to get. It is like there are radical diminishing returns as quality and reliability are cranked up passed that, good enough tm, threshold.
Life is magic. I press a button and drinkable water comes out, I flip a switch and night becomes day, it is insane. Sometimes, shit doesn't work. Sometimes night stays night. Sometimes the airplane doesn't fly. Sometimes you have to turn it off and on again.
I don't like programming but I love building. I enjoy turning an idea into reality whether it is with pencils, a kalimba, Swing JFrames, or html. I think the same may be true for the stereotypical engineer I meet. I think they like building beautiful works of art. I really do. But sometimes I wonder.