Nessa apresentação, Caio tentará passar um pouco do seu conhecimento adquirido em sua carreira. Interagir com diferentes profissionais, participar de diferentes projetos e também mesclando a vida pessoal e profissional, aprendeu uma perspectiva diferente do que é ser desenvolvedor Front-End e o conhecimento necessário para tal.
15. Knowledge Share.
● Pessoas com diferentes experiências.
● Nivelar e treinar equipe.
● Formatos e horários.
● Apoio da empresa.
● Dever de casa no github.
● Livre x guiado.
16. O objetivo desta palestra não é tentar explicar tudo,
mas ser uma inspiração para que você pesquise e
se aprofunde nos pontos que quiser.
20. 12 seções.
● Computador e Programação.
● Internet e Network.
● Requests e Servidores.
● Browser, HTML, CSS e Javascript.
● Fluxo de renderização.
● Performance.
21. Quando se aprende algo, uma das
melhores coisas é conectar esse
conhecimento com o que já está
estabelecido em você.
22. Às vezes, como programadores
Front-End, ficamos isolados em nosso
conhecimento, sem conectar e dialogar
com pessoas de outros ramos.
38. 12 seções.
● Computador e Programação.
● Internet e Network.
● Requests e Servidores.
● Browser, HTML, CSS e Javascript.
● Fluxo de renderização.
● Performance.
47. Computador e Programação.
● Entender o básico.
● Processador, threads.
● Concorrência e paralelismo.
● Memória, estrutura de dados e algoritmos.
● GPU, animações e CSS.
● HD x RAM.
● Compilação.
52. Computador e Programação.
● Entender o básico.
● Processador, threads.
● Concorrência e paralelismo.
● Memória, estrutura de dados e algoritmos.
● GPU, animações e CSS.
● HD x RAM.
● Compilação.
53. Ahmet Cengizhan Dirican and Mehmet Gokturk
https://www.intechopen.com/books/human-computer-interaction/attentive-computing
54. Linguagens de Programação.
● Matemático, Funcional.
● Enterprise, Orientação a objeto.
● Interface gráfica, MVC.
55. No funcional o programa é mais
um fluxo de dados em transformação,
sem muita mutabilidade ou
instruções imperativas.
56. Orientação a objeto, é encapsular as
responsabilidades e imperativamente
instruir as partes a executar
seus métodos.
57. No MVC, separamos dados, lógica e
apresentação em diferentes camadas
com regras específicas.
58. Conceitos básicos.
● Estrutura de dados e algoritmos.
● Garbage collection.
● Código bloqueante e não bloqueante.
● Síncrono e asíncrono.
59. Estrutura de dados e algoritmos são
formas de organizar ou manipular dados
na memória, com diferentes benefícios
para cada caso.
60. Garbage collection é o processo
automático ou manual de limpar
memória que não é mais necessária
no programa.
61. Código bloqueante e não bloqueante, a
main thread do programa executa 1
instrução por vez e aguarda o seu
resultado ou não.
62. Conceitos mais complexos.
● Como funciona um Virtual DOM.
● Por que imutabilidade é muito inteligente.
● Como WebAssembly é super rápido.
66. Saber um pouco de internet e network
ajuda na hora de debugar problemas de
performance. Muita coisa acontece
antes da renderização do seu código
começar no navegador.
67. Também te ajuda a não ficar refém dos
outros. Como o front-end é o último
profissional na “linha de produção”,
sempre tem gente que tenta empurrar
problemas pro front.
68. Internet e Network.
● ISPs.
● Cliente x Servidor.
● IPs.
● DNS.
● Request x response.
73. RPC possibilita mais de um recurso ou
entidade por chamada. Por um lado é
ruim para cache e acoplado, mas por
outro é uma chamada por view e com
respostas pequenas.
77. A API se correlaciona muito com o
modelo de dados e de negócio do seu
projeto, e se não for bem feita
provavelmente o código será confuso,
com débito técnico e refação.
78. Requests e Servidores.
● URLs.
● Protocolos.
● APIs.
● Tipos.
● Servidor e nuvem.
● Linguagens de back-end.
104. Performance.
● Backend, cache, API.
● Mínimo de informação que você precisa.
● Assets.
● CDN.
● Lazy loading, async e defer.
● Critical rendering path.
● Fontes.
105. Por último você investe tempo em
otimizar o uso de memória no javascript.
É a última coisa que vai impactar o
usuário, a não ser que tenha um memory
leak gigante.
106. Para investigar você usa o developer
tools e usa a aplicação, debugando o
uso de memória nas suas funções e
testando se tem formas mais eficientes
de escrever o código.
109. Algumas coisas que acredito.
● Não troque seu caráter por dinheiro.
● Trabalho remoto.
● “Don't stay safe. Stay free.”
● Tecnologia não é neutra, seja consciente.