SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
PERGUNTAS?
VOCÊ
GOSTA DE
PROGRAMAR?
O USUÁRIO!
O ENGENHEIRO
DE TESTES!
<h1>
COMO SER UM
DESENVOLVEDOR
MELHOR
</h1>
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
MEU
PRIMEIRO
COMPUTADOR
<ol>
<li>
Aprenda lógica, não linguagem
</li>
1. Aprenda lógica, não linguagem
● Programar é inventar a solução de um problema
● Decorar sintaxe é importante: produtividade
● Sintaxe? Em PHP?? :
○ strlen
○ str_pad
○ parse_str
○ ‘php’ == true; ‘php’ == 0; /* logo, */ true == 0;
○ list($v1, $v2, $v3) = [‘A’, ‘B’, ‘C’];
<li>
Planeje antes de começar
</li>
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)
● 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)
● 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)
<li>
Experimente novas tecnologias e
tendências
</li>
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
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
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
<li>
Estude sempre e pra sempre
</li>
● 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
<li>
Coloque-se no lugar do usuário
</li>
● 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
<li>
Invista tempo em suas
ferramentas
</li>
● 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
<li>
Use a solução certa para cada
problema
</li>
● 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)
● 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)
<li>
Aprenda infraestrutura com
urgência
</li>
● 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)
● É 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)
8. Aprenda infraestrutura com urgência (3/5)
● Onde ter um VPS:
○ DigitalOcean 1GB, 1vCPU, 25GB SSD $5
○ Vultr 1GB, 1vCPU, 25GB SSD $5
○ Linode 1GB, 1vCPU, 20GB SSD $5
○ Scaleway 2GB, 2vCPU, 50GB SSD €3
○ Lightsail 0.5GB, 1vCPU, 20GB SSD $5
8. Aprenda infraestrutura com urgência (4/5)
● Amazon Web Services (1/2):
○ Máquina particular: EC2 + EBS
○ Rede particular: VPC
○ Arquivos “soltos” visíveis na web: S3
○ DNS: Route 53
○ Envio de e-mail: SES
○ Backup a preço de banana: Glacier
8. Aprenda infraestrutura com urgência (5/5)
● Amazon Web Services (2/2):
○ Git grátis: CodeCommit
○ BD zero bronca: RDS
○ Chatbot: Lex
○ Reconhecer faces e textos: Rekognition
○ Envio de SMS: SNS
<li>
Conheça design patterns
</li>
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
<li>
Cultura geral conta muito: leia!
</li>
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
<li>
Coding for fun and profit
</li>
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!
<li>
EMPREENDA!
</li>
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! //
</ol>
<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

Mais conteúdo relacionado

Mais procurados

Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoAlexandre Andrade
 
Tecnologia, mercado de trabalho e você
Tecnologia, mercado de trabalho e vocêTecnologia, mercado de trabalho e você
Tecnologia, mercado de trabalho e vocêLeonardo Silveira
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...tdc-globalcode
 
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...Adolfo Neto
 
Uso de Software Livre e alternativas open source
Uso de Software Livre e alternativas open sourceUso de Software Livre e alternativas open source
Uso de Software Livre e alternativas open sourceVinícius Hax
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfAndreCosta502039
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começarFernando Ike
 
Boas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareBoas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareivanassisleal
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Thiago Barradas
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Gabriel Rubens
 
NãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoNãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoOsvaldo Santana Neto
 

Mais procurados (20)

Seja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinhoSeja um júnior não seja um sobrinho
Seja um júnior não seja um sobrinho
 
Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!Coding Dojo em 10 Minutos!
Coding Dojo em 10 Minutos!
 
Tecnologia, mercado de trabalho e você
Tecnologia, mercado de trabalho e vocêTecnologia, mercado de trabalho e você
Tecnologia, mercado de trabalho e você
 
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
TDC2016POA | Trilha PHP - Quero ser desenvolvedor PHP. Como me preparar para ...
 
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
Coding Dojos para Aprendizagem de TDD - Há Evidências Científicas? - Ignite T...
 
Uso de Software Livre e alternativas open source
Uso de Software Livre e alternativas open sourceUso de Software Livre e alternativas open source
Uso de Software Livre e alternativas open source
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começar
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!O Spring está morto! Viva o Spring!
O Spring está morto! Viva o Spring!
 
Design patterns
Design patternsDesign patterns
Design patterns
 
A saga do desenvolvedor java
A saga do desenvolvedor javaA saga do desenvolvedor java
A saga do desenvolvedor java
 
Por que Java?
Por que Java?Por que Java?
Por que Java?
 
Boas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_softwareBoas praticas em_desenvolvimento_de_software
Boas praticas em_desenvolvimento_de_software
 
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
Clean Code: Por um mundo com códigos melhores - The Developers Conference - P...
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Coding Dojo e TDD
Coding Dojo e TDDCoding Dojo e TDD
Coding Dojo e TDD
 
NãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até PensamentoNãNãNã Nã - Python Refresca até Pensamento
NãNãNã Nã - Python Refresca até Pensamento
 

Semelhante a Como ser um desenvolvedor melhor

PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratarAle Uehara
 
Programe na Velocidade da Luz
Programe na Velocidade da LuzPrograme na Velocidade da Luz
Programe na Velocidade da LuzDaniel Polito
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?Fabio Janiszevski
 
Como iniciar o desenvolvimento Android
Como iniciar o desenvolvimento AndroidComo iniciar o desenvolvimento Android
Como iniciar o desenvolvimento AndroidJose Naves Moura Neto
 
