Upgrade to Pro — share decks privately, control downloads, hide ads and more …

10 coisas que eu gostaria de ter aprendido mais cedo

10 coisas que eu gostaria de ter aprendido mais cedo

Amigos desenvolvedores, o que vocês gostariam de ter aprendido no passado quando começaram com desenvolvimento de software que vocês sabem agora? Abram seus corações.

Nessa apresentação vou mostrar um compilado de aprendizado que eu e meus colegas de profissão compartilhamos durante a carreira.

5a90a67fa1a92e6a4b605cfd8da5e375?s=128

Lucas Mazza

October 17, 2015
Tweet

Transcript

  1. None
  2. Lucas Mazza @lucasmazza http:/ /lucasmazza.github.io

  3. https:/ /sp.femug.com https:/ /github.com/braziljs/femug

  4. http:/ /j.mp/femug-am

  5. http:/ /www.casadocodigo.com.br/products/livro-html-css

  6. None
  7. . . .

  8. 10 lições que eu gostaria ter aprendido mais cedo

  9. um monte de coisas que eu aprendi enquanto eu (não)

    fazia software
  10. E ainda estou aprendendo

  11. None
  12. . . .

  13. #10 - Programar é facil, construir software nem tanto

  14. None
  15. ‘08

  16. ‘08

  17. ‘10

  18. Talvez eu entenda alguma coisa agora.

  19. Talvez eu entenda alguma coisa agora. Eu acho.

  20. Talvez eu entenda alguma coisa agora. Eu acho. Talvez.

  21. None
  22. Programar!

  23. Todo o resto Programar!

  24. ✗ Refatorações e manutenção.

  25. ✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos.

  26. ✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗

    Deployments e monitoramento.
  27. ✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗

    Deployments e monitoramento. ✗ Mudanças de escopo, prazos e prioridades.
  28. ✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗

    Deployments e monitoramento. ✗ Mudanças de escopo, prazos e prioridades. ✗ Estimativas e previsibilidade.
  29. ✗ Refatorações e manutenção. ✗ Sistemas e times distribuídos. ✗

    Deployments e monitoramento. ✗ Mudanças de escopo, prazos e prioridades. ✗ Estimativas e previsibilidade. ✗ Onboarding e aprendizado.
  30. None
  31. A maioria dos problemas em desenvolvimento de software tem raizes

    sociais.
  32. None
  33. Desenvolvimento não é apenas código

  34. É também resolver problemas e ajudar os outros

  35. E depende de muita colaboração e trabalho em equipe

  36. #9 - Não seja um herói.

  37. None
  38. You Cannot Win Engineering Kevin Stevens https:/ /blog.engineyard.com/2013/how-improvisational-theater-can-improve-team- collaboration

  39. Você trava em alguma coisa complicada.

  40. Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc.

  41. Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta

    resolver o problema por 15/30 minutos.
  42. Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta

    resolver o problema por 15/30 minutos. Pede ajuda aos seus colegas.
  43. Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta

    resolver o problema por 15/30 minutos. Pede ajuda aos seus colegas. Volta para casa.
  44. Você trava em alguma coisa complicada. Busca no Google/GitHub/StackOverflow/etc. Tenta

    resolver o problema por 15/30 minutos. Pede ajuda aos seus colegas. Volta para casa. Trabalha mais no dia seguinte.
  45. “Sleep deprivation is not a badge of honor" DHH https:/

    /signalvnoise.com/posts/1006-sleep-deprivation-is-not-a-badge-of-honor
  46. “your career is a marathon, not a sprint” Miller Medeiros

    https:/ /twitter.com/millermedeiros/status/614278181344935936
  47. Não tenha pressa

  48. Pedir ajuda nunca é ruim

  49. Não se esqueça de dormir

  50. #8 - Programar é um trabalho criativo.

  51. None
  52. “The generative mechanisms that underlie creativity are universal” Robert Epstein

    Generativity Theory
  53. “[The programmer] builds castles in the air, from air, creating

    by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures." Fred Brooks The Mythical Man-Month
  54. None
  55. None
  56. Programar não é fritar pastel ou apertar parafuso

  57. Programar é baseado no processo criativo de cada um

  58. #7 - Open Source é muito importante

  59. Open Source

  60. Open Source Você

  61. None
  62. Soluções compartilhadas para problemas comuns

  63. Open Source é muito importante. Mas não é o mais

    importante.
  64. Open Source não é uma competição

  65. Open Source não é uma competição ✗

  66. None
  67. Open Source não deveria ser um concurso de popularidade

  68. Open Source não é o seu trabalho. a não ser

    que realmente seja o seu trabalho.
  69. Fazer bom uso de OSS é muito mais produtivo

  70. None
  71. Reporte bugs

  72. Reporte bugs Ensine os outros a usar

  73. Reporte bugs Ensine os outros a usar Teste versões betas

  74. Reporte bugs Ensine os outros a usar Teste versões betas

    Tente enviar patches
  75. Reporte bugs Ensine os outros a usar Teste versões betas

    Tente enviar patches Não seja um idiota no Twitter
  76. Já existem diversos projetos incríveis precisando de bons usuários por

  77. Manter um projeto dá muito mais trabalho do que publicar

    a primeira versão
  78. Você não precisa se sentir obrigado a contribuir

  79. #6 - Somos todos amadores.

  80. None
  81. “Dude, sucking at something is the first step towards being

    sorta good at something.”
  82. Aprender é um subproduto

  83. Aprender é um subproduto Trabalho → Colaboração → Aprendizado →

    ??? → Lucro
  84. Trabalhar com tecnologia requer evolução

  85. Além de humildade e constante aprendizado

  86. #5 - Não use MongoDB. Sério.

  87. #5 - Seja opinado. E tente não ser um idiota.

  88. “The exalted ideal: To have no emotional connection to the

    workbench. Hogs and wash.” DHH https:/ /signalvnoise.com/posts/3727-finding-your-workbench-muse
  89. …At the end of the day, nobody should tell you

    how to feel about your tools" DHH https:/ /signalvnoise.com/posts/3727-finding-your-workbench-muse
  90. None
  91. MAS…

  92. “You’re not wrong. You’re just an asshole” The Dude

  93. Contextos serão diferentes

  94. Contextos serão diferentes Respire fundo e seja construtivo

  95. Contextos serão diferentes Respire fundo e seja construtivo Algumas coisas

    podem ser diferentes
  96. Contextos serão diferentes Respire fundo e seja construtivo Algumas coisas

    podem ser diferentes Outras não valem o esforço ¯\_(ϑ)_/¯
  97. Hater funcional™

  98. “A critique of your project is not tantamount to a

    personal attack. An alternative take on the problem your software solves is not hostile or divisive. It is simply the result of a regenerative process, driven by an unending desire to improve the status quo.” “You Are Not Your Code” http:/ /sstephenson.us/posts/you-are-not-your-code
  99. Código é só código

  100. “Continue na linha, sua opinião é muito importante para nós”

  101. #4 - Gestão é um mal necessário.

  102. #4 - Gestão é um mal bem necessário.

  103. None
  104. Gestão mal feita sempre vai ser ruim

  105. Julie Zhuo https:/ /medium.com/the-year-of-the-looking-glass/average-manager-vs-great-manager-cf8a2e30907d

  106. Boa gestão não vai

  107. Julie Zhuo https:/ /medium.com/the-year-of-the-looking-glass/average-manager-vs-great-manager-cf8a2e30907d

  108. “Management is the practice of constantly identifying what a team

    needs in order to be successful and then delivering on those needs.” Julie Zhuo https:/ /medium.com/the-year-of-the-looking-glass/so-you-think-you-want-to-manage-1229723a4501
  109. Suporte no dia a dia.

  110. Suporte no dia a dia. Orientação no decorrer do projeto.

  111. Suporte no dia a dia. Orientação no decorrer do projeto.

    Reduzir ruídos e interrupções externas.
  112. Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode…

  113. Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não

    fazer o trabalho que o você espera
  114. Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não

    fazer o trabalho que o você espera • Não fazer o trabalho corretamente
  115. Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não

    fazer o trabalho que o você espera • Não fazer o trabalho corretamente • Estar atarefado demais para conseguir focar
  116. Ellen Chisa http:/ /blog.ellenchisa.com/2014/07/20/engineers-pm-sucks-heres-fix/ O seu gerente pode… • Não

    fazer o trabalho que o você espera • Não fazer o trabalho corretamente • Estar atarefado demais para conseguir focar • Não ter contexto para tomar as decisões
  117. Eu não posso arrumar isso para você, mas você pode

    tentar.
  118. Mínimo de Gestão Necessária™

  119. Alguém precisa lutar contra a entropia do seu projeto

  120. Gestão (de projetos) é muito importante para softwares/ambientes/empresas melhores

  121. #3 - Queime seus ídolos

  122. “everything around you, was made up by people that were

    no smarter than you.”
  123. Muita gente não faz a menor idéia do que está

    fazendo
  124. “[…] Óbvio que existem profissionais de expressão, mas isso aqui

    é um mercado de desenvolvedores, não de rockstar-jedi-samurai-ninja.” Daniel Filho https:/ /danielfilho.github.io/2014/08/20/queime-seus-idolos/
  125. “[…] By idolising people, I gave up on my opportunity

    to change the world, learn something exhilaratingly new, call out the wrongs done, and contribute to right some of the wrongs.” Divya Manian https:/ /medium.com/@divya/burn-your-idols-e82131956096
  126. “Keep pushing. Don’t simply do what the rest of us

    do— do it differently, do it better, do it faster. Take a stance and have an opinion. Don’t be afraid to be wrong. “ Mark Otto http:/ /markdotto.com/2012/08/17/take-action/
  127. “you have little to lose and so very much to

    gain just by being yourself.” Mark Otto http:/ /markdotto.com/2012/08/17/take-action/
  128. Contrário a crença popular, A grande maioria dos desenvolvedores são

    pessoas normais
  129. #2 - Você pode escolher a sua própria aventura.

  130. Ruby JavaScript Elixir Python Scala Swift Android Clojure Go Rust

    Haskell Java CSS PHP … Objective-C
  131. Criar software.

  132. Criar software. Escrever livros.

  133. Criar software. Escrever livros. Ministrar cursos.

  134. Criar software. Escrever livros. Ministrar cursos. Liderar outros.

  135. Criar software. Escrever livros. Ministrar cursos. Liderar outros. Criar padrões.

  136. Criar software. Escrever livros. Ministrar cursos. Liderar outros. Criar padrões.

    De qualquer lugar do mundo.
  137. Você escolhe a sua carreira, não o contrário

  138. . . .

  139. #10 - Escrever código é facil, construir software nem tanto.

  140. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói.
  141. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo.
  142. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante.
  143. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores.
  144. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota.
  145. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota. #4 - Gestão é um mal bem necessário.
  146. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota. #4 - Gestão é um mal bem necessário. #3 - Queime seus ídolos .
  147. #10 - Escrever código é facil, construir software nem tanto.

    #9 - Não seja um herói. #8 - Programar é um trabalho criativo. #7 - Open Source é muito importante. Mas não é o mais importante. #6 - Somos todos amadores. #5 - Seja opinado. Só tente não ser um idiota. #4 - Gestão é um mal bem necessário. #3 - Queime seus ídolos . #2 - Você pode escolher a sua própria aventura.
  148. None
  149. #1 - Ouse ser um otimista.

  150. Programar significa falhar constantemente

  151. None
  152. None
  153. ✓ código bugado

  154. ✓ código bugado ✓ projeto atrasado

  155. ✓ código bugado ✓ projeto atrasado ✓ estimativas erradas

  156. ✓ código bugado ✓ projeto atrasado ✓ estimativas erradas ✓

    features incompletas
  157. ✓ código bugado ✓ projeto atrasado ✓ estimativas erradas ✓

    features incompletas ✓ bikesheding ¯\_(ϑ)_/¯
  158. (˽°□°҂˽Ɨ ˍʓˍ

  159. Programar também é criar muito a partir de nada

  160. “Programming gives us live video conversations with relatives around the

    world; a map of our own biology; widgets that monitor oil pipelines from the inside; spreadsheets that run entire businesses; games where you build cities, or pretend to be a goat.”
  161. “Programming is like building structures out of Lego, but I

    never run out of Lego bricks, and if there’s no brick with the exact shape that I need, I can make that brick.“ Sam Stokes - What Programming Is Like http:/ /blog.samstokes.co.uk/blog/2014/05/01/what-programming-is-like/
  162. “You are all better than you think you are, you

    are just designed not to believe it when you hear it from yourself.” Jeff Winger - Community S01E01
  163. http:/ /positivedoodles.tumblr.com/

  164. http:/ /positivedoodles.tumblr.com/

  165. http:/ /positivedoodles.tumblr.com/

  166. http:/ /positivedoodles.tumblr.com/

  167. “You will need other people, and you will need to

    be that other person to someone else a living, breathing, screaming invitation to believe better things.” Jamie Tworkowski https:/ /twloha.com/blog/happy-birthday/
  168. Desenvolvimento de software é difícil e incrível ao mesmo tempo

  169. nada nessa indústria é permanente, completo ou perfeito

  170. e tudo pode ser melhorado

  171. Obrigado! @lucasmazza