3 pontos por GN⁺ 2024-01-16 | 1 comentários | Compartilhar no WhatsApp
  • É difícil desenvolver habilidade em programação com um livro introdutório de 24 horas ou 21 dias; o que se obtém com estudo curto costuma ser mais uma familiaridade superficial
  • Pesquisas sobre especialização em várias áreas, como xadrez, composição, pintura, natação e pesquisa, mostram que leva cerca de 10 anos para atingir alto nível, e o ponto central não é repetição simples, mas prática deliberada
  • Para se tornar um bom programador, é preciso manter o interesse e construir coisas de verdade, ler código de outras pessoas, trabalhar com gente mais experiente e receber feedback
  • A universidade e os livros podem complementar credenciais, estrutura e profundidade, mas não substituem a experiência de corrigir falhas em projetos reais e passar pela manutenção
  • A primeira linguagem pode ser escolhida com base em amigos e comunidade, simplicidade e ambiente de execução interativo; o importante é escolher uma e começar com constância

Os limites da promessa de aprender programação em pouco tempo

  • Em livrarias e na internet, há muitos livros que prometem ensinar Java, C, SQL, Ruby, algoritmos e mais em poucos dias ou poucas horas
    • Na busca avançada da Amazon, livros publicados a partir de 2000 com teach yourself hours no título apareciam em 512 resultados, e 9 dos 10 primeiros eram livros de programação
    • Se teach yourself fosse trocado por learn, ou hours por days, os resultados eram parecidos
  • Esses títulos passam a impressão de que as pessoas querem aprender programação às pressas, ou de que programação é muito mais fácil de aprender do que outras áreas
  • How to Design Programs, de Felleisen e outros, satiriza essa tendência com algo como: “programação ruim é fácil. Até tolos conseguem aprender em 21 dias”

O que “Teach Yourself C++ in 24 Hours” pode realmente querer dizer

  • Teach Yourself

    • Em 24 horas não há tempo para escrever vários programas significativos, aprender com sucessos e fracassos, trabalhar com programadores experientes e entender o que significa viver em um ambiente C++
    • Portanto, o que é possível obter não é compreensão profunda, mas algo mais próximo de uma familiaridade superficial
  • C++

    • Se você já conhece outra linguagem, pode aprender parte da sintaxe de C++ em 24 horas
    • Mas é difícil aprender para que C++ é bom, para que é ruim e como a linguagem deve ser usada na prática
    • Como disse Alan Perlis, “uma linguagem que não muda seu modo de pensar sobre programação não vale a pena ser conhecida”
  • 24 Hours

    • Dá para aprender um pouco de C++, JavaScript ou Processing para conectar a alguma ferramenta específica
    • Nesse caso, isso está mais perto de aprender como executar uma tarefa específica do que de aprender programação em si

Especialização leva tempo

  • Estudos de Bloom, Bryan & Harter, Hayes, Simon & Chase e outros mostraram que a formação de especialização em várias áreas leva cerca de 10 anos
    • Entre as áreas citadas estão xadrez, composição, telégrafo, pintura, piano, natação, tênis e pesquisa em neuropsicologia e topologia
  • O ponto central não é repetição simples, mas prática deliberada (deliberative practice)
    • Escolher tarefas um pouco mais difíceis do que o nível atual
    • Analisar os resultados durante e depois da execução
    • Corrigir erros e repetir de novo
  • Mozart era um prodígio musical aos 4 anos, mas ainda levou mais 13 anos para criar música de nível mundial
  • Os Beatles ganharam destaque em 1964 com o programa de Ed Sullivan e canções que chegaram ao topo, mas tocavam desde 1957 em pequenos clubes de Liverpool e Hamburgo, e Sgt. Pepper’s, seu grande sucesso de crítica, saiu em 1967
  • Malcolm Gladwell popularizou a expressão 10.000 horas, mas o mais importante aqui não é o número exato, e sim a prática constante ao longo de anos
  • Para K. Anders Ericsson, 10.000 horas é um número que transmite a ideia de que, para atingir o nível máximo, até pessoas talentosas precisam de muitos anos com 10 a 20 horas semanais
  • Um único número não pode ser a resposta para tudo
    • É difícil supor que programação, xadrez, damas e música exijam exatamente o mesmo tempo
    • Também é difícil supor que todas as pessoas aprendam no mesmo ritmo

Como praticar para se tornar programador

  • É preciso sentir interesse por programação e começar por diversão
    • O interesse precisa se sustentar por tempo suficiente para investir 10 anos ou 10.000 horas
  • É preciso programar de verdade
    • O melhor aprendizado é aprender fazendo
    • Aprendizado eficaz exige tarefas claras com dificuldade adequada para cada pessoa, feedback útil e chance de repetir e corrigir erros
  • É preciso conversar com outros programadores e ler programas escritos por outras pessoas
    • Isso é mais importante do que qualquer livro ou curso
  • Se quiser, você pode passar 4 anos na universidade ou estudar mais na pós-graduação
    • Um diploma pode abrir acesso a profissões que exigem credenciais e oferecer compreensão mais profunda da área
    • Se você não gosta da escola, pode obter experiências parecidas por conta própria ou no trabalho, com dedicação
    • Aprender só por livros não basta
  • É preciso participar de projetos em equipe com outros programadores
    • Em alguns projetos, você pode ser o melhor programador e testar liderança e visão
    • Em outros, pode ser o menos experiente e aprender o que profissionais habilidosos fazem e o que evitam fazer
  • É preciso lidar com projetos existentes depois que outros programadores forem embora
    • Você aprende o que é necessário para entender e corrigir programas escritos por outras pessoas
    • E também passa a pensar em como projetar para quem fará manutenção depois

Experiência ampla com linguagens e sistemas

  • É preciso aprender pelo menos seis linguagens de programação
    • Linguagens que enfatizam abstração por classes: Java, C++
    • Linguagens que enfatizam abstração funcional: Lisp, ML, Haskell
    • Linguagens que suportam abstração sintática: Lisp
    • Linguagens que suportam especificação declarativa: Prolog, C++ templates
    • Linguagens que enfatizam concorrência: Clojure, Go
  • É preciso lembrar que computer science inclui computer
    • Você deve conhecer o tempo necessário para executar instruções, buscar uma palavra na memória, sofrer cache miss, fazer leitura sequencial em disco, fazer seek em disco etc.
  • Também ajuda participar de atividades de padronização de linguagem
    • Pode ser algo grande como o comitê ANSI C++, ou algo pequeno como decidir se o estilo local de código usará indentação de 2 ou 4 espaços
    • Isso ajuda a entender do que outras pessoas gostam em uma linguagem e por que sentem isso com tanta força
  • Em atividades de padronização, também é preciso ter o discernimento de sair o quanto antes, quando necessário

Livros e ensino, sozinhos, não bastam

  • Mesmo lendo muitos livros sobre criação de filhos, quando o primeiro bebê nasce você ainda pode se sentir iniciante; quando o segundo nasce, tende a depender mais da experiência pessoal do que voltar aos livros
  • No Silver Bullet, de Fred Brooks, propõe um plano em três partes para encontrar excelentes projetistas de software
    • Identificar, da forma mais cedo e sistemática possível, designers excepcionais
    • Designar um mentor de carreira responsável por seu desenvolvimento e por manter um arquivo de carreira
    • Oferecer oportunidades para que designers em crescimento interajam entre si e se estimulem mutuamente
  • Alan Perlis disse: “todo mundo pode aprender escultura, mas para Michelangelo talvez fosse preciso ensinar como não esculpir”
  • Programadores excelentes podem ter qualidades internas que vão além do treinamento, mas não se afirma de forma definitiva se isso é inato ou desenvolvido com esforço
  • Livros de Java, Ruby, JavaScript e PHP podem ser úteis, mas não mudam sua vida nem sua competência completa em 24 horas ou 21 dias
  • Trabalhar duro por 24 meses, tentando melhorar continuamente, já é um ponto de partida significativo

Noção de tempo de funcionamento do computador

  • Em um PC comum, os tempos aproximados de várias operações são os seguintes
    • Execução de uma instrução comum: 1 nanossegundo
    • Busca na memória cache L1: 0,5 nanossegundo
    • Erro de predição de desvio: 5 nanossegundos
    • Busca na memória cache L2: 7 nanossegundos
    • Lock/unlock de mutex: 25 nanossegundos
    • Busca na memória principal: 100 nanossegundos
    • Transmitir 2KB em uma rede de 1Gbps: 20.000 nanossegundos
    • Leitura sequencial de 1MB da memória: 250.000 nanossegundos
    • Seek para uma nova posição no disco: 8.000.000 nanossegundos
    • Leitura sequencial de 1MB do disco: 20.000.000 nanossegundos
    • Viagem de ida e volta de um pacote entre os EUA e a Europa: 150 milissegundos, ou 150.000.000 nanossegundos

Critérios para escolher a primeira linguagem de programação

  • Não existe uma única resposta certa para a primeira linguagem
  • Amigos e comunidade podem servir de critério
    • É parecido com a resposta de usar o sistema operacional que seus amigos usam
    • A vantagem de poder aprender com amigos pode compensar as diferenças do sistema operacional ou da linguagem em si
    • Também vale considerar se a linguagem escolhida tem uma comunidade em crescimento, livros, sites e fóruns online
  • Simplicidade é importante
    • C++ e Java foram projetadas para que programadores experientes façam desenvolvimento profissional em grandes equipes, e têm partes complexas pensadas para eficiência de execução
    • Quem está começando não precisa dessa complexidade
  • Um ambiente de execução interativo facilita o aprendizado
    • É como no piano: ouvir o som assim que a tecla é pressionada é mais fácil para aprender do que um modo em lote no qual você só ouviria tudo no final da música
    • Em programação, linguagens com modo interativo levam vantagem
  • Com esses critérios, recomenda-se Python ou Scheme como primeira linguagem
  • JavaScript pode ser uma opção não porque tenha sido perfeitamente projetada para iniciantes, mas porque há muitos tutoriais online
  • Aprendizes com um dígito de idade podem preferir Alice, Squeak e Blockly, e alunos mais velhos também podem gostar deles
  • O importante é escolher uma e começar

Livros e materiais recomendados

1 comentários

 
GN⁺ 2024-01-16
Comentários do Hacker News
  • Em 1999, comprei Sams Teach Yourself C++ in 24 Hours na CompUSA, e o funcionário do caixa viu aquilo, riu e me mostrou este texto
    Quando eu tinha 16 anos, estava vendo livros de programação na Borders quando alguém me entregou The C Programming Language, e aquilo mudou a minha vida
    Uma parte considerável da minha carreira foi moldada por encontrar por acaso, no mundo real, desenvolvedores ou pessoas interessadas em programação

    • Alguns desses livros eram tão ruins que chegavam a ser engraçados, mas naquela época um livro parecia uma chave inicial para transformar em realidade aquelas ideias estranhas de programas que você tinha na cabeça
      A última vez que senti algo assim foi quando saí da Microcenter com um MacBook novo e um iPod Touch, achando que estava pronto para criar o próximo Angry Birds
    • O livro que mudou a minha vida foi o manual de BASIC que veio com o C64
      Uns 8 anos depois, quando comprei Turbo Pascal, ele também vinha com todo o material de que eu precisava, então consegui aprender rápido; e quando comecei a usar Linux em 1995, só com as páginas man e a documentação info já dava para aprender quase tudo de que eu precisava para programar naquele sistema
      Também lembro de ter lido o manual do EGCS do começo ao fim no fim dos anos 90
      Sinto falta da época em que o software vinha acompanhado de todas as informações necessárias, e é uma pena esse jeito de hoje, em que você precisa vasculhar o Google para achar páginas de produto ou manuais
      Daqui a uns 5 anos, acho que vamos sentir saudade até da busca no Google, que usamos no lugar dos manuais, porque as informações relevantes vão estar só no Discord e nem serão indexadas
      No começo dos anos 2000 também aprendi programação de sockets em Linux e FreeBSD só com páginas man; depois, quando li o livro do Stevens, consegui avançar muito rápido graças às páginas man e à experiência de já ter escrito alguns programas
    • Meu ponto de partida foi Visual Basic Professional 3.0 Programming by Thomas W. Torgerson, que comprei na Barnes and Nobles em 1997
      Baixei o Visual Basic 3.0 pela AOL em 100 anexos de e-mail porque queria aprender a fazer punter/prog
      Copiei o código do livro para tentar tocar um arquivo de som ao iniciar o programa, e fiquei realmente impressionado quando aquilo funcionou
      Depois disso, foi uma grande honra conseguir construir uma carreira em desenvolvimento de software
    • Não se deve rir de uma garotinha na seção de livros de programação
      Nos anos 90, era bem comum receber não conselhos, mas reações de incredulidade
    • Posso sustentar até o fim que The C Programming Language é o melhor livro sobre linguagem de programação que já li
      Todo desenvolvedor deveria ao menos uma vez ler e aprender C e K&R, mesmo que depois esqueça C logo em seguida
  • Este texto tem um significado pessoal especial para mim porque o li pela primeira vez quando era adolescente e estava começando a aprender a programar
    Relendo agora, fiquei surpreso ao ver Malcolm Gladwell aparecer, porque eu lembrava que Outliers só virou assunto muito depois
    Só quando vi a menção a Ratatouille percebi que o texto foi atualizado depois da publicação de 1998, e o original está arquivado e é bem mais curto: https://web.archive.org/web/19980206223800/https://norvig.co...
    É admirável que Peter Norvig tenha continuado revisando o próprio texto ao longo dos anos

    • Talvez por ter sido leitura obrigatória no ensino médio, até hoje eu não gosto muito do Gladwell
      Ele é citado com frequência demais, e a regra das 10 mil horas agora já parece só um meme
    • Isso me fez lembrar de mim mesmo lendo este texto há 10 anos, no laboratório de informática da biblioteca da faculdade
      Hoje aprendi programação por conta própria, mas a jornada foi muito mais difícil e tortuosa do que eu imaginava naquela época
    • Antes de Outliers, já existiam The Tipping Point e Blink
  • Eu também sou do tipo que aprende por livros, mas essa postura costuma funcionar melhor em áreas não relacionadas à computação como matemática e física, onde as mudanças são mais lentas
    Um exemplo ruim recente foi o livro de Quantum Programming da O'Reilly, que não detalhava circuitos quânticos o suficiente para eu realmente entender o que estava fazendo
    Mas talvez isso também seja só pose da própria computação quântica, e o Nielsen/Chuang que estou lendo agora é muito teórico, porém explica tudo com muita clareza, então talvez eu volte ao outro depois
    Livro é só uma ferramenta de aprendizado, e projetos de hobby podem ser até ferramentas melhores nesse sentido, porque também acumulam experiência
    Ainda assim, conhecimento é poder, e livros são excelentes para apontar a direção certa, desde que você encontre o livro adequado para a sua necessidade
    Também conheço pessoas que nem abrem um livro se não tiverem certeza de que vão lê-lo até o fim, e acho essa postura absurda
    Acabei de encomendar o livro Generative Deep Learning da O'Reilly, e se eu tirar dali só alguns pedaços úteis para a minha carreira, já vai ter valido a pena
    No mínimo, vai ficar bonito na estante

    • Os princípios fundamentais não mudam
      Toda semana sai um novo framework de frontend, mas no fim todos acabam gerando HTML
  • São tópicos acumulados ao longo de 16 anos
    Repostagens parecem aceitáveis depois de cerca de um ano, e links para tópicos antigos servem para leitores que quiserem se aprofundar mais
    Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=33287618 - outubro de 2022, 112 comentários
    Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=27411276 - junho de 2021, 115 comentários
    Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=20543495 - julho de 2019, 87 comentários
    Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=16574248 - março de 2018, 51 comentários
    Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=9395284 - abril de 2015, 61 comentários
    Teach Yourself Programming in Ten Years (1998) - https://news.ycombinator.com/item?id=5519158 - abril de 2013, 86 comentários
    Teach Yourself Programming in Ten Years by Peter Norvig (2001) - https://news.ycombinator.com/item?id=3439772 - janeiro de 2012, 29 comentários
    Teach Yourself Programming in 10 Years. - https://news.ycombinator.com/item?id=1060176 - janeiro de 2010, 32 comentários
    Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=191235 - maio de 2008, 19 comentários
    Norvig: Teach Yourself Programming in Ten Years - https://news.ycombinator.com/item?id=43243 - agosto de 2007, 7 comentários

    • Fico curioso para saber se as pessoas que comentaram entre 2007 e 2013 poderiam compartilhar o que aprenderam nos últimos 10 anos
    • Seria bom se houvesse uma forma de avisar sobre tópicos antigos antes de publicar
    • Não sei bem se isso é uma crítica ao excesso de repostagens ou se quer dizer que uma repetição por ano é uma duplicação saudável
  • É impressionante que o antigo link da Amazon.com na página, mesmo com parâmetros de consulta bem complexos, ainda retorne resultados relevantes hoje
    É um bom exemplo de “Cool URIs don't change”
    [0] http://www.amazon.com/gp/search/ref=sr_adv_b/?search-alias=s...
    [1] https://www.w3.org/Provider/Style/URI

    • Curiosamente, esse link da Amazon retorna erro para mim
  • Já encontrei bastante gente perguntando como conseguir um emprego de programação a partir do trabalho atual ou de outras áreas
    Quando conto meu caminho — que comecei ainda criança, transformei isso num grande hobby, fiz graduação em ciência da computação e estágios — elas se surpreendem e se frustram ao descobrir que não existe atalho
    Ou será que existe? Fico curioso se alguém conseguiu concluir com sucesso um bootcamp para ir do 0 ao 1

    • Saí de um bootcamp e já estou há 8 anos programando profissionalmente
      Fiz algumas aulas de programação por diversão no ensino médio e na faculdade, mas meu conhecimento era bem limitado
      O bootcamp entregou o que prometia; o horário base era das 9h às 17h, mas muita gente chegava às 7h da manhã e só ia embora às 22h
      Também íamos nos fins de semana, e às vezes só descansávamos no domingo
      Escolhi de propósito um bootcamp em outra cidade para não ser distraído pela vida social
      Foquei em Ruby e JavaScript e, alguns meses depois de me formar, consegui um estágio em C#/.NET
      Escolhi estágio porque parecia difícil convencer alguém a me contratar direto como desenvolvedor júnior, e fui promovido a júnior em duas semanas
      A escola desapareceu depois de ser adquirida pela Kaplan
    • As pessoas que tiveram sucesso com bootcamp já eram muito inteligentes ou vinham de áreas técnicas ou de matemática avançada
    • Larguei ciência da computação depois de 3 meses e nunca tinha programado antes disso
      Passei 8 meses estudando sozinho os fundamentos de JavaScript no porão da casa da minha mãe e consegui arrumar emprego
      Depois disso, investi uma quantidade absurda de tempo em programação, e já passei de dezenas de milhares de horas até agora
      Trabalhei com compiladores, gráficos 3D, semicondutores e engines de jogos
      Minha experiência parece sustentar os dois lados
      Por volta de 2012, era relativamente fácil entrar no setor com pouca experiência, mas depois disso foi preciso um esforço enorme para se tornar um bom engenheiro que as pessoas com projetos interessantes quisessem contratar
    • Já contratei gente vinda de bootcamp, mas nunca fiz um eu mesmo
      Com os dados limitados que tenho, é uma loteria tanto quanto entre desenvolvedores com formação tradicional
      Os melhores resultados vieram de pessoas com formação clássica em física, química ou engenharia que queriam mudar de carreira, e elas pareciam juniores avançados com curva de aprendizado rápida
      Se você quer colocar um iniciante motivado em uma área de software onde programação pura importa menos, pode ser uma ótima contratação
      A variância é grande, mas não sei se é maior do que a de formados em cursos de dois anos
    • Participei de um programa para graduados em que uma consultoria treinava por 3 meses e depois colocava a pessoa para trabalhar com contrato de 2 anos
      Na universidade estudei humanidades e nunca tinha codado
      Os primeiros 2 anos foram realmente duros, e sem base eu sentia o tempo todo como se estivesse nadando contra a corrente
      Só perto do fim do programa de 2 anos senti que conseguia gerar valor de forma independente
      Meu conhecimento é bastante voltado à aplicação, e às vezes fica mais difícil porque preciso aprender fundamentos no meio do caminho por faltar base de ciência da computação
      Mas meu cargo atual é de engenheiro de dados, então áreas tradicionais de ciência da computação como estruturas de dados e algoritmos são relativamente menos exigidas
  • O ponto central é a prática deliberada
    Não basta repetir mecanicamente; é preciso enfrentar tarefas um pouco mais difíceis do que sua capacidade atual, tentar, analisar durante e depois da execução, corrigir os erros e repetir de novo
    Para continuar aprendendo, é preciso se desafiar e sair da zona de conforto

    • Fico curioso para saber como ferramentas de IA como o GitHub Copilot vão mudar os hábitos de aprendizado das pessoas
      Usei por alguns meses e acabei deslogado por acaso, mas estou achando valioso justamente o pequeno incômodo de ter que ir atrás da documentação oficial
      Na primeira semana me surpreendi com o quanto fiquei mais lento
      Passar pela etapa extra de aprender a partir de fontes primárias e, às vezes, valorizar o desconforto é importante para crescer como programador
    • Como desenvolvedor de software e alguém com experiência como tutor/monitor, me preocupo se a próxima geração de desenvolvedores realmente vai saber programar
      Principalmente se tiverem concluído trabalhos de nível de 1º ou 2º ano usando só o Copilot, isso pode acabar automatizando a própria utilidade deles até fazê-la desaparecer
      Por outro lado, já se dizia algo parecido sobre as “crianças do iPad”
      O iPad também tem sistema de arquivos, e os apps continuam ganhando mais recursos dentro do jeito aprovado pela Apple, então não acho que seja uma aproximação ruim de um notebook
      Eu também uso Copilot, mas principalmente como um autocompletar inteligente para configurar variáveis ou lidar com tarefas repetitivas triviais
      Ele serve para economizar o tempo que eu deveria gastar contextualizando a resolução de problemas e interagindo com colegas de equipe, não para substituir engenheiros
    • Isso está certo, mas uma forma melhor de dizer é que o essencial é fazer por hobby
      Especialização vem de experiência, e experiência só se acumula quando você continua voltando
      Algumas pessoas conseguem se forçar a sofrer sem parar, mas para a maioria é mais sensato começar encontrando uma parte do software que consiga amar de verdade e cultivá-la
    • É preciso gostar de ser desafiado
      Já vi pessoas claramente mais inteligentes do que eu saírem da área de programação por serem inteligentes demais
      Porque sentiam que já não era mais desafiador, ou se cansavam de desafios errados, como “esperar os outros alcançarem”
      Em geral eram pessoas trabalhando com tecnologias de ponta que acabavam virando padrão alguns anos depois
      Se o fascínio é a motivação, talvez você possa até agradecer por não ser inteligente demais
    • Na teoria educacional, isso é chamado de zona de desenvolvimento proximal
  • Embora apareça como um texto de 1998, ele menciona coisas como Clojure e Go, então parece ter sido atualizado depois

    • No fim da página está escrito Peter Norvig (Copyright 2001—2014)
  • Texto muito bom
    Para completar 10 mil horas com base em 8 horas por dia e 40 horas por semana, seriam necessárias 250 semanas
    Mesmo programando quase sem parar, isso dá cerca de 5 anos, e realisticamente fica mais perto de 10 anos para alcançar esse objetivo

    • Na prática, depende de quanto a pessoa gosta de programar
      Se você programa muito, dá para chegar facilmente a 3 mil horas por ano
      Eu programo 12 horas por dia na maioria dos dias, e 6–7 dias por semana na maioria das semanas
      Nos dias em que estou especialmente motivado, chego a 18 horas
      Venho fazendo isso há quase 10 anos, embora às vezes eu tire cerca de um mês de folga e reduza para 3–4 dias por semana com jornadas longas
      Mesmo calculando de forma conservadora, dá algo em torno de 3.500 horas por ano
      Trabalho tanto assim porque realmente amo programar e, tirando surfar de manhã, não há nada que eu queira mais fazer
    • A heurística das 10 mil horas não é especialmente precisa; ela só é famosa
      Ainda assim, cerca de 10 anos de carreira profissional parece, em geral, um bom parâmetro para se tornar um desenvolvedor sólido
      Nunca vi ninguém realmente chegar a esse nível em apenas 5 anos
      Quem começou de forma obsessiva na adolescência até pode encurtar alguns anos, mas a partir de certo ponto esses períodos acabam se sobrepondo
      Claro, também existe aquele velho ditado sobre “repetir 10 vezes 1 ano de experiência”
      Também já vi muitos desenvolvedores com mais de 10 anos de carreira que não eram sólidos
    • 40 horas por semana durante 5 anos não seria, na prática, um emprego em software?
      Parece que bastaria entrar em um cargo júnior e ir subindo ao longo de 5 anos de trabalho
    • Isso vale para qualquer profissão
      A intuição se constrói enfrentando tarefas cada vez mais difíceis
      Em algum momento, você consegue conectar e aplicar o que sabe em uma área a outra, e é aí que a criatividade começa a funcionar
  • Não encontro a fonte de um vídeo que vi 5 ou 6 anos atrás, mas a ideia principal era que, com o aumento no número de programadores, a maioria teria menos de 5 anos de experiência
    Fazia sentido no contexto de TI e da web se tornando cada vez mais presentes na vida
    [0] https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM achei graças ao comentário de wild_egg
    Depois de 20 anos fazendo isso, hoje há bastante coisa que eu já não preciso mais saber, e provavelmente muita informação de que pessoas com menos de 5 anos de experiência não precisam nem um pouco
    Por outro lado, experiência é experiência, e sempre ajuda entender como as coisas foram construídas e por que existem
    Também há muitos programadores com menos experiência do que eu que conseguem fazer muitas coisas que eu nem consigo imaginar
    Sinceramente, por ser uma área com completude de Turing, este campo é bem amplo

    • Programo há 40 anos, dos quais 33 profissionalmente, e a única coisa que me vem à cabeça como algo que aprendi e foi desperdício é Scrum
      Nunca memorizei sintaxe separadamente; sempre programei com as páginas man e os manuais abertos
      Mas toda linguagem e tecnologia que aprendi me ensinou algo útil sobre os problemas fundamentais da computação e dos sistemas
      A forma de lidar com os problemas muda de roupa, mas os problemas em si continuam os mesmos
      Não há atalhos, e sei com certeza que, como programador, hoje sou várias ordens de grandeza mais capaz do que eu era no meu quinto ano
      O motivo de eu estar mais animado do que nunca para aprender coisas novas e fazer trabalho novo é que isso vai abrir partes ainda maiores dessa tecnologia para mim
      O que me preocupa é apenas o dia em que corpo e mente talvez não acompanhem mais, não ficar sem coisas para aprender ou ser ultrapassado pelos mais jovens
    • Acho que isso deve ter vindo da palestra "The Future of Programming", do Bob Martin
      https://youtu.be/ecIWPzGEbFc?si=A4qBR2YdX-0CV2bM
    • Esta área é jovem, então evolui rapidamente, e por isso também é natural que muito conhecimento temporário se acumule
      Ainda parece a era dos alquimistas
      Um dia surgirão os químicos, que vão sistematizar essas observações improvisadas e descartar muita coisa
      Até lá… Newton também era alquimista, mas ainda assim fez contribuições enormes