This post is a small reflection on a topic that seems to never end: what operational system or tools a software developer should use.
I think you should use what makes you happy and productive. Simple as that.
People should remember that the world is a unequal place. There is countries (such as Brazil) where technology is incredibly expensive related to the minimum wage and most people won't be able to purchase a high end computer. This is true specially when they are starting their carreers.
If you are one of these people starting on the IT field, this is for you. Remember:
- You don't need a Macbook to be a great software developer, designer, QA, DevOps or any other position in IT.
- You don't need a fancy high-end computer, a mechanical keyboard or a gaming chair to learn how to code and do your first professional steps. Of course more RAM or an SSD can help, but they are not obligatory - and you can upgrade your setup over time, step by step.
- It's ok (and great) to use Windows for software development. Linux is awesome, but it can be overwhelming at first. Since nowadays is generally easy to develop in all platforms, you can focus on learning the language or tool you need to learn for the job on Windows without any problem.
There's no silver bullet to rule everything. Different people have different productive levels on different tools. Of course there's things you can only do using certain tools or systems (native iOS development is a good example), but in general, most programming jobs can be done in a multitude of setups.
Try to experiment things if you want, but is fine to use the tools that you know and love to get the job done.