When I was 14, I got exposed to programming for the first time. What captivated me was that it
allowed me to build interesting things out of nothing.
Where a carpenter or a bricklayer need raw materials to build something useful, the progammer only
needs a computer.
At 22, I got my first job as a software developer. I was lucky enough to be surrounded by talented and passionated people who mentored me. This allowed me to learn much faster than I would ever have on my own.
Since then, I've dedicated my time to learning which eventually led me to work as a technical lead. This allows me to spend a significant amount of time mentoring others and share some of the knowledge I've accumulated over my years of experience. This way, I hope to give the more juniors developers the opportunity to be mentored and fast-track their learning process.
I think that some quotes capture my vision pretty well, but they certainly need to be clarified as quotes can be interpreted in so many different ways by different people.
Done is better than perfect.
This is a quote I really love, but we have to be careful to clearly define what done means. It essentially means we should be pragmatic, but this should never be used an excuse to ship low-quality code. For instance, while it might seem faster to not write automated tests in the short run, it is actually counterproductive in the long run.
The only way to go fast is to go well.Robert C. Martin, Clean Architecture
Fighting entropy is necessary when working in a codebase. We can't get everything right immediately, and mess tends to grow over time if left unmanaged.
One tool we have at our disposal to manage entropy is code refactoring. For a business to be successful, it is therefore essential to educate developers on the importance of code quality.
Quality is the best business plan.
Maintaining code is hard, especially when it gets complex. The zen of python captures this really well:
Simple is better than complex. Complex is better than complicated.
That being said, the code that is not written never has to be maintained.
The best code is no code.
This is where programming principles like YAGNI really shine. In essence, it says "do not anticipate business requirements". Over-engineering is the root of all evil.