Taí uma coisa que muita gente não se pergunta, e que é muito importante no meu ponto de vista Marivaldo; usar Windows ou Linux?
Eu lembro quando meu pai comprou o primeiro computador que suportava Windows, na época, era o 3.11. Eu já usava o DOS fazia uns 2 ou 3 anos e já tinha aprendido a programar em Basic e Pascal (que eram no DOS) e me divertia.
Eu rapidinho dei meu jeito de buscar um jeito de programar para o Windows, e logo no início aprendi Visual Basic e o sofrido Visual FoxPro. Isso ainda foi na década de 90, quase no ano 2000. Em 2005 acabei me certificando em Delphi 3 e em 2011 comecei a programar com C# pra com Winforms.
Ou seja, é muito rolê com Windows que passei.
Neste período, por alguns anos utilizei dual boot (uma forma de usar um sistema operacional ou outro, por vez, que eu decidia quando ligava o computador).
Usando Linux eu aprendi muita coisa bacana, sobre como o sistema operacional funciona exatamente, podendo ver como ele é “montado” de forma clara e acessível. No Linux, diferente do Windows, quem mandava no sistema operacional era eu, não era ele que mandava em mim. Se eu quisesse configurar algo ou mudar alguma coisa eu podia fazer, claro que havia sempre o risco de ferrar tudo, e isso vez por outra acontecia.
No linux você aprende a usar a linha de comando, o terminal. Programador tem que saber usar o terminal, controlar um computador sem precisar usar o mouse. Entender onde as coisas ficam e deixar ele sempre funcionando. Quando alguma coisa falha, você vai até os logs de erros e lê o motivo exato, e pode concertar se quiser, sem ter necessariamente que programar.
O Linux por natureza é um servidor, então comecei a programar em PHP com o Linux. Em 2013 me certifiquei em PHP também. Naquela época acho que se eu tivesse tentado certificação pra Linux (a mais básica) teria conseguido..
E quando falamos em Linux, falamos de 95% dos servidores que existem na internet. Falamos do sistema operacional que mantem a internet conectada e funcionando! E estes servidores (99,9%) deles não têm “tela”, não têm mouse pra clicar e configurar.. a gente acessa pela linha de comando, pelo terminal, usando o SSH através de túnel seguro, e configura ele todo assim, digitando comandos, colocando as coisas nos lugares, instalando serviços.
Então, saber usar o Linux para um programador, é uma MEGA vantagem.
Todo processo de seleção que faço eu pergunto: você sabe usar o Linux? Sabe usar o terminal? E sempre que as respostas são positivas, esse cara é um bom programador, melhor que a maioria, diferenciado.
Então, em linhas gerais, recomendo que TODO programador use o Linux durante algum tempo. A única ressalva é se você for um programador Windows, tipo, que desenvolva com C# para Windows. Neste caso, você poderia também fazê-lo pelo Linux usando uma máquina virtual ou coisa do tipo, mas, a realidade é que o Visual Studio é muito pesado, rodando na máquina real ele já faz ela arrastar, numa virtual então, ficaria lento demais e anti-produtivo.
Ha, alguns últimos detalhes muitos importantes; o Linux é gratis, é open-source, tem seu código aberto. Então qualquer um pode colaborar com ele, programado, melhorando, corrigindo falhas. Claro que todo código é auditado e validado antes de se juntar ao código principal. O Linux é também um sistema operacional super estável, não fica travando e rodando mil processos sem serventia por trás.. ele te deixa ser usuário em paz.
Enfim, em todos os outros casos, programar no Linux é o que há de melhor! Bora lá Marivaldo, instala um ubuntu ou fedora ai na sua máquina e dê um upgrade no seu conhecimento.