• mail@brunobrito.pt

7 Realidades do dia-a-dia de um Programador

7 Realidades do dia-a-dia de um Programador

7 Realidades do dia-a-dia de um Programador

7 Realidades do dia-a-dia de um Programador 620 350 Bruno Brito

Na semana passada escrevi sobre alguns mitos de programação – um conjunto de ideias pré-concebidas que eu não duvidava que fossem verdade, até perceber (após algum tempo a programar) que estavam completamente erradas!

Hoje, como prometido, falo um pouco da realidade enquanto programador – aquilo que define o dia-a-dia de alguém que está todo o dia com o editor de texto aberto e com o terminal sempre activo.

Naturalmente, não pretendo que este artigo seja pretensioso – não sou um programador veterano, longe disso! – pelo que me vou cingir à minha (curta) experiência neste meio, que se resume a um período de quase 3 meses em que programar foi parte de mais de 10 horas de cada dia.

Contas feitas, ainda estamos a falar de algumas horas, portanto vamos então ver o que acontece realmente quando se passa o dia a programar.

#1: Encontrar erros é (demasiado) normal…

Mesmo quando ainda estamos a começar e os nossos ficheiros têm 5 ou 10 linhas de código, é incrível o número de erros que podemos encontrar.

Ao início, encaramos tudo isto com estranheza e, possivelmente, com sentimento de fracasso. Rapidamente voltamos para o editor de texto (sem sequer ler a mensagem de erro), reparamos que algo estava em falta, corrigimos, gravamos e tentamos de novo, apenas para encontrar novamente uma mensagem de falhanço.

O que aí ainda não nos apercebemos é que…

… os erros são nossos amigos!

Os erros vão ser nossos companheiros toda a carreira – podemos, com a prática, cometer menos erros (esquecermo-nos menos vezes daquela vírgula ou do nome correcto da variável, por exemplo), mas novos erros surgirão à medida que as nossa ambição e as nossas capacidades aumentam.

Rails error

O que vai mudar com a prática é a forma como encaramos estas mensagens de (suposto) fracasso.

As mensagens de erro, seja no browser ou no terminal, apontam-nos para a direcção certa; vamos começar cada vez mais a ler sobre elas e a querer entendê-las, não só para as evitar como para passar para o problema seguinte – que pode ser, em muitas ocorrências, um novo erro encontrado que precisa de ser corrigido.

E o que faz qualquer programador que encontra uma mensagem de erro nova? Começa por fazer aquilo que todos nós fazemos, dezenas de vezes por dia: vai ao Google.

O que me leva para o ponto seguinte…

#2: Googling

Quando referi no artigo anterior que era importante um bom Google-fu, era precisamente por motivos como este: uma boa parte do nosso tempo é passado no Google.

Aqui, vais pesquisar com frequência por:

  • mensagens de erro;
  • comandos que não te recordas, para qualquer linguagem;
  • formas de resolver determinados problemas, como expressões regulares.

Na esmagadora maioria das vezes o Google fará o seu trabalho e serás direccionado para um fórum com a resposta à tua pergunta (muito provavelmente o Stack Overflow) ou um tutorial que contém a resposta que procuravas.

Se não obtiveste resposta, o mais provável é que tenhas de pesquisar de outra forma ou colocar uma questão num fórum – acredita, por mais específico que o teu problema pareça ser, o mais provável é que alguém já tenha passado pelo mesmo!

#3: A temível sensação de ficar stuck

Abres um ficheiro, começas a escrever e a coisa até está a ir bem: escreveste várias linhas de código, pelo caminho nem encontraste muitos erros e está tudo a correr de feição. Continuas a escrever mais um pouco até que, finalmente, lá volta aquele sentimento outra vez: ficaste stuck, ou preso.

Os minutos passam, convertem-se em horas e ainda não conseguiste avançar. Lês e relês o teu código e não entendes o que falta: o servidor está a correr, os ficheiros estão gravados e não há erros de sintaxe. Mas o tempo passa e continuas aqui preso.

Este é um sentimento terrível (na minha experiência pior que qualquer bloqueio criativo) mas com que os programadores têm de aprender a lidar numa base diária.

Estes são alguns dos pensamentos que passarão por ti, provavelmente várias vezes numa só manhã:

Mas porque é que não consigo fazer isto?
Não faço a mínima ideia por onde começar…
Este problema é simples, porque é que não está a funcionar?
Acho que se ficar mais 3 horas a olhar para isto, nada de novo acontecerá. No que eu me fui meter…

Sim, sentes tudo isto e não é agradável. Mas acabas por aceitar essa sensação e, com persistência, lá acabarás por ultrapassar o obstáculo, aprendendo algo pelo caminho. E aí continuarás a tua missão até que a situação regresse, de preferência só depois do almoço.

Aqui, a chave, é realmente ser teimoso e não desistir: pesquisar mais um pouco, ler o nosso código mais uma vez, pedir ajuda a um colega ou passar para outra tarefa para “limpar a vista”.

#4: Brinca com a nossa auto-estima

Programação é surpreendentemente severa para a nossa auto-estima – todos os dias vemos sites incríveis, aplicações fantásticas e pode ser um pouco desesperante pensarmos quando é que seremos capazes de fazer algo similar.

Se juntarmos a isso o ponto anterior, em que tanta vez pensamos que estamos presos simplesmente por sermos burros, percebemos que os nossos dias são compostos por viagens emocionais algo atribuladas.

E aqui ainda falta referir a mítica síndrome do impostor. Aquela sensação constante em que sentimos que o nosso trabalho até agora foi uma fraude, os nossos programas funcionam por pura sorte e que não somos assim tão competentes. E não ajuda quando resolvemos um problema sem verdadeiramente entender como o conseguimos solucionar.

I have no idea why it works meme

Esta é uma sensação complicada de gerir e, pessoalmente, não acredito que ficará mais fácil com maior experiência.

Porquê? Por causa do ponto seguinte.

#5: Não sabemos o que não sabemos… e quando se abre uma janela surge um mundo novo que desconhecemos

Quando começas a pensar em Web Development, pensas talvez em HTML, CSS e JavaScript. Mais tarde, perceberás que há sites em PHP ou Ruby. Pelo caminho ouves nomes como jQuery, Bootstrap ou AngularJS e conheces serviços como a Amazon Web Services ou o Github. E ainda falta saberes para que serve o Gulp, o Grunt, SASS ou PostCSS.

Web Technologies

Quando algo não está a funcionar e encontramos a solução, é frequente surgir um novo mundo que era por nós desconhecido até à data. E é aqui que ficamos a conhecer alguma destas tecnologias que referi em cima (ou outras muito mais específicas).

Como podemos sossegar a nossa síndrome do impostor se sempre que ganhamos novas competências, percebemos que existe toda uma nova tecnologia altamente complexa que desconhecíamos e que nos dará tanto trabalho a conhecer?

Já diz o ditado:

Ignorance is bliss (a ignorância é uma benção)

Todas as semanas vais conhecer novas técnicas de fazer o teu trabalho – e por cada sensação que terás de ter feito um upgrade às tuas qualificações, soma 5 sensações de “wow, há mesmo muito que desconheço”.

E se por acaso algum dia vieres a achar que tens a situação totalmente controlada, o ponto seguinte servirá para te relembrar que tal nunca acontecerá.

#6: Está SEMPRE em constante mudança

Por norma, este é o melhor raciocínio que podes ter:

A única certeza, é a certeza da mudança.

Esta frase foi algo que ouvi inúmeras vezes na Creators School) e que mostra o quão efémero é este mundo.

Tecnologias revolucionárias estão sempre a surgir, algumas carregadas de hype que te farão querer saber mais e, por vezes, farão com que alteres a tua forma de trabalhar. As boas práticas estão sempre a mudar e o que hoje é recomendado pode ser, em 3 meses, desaconselhado.

Em suma, esta é uma carreira em que sairás frequentemente da tua zona de conforto e onde terás de estar receptivo a mudanças constantes. Este é um excelente artigo sobre o tema.

#7: Ler, ler, ler…

Sem surpresa, o dia-a-dia de um programador é passado não só a escrever, mas também a ler: tal como um escritor.

Um programador passa o dia a ler código (seja o dele próprio seja o de outros), a ver as novidades do Hacker News, a procurar respostas no Stack Overflow, a seguir tutoriais sobre uma tecnologia que lhe interessa e a consultar a documentação de determinada linguagem de programação.

Hacker News em mobile

Até é de admirar que, no meio de tanta leitura, sobre tempo para escrever. Mas a verdade é que se não dedicarmos uma boa quantidade de tempo do nosso dia a ler, dificilmente conseguiremos adquirir novas competências ou sair do problema em que estamos presos há 2 horas!

Conclusão

Na minha experiência, é assim que se passam as horas de um programador. Muito tempo a resolver problemas e a consultar documentação, com algumas viagens emocionais pelo meio, numa indústria que é mais ágil do que provavelmente qualquer outra.

E tu, concordas? Tens algo a acrescentar? Manifesta-te nos comentários!

    Se quiser entrar em contacto comigo, pode enviar-me um e-mail para mail@brunobrito.pt ou preencher o formulário abaixo.

    NOTA: Todos os campos são de preenchimento obrigatório.


      7 Realidades do dia-a-dia de um Programador

      Tempo de Leitura: 8min
      0