Skip to content

Instantly share code, notes, and snippets.

@leoGalani
Created November 21, 2017 11:09
Show Gist options
  • Save leoGalani/eafccb45c4e3ce293c1f21714c98ebd4 to your computer and use it in GitHub Desktop.
Save leoGalani/eafccb45c4e3ce293c1f21714c98ebd4 to your computer and use it in GitHub Desktop.
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.
Isso não é lenda meu caro leitor. Eu mesmo fui vítima desse processo horrível que se chama curso de análise e desenvolvimento de sistemas.
Antes de analisar e entender os motivos desses traumas, preciso pontuar certas coisas:
1 - Se você trabalha com testes, **você trabalha com desenvolvimento de software**. Isso quer dizer se você não é uma pessoa técnica provavelmente ficará sem trabalho em breve (~~ hastag Papo reto~~).
Rolou um mini debate no twitter sobre a diferença entre ser técnico e saber programar.. mas a diferença é muito sutil, pelo menos no meu ponto de vista.
( 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!](https://media.giphy.com/media/KupdfnqWwV7J6/giphy.gif)
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.
Vou contar uma história (que se parece com a minha) e que provavelmente você irá se identificar no meio do caminho.
Você usa seu computador para jogar e para usar internet e pensa "Hey, acho que quero trabalhar com isso!, vou fazer faculdade de 'computação'"
Você passa no vestibular, entra e a primeira materia 'prática' é logica de programação e no começo você se atrapalha um pouco mas as instruções são geralmente bem claras.
Tudo vai bem quando você escreve seu primeiro pseudo código, desenha seu primeiro fluxogram e seu primeiro teste de mesa maroto.
Se der problema, tudo bem, só jogar o papel fora e começar novamente em uma folha em branco.
Alguns se dão bem logo de começo, outros tem um pouco mais dificuldade em acertar esse raciocínio lógico mas eventualmente algo dava certo.
Chega um belo dia e sua classe vai para sala dos computadores e o professor pede para você abrir o Eclipse ou NetBeans pois vocês irão aprender a programa em Java:
![eclipse](http://www.amzi.com/manuals/amzi/pro/ide_screen.gif)
![eclipse](http://www.oracle.com/ocom/groups/public/@otn/documents/digitalasset/1907038.png)
Lá esta você, _double click_ para a IDE... demora uma vida para abrir e vem o soco na cara. Você que nunca escreveu uma linha de código no computador se depara com uma nave espacial, varias abas, opções e mini janelas.
Você vira para para seu colega e ele está aterrorizado como você e tudo que vocês ouvem do professor é __"Não se preocupem com isso 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 resistência do vento e se divertir no final de semana ensolarado.
![Cabine](http://imgs-srzd.s3.amazonaws.com/srzd/upload/c/a/cabinepiloto620.jpg)
Enquanto você está no processo de recuperação do baque,
seu professor te fala 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... _'Não se preocupe com isso agora'_.
Ao invés de explicar isso, vocês fazem operações matemáticas e são forçados a ignorar o elefante branco no meio da sala.
No final da aula, n!ao contente você pergunta que raios são aquelas coisas escritas... __class__, __void__, __main__, __args__,etc, mas o professor fala que provavelmente vocês não precisamos saber o que são essas coisas para esse semestre e o máximo que ele se propõe a explicar é que a linguagem exige esse 'setup' para você criar um programa simples.
![](https://media.giphy.com/media/4WA1gD7CKAPks/giphy.gif)
Metade passa ileso por essa fase, mas isso não quer dizer que vai ser tudo flores.
Você já não tem uma base boa e já jogam orientação a objeto, programação funcional, frameworks tipo Jboss, gerenciadores de dependência como maven e frameworks de build como ant... É tanta informação sem cadência e sem mostrar o real motivo para usar as coisas que você trava.
Esse ciclo vicioso permanece até hoje na maioria das faculdades.
Algumas faculdades estão migrando a linguagem padrão de java para javascript ou python. Isso não tira o fato que ainda geralmente usam IDE 'trambolhos' e 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 precise de setup 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ê vai 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. E caso precise de coisas específicas para sua linguagem, você pode sempre instalar um plugin.
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á te dar confiança para seguir em frente em tentar coisas mais complicadas ou até mesmo novas linguagens
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 MAS 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_ vai ver que eu já fiz muita pergunta idiota. Todo mundo vai fazer pergunta idiota uma ou varias vezes na vida. Não tenha medo! Ninguém paga suas contas.
Eu sempre peço para amigos que manjam da linguagem que eu to 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 entende porque é feito daquele jeito, mas conhecendo design patterns você vai conseguir assimilar por que certas coisas são feitas de certo jeito. Tudo vai fazer mais sentido no final :)
![](https://media.giphy.com/media/yR4xZagT71AAM/giphy.gif)
Eu não não falei sobre como aprender a programar na linguagem que você escolheu pq 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 era o que faltava pra você começar a programar ;)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment