Download - O que é ser um bom programador?
![Page 1: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/1.jpg)
O que é SER UM PROGRAMADOR?
lucas boeing scarduelli / @lucasscarduelli
bom
![Page 2: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/2.jpg)
Arquiteto de softwarelíder setor de pesquisa e desenvolvimento (P&D)
Técnico em Informática industrial (#sqn)bacharel em sistemas de informação
pós graduado em gerenciamento de projetos
9 anos de experiência7 anos desenvolvendo software web
lucas boeing scarduelli
scarduelli.com@lucasscarduelli
![Page 3: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/3.jpg)
motivação
nós não precisamos de mais programadores, nós precisamos
de bons programadores. (edson yanaga)
![Page 4: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/4.jpg)
motivação
contrate o carácter. treine as habilidades.
(peter schutz)
![Page 5: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/5.jpg)
O que é um programador?
“profissional especializado no desenvolvimento e no aperfeiçoamento de programas de computador.”
![Page 6: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/6.jpg)
mas pode ser também…
“quem te resolve um problema que você não sabia que tinha de uma maneira que você não compreende “
![Page 7: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/7.jpg)
… ou também …
![Page 8: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/8.jpg)
… ou ainda!!! #melhordetodas
“e aquele cara que muitas vezes tem que encontrar a melhor e mais simples solução, para um problema de uma área que ele não conhece e de que ele não faz a
mínima ideia do porque acontece”
![Page 9: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/9.jpg)
![Page 10: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/10.jpg)
somos pagos para resolver problemas…
… muitos problemas, mais muitos mesmo, todos os dias e quase sempre pra ontem!! #napressao
![Page 11: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/11.jpg)
na real … ser programador não e fácil!
mais e massa pra caramba!!!
![Page 12: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/12.jpg)
porque você quer ser um programador?
![Page 13: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/13.jpg)
… porque eu gosto de internet e redes sociais!
![Page 14: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/14.jpg)
… porque eu gosto de jogar!
![Page 15: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/15.jpg)
… prefiro trabalhar sentado e no ar condicionado!
… quero fazer somente aquilo que eu gosto!
![Page 16: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/16.jpg)
… quero trabalhar igual o pessoal do google!
![Page 17: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/17.jpg)
… quero ser o orgulho da família!
![Page 18: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/18.jpg)
… é a profissão do futuro!
![Page 19: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/19.jpg)
… porque quero ter uma ideia genial e ficar rico rápido!
![Page 20: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/20.jpg)
então quando te perguntarem, o que você vai responder?
![Page 21: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/21.jpg)
se for algo diferente disso… :(
então quando te perguntarem, o que você vai responder?
![Page 22: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/22.jpg)
o que é ser um bom programador?
Uma escola ou faculdade vão me formar um bom programador?
![Page 23: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/23.jpg)
Eu preciso conhecer e dominar as melhores linguagens de programação?
![Page 24: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/24.jpg)
Eu preciso conhecer o melhor banco de dados?
![Page 25: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/25.jpg)
Eu preciso usar e conhecer a melhor ide ou ferramenta de desenvolvimento?
![Page 26: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/26.jpg)
Eu preciso conhecer e aplicar as melhores metodologias e práticas de desenvolvimento?
![Page 27: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/27.jpg)
Eu preciso ter uma super estação de trabalho?
![Page 28: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/28.jpg)
programação é coisa para nerd?
![Page 29: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/29.jpg)
quanto mais linhas de código, melhor programador eu
sou?
![Page 30: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/30.jpg)
Eu preciso digitar muito ou ser o mais rápido?
![Page 31: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/31.jpg)
tudo isso te ajuda, mas não é o principal!!!
![Page 32: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/32.jpg)
se nada disso é o principal, então o que eu realmente preciso?
![Page 33: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/33.jpg)
atitude
![Page 34: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/34.jpg)
atitude
não se acomodardar sempre o seu melhor
manter o focorealmente se importar com o que faz
![Page 35: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/35.jpg)
atitude
não se acomodardar sempre o seu melhor
realmente se importar com o que fazmanter o foco
SE DESENVOLVER E CRESCER
![Page 36: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/36.jpg)
atitude
não se acomodardar sempre o seu melhor
realmente se importar com o que fazmanter o foco
SE DESENVOLVER E CRESCER gerar resultados
![Page 37: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/37.jpg)
ser um bom programador é muito mais do que fazer um software funcionar
![Page 38: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/38.jpg)
é ter domínio da área que atua…
![Page 39: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/39.jpg)
é comprometimento com aquilo que faz…
![Page 40: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/40.jpg)
é gerar bons resultados…
![Page 41: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/41.jpg)
é buscar sempre a melhor solução…com a melhor qualidade…
com a melhor experiência… e com o melhor custo benefício!
![Page 42: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/42.jpg)
então, que dizer que eu vou levar a vida toda para ser um bom programador?
não, você é bom quando faz o seu melhor.
![Page 43: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/43.jpg)
tudo tem um começo!
![Page 44: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/44.jpg)
primeiro de tudo aprenda a pensar
lógica de programação
o difícil é resolver o problema
pergunte sobre tudo
código é a menor parte
![Page 45: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/45.jpg)
o resto entra no loop infinito que é a vida do programador
![Page 46: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/46.jpg)
Estudo
curso técnico
faculdadelivros
tutoriaisprojetos open source
![Page 47: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/47.jpg)
prática
estágio trabalho
aula
freelancer
open source
hobby
![Page 48: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/48.jpg)
aprendizadoabsorva o conhecimento
lide melhor com as pessoas
lide com os erros
lide com o fracasso
repita práticas de sucesso
![Page 49: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/49.jpg)
aperfeiçoamento
novas técnicas
novas linguagens
novos domínios
novas tecnologias
aplique o aprendizado
aprenda inglês
![Page 50: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/50.jpg)
o loop infinito!
while programador.estaVivo() {programador.estudar();programador.praticar();programador.cometerErros();programador.aprender();programador.corrigirErros();programador.evoluir();
}
![Page 51: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/51.jpg)
robert c. martin @unclebobmartin
![Page 52: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/52.jpg)
o que é um código limpo?
simples
direto
eficiente
sem duplicidade
elegante
feito com cuidadofácil manutenção
padronizado
poucas dependências
![Page 53: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/53.jpg)
o que é um código limpo?
![Page 54: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/54.jpg)
teoria da janela quebrada
![Page 55: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/55.jpg)
como se mede o quão limpo um código e?
![Page 56: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/56.jpg)
nomes significativos
nos escolhemos nomes para tudo E TEMOS QUE FAZER ISSO BEM FEITO, por isso eles devem nos dizer...
- por que existe- o que faz
- como e usado
![Page 57: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/57.jpg)
devem revelar sua intenção…
![Page 58: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/58.jpg)
devem revelar sua intenção…
![Page 59: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/59.jpg)
devem revelar sua intenção…
![Page 60: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/60.jpg)
devem revelar sua intenção…
![Page 61: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/61.jpg)
devem ser pronunciáveis…
![Page 62: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/62.jpg)
não seja genérico…
![Page 63: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/63.jpg)
não economize nas palavras!
evite a desinformação!
evite palavras que não são palavras
se preciso use varias palavras
evite palavras reservadas
o tipo não precisa estar no nome
evite trocadilhosevite palavras que não são palavras
use boas praticas
![Page 64: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/64.jpg)
classes e métodos
nomes de classes devem ser substantivos e não conter verbos
Veículo, Pessoa, Cliente, Fornecedor,
Estoque, ...
nomes de métodos devem conter verbos
calculaCusto(), lancaEstoque(),
geraNotaFiscal(), ...
![Page 65: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/65.jpg)
devem ser pequenos
“a primeira regra dos métodos e que eles devem ser
pequenos. a segunda e que devem ser menores ainda.”
(uncle bob)
classes menores são mais fáceis de ler e entender o que
estão fazendo.
classe = 200 a 500 linhasmétodos <= 20 linhas
linhas <= 100 caracteres
![Page 66: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/66.jpg)
métodos devem fazer uma coisa só e fazer certo!
o difícil e definir o que é uma coisa só.
tente extrair parte do código e dar um nome a ele.
![Page 67: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/67.jpg)
métodos devem fazer algo ou responder algo!
os dois juntos causa confusão.
![Page 68: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/68.jpg)
simplifique as estruturas de decisão, evite O hard codE E APROXIME-SE DA MARGEM
![Page 69: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/69.jpg)
simplifique as estruturas de decisão, evite O hard codE E APROXIME-SE DA MARGEM
![Page 70: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/70.jpg)
dry - don’t repeat yourself
evite duplicidade de código! reutilize seus métodos.
![Page 71: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/71.jpg)
srp - principio da responsabilidade única
uma classe deve ter uma, e somente uma razão para
mudar
![Page 72: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/72.jpg)
classes devem ser coesas
poucas variáveis
cada método deve manipular uma ou mais variáveis quanto mais variáveis um
método consegue manipular, mais coeso ele é
coesão e a co-dependencia entre métodos e variáveis
![Page 73: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/73.jpg)
comentários
podem ser mentirosos, mesmo sem intenção
comentários não escondem código ruim
comentário é sinal de necessidade de refatoração
nunca deixe um código comentado
![Page 74: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/74.jpg)
explique-se com código
![Page 75: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/75.jpg)
closing brace comments
![Page 76: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/76.jpg)
comentários podem ser uteis
mostra a intenção por trás de uma decisão tomada
avisa aos desenvolvedores sobre a consequência de um
trecho de código
![Page 77: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/77.jpg)
formatação
formatação é importante para a comunicação
legibilidade é importante para mudanças futuras
métodos com conceitos parecidos devem ficar
verticalmente próximos
ordem dos métodos influencia na legibilidade do
código
![Page 78: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/78.jpg)
indentação
importante para visualização de todo o escopo
não deve ter nível maior que 2, para uma compreensão
fácil e rápida
espaçamento e importante
![Page 79: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/79.jpg)
código hadoooouuuken!!
![Page 80: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/80.jpg)
code smells - fique atento a eles
comentários pobres, obsoletos ou redundantes
métodos mortos ou que fazem muita coisa
código comentado
responsabilidades demais ou fora do contexto
nomes pequenos e inexpressivos
muitos parâmetros ou parâmetros booleanos
despadronizaçãonúmeros mágicos
duplicidade de código
![Page 81: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/81.jpg)
mantenha sempre sua cozinha limpa!
![Page 82: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/82.jpg)
regra do escoteiro
deixe a areá do acampamento mais limpa do que como você encontrou.
![Page 83: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/83.jpg)
manifesto para desenvolvimento ágil de softwarewww.agilemanifest.com
![Page 84: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/84.jpg)
manifesto para o artesanato de softwaremanifesto.softwarecraftsmanship.org
![Page 85: O que é ser um bom programador?](https://reader034.vdocuments.net/reader034/viewer/2022042611/58f0e16a1a28ab50218b457d/html5/thumbnails/85.jpg)
lucas boeing scarduelli / @lucasscarduelli
Perguntas?