logo

Você tem medo de programar? Senta aqui que você não está sozinho.

Diz a lenda pessoas que trabalham com qualidade e teste de software tiveram uma péssima experiência com programação na faculdade, ou acham que para ser testador você não precisa ser técnico e saber programar.

Eu mesmo fui vítima desse processo horrível chamado curso de análise e desenvolvimento de sistemas, e demorou para eu conseguir sair do ciclo vicioso de medo e incerteza que deixaram marcas pelas primeiras experiências.

Antes de analisar e entender os motivos desses traumas, preciso pontuar algumas coisas:

1 - Se você trabalha com testes, você trabalha com desenvolvimento de software. Isso quer dizer que, se você não é uma pessoa técnica, provavelmente ficará sem trabalho em breve ( hastag Papo reto).

( Podemos também ter outra discussão sobre as diferenças entre Programar e Desenvolver software, mas para você, que está lendo esse texto procurando ajuda, eu vou dar uma colher de chá e deixar esse assunto de lado :) )

2 - Se você entende e escreve queries sql, bash scripts e etc, então elaborar um pensamento lógico e aplicar isso em uma linguagem de programação deveria entrar na sua lista de habilidades.

3 - Testers precisam saber programar, automatizar teste é só uma tarefa.

...

Voltando para o assunto principal... Programar... SIM! Programar.


Medo!

A definição de medo segundo, o dicionário atual, é 'temor, ansiedade irracional ou fundamentada; receio.'
Acredito que essa ansiedade irracional, que gera o bloqueio e medo das pessoas em chegar perto de código, está diretamente relacionada em como o processo de desenvolvimento lhes foi apresentado. Aquele papo de psicólogo que diz que, grande parte dos seus problemas atuais tem relação com seus pais, é verdade!

Vou contar uma história (que se parece com a minha) e que provavelmente você irá se identificar no meio do caminho.

Você utiliza o seu computador para jogar e para usar internet quando é adolescente e pensa "Hey, acho que quero trabalhar com isso!, vou fazer faculdade de 'computação'"
Sendo assim, após passar no vestibular e começar o curso, a primeira matéria 'prática' no semestre/ano é logica de programação. Você se atrapalha um pouco no começo, mas geralmente as instruções são geralmente bem claras e diretas, consegue entender a essência da coisa.

Tudo vai bem quando você escreve seu primeiro pseudo código, desenha seu primeiro fluxograma e seu primeiro teste de mesa maroto.
Alguns se dão bem logo de cara, outros têm uma dificuldade maior em acertar esse raciocínio lógico, mas eventualmente algo dá certo.

Chega um belo dia e sua classe vai para sala dos computadores. O professor pede para você abrir o Eclipse ou NetBeans, pois vocês irão aprender a programa em Java:

eclipse

eclipse

Double click no ícone da IDE, espera alguns minutos para abrir e PAM! Aquela sensação horrível de estar perdido, suor frio, incerteza de que é aquilo que você quer para sua vida. Você que nunca escreveu uma linha de código no computador, se depara com uma nave espacial, várias abas, opções e mini janelas.
Você se vira para seu colega e ele está tão aterrorizado quanto você, e tudo que ouvem do professor é "Não se preocupem com toda essa informação agora".

Parece que te colocaram na cabine de um avião, mas quando na verdade você, só queria soltar uma pipa no parque para entender como funciona a resistência do vento e se divertir no final de semana ensolarado.

Cabine

Enquanto você está no processo de recuperação do baque,
seu professor te fala em como criar um novo programa 'hello world'. Aparece um monte de linhas de código na tela que você não faz ideia para que servem e a frase se repete... 'Não se preocupe com isso agora'.

Hello World

Ao invés de explicar isso, ele mostra a vocês como fazer operações matemáticas e todos ignoram o elefante branco no meio da sala.

No final da aula, com aquela cabeça pesada cheia de dúvidas sobre porque escrever todos aqueles termos (class, void, main, args,etc), você indaga o professor, e o mesmo fala que provavelmente vocês não precisam saber o que são essas coisas para esse semestre.
O máximo que ele se propõe a explicar é que a linguagem exige esse 'setup' para você criar um programa simples.

