Five code habit that make you a great developer
Why write about this?
If I were starting programming now, I wish I had known some things beforehand. This is a list I wish I had known before starting. These aren't deep concepts, just things that have a big impact on my skills and code quality. Some of these items may not be 100% related to programming, but they have a significant impact.
1. Environment
This one is probably a no-brainer for anyone who already has experience, but I have to mention it here. I've been guilty of neglecting this many times, but I'm working on improving it. What do I mean by environment? Well, it's a space where you can focus. For me, it's a quiet place with a good view where I can put on some chill music.
Having a clean space has some sort of impact on productivity.
2. Read a lot
If there's something that I've enjoyed more and more, it's reading books. I'm not talking about only technical books, but also general books on various themes. For example, 12 Rules for Life by Jordan Peterson. Reading books can give you creativity, open your mind to other realities, and even help you think differently. Sometimes we can reach our goals faster and more easily indirectly, as this book explains.
Here are a few books I've enjoyed:
- 12 Rules for Life by Jordan Peterson
- [Portuguese] Ponha o Seu Dinheiro a Trabalhar para Si
- Clean Architecture by Uncle Bob
- Domain Driven Development
- [Portuguese] Ganhar Dinheiro
- [Portuguese] A Inteligência Erótica
- The Psychology of Money
3. Pay for peace of mind
For many years I was against buying software or paying for services, but not anymore. More and more, there are certain activities that aren't worth spending your time on. For example, buying PHPStorm. For many years I was always a huge fan of Sublime Text or even Vim Editor. For example, to deploy projects I used deployer, but not anymore - I just use Envoyer to deploy. Why? Well, because there are so many pain points in deploying yourself: permissions, public keys, restarting services, restarting cache, etc. By the end of the day, I was crying!
Other software I've paid for or am paying for:
- Forge - currently paying
- Envoyer - currently paying
- PHPStorm - currently paying
- GoLand - not paying, but I'm using it in legacy mode
- Sublime Text 3 - pay once and use forever
- Cyberduck - free, but I like to support open source projects
- Things 3 iOS and Mac - My wife and I paid for this and it's worth it!
- Digital Ocean because i don't want to build my own server in home.
4. Build it yourself
I know this may conflict with the previous point, but there are certain projects that you need to build yourself and other software that is better to build yourself. Let me give you some examples.
The must projects you need to build yourself:
- Create an interpreter language - mine is called Ninja, it's still a work in progress
- Path finder algorithm
- Terrain Generator from Perlin Noise (or derived, because Perlin noise is proprietary licensed)
- Rope data structure - this one is a brain breaker for sure!
- Built an Agent AI
The projects that are better to build yourself:
- Select2 - This one made me cry so many times. This plugin is for JavaScript that only shows items inside a dropdown. It's extremely easy to build one yourself, fully customized and abstracted with only a few lines of code! One day I will make a post on how you can make one yourself!
5. McDonald's Theory
Last one: just launch! Even if it's not a great first solution, a better solution will come later.