Dicas diversas pra quem quer dormir tranquilo e fazer um bom trabalho
Tem coisas que a gente só percebe depois que já passou. Por isso, segue uma lista dessas pequenas coisas que podem ajudar qualquer pessoa que está programando (ou trabalhando com algo parecido).
Aviso: esta lista está crescendo constantemente. Se quiser adicionar algo, manda um email pra mim.
pra começar pense sempre como programador, como alguém que dá instruções para uma máquina executar. Quem tem que trabalhar no que é comum e repetitivo é a máquina, você tem que pensar em como fazer a máquina trabalhar melhor.
Mantenha sempre arquivos com anotações. E mantenha estes arquivos facilmente acessáveis (num pendrive, com backup num disco online). Num caso extremo, use serviços como o Dropbox ou Evernote diretamente, que estão online, logo não tão facilmente acessáveis.
O que você mantém nesses arquivos? Todas as anotações que faz quando está trabalhando em algo. Linhas de comando com parametros. Senhas de servidor, senhas de área de administração, caminhos de arquivos, comandos usados para ajustar arquivos, regex, tudo. Sempre um arquivo por projeto, pra não bagunçar demais. "Ah, é inseguro", concordo em partes. Mas sempre que você não lembrar a sintaxe daquele sed maroto que você fez pra trocar as URLs em um dump SQL, sabe onde vai encontrar.
Tenha um banco de "pedaços de código". Isso evita coisas do tipo "como eu faço mesmo a URL de conexão ao banco?", "como é aquela linha de list comprehension em python que mapeia os dados?". Mantenha junto com os arquivos que falei acima. E todos os editores modernos tem algum mecanismo de inserção desses pedaços de código (snippets), aprenda a usar isso e automatize tudo o que puder.
Use sempre que possível chaves ssh para login em servidores remotos. E mantenha as chaves no pendrive. Caso possível, desabilite o login por senha, mantendo apenas o login usando a chave.
Aprenda a usar bem um editor de texto. Não precisa ser o Vim ou o Emacs. Isso vai te ajudar a ter mais produtividade e, também, a pensar em como resolver os problemas ao invés de como fazer algo no editor que possa te ajudar a resolver o problema.
Automatize tudo o que puder. Usar 1 hora pra automatizar um processo que você executa manualmente todo dia e dura 5 minutos pode parecer gasto de tempo, mas isso vai ajudar a (1) livrar 5 minutos do seu tempo, (2) identificar todas as falhas possíveis desse procedimento e resolver antes que elas aconteçam e (3) deixar o processo independente do seu cuidado.
Se você usa Linux ou Mac OSX, domine o bash e o conjunto de ferramentas da linha de comando (GNU coreutils). Se usa Windows, aprenda a usar bem o PowerShell. A linha de comando te ajuda a pensar antes no que fazer, e na possibilidade de automação de atividades.
Mantenha seus arquivos organizados. Você precisa saber onde estão as coisas, quando precisar delas.
Aprenda uma linguagem de programação. Eu sempre vou recomendar Python porque tem muita coisa que já vem pronta com a linguagem, muitas bibliotecas pra fazer de tudo, e o que não vem junto é fácil de adicionar. Mas o objetivo é ter algo que te possibilite fazer coisas de modo "programado". E não montar sistemas complexos. E também descubra ferramentas que possam te ajudar a automatizar aquelas atividades chatas, como o Fabric e o Vagrant. Você não precisa ser uma pessoa expert em programação para que, usando ferramentas e/ou linguagens de programação, faça pequenos programas que resolvam seu problema.