The Lazy Programmer Ethos - A Lesson I Learned as an Intern
The Lazy Programmer Ethos: A Lesson I Learned as an Intern
Hello world !! ✨
Welcome to my first blog post. This is something really special that I wanted—and needed—to share. This is my first post in a micro-essay format, and it will be about my latest readings related to software engineering and computer science.
As a recent graduate and current intern at a well-known company, I felt the need to build a bridge between my university knowledge and my current software engineering role. I decided to Google a list of recommended books for developers, and that’s how I found Fundamentals of Software Engineering from O’Reilly.
I started reading it and quickly realized it was a great fit for my situation, helping to fill the gap that often exists between being a student and becoming a good engineer.
So… what caught my attention?
One concept from the book, the lazy programmer ethos, really made sense to me after facing a few challenges during my internship.
But what the heck is an ethos?
An ethos is a set of beliefs or ideas that characterize a specific group of people and define their morals and ethics.
Ethos means spirit, essence.
The lazy programmer ethos was something I already understood as a concept, but I didn’t know it had a name. Still, I find it extremely relevant as a recent computer engineering graduate.
Okay, but where does the lazy programmer come in?
The lazy programmer ethos discourages jumping straight into coding a solution to a problem. Instead, a software engineer is expected to first understand the entire domain of the problem they are trying to solve.
Once we have full context and understanding, we can design a solution before writing any code.
Wait… does this mean I should postpone my tasks and leave everything for the end?
Not at all. The lazy programmer ethos is not about avoiding work. On the contrary, it means making research, thinking, and design an inherent and essential part of the work.
Sometimes we may consider this initial research irrelevant, or we might even feel embarrassed during daily stand-ups for not having many visible results. However, keeping coding as the last step has clear benefits. It helps us avoid running in circles when our solution turns out to be inefficient or simply not sufficient.
Running in circles is something the lazy programmer should avoid. Smart laziness.
This is something I personally experienced as a student intern while working on a new feature. I was given a possible front-end solution that ended up being unfriendly for users. I only realized this during a meeting with a UX/UI expert, days after I had already finished implementing the solution.
Other ways to follow the ethos
- Automate repetitive tasks with scripts.
- Do not reinvent the wheel. Find predefined solutions (libraries, functions). Often 5 minutes of research can save hours of development.
- Efficiency over effort. Find the simplest solution.
In conclusion, the lazy programmer ethos is a very important concept to practice in software development. It helps us keep things simple, avoid unnecessary rework, and prevent spending time on solutions that will eventually be discarded.