O documento fornece 12 dicas para se tornar um melhor desenvolvedor de software: 1) Aprenda lógica de programação antes de linguagens específicas, 2) Planeje projetos antes de começar a codificar, 3) Experimente novas tecnologias e tendências da área.
8. LEANDRO
FERREIRA
Desenvolvedor de software
do século passado
● Programador desde antes da WEB
● Basic, Assembly, C, Pascal, Java,
ASP, PHP, Javascript, mIRCscript,
…
● Zend ZCPE PHP 5.5
● Atualmente desenvolvo em HTML +
CSS + Laravel + VueJs / AngularJs
● Curso Administração de Empresas
na FCAP/UPE
● Nerd nas horas vagas
● Atendimento ao público,
conhecimento básico de culinária,
como servir refeições à mesa
14. 2. Planeje antes de começar
● Nunca, NUNCA, JAMAIS, “sente e programe”
● Adote uma mínima organização:
○ Desenvolva o mockup, E/OU
○ Aplique scrum, E/OU
○ Diagrame os casos de uso, E/OU
○ Comece pelo MER
○ Plus: XGH (eXtreme Go Horse)
15. ● Pensou, não é XGH.
● Existem 3 formas de se resolver um problema, a correta, a errada e a XGH, que
é igual à errada, só que mais rápida.
● Quanto mais XGH você faz, mais precisará fazer.
● XGH é totalmente reativo.
● Commit sempre antes de update.
● Esteja preparado para pular fora quando o barco começar a afundar... ou
arrume alguém ou algo para colocar a culpa.
● Seja autêntico, XGH não respeita padrões.
2.1. eXtreme Go Horse (1/2)
16. ● Não existe refactoring, apenas rework.
● Se iluda sempre com promessas de melhorias.
● XGH nem sempre é POG.
● O XGH não é perigoso até surgir um pouco de ordem.
● O XGH é seu brother, mas é vingativo.
● Se tiver funcionando, não rela a mão.
● Teste é para os fracos.
● O problema só é seu quando seu nome está no Doc da classe.
2.1. eXtreme Go Horse (2/2)
18. 3. Experimente novas tecnologias e tendências (1/3)
● Não reinvente! Experimente, leia sobre vários e
escolha um (ou mais de um) framework:
○ PHP: Laravel, Zend, Cake, CI, Symfony, Slim, Silex,
Lumen, Phalcon
○ CSS: Bootstrap, Bulma, Tailwind, Foundation,
Materialize
○ JS: Vue, Angular, React, jQuery, Handlebars, Lodash,
Ember, etc etc etc etc etc etc etc etc etc etc etc etc etc et
19. 3. Experimente novas tecnologias e tendências (2/3)
● Leia reviews e comparativos
● Leia (ou assista a) tutoriais iniciais
● Dê preferência a boas documentação e grandes
comunidades
● Selecione poucos e leia a documentação
○ Primeiro, leia TUDO (ou quase)
○ Depois, será material de consulta
● Importante: saiba diferenciar se é linguagem ou FW
20. 3. Experimente novas tecnologias e tendências (3/3)
● “Curie” os outros: grandes sites ditam tendências
● Acompanhe novas ferramentas
○ Old school: HTML + CSS + JS + PHP + MySQL
○ Hoje: TUDO ISSO + (Template engine + Sass +
Less + Uglify + NPM + Composer + Typescript +
Transpiler + Webpack + Webfont) +
COMPILAÇÃO!
○ Bonus: JAMstack
22. ● A comunidade é sensacional! S2
● Free learning (ou até mesmo Udemy!)
● Exemplos: Rodrigo Branas, Laracasts, Loiane,
FreeCodeCamp, Vedovelli, Gustavo
Guanabara, Laracon, Packt, ...
● Aprenda inglês! Urgente! Agora!
● Cuidado! Não se empolgue: vá trabalhar!
4. Estude sempre e pra sempre
24. ● Empatia!
● Faça as coisas de forma simples, com poucos cliques
e de forma homogênea
● Porque seu usuário “tem” 7 anos de idade
● Crianças de 7 anos não entendem seu dialeto: use
texto cotidiano, sem jargões
● Interface: estude as tendências
● API: programadores erram mais que humanos
5. Coloque-se no lugar do usuário
26. ● Compare e escolha um editor/IDE, sem preconceitos
● Estude exaustivamente seu editor/IDE
● Assista a vídeos sobre o editor/IDE
● Procure por extensões: SEMPRE há uma para fazer
o que você precisa (e o que não sabe que precisa)
● Aprofunde-se em npm, composer, webpack, artisan,
vue-init, tinker, psySH e outras CLI
● Não tenha medo do terminal
6. Invista tempo em suas ferramentas
28. ● Avalie a real necessidade de construir um site ou usar
um framework para tarefas muito simples
● Pesquise sobre as possíveis opções:
○ Web app complexa: Laravel + Vue + MySQL/Maria
○ Site pequeno e específico: Silex + Twig + SQLite
○ Site estático: Jekyll, Sculpin
○ Documentação online: Gitbook
○ Blog, site dinâmico: WordPress, Drupal, Ghost
○ API: Lumen, Slim
7. Use a solução certa para cada problema (1/2)
29. ● Procure SAAS para cada atividade (sempre tem!)
● Quando não gratuitos, a custo muito baixo
● Exemplos: Mailtrap, Mailchimp, Mailgun,
Bitbucket, Hostinger, Zoho, Dropbox, AWS,
Google Cloud
● Vale citar: PagSeguro, BoletoBancario,
MercadoPago
7. Use a solução certa para cada problema (2/2)
31. ● Lugar de PHP é no Linux (iOS allowed)
○ Ubuntu desktop: rápido, compatível com tudo,
fácil de aprender e tem interface gráfica
○ Multiplique: VirtualBox, Docker e LXD
● Onde rodar: WAMP, XAMPP, Apache e/ou Nginx
● Onde guardar: MySQL, MariaDB, SqLite
● Como se proteger UFW, ipTables
8. Aprenda infraestrutura com urgência (1/5)
32. ● É importante conhecer todo o processo:
○ registro.br ou name.com + cloudflare
○ DNS: NS, A, MX, CNAME, TXT
○ SSH: você em todo lugar
○ SSL: HTTPS grátis: Let’s Encrypt
○ LAMP stack
○ VPS: uma máquina pra chamar de sua
8. Aprenda infraestrutura com urgência (2/5)
37. 9. Conheça design patterns
● MVC: o feijão com arroz dos design patterns
● SOLID: Seus objetos limpinhos e cheirosos
● CRUD: se seus controllers deixarem, qualquer
aplicação será CRUD
● Gang of Four: 23 padrões em 3 categorias
○ Criacional, Estrutural, Comportamental
○ Laravel usa vários destes padrões
39. 10. Cultura geral conta muito: leia!
● Vocabulário para se comunicar com o usuário
● Comportamento do usuário
○ Banner blindness
○ Impaciência e leitura em F
● Aspectos visuais: um pouco de design
○ Cores, paletas, proporções, espaçamento e outras
“frescuras”
○ Usabilidade: uma ciência ubíqua e mutante
● Conhecimento geral pra fazer bonito: Assista a TEDs
41. 11. Code for fun and profit
● Pergunta inicial: você gosta de programar?
● Você é um programador! Tem noção disso?
● Ganhar dinheiro não é pecado, mas:
● Projetos particulares “just for fun”
● Vá para o Codingame, HackerEarth,
HackerRank e outros sites legais!
● ENSINE O QUE SABE!
43. 12. EMPREENDA!
● Trabalhar para “os outros” é torná-los ricos
● Iniciar um negócio a custo perto de zero?
● Todo mundo é capaz de tocar uma ideia pra
frente (principalmente um programador)
● Não tenha medo do incerto: o próprio
emprego é incerto! Comece com “freelas”
● Não procure emprego: ofereça emprego! //
45. <a href=”mailto:leandrowferreira@gmail.com”>
leandrowferreira@gmail.com
</a>
1. Aprenda lógica, não linguagem
2. Planeje antes de começar
3. Experimente novas tecnologias e tendências
4. Estude sempre e pra sempre
5. Coloque-se no lugar do usuário
6. Invista tempo em suas ferramentas
7. Use a solução certa para cada problema
8. Aprenda infraestrutura com urgência
9. Conheça design patterns
10. Cultura geral conta muito: leia!
11. Coding for fun and profit
12. EMPREENDA!
Como ser um desenvolvedor melhor