Metade passa ileso por essa fase, mas isso não quer dizer que tudo serão flores.
Você, mesmo não formando uma base boa, é bombardeado com orientação a objeto, programação funcional, frameworks, como Jboss, gerenciadores de dependência, como maven e frameworks de build, como ant. São tantas informações sem cadência e sem mostrar o real motivo para serem utilizadas que só piora a situação do indivíduo.

Esse ciclo vicioso permanece até hoje na maioria dos cursos de graduação.

Alguns estão migrando o ensino da linguagem padrão de Java para Javascript ou Python. Isso não tira o fato de que ainda usam IDE's pesadas e assutadoras para iniciantes. Um dia você está escrevendo console.log('what') e no outro dia você tem que saber como funciona tasks de grunt.

Como combater a frustração??

Esse é o momento que eu convido para galera que fala que cada linguagem tem seu ganho, bla-bla-bla, para tomar um café bem longe e deixar esse assunto para outra hora.

1 - Comece por uma linguagem de programação que seja simples, dinâmica e que quase não precisa de setup complicado para você escrever algumas linhas.
Eu sugiro que você escolha ruby ou python. Ruby por questão de mercado, python por questão de amor mesmo.
Javascript tem muito ruído e muita coisa. Uma parte do que você verá em javascript vanilla não faz muito sentido com typescript.

2 - Use uma IDE de programação amigável. Sublim e Atom são ótimas opções, incrivelmente poderosas e simples de usar. Você poderá instalar algum plugin sempre que necessitar de coisas mais específicas para linguagem escolhida.

3 - Programe! Você não combate o medo de andar de bicicleta sem andar de bicicleta. Não fique com vergonha de seguir as receitas de bolo que você vê por ai.
Receitas de bolo de como criar sua lista de 'ToDo', criar seu próprio blog ou seu próprio Twitter, até mesmo um simples CRUD irão te dar confiança para seguir em frente em tentar coisas complicadas ou até mesmo novas linguagens.
Em menos de 5 minutos vc monta uma conta no github, abre um repositório publico e começa a subir código :)

4 - Não tenha medo de pedir ajuda. Isso não te dá carta branca para você abolir todo conteúdo que existe na internet e perguntar sem pesquisar. Se mesmo após uma pesquisa você não entender certas coisas, pergunte para comunidade, seja ela de teste ou desenvolvimento.

Se você procurar nos arquivos do dftest verá que eu já fiz muita pergunta idiota. Todo mundo vai fazer pergunta idiota uma ou várias vezes na vida. Não tenha medo! Ninguém paga suas contas.

Eu sempre peço para amigos que manjam da linguagem que eu estou escrevendo para darem um pitaco nos meus projetos pessoais.
Pode me marcar nos seus PR's no github que eu te ajudo fazendo code review.

5 - Assista vídeos sobre programação e desenvolvimento de software. Não tenha medo de não entender certas coisas. Pare o vídeo e procure o sobre o que você não entendeu.

6 - Estude Design Patterns. Você pode ver algum código que você não entendeu o porquê é feito daquele jeito, mas conhecendo design patterns você vai conseguir assimilar por que certas coisas são feitas de certo jeito. Tudo vai fazer sentido no final :).

7 - Use e abuse do terminal da linguagem que você escolheu.
Se você usa python, digitar python sem nenhum argumento já irá abrir o terminal onde vc pode testar rapidamente pedaços de código que você não tem certeza se funcionam da forma que você espera. Se você escolheu ruby, você pode usar o irb que faz a mesma coisa.

8 - Use e abuse de ferramentas de Debug!
Outro motivo pelo qual as pessoas se frustram com código é que elas não conseguem entender o que está dando de errado no código delas.
O Byebug (ruby) e pdb(python) te ajudam debugar seu código de forma simples e direta.

Eu não falei sobre como aprender a programar na linguagem que você escolheu porque provavelmente você já sabe as opções né?
Udemy, Codeschool, Codeacademy, Pluralsight, etc.

Espero de coração ter te ajudado um pouco e que esse empurrão seja o que faltava para você começar a programar. ;)

comments powered by Disqus