Por Quincy Larson. Originalmente publicado no freeCodeCamp.

Ninguém simplesmente aprende a programar¹. Porque programar não é fácil. Programar é difícil. Todo mundo sabe disso. Qualquer um que vasculhou um stack trace— ou teve um detached head utilizando Git—pode te dizer isso.

Infelizmente, há muitos marqueteiros por aí tentando ganhar dinheiro com a noção de que “programar é fácil!” ou que será, se você utilizar o produto deles.

 

Tradução: “Ouvir na abertura da Conferência Global de Desenvolvedores da Apple (WWDC) que programar não é difícil me frustra. É extremamente difícil. Vocês estão preparando iniciantes para se desapontar enormemente.”

Quando alguém te diz que programar é fácil, eles estão te fazendo um enorme desserviço. O resultado disso só pode ser um desses três:

Cenário 1
Pessoa 1: “Eu tentei aprender a programar uma vez. Foi difícil. A vida entrou no caminho e eu não estou mais tentando aprender a programar.”
Marqueteiro: “Programar é fácil!”
Pessoa 1: “O quê? Ah. Talvez programar seja fácil mesmo. Talvez eu é que seja burro.”

Cenário 2
Pessoa 2: “Eu quero aprender a programar, mas parece difícil.”
Marqueteiro: “Programar é fácil!”
Pessoa 2: “Mesmo?”
Marqueteiro: “Sim. Compre meu curso/programa/e-book e você será um programador de elite em menos de um mês.”
Pessoa 2:

1-qi3o91juxhrqa6uur7iuka
Cale-se e / Leve meu dinheiro!

Pessoa 2, um mês depois: “Achei que programar devesse ser fácil. Talvez eu só seja burro mesmo.”

Cenário 3
Pessoa 3: Eu não tenho interesse nenhum em aprender a programar. Sou um gerente de sucesso. Se eu precisar de um código, vou simplesmente pagar a alguém para fazê-lo por mim.
Marqueteiro: “Programar é fácil!”
Pessoa 3: Oh, ok. Imagino. Nesse caso, acho que não vou pagar muito àqueles macacos de código ou dar muita consideração ao trabalho deles.

Cirurgia cerebral é fácil
Dizer que “Programar é fácil!” é o mesmo que dizer “Cirurgia cerebral é fácil!” ou dizer “Escrever romances é fácil!”.

Um cirurgião cerebral em um jantar diz para a romancista Margret Atwood: “Eu sempre quis escrever. Quando eu me aposentar e tiver tempo, serei um escritor.”
Margret Atwood responde: “Que coincidência, porque quando eu me aposentar, eu serei uma cirurgiã cerebral.”

E ainda assim, marqueteiros continuam a dizer: “Programar é fácil!”, “Programar não é assim tão difícil!”, ou o meu favorito, “Programar é fácil! [algo que faz progrmar ser difícil] é que é difícil!”

E tudo o que esses marqueteiros alcançam em dizer essas coisas é fazer as pessoas se sentir burras— às vezes levando o dinheiro delas no processo.

A maldição do conhecimento
Infelizmente, não são apenas os marqueteiros que dizem que programar é fácil. Eu encontro desenvolvedores experientes o tempo inteiro que também dizem que “programar é fácil!”.

Por que alguém que passou pelas milhares de horas necessárias para se tornar bom em programar diria que programar é fácil? Porque eles sofrem de uma tendência cognitiva chamada maldição do conhecimento. Eles não conseguem se lembrar de como era não saber programar. E mesmo que consigam, eles provavelmente esqueceram há muito tempo como era difícil programar no início.

A maldição do conhecimento previne muitos desenvolvedores experientes de ser capazes de ter empatia por iniciantes. E nenhum lugar mostra essa falta de empatia tão bem quanto o resultado do Google favorito de todos: o tutorial de programação.

Todo tutorial de programação já escrito. Como: Desenhar um Cavalo, por Van Oktop / 1: desenhe dois círculos / 2: desenhe as pernas / 3: desenhe o rosto / 4: desenhe o cabelo / 5: adicione pequenos detalhes

Quantas vezes você realmente conseguiu concluir um tutorial aleatório que encontrou pelo Google sem perder a cabeça por conta de algum misterioso erro ou ambiguidade na explicação?

E a pior coisa sobre esse processo é quando os autores do tutorial inconscientemente rodeiam suas instruções com palavras como “obviamente”, “facilmente”, ou o mais afrontoso de todos: “simplesmente”.

Nada é mais frustrante do que estar 30 minutos em um tutorial e ficar preso em um passo que diz “simplesmente integre com a API da Salesforce” ou “simplesmente publique para o AWS”.
E quando isso acontece, a voz de mil marqueteiros ecoa na sua cabeça: “Programar é fácil!”.

Você se lembrará desses desenvolvedores experientes que conheceu há algumas semanas e tentaram te encorajar ao máximo dizendo “Programar é fácil!”.
Você até terá flashbacks de todas as cenas ruins de hacking de Hollywood em que eles fazem programar parecer tão fácil.

Antes que você perceba, você subitamente ouvirá o som da sua própria voz gritando, sentirá seu corpo se erguendo aos seus pés e (╯°□°)╯︵ ┻━┻

Mas ok. Respire fundo. Programar não é fácil. Programar é difícil. Todo mundo sabe disso.

 

Codificar na vida real vs. codificar em filmes

Programar na vida real vs. programar em filmes

Ainda assim, você ansiará por aquelas habilidades l33+ h@x0r (Transcrição em leetspeak,  da expressão “leet haxor”, significando hacker de elite). Você se sentirá compelido a derrotar bugs usando nada além de sua astúcia— e um número exagerado de monitores verde-no-preto.

Então vamos caçar esse dragão. Vamos ser aquele programador de elite de Hollywood. Apenas por um momento, vamos sentir como é ser assim.

Então vamos caçar esse dragão. Vamos ser aquele programador de elite de Hollywood. Apenas por um momento, vamos sentir como é ser assim.

Vamos lá:

Primeiro passo: desligue as luzes, erga o colarinho de sua camisa, coloque óculos escuros aviator.
Segundo passo: se empanturre com uma bebida energética, amasse a lata, jogue à longe sobre seu ombro.
Terceiro passo: Entre aqui e soque seu teclado tão rápido quanto humanamente possível.

Fantasia de poder realizada.

Sente-se melhor? Está rindo do quão absurdo é nossa imagem coletiva de desenvolvimento de software?

Agora que tiramos isso do nosso sistema, vamos falar da palavra mais traiçoeira que há.

Nada é tão simples
Há uma boa chance de que se você encontrou uma palavra como “simplesmente” em um tutorial, esse tutorial assumirá muitas coisas sobre seu conhecimento prévio.

Talvez o autor assuma que você já programou alguma coisa similar anteriormente e só está utilizando esse tutorial como referência. Talvez o autor tenha escrito o tutorial consigo mesmo em mente como público alvo.

De qualquer forma, há uma boa chance de que o tutorial não foi criado para alguém com o seu nível exato de habilidades de programação.

Daí a “regra da simplicidade”:
Não use a palavra “simplesmente” em seus tutoriais, e não consuma tutoriais que usem a palavra “simplesmente”.
Aprenda-o. Saiba-o. Viva-o.

Infelizmente, em uma sessão desesperada de vinte minutos de pesquisas no Google, você provavelmente não se lembrará que você deve pesquisar na página de tutorial para saber se o autor presunçosamente utiliza palavras como “simplesmente”.

Bom, nós estamos aqui pra isso. Albert Meija criou uma extensão para o Chrome que irá detectar a palavra “simplesmente” em um tutorial e mostrará uma notificação de que o tutorial não é feito para iniciantes.

Essa extensão do Chrome serve como canário na mina de carvão (havia uma prática em que mineiros levariam canários para minas de carvão. Se houvesse vazamentos de gás, os canários morriam, e, notando isso, os mineradores tinham tempo de escapar), notificando você dá presença da palavra “simplesmente”— e então possíveis assunções sobre seu conhecimento prévio— antes que você vá a fundo demais no tutorial.

Albert criou essa extensão para o Chrome em poucas horas, em resposta a um desafio sobre o qual eu tweetei. Aqui estão algumas das outras entradas dos campistas do Free Code Camp, cujas extensões fazem coisas similares: Symply for beginners?, Not so simple, Not so simply.

Nós certamente poderíamos levar essas extensões do Chrome mais a fundo. Talvez usar Processamento Linguístico Natural para produzir uma avaliação mais precisa da dificuldade relativa de um dado tutorial ou seu “índice de presunção”.
Mas enquanto isso, essa simples extensão pode te guiar para longe desses icebergs de “simplesmente” afundadores de navios que habitam o oceano frio que é aprender a programar.

Até nosso próximo encontro—cuide-se e não acredite na publicidade. Aprender a programar é difícil. Ignore o ruído, continue, e seja bem sucedido.


¹: O título é uma referência à célebre frase do personagem Boromir “One does not simply walk into Mordor” (alo como: ninguém simplesmente entra em Mordor), quando o personagem de Sean alerta os companheiros sobre os perigos da região. Assista a este trecho aqui.

Tradução colaborativa de:

Myreli Borba, estudante de informática no Instituto Federal do RS, desenvolvedora de software e artista nas horas vagas. Acredita que o mundo pode ser mudado através de códigos – as palavras, a música e a programação. Acesse seu github e LinkedIn.

Vinícius Guerra, formado em Análise de Sistemas pela FAETERJ-Rio. Desenvolvedor de games, simuladores e apps interativos e eventual artista. Mais sobre seu trabalho em https://devguerra.wordpress.com/