Resistance is Futile: Software Engineering and Ignorance
We are the Borg. Lower your shields and surrender your ships. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile.
Long after Captain Jean Luc Picard was assimilated by The Borg he was haunted by his experiences. The thought of losing his individuality to a collective hive-mind made him feel weak and hollow. Free thought is neccessary for scientific discovery, artistic expression, and democratic societies. Picard’s fear of losing his freedom was too much for him to bear.
I used to hate the idea of using a content management system. At the time I thought WordPress sites were bulky, slow, and rife with poorly written js. Everyone had jumped on the bandwagon and I couldn’t understand why. I was convinced that The Borg of WordPress was on a mission to assimilate me, to remove my individuality and artistic expression. How could this over-engineered hat-on-a-hat help me make websites faster?
Today I can’t imagine a world without WordPress. I use it every day and I love it. It elegantly solves all the little problems that get in your way as a web developer without slowing you down.
I’ve had similar thoughts about node.js and angular, and I’m getting better at identifying and correcting them. All software engineers should practice identifying and correcting these thoughts.
Hating content management systems is irrational and ignorant. When you feel a particular hatred or distate for a technology stack or programming language, it’s a good idea to learn everything you can about it. The mere fact that anyone uses it is proof of its utility. As an engineer it is important to always allow yourself to absorb new information, even if it sucks.
Social cliques can create an environment where these ignorant thoughts can percolate. Engineering identities create in-group out-group mentalities. C++ vs Java, OOP vs functional, web vs native… Tribalism builds social cohesion and self-identity for software engineers, but it can lead to social bubbles that prevent them from learning new technologies. Every software engineer should consider themselves multi-purpose and strive to learn new technologies every day.
It is a software engineer’s purpose to be assimilated into the technological singularity. We will add your biological and technological distinctiveness to our own. Your culture will adapt to service us. Resistance is futile.