Iniciando no desenvolvimento android 2016
Iniciando no desenvolvimento android 2016Iniciando no desenvolvimento android 2016
Iniciando no desenvolvimento android 2016Jose Naves Moura Neto
 
10 dicas de carreira em PHP
10 dicas de carreira em PHP10 dicas de carreira em PHP
10 dicas de carreira em PHPElton Minetto
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosDiego Santos
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Gabriel Rubens
 
GDG RJ 2018 - O que aprendi como CTO
GDG RJ 2018 - O que aprendi como CTOGDG RJ 2018 - O que aprendi como CTO
GDG RJ 2018 - O que aprendi como CTODouglas Rocha
 
Contribuindo para projetos de software livre
Contribuindo para projetos de software livreContribuindo para projetos de software livre
Contribuindo para projetos de software livreLucas Barros
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 

Semelhante a Como ser um desenvolvedor melhor (20)

PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011PHP Turbinado com CodeIgniter - Conisli 2011
PHP Turbinado com CodeIgniter - Conisli 2011
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
 
Programe na Velocidade da Luz
Programe na Velocidade da LuzPrograme na Velocidade da Luz
Programe na Velocidade da Luz
 
TDC 2015 - Torne-se um programador melhor
TDC 2015 - Torne-se um  programador melhorTDC 2015 - Torne-se um  programador melhor
TDC 2015 - Torne-se um programador melhor
 
O que move a web atualmente?
O que move a web atualmente?O que move a web atualmente?
O que move a web atualmente?
 
Carreira de dev
Carreira de devCarreira de dev
Carreira de dev
 
Usabilidade de Ferramentas
Usabilidade de FerramentasUsabilidade de Ferramentas
Usabilidade de Ferramentas
 
Como iniciar o desenvolvimento Android
Como iniciar o desenvolvimento AndroidComo iniciar o desenvolvimento Android
Como iniciar o desenvolvimento Android
 
Iniciando no desenvolvimento android 2016
Iniciando no desenvolvimento android 2016Iniciando no desenvolvimento android 2016
Iniciando no desenvolvimento android 2016
 
10 dicas de carreira em PHP
10 dicas de carreira em PHP10 dicas de carreira em PHP
10 dicas de carreira em PHP
 
O que é ser um bom programador?
O que é ser um bom programador?O que é ser um bom programador?
O que é ser um bom programador?
 
Formando Desenvolvedores Efetivos
Formando Desenvolvedores EfetivosFormando Desenvolvedores Efetivos
Formando Desenvolvedores Efetivos
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
GDG RJ 2018 - O que aprendi como CTO
GDG RJ 2018 - O que aprendi como CTOGDG RJ 2018 - O que aprendi como CTO
GDG RJ 2018 - O que aprendi como CTO
 
Contribuindo para projetos de software livre
Contribuindo para projetos de software livreContribuindo para projetos de software livre
Contribuindo para projetos de software livre
 
Android
AndroidAndroid
Android
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
PHP: Além do sitezinho
PHP: Além do sitezinhoPHP: Além do sitezinho
PHP: Além do sitezinho
 

Como ser um desenvolvedor melhor

  • 3.
  • 4.
  • 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
  • 10. <ol>
  • 11. <li> Aprenda lógica, não linguagem </li>
  • 12. 1. Aprenda lógica, não linguagem ● Programar é inventar a solução de um problema ● Decorar sintaxe é importante: produtividade ● Sintaxe? Em PHP?? : ○ strlen ○ str_pad ○ parse_str ○ ‘php’ == true; ‘php’ == 0; /* logo, */ true == 0; ○ list($v1, $v2, $v3) = [‘A’, ‘B’, ‘C’];
  • 13. <li> Planeje antes de começar </li>
  • 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)
  • 17. <li> Experimente novas tecnologias e tendências </li>
  • 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
  • 21. <li> Estude sempre e pra sempre </li>
  • 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
  • 23. <li> Coloque-se no lugar do usuário </li>
  • 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
  • 25. <li> Invista tempo em suas ferramentas </li>
  • 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
  • 27. <li> Use a solução certa para cada problema </li>
  • 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)
  • 33. 8. Aprenda infraestrutura com urgência (3/5) ● Onde ter um VPS: ○ DigitalOcean 1GB, 1vCPU, 25GB SSD $5 ○ Vultr 1GB, 1vCPU, 25GB SSD $5 ○ Linode 1GB, 1vCPU, 20GB SSD $5 ○ Scaleway 2GB, 2vCPU, 50GB SSD €3 ○ Lightsail 0.5GB, 1vCPU, 20GB SSD $5
  • 34. 8. Aprenda infraestrutura com urgência (4/5) ● Amazon Web Services (1/2): ○ Máquina particular: EC2 + EBS ○ Rede particular: VPC ○ Arquivos “soltos” visíveis na web: S3 ○ DNS: Route 53 ○ Envio de e-mail: SES ○ Backup a preço de banana: Glacier
  • 35. 8. Aprenda infraestrutura com urgência (5/5) ● Amazon Web Services (2/2): ○ Git grátis: CodeCommit ○ BD zero bronca: RDS ○ Chatbot: Lex ○ Reconhecer faces e textos: Rekognition ○ Envio de SMS: SNS
  • 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
  • 38. <li> Cultura geral conta muito: leia! </li>
  • 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
  • 40. <li> Coding for fun and profit </li>
  • 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! //
  • 44. </ol>
  • 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