[Akitando #83] "Akita, quais Cursos você recomenda? E o Low-Code? E o GPT-3?"

2020 August 28, 10:00 h

DESCRIÇÃO

Hoje vou responder às perguntas que mais me fazem via DM. São 3 temas principais: quais cursos fazer, low-code e GPT-3, mas todos convergindo pra falar sobre a ansiedade na sua carreira.

Capítulos:

00:00 Abertura 01:32 Avaliação de Testes de Candidatos 06:32 Low-Code/No-Code 13:06 IA e GPT-3 25:31 Sua carreira vai acabar 28:49 Quais cursos fazer?

Links:

SCRIPT

Olá pessoal, Fabio Akita

Sim, vou ficar de touca hoje já que povo ficou falando que tô com cabelão de Jaspion. E como dá pra notar, eu ainda não consegui voltar de verdade. Depois que fiz o último episódio onde contei como me acidentei, descobri que de fato eu fraturei meu ombro. Ainda vai levar até quase fim de setembro pra recuperar meus movimentos, mas tenho tentado escrever e tá foda porque o ombro começava a doer depois de uma ou duas páginas. E isso me deixa de muito mau humor, daí eu apagava tudo e começava tudo de novo alguns dias depois pra ver se doía menos.

Esta deve ser a quarta ou quinta vez que tentei escrever e finalmente consegui terminar. Como eu ando mau humorado sem poder me mexer direito, acho que faz sentido este episódio ser mais um estilo RANT. Este é um bom exemplo de porque eu não monetizo meu canal nem aceito patrocínios. Podem se preparar pra bronca.

Tem duas motivações pro tema de hoje. A primeira são as dezenas de perguntas que vocês me mandam toda hora no DM do Insta. A segunda é que no video passado anunciei que minha empresa tá contratando, daí passei os últimos dias avaliando vários testes de código de candidatos. Nos últimos meses a maioria das perguntas tem a ver com três temas. O primeiro é o constante "akita, quais cursos você acha que eu devo fazer?", O segundo é "akita, fala como o low-code vai revolucionar a programação", e o terceiro, claro, é "akita, fala como o GPT-3 vai substituir os programadores".

Como tudo isso tá conectado? Vamos ver.

(...)

Deixa eu começar com os testes que ando avaliando. Primeiro de tudo, pelo menos em termos de quantidade, tivemos uma boa resposta e mais de uma centena de currículos recebidos. A Codeminer não é uma empresa de recrutamento nem body-shop, essa foi a primeira vez que tivemos que lidar com tanto currículo de uma só vez. Então já peço desculpas caso as respostas não tenham sido muito satisfatórias. Ah sim, algumas pessoas vivem perguntando sobre trabalho voluntário, sem receber, e eu já vou dizer: não existe trabalho voluntário em empresa privada. Se você trabalha pra alguém, em qualquer capacidade, cria-se vínculo empregatício. A lei não permite diferente disso. Eu não sou ONG, não posso ter voluntários, só contratados.

Eu não vou dar detalhes do teste porque não é objetivo do video mas deixa eu colocar uma coisa muito clara: se você não tem interesse em se esforçar num teste, acredite que eu vou ter menos esforço em te considerar. É recíproco. Como eu disse, isso Não é trabalho voluntário. Outra coisa, eu pessoalmente olho a maioria dos códigos dos candidatos junto com outros desenvolvedores do meu time. O mesmo teste passa pela avaliação de umas 2 pessoas. E eu nunca leio o currículo antes de ver o teste, pra não ter viés. Mas eu nem preciso. De bater o olho eu tenho uma idéia de quanto tempo a pessoa levou pra fazer, se fez com má vontade, eu muitas vezes consigo ver a faixa etária e que tipo de experiência essa pessoa já teve. Se você nunca pensou nisso, fica um insight: o código expõe muito de quem você é.

Deixa eu colocar em perspectiva. Eu venho avaliando código, seja de colegas de trabalho, seja de projetos de clientes, seja de contratações, seja open source, faz 30 anos. Nesse período eu li código de centenas de pessoas diferentes. Só a minha empresa tem quase 10 anos, com quase 100 desenvolvedores e já passaram fácil umas 300 que entraram e saíram. Quando você faz isso por tantos anos, naturalmente encontra patterns, você sabe que determinado tipo de código tem determinado tipo de origem.

Isso significa que eu faço codigo melhor que os outros? De jeito nenhum. Eu não programo mais todos os dias. É como um avaliador de arte. Ou um sommelier de vinho. Ou alguém da Michelin avaliando restaurante. O melhor avaliador de arte raramente é o melhor artista. O melhor sommelier não necessariamente é o melhor produtor. O melhor avaliador de restaurantes raramente é o melhor chef e assim por diante.

Isso explicado, é hora de dar a carteirada. Exemplo simples: o teste pede que o candidato desenvolva um conjunto de funcionalidades. Algumas são propositalmente simples e outras são propositalmente mais complexas. Alguem nível estagiário, eu realmente não espero que consiga fazer as coisas complexas. Mas o que normalmente acontece é que as pessoas começam querendo fazer as coisas simples primeiro e deixam as complexas por último. Só que aí elas gastam uma semana floreando o que não precisava, acaba o prazo e ela não sabe o que fazer, e dá pra ver que a primeira metade é mais caprichada que a última. Claramente não assistiram meu vídeo sobre Prioridades.

Mas pior ainda é quando você pega o teste, incompleto, só a parte simples feita. Às vezes sequer roda. Eu avalio como nível estagiário ou junior, daí vou ver o curriculo e o cara se diz pleno ou senior. Menos né. Eu falo sobre isso de niveis no video Começando na Carreira de TI. Mas o ponto é que o código costuma dizer um nivel diferente do que a pessoa escrevendo o código acha que é. Alguns são mais realistas, alguns são mais deslumbrados, mas o código costuma ser objetivo. No caso sobre ser senior, muita gente se pergunta se já é, e eu sempre digo que se você tem dúvidas, provavelmente não é. Você vai ter certeza quando for.

Aliás, pra quem ficou de mimimi no meu video de Aprendendo a Aprender, e não sabe escutar e concluiu que eu privilegio quem se formou em federais, tente escutar o que eu acabei de falar: eu não olho o currículo antes de ver o código. O que eu disso no outro video e reitero, é que depois que eu avalio o código e vou ver o currículo pra saber quem era a pessoa, por acaso a maior parte que eu avalio bem acaba sendo de federais. É uma correlação e não um preconceito. Vocês de particulares e cursos avulsos querem mudar isso? Não mandem testes incompletos, mal feitos, que sequer rodam.

Outro exemplo óbvio: mesmo depois de avaliar uma dezena de códigos de teste, eu achei alguém que copiou partes do teste de outra pessoa. Ha, pra cima de mim? Não tô falando um trechinho, como todo mundo faz com stackoverflow. Tô falando quase tudo, incluindo comentários e os console.log esquecidos nos mesmos lugares. Ha. Os dois tão desclassificados. Porque se num simples teste eu já encontro essa falta de ética, você acha que vou confiar o código dos meus clientes como? Como eu disse, o código expõe muito do tipo de pessoa que você é.

Eu poderia fazer um video inteiro falando só sobre as coisas que eu consigo enxergar num teste, mas vou parar com esses exemplos mais simples. Porque o objetivo de falar disso foi pra falar do tema principal deste episódio: vocês são ansiosos demais. Porque os 3 temas das perguntas que mais me fazem, sobre quais cursos, sobre o tal do low-code ou o tal do GPT-3, tem origem no mesmo lugar: vocês querem saber como ter emprego garantido. Como saber que você vai ter um lugar nesse mercado hoje e no futuro. E como saber se você vai continuar evoluindo, ou seja, ganhando mais. Todo mundo quer tentar ser mais esperto que o resto e normalmente não tá sendo.

Deixa eu começar falando rapidamente sobre o tal do Low-Code. Seja a da tal Outsystems ou coisas como o Amazon Honeycode ou Monday.com ou qualquer outra plataforma desse tipo. Sim, elas permitem desenvolver aplicativos com pouco, que é o low-code, ou nenhum código, que é o no-code. Vamos deixar uma coisa muito clara: isso NÃO É PROGRAMAÇÃO. Vou repetir se não ficou claro: isso NÃO é programação.

Se você ainda não entendeu eu quero que vocês prestem atenção nisto na minha mão. Estão vendo? Isto é Low-Cook ou No-Cook sejá lá qual termo você preferir. Você ferve água, coloca neste copo, espera 3 minutos e tem uma refeição. Se quiser ser fancy, você quebra um ovo dentro. Isto, Não é gastronomia. E ao colocar água no copo você não andou nem um único passo na direção de ser um Massimo Bottura, Ferran Adriá, Dominique Crenn ou Gordon Ramsay. Nem um único passo na direção de ser cozinheiro de carrinho de cachorro quente, muito menos de chefs Michelin 3 estrelas.

Agora eu pergunto. Você acha que este Cup Noodles, ou esta sopa enlatada Campbell's representam alguma ameaça à arte da gastronomia? Você acha que porque inventaram a sopa enlatada ou o macarrão instantâneo, acabou a necessidade de cozinheiros e chefs de verdade? Ou pior, você se acha um chef quando coloca água quente num copo? Então por que diabos você acha que um operador arrastando componentes numa tela pra fazer um app fast food é programador?

Vou inverter a pergunta, não precisa nem ser um Ferran Adriá, você acha que o cozinheiro do restaurante italiano do lado da sua casa tá preocupado em perder o emprego achando que todo mundo vai comer cup noodles? Ou outra pergunta mais óbvia: se um cup noodles é uma refeição tão mais barata e simples de fazer, porque diabos você acha que 100% da população não migrou pra cup noodles?

Entendam uma coisa que devia ser óbvia se você tem alguma esperança em ser um profissional de programação algum dia: esta não é a primeira vez que esse tipo de plataforma aparece. Não tem nada de novo aqui, muito menos “revolucionário”. Eu já vi isso aparecer nos anos 80, nos anos 90, nos anos 2000 e agora de novo. Nos anos 90 por exemplo, tivemos o hype do RAD ou Rapid Application Development que deu origem às antigas IDEs e componentização como Hypercard, Powerbuilder, Access, Visual Basic ou Delphi. Vejam meu episódio sobre Dimensão do Tempo pra entender o ciclo de obsolescência da história.

Não estou dizendo que todas essa ferramentas são necessariamente ruins. Elas tem utilidade. A realidade é que pra uma parcela gigante de micro e pequenas empresas, elas simplesmente não tem capital pra custear grandes sistemas customizados. Ou o business é tão pequeno que realmente não precisam de muita coisa. O tipo de apps que eles precisam são alguns cadastros simples, alguns workflows simples, alguns relatórios simples. E sim, nesses cenários, plataformas de low-code ou no-code provavelmente vão ser úteis e até substituir uns Excel malfeitos por aí. Mas é só isso, no máximo. Assim como um cup noodles, se a pessoa tá com fome e não tem muito dinheiro, é uma alternativa legítima. Muito estudante de faculdade vai ter histórias de como conseguiu sobreviver graças a miojo. Eu mesmo já tive períodos assim no passado.

Mas vamos voltar ao foco do que me perguntam: que tal fazer uma carreira de “programação” em cima de ferramentas low-code pra produzir apps de baixo custo? Não vejo nenhum problema nisso. É um emprego legítimo como qualquer outro. Mas de novo, você não está no mercado de programação, não se iluda. Não existe caminho de migração entre fazer apps low-code e depois fazer aplicativos customizados de verdade. É como você querer migrar de fazer cup noodles em série pra vender pros amigos da faculdade e disso virar chef. Não tem nenhuma relação. Se depois você decidir virar chef, tem que começar absolutamente do zero na gastronomia, como qualquer um faria. Fazer cup noodles não te levou mais perto disso.

Outra, se amanhã uma Outsystems desaparecer, se amanhã a Amazon decidir que não gosta mais do Honeycode, se amanhã a Monday.com decidir parar de oferecer low-code, você não tem pra onde correr. No máximo vai migrar de uma ferramenta de low-code pra outra ferramenta de low-code, ou seja, vai evoluir de fazer cup-noodles pra esquentar lasanha congelada no microondas. E isso é o outro problema: todas as ferramentas de low-code são proprietárias, como as grandes IDEs dos anos 90 e 2000 que eram da Oracle ou IBM e já não existem mais. Se amanhã eles decidem descontinuar esses produtos, problema seu. O conhecimento que você adquiriu não tem utilidade em programação de verdade.

Eu sei o porquê de muita gente me perguntar se vale a pena aprender low-code em vez de estudar programação de verdade. Porque é mais fácil! Infinitamente mais fácil. E nem vem com essa conversa idiota de elitismo ou qualquer coisa assim, o fato é simples: se é fácil pra você, é fácil pra qualquer um. E se qualquer um consegue fazer com mínimo esforço, cada um de vocês vale menos e menos. Não existe caminho pra cima, só pra baixo. Não existe evolução, nem carreira. E de novo, não tem nenhum problema nisso. É como trabalhar montando Big Mac no McDonald's, isso não é gastronomia, mas muita gente precisa de um primeiro emprego, juntar um dinheiro enquanto faz faculdade ou algo assim. Empregos temporários que exigem baixa capacidade tem muita utilidade. E low-code é o equivalente. Pode ser um bom emprego temporário enquanto você se prepara pra uma carreira de verdade no futuro.

E se tudo isso ainda não convenceu, uma última coisa que deveria ser meio óbvia: uma ferramenta de low-code não tem capacidade de gerar outra ferramenta de low-code melhor que a original. Ela morre nela mesma. E o que é necessário pra evoluir qualquer plataforma de low-code ou criar uma nova melhor? Precisa de um programador de verdade. Um operador de low-code não vai jamais criar outra plataforma de low-code sabendo só low-code. É impossível. Isso não é uma opinião, é uma resposta absoluta e inquestionável, é um fato: você que é operador de low-code tá 100% a mercê de quem é programador. E é por isso que low-code jamais vai substituir um programador de verdade, assim como um cup noodles nunca vai substituir um chef de verdade.

No final do video eu vou voltar ao low-code, então segure esse pensamento. Vamos pro segundo tema: mas e as inteligências artificiais? Não faz muitos anos, o DeepMind do Google derrotou um dos maiores jogadores de Go do mundo, Lee Sedol. Eu assisti ao vivo e achei sensacional. Go que é o jogo de tabuleiro mais difícil do mundo e a gente achava que nenhum computador seria capaz de derrotar um jogador humano pelo menos nos próximos 10 anos ainda. Não só isso, o mesmo DeepMind hoje consegue jogar dezenas de jogos de Atari, que ele aprendeu a jogar sozinho, melhor que humanos também. Vou deixar o link sobre isso nas descrições abaixo.

Daí em 2020 tivemos as notícias bombásticas do Generative Pre-trained Transformer versão 3, também conhecido como GPT-3, da OpenAi do Elon Musk. E toda vez que eu ouço Elon Musk, meu sentido aranha começa a apitar. Metade do que se diz sobre ele é relevante, metade é puro marketing. Ele me lembra Steve Jobs no sentido de criar bolhas de distorção de realidade. E o hype nas redes sociais e noticiários só amplifica essa distorção. Vide o preço sem nenhum sentido das ações da Tesla atualmente. É uma bolha.

As pesquisas em cima do GPT-3 de fato são muito interessantes do ponto de vista puramente técnico. Eu não sou estudioso de inteligência artificial, mas qualquer estudante de ciências da computação tem capacidade pra entender o básico. Inclusive, muitos trabalhos de conclusão de curso ou iniciação científica são sobre redes neurais e outros aspectos de IA. Se você é de ciências da computação e não é cínico com as notícias que andam circulando, eu reavaliaria a quantidade de horas que você tá gastando em cervejada em vez de estudar o que devia. E antes que eu me esqueça, não comentem se eu assisti video de fulano ou ciclano sobre GPT-3, eu sei que saiu um monte por causa do hype e eu não tive interesse de assistir de ninguém, eu fui ler os artigos direto.

Pra todo mundo que não fez ciências, por trás de todos os palavrões impressionantes como Inteligência Artificial, Machine Learning, Deep Learning, tem conceitos simples de entender mas implementações que dependem de matemática pesada como cálculo, álgebra linear, estatística e probabilidade e assim por diante. Você não precisa ser matemático pra entender os conceitos. Eu recomendo uma série do canal 3Blue1Brown que explica como funciona Deep Learning de uma forma visual e que eu considero simples e muito didático. Vou deixar linkado nas descrições abaixo e recomendo que vocês assistam depois.

O maior problema pra população em geral é quando colocamos as palavras "inteligência" e "aprendizado" na mesma frase. Dá impressão que a Skynet vai acordar daqui a pouco e dominar o mundo. E se você acredita nisso, eu entendo que faz sentido pensar que a carreira de programação está com os dias contados, porque se uma ferramenta low-code é incapaz de gerar uma nova ferramenta low-code melhor, como eu afirmei antes, certamente uma inteligência artificial, através de machine learning e deep learning poderia ser capaz de aprender a programar e sozinho gerar até uma nova inteligência artificial ainda melhor. Mas não, isso é ficção científica, eu não vejo isso chegando perto de acontecer enquanto eu estiver vivo e nem na próxima geração ainda.

Por hoje, eu não vou fazer uma grande tangente pra explicar sobre inteligência artificial, primeiro porque eu não sou estudioso da área e segundo porque o assunto tem atraído muito público então existem dúzias de materiais recentes excelentes tanto em forma de artigos, livros ou videos em tudo que é lugar. Eu não preciso ser redundante. Como eu disse antes, se você quer os detalhes, existe esse troço chamado Google que vai te dar excelentes respostas e materiais de estudo.

Pro que nos interessa aqui, o GPT em si é um modelo de linguagem autoregressiva com objetivo de produzir textos que parece que foi um ser humano que escreveu. Uma das inovações tá na letra "T" do nome, os transformers. Existe todo um campo de pesquisa e tecnologias chamado Natural Language Processing ou NLP, onde temos técnicas chamadas de Recurrent Neural Networks ou RNNs. Algumas dessas técnicas incluem Long-Short Term Memory ou LSTM. Resumindo de forma simplória, essas técnicas exigem processamento sequencial, ou seja, pra processar o próximo passo ele precisa do resultado do processamento anterior. É altamente acoplado. Se você é programador e já estudou sobre processamento assíncrono, sabe que isso é um problema porque impede paralelização. Se você não entendeu nada do que falei agora, pesquise estes termos no Google.

Os tais transformers são a evolução dessas técnicas de maneira que permitem um nível muito maior de paralelização. O GPT-2 já dava resultados impressionantes com 1.5 bilhões de parâmetros de aprendizagem e obviamente dizer que o GPT-3 processou (cento e setenta e cinco) 175 bilhões de parâmetros é algo que faz títulos de notícia ficarem particularmente mais clicáveis. A pergunta do GPT-2 pro GPT-3 é quando iríamos bater na lei de retornos decrescentes. Aliás, esse é outro conceito que você precisa entender. É muito difícil você conseguir que um programa paralelizável fique infinitamente mais veloz só aumentando a quantidade de processamento. Você bate na Lei de Ahmdal. É impossível paralelizar o mesmo programa pra sempre só aumentando processamento. Mas no caso, o GPT-3 ainda não bateu nesse limite, pelo que eu soube. Só entenda que não existe almoço grátis aqui também.

Agora, isso tudo dito, o que isso significa? Muita gente viu os demos de textos gerados pelo GPT3 incluindo trechos de código, poemas, capacidade de responder perguntas e muito mais. Eu nem vou perder tempo mostrando esses demos, porque como eu já disse, aqui no YouTube você vai encontrar centenas de videos fazendo demonstrações com a API do GPT e pra nossa área de programação interessa que existem até exemplos dele gerando trechos de código. Tipo, eu digo "crie um botão azul centralizado na tela" ou algo assim e ele gera o HTML pra isso direitinho. Uma pessoa comum, um normie, vendo isso facilmente esticaria o raciocínio pra imaginar que já era programadores.

Entenda uma coisa sobre redes neurais, eles precisam de uma quantidade absurda de treino. Treinar é fazer ele processar o máximo de material que existe pra conseguir gerar algo semelhante. Por exemplo, se eu jogar todas as obras do Shakespeare pra ele processar, ele vai conseguir gerar um texto que tem a cara de um texto de Shakespeare. Se eu jogar todas as músicas de Mozart ele vai conseguir gerar uma música nova que tem cara de Mozart. Se eu jogar um monte de código do Github de javascript, ele vai conseguir gerar alguns trechos de javascript que fazem sentido. Isso realmente é possível.

Mas esse é o limite. Ele consegue imitar um humano, mas não é nem de longe um humano. E eu não digo isso porque eu sou algum tipo de humanista que não acredita em máquinas substituindo humanos ou qualquer bobagem assim. Pelo contrário, eu adoro ficção científica, cyberpunk e tudo mais, eu quero mais é que um inteligência artificial supere logo os humanos. Mas falando friamente nos limites do que existe, isso ainda não é possível. Por mais impressionantes que os textos gerados pelo GPT pareçam, eles são o resultado desse treinamento de encontrar padrões, dar pesos pra esses padrões, e gerar algo baseado nesses pesos. Quando eu falo 'botão azul' ele processou vários HTMLs que tem botões, vários CSS que tem cor azul, e tem os padrões que juntam as duas coisas e solta um HTML coerente.

A mesma coisa vale pra um DeepMind que tem o conceito de aprender sozinho. Por exemplo jogos de Atari que eu não ensino nada e deixo ele ficar errando milhares de vezes, até ele começar a achar o caminho sozinho. Isso funciona em games simples, com regras simples e delimitadas. Por mais impressionantes que seja ver o DeepMind jogando um Pong ou Arkanoid ou Pacman sozinho, assim como no caso do Go, ele tá confinado num tipo de tabuleiro, onde as coisas só se movem de uma maneira simplificada, e não expande mais que isso. Mesmo em jogos que parecem mais complicados como um Dota 2 que já teve IA jogando. Pular disso pro mundo real, que tem milhões de variáveis extras, que é um sistema complexo não-linear, estamos falando de ordens de grandeza de diferença de complexidade.

Outra coisa, pra um GPT-3 gerar os textos que gera ou pra um DeepMind jogar Go como joga, estamos falando de um custo de processamento absurdamente alto. Não sei se vocês pararam pra pensar, por mais impressionante que seja a demonstração do GPT-3 gerando meia dúzia de linhas de HTML, quanto custou pra ele conseguir fazer isso? Vou deixar um artigo linkado embaixo, mas estamos falando de níveis tão caros quanto minerar criptomoedas. No caso do paper do GPT-3 ele foi treinado ao longo de seis meses, foram quase 5 mil versões de modelos de treinamento, exigindo GPUs queimando energia por quase 10 mil dias inteiros, 24 horas por dia, sem parar gerando mais de 30 toneladas de emissão de CO2. Ou seja, mais do que uma pessoa vai emitir durante dois anos inteiros. Pra todo mundo aí que já fez mimimi de emissão de carbono, tô esperando falar de Deep Learning da mesma forma.

Aliás, eu também não sou ambientalista, então seja em mineração de criptomoedas, seja gastando toneladas de carbono processando dados pra produzir alguns demos interessantes que deixam a internet doidona. Eu realmente não me preocupo porque como sempre, se a tecnologia for valiosa, ela vai ser otimizada ao longo do tempo. Como eu já disse numa palestra, se existisse Twitter nos anos 40 a gente não teria tido a revolução dos computadores, porque os primeiros como um ENIAC usava energia suficiente pra esquentar um lago. Era extremamente custoso e alguém ia twittar "ah, isso de computador não vai dar certo, vai destruir o meio ambiente, precisamos parar com isso".

Neste momento, Deep Learning de verdade é algo inacessível pra maioria das pessoas quando estamos falando em níveis de DeepMind ou GPT-3. Você assistindo provavelmente nunca vai ter acesso aos detalhes da implementação e nem vai conseguir replicar o que foi feito. Entenda o outro grande problema: é tudo fechado. Você tem acesso ao paper, a algumas APIs e só. É tudo um grande experimento inacessível pra mim e pra qualquer pessoa fora das equipes de pesquisa desses projetos. O máximo que podemos fazer é especulação, por isso eu nunca me interessei em falar muito sobre isso. Significa também que você não vai fazer uma carreira nessa área. Vai no máximo consumir APIs de alguma dessas empresas e acreditar na caixa preta por baixo.

Toda vez que falamos de inteligência artificial na prática estamos falando de integrar com APIs da IBM, da Microsoft ou da AWS e agora da OpenAI. A maioria das pessoas sequer sabe como esses motores funcionam, só que funcionam, e pra maioria de nós isso é suficiente, mas entenda que só porque você usa uma API dessas, não o torna nem um pouco mais perto de ser da Área de IA, assim como colocar água no cup noodles não te leva perto de ser um chef.

E aqui eu volto ao problema que falei de low-code. Lá no futuro, quem sabe o GPT-1000, depois de ter sido treinado com todo o histórico de código dos GPT anteriores, seja capaz de gerar o GPT-1001, uma versão melhorada. Diferente de low-code, em teoria, ele poderia um dia ter essa capacidade. Mas eu tô falando de tanto tempo no futuro e é uma premissa tão abstrata que o que eu acabei de dizer tá mais perto de ficção científica do que qualquer outra coisa. Portanto não, pelas próximas décadas nem low-code e nem IA vai substituir a necessidade de programadores de verdade.

E tem outro agravante. Vamos fazer outro exercício mental. Digamos que no começo dos anos 2000 já tivéssemos meu teórico GPT-1000. Digamos que eu tivesse acesso aos códigos fonte de uma America Online, de um Yahoo, de um Orkut, de um ICQ e todas as principais startups do começo dos anos 2000. Mesmo assim ele não seria capaz de gerar coisas novas diferentes, como o Netflix, ou o Uber, ou o Airbnb a partir de 2008. Porque não é só uma questão de evolução de código, tem milhares de outras variáveis que não estão no sistema, como o momento econômico e social dessa época. Um modelo de negócios não nasce da sua cabeça só porque você quer, o melhor modelo de negócios é uma resposta eficiente ao momento econômico, depende muito de timing e da sua capacidade de implementar não só com codigo fonte. Já pensaram em marketing por exemplo?

Um exemplo besta, muita gente acha que se Gary Kildall, o criador do DOS, não tivesse vendido pra Microsoft, que na época era uma pequena empresa, talvez ele tivesse se tornado bilionário no lugar do Bill Gates. E esse pensamento tá errado. O que tornou Gates bilionário não foi o código do DOS, foi o fato dele ser um Gates. Lógico que tem a inteligência e competência dele, mas a mãe de Gary Kildall não era Mary Maxwell Gates, empresária e filantropa e amiga do então presidente da IBM, John Fellows Akeres. O que colocou a Microsoft no mapa foi o acordo de licença do DOS pros IBM-PC. Você acha que o Gary, um desconhecido, ia bater na porta da IBM e conseguir o mesmo acordo? O DOS em si não era um software especial, era bem bugado e ruim na realidade.

Na maioria das vezes o sucesso do software não tá só no software. Claro que ajuda um código inovador e bem feito, mas isso não é o único fator. QI costuma fazer bem mais diferença, o famoso "Quem Introduz". Mas o ponto é que um low-code da vida é super limitado no que pode fazer e jamais vai inventar a próxima onda. E mesmo a melhor inteligência artificial, superior ao GPT-3 ou DeepMind de agora, vai sofrer pra fazer mais que alguns trechos de código. Por agora só serve pra dar mais like pra biscoitero. Portanto programadores de verdade ainda vão ser muito necessários pelas próximas décadas.

Mas existe um grande porém nessa história toda. Existe sim uma parcela da população de programadores que vai se tornar obsoleta. Essa categoria sempre existiu e vai continuar existindo, e são os que ficam estagnados num conjunto muito limitado de ferramentas ou marcas. A gente brinca que hoje um programador de Cobol ganha muito bem, mas é porque existem poucos sobrando. Se de repente amanhã aparece centenas de novos programadores de Cobol a única coisa que ia acontecer é que a oferta ia exceder a demanda e a grande maioria não ia ter onde trabalhar, porque não existe uma demanda crescente de Cobol. A demanda diminui ano após ano. E essa é outra coisa que já falei em vários vídeos pra vocês entenderem: a lei da oferta e da procura.

Com a pandemia e a atual bolha de startups cresceu a demanda por programadores. O problema é que cresceu a demanda por qualquer programador, independente da qualidade. Ou seja a demanda tava crescendo mais rápido do que a oferta conseguia suprir, portanto um programador que nem é tão bom assim tava ganhando muito mais do que devia. Por isso eu falo que precisa entender um pouco de economia. Com fatores como juros baixos tava mais ou menos fácil conseguir dinheiro pra investimento e por isso aparecia um monte de startups basicamente só engordando o porco, como a gente costuma dizer. No papel valiam muito, mas na prática não valiam nada. Caso clássico disso foi a derrocada da WeWork, que qualquer um com o tico e o teco no lugar sabia que não valia os bilhões que diziam. E de fato, antes ainda da pandemia implodiu.

Os low-codes e até as IAs da vida vão rapidamente ter capacidade pra substituir alguns tipos de programadores mais limitados. Famoso cachorro de um truque só. Muitas posições hoje são desnecessárias. Faz anos que eu me pergunto porque diabos geração de telas ainda não foi pelo menos semi-automatizado. Antigamente na era do DOS eu precisava desenhar coordenada por coordenada cada coisa na tela, manualmente, era um saco. Quando surgiram as interfaces gráficas também surgiu o conceito de WYSIWYG ou what you see is what you get e coisas como Visual Basic e arrastar elementos numa tela.

Se você faz apps mobile nativos com XCode da vida, faz a mesma coisa hoje. Um React Native ou Flutter da vida já diminuíram muito o trabalho de se fazer telas. Fazer telas é um trabalho repetitivo que a cada ano que passa acrescenta menos e menos valor. A tendência é se tornar mais e mais automatizado até que não seja necessário alguém especializado só em fazer isso. E não precisa esperar o GPT-1000 pra isso. É uma coisa natural. Igual robôs substituem operários em fábrica. Igual e-commerces substituem a necessidade de existir lojas físicas e vendedores. Faz parte da natureza que as coisas se tornem obsoletas e sejam substituídas por processos melhores.

O problema todo que eu vim descrevendo no video é a ansiedade de iniciantes de querer se tornar um programador rápido demais, tentando achar atalhos, queimando etapas, deixando de lado as coisas que parecem difíceis e pouco úteis de imediato. Porém, são justamente essas coisas difíceis, tediosas, que exigem esforço, estudo, suor e lágrimas que realmente vai garantir que você passe por diversos ciclos de obsolescência de tecnologia sem ficar pra trás toda vez, porque o que você vai aprender não é uma tecnologia ou ferramenta e sim o processo de aprender a aprender.

E isso me leva ao terceiro e último tema, a pergunta que todo mundo me faz toda hora de quais cursos devia fazer. É sempre a mesma coisa, seja um adolescente de 15 anos que tá ansioso pra começar logo. Seja alguém de 30 anos que sente que tá estagnado depois de trabalhar 10 anos na mesma linguagem ou ferramenta. Seja alguém que quer mudar de área, com 40 ou 50 anos e quer virar programador. Todos querem saber, Akita, devo fazer curso de python ou de javascript. Devo fazer curso de Angular ou React. Devo tentar uma linguagem nova como Elixir ou Go. Ou devo tentar algo que parece que tem mais empregos como Java ou .NET. E cursos, de quem eu devo fazer? Devo fazer Coursera? Pluralsight? Udemy?

E a resposta pra todas essas perguntas é ... yes.

Meio brincadeira mas a resposta é simples: tanto faz. Muita gente ficou me falando de GPT com o medo de que vai ser substituído em breve e que tudo que estudou em cursos vai pro espaço. Nesse sentido eu diria que você não tá muito errado, você já sabe que o que você sabe é muito pouco e facilmente substituível. A boa notícia é que eu não acho que vai ser o GPT-3, a má notícia é que vai ser qualquer outra coisa. Tá correto ficar preocupado, mas você tá preocupado com a coisa errada. Deixa eu tentar martelar na cabeça de vocês, de uma vez por todas, tudo que você precisa saber sobre cursos. São 9 itens, vamos lá.

Número 1: desde quando era novo, eu nunca fiz nenhum curso. Ouça e entenda: eu nunca fiz nenhum curso. Eu estudava por conta. Eu não tinha muito dinheiro, e o que tinha eu tentava gastar em livros. Quais livros? Sobre os assuntos que me chamavam atenção. Eu ficava prestando atenção, e o que atiçava minha curiosidade eu ia atrás. Se você sequer tem curiosidade de ir atrás das coisas, você tá na profissão errada, porque você vai ter que se manter curioso pro resto da vida.

Número 2: Desde quando eu era novo, eu nunca ia em nenhum evento, nunca assistia nenhuma palestra, e tinha zero interesse de ver o que os influencers da minha época recomendavam. Zero interesse. Eu sabia que não fazia nenhuma diferença. Nenhuma. Eu já tinha entendido um fato importante: eu programava já antes de entrar na faculdade, e eu vi as ferramentas que eu demorei tanto pra aprender se tornando obsoletas. E eu aprendi desde cedo a desapegar da propaganda. Eu sabia que seja lá o que eu estivesse aprendendo, em 5 ou 10 anos não ia mais existir.

Sabendo disso, consuma seus materiais, livros, cursos ou o que for sabendo que são temporários. É que nem o emprego do McDonald's. É o trabalho que vai colocar comida na sua mesa hoje e tentar te dar uma chance de ter uma carreira no futuro. Não fique muito confortável com seja lá qual linguagem ou framework ou bibliotecas você gosta. Em 10 anos elas não vão mais existir ou no mínimo vão estar relegadas a segundo plano porque outras coisas novas vão aparecer. Isso pode parecer desesperador mas assista meu episódio de Dimensão do Tempo. Qualquer um que começou querendo ser programador antes de 2010 nunca ia ter idéia, por exemplo, que depois disso ia existir um mercado de apps mobile, porque não existia isso antes. Sua carreira não é uma coisa pré-determinada, que você escolhe hoje e vai fazer a mesma coisa pro resto da vida. Você não tem e nem deve escrever em pedra sua carreira, você precisa criar fundações pra que ela possa ser qualquer coisa dentro da área.

Número 3: Curso de React, Angular, Flutter, Node, Spring, Laravel, é tudo igual, seja lá quem faça o curso. São ferramentas, que nem um martelo. Não tem tantas formas tão diferentes assim de ensinar como um martelo funciona. Faça qualquer um, faça mais de um, não faz diferença. Eu pessoalmente acho muito lento fazer cursos mas eu entendo que tem gente que se sente mais confortável quando alguém mastiga o assunto pra você. Nenhum curso vai ser excepcionalmente muito melhor que os outros.

Número 4: Ferramentas são de fato temporárias. Elas vão embora. Mas conhecimento de base não vai. A base é tudo aquilo que você considera chato e que parece que nunca vai ser útil. Eu falo disso nos videos sobre faculdades. Na minha época de faculdade não se falava muito ainda em temas como inteligência artificial, computação gráfica, ou coisas assim, em 1995 a gente ainda tava no começo disso. A gente tinha noção mas não tinha como adivinhar de que forma as coisas seriam no século XXI.

Hoje em dia você ouve os termos hypados da comunidade como data sciences, e o que é isso? cálculo, estatística e probabilidade. Ou Machine learning, o que é isso? cálculo, estatística e probabilidade. Deep Learning, o que é isso? cálculo, álgebra linear. Computação gráfica, o que é isso? álgebra linear. Se você se diz de data science porque sabe importar uma planilha numa ferramenta e exportar outra planilha, e não sabe cálculo e estatística e probabilidade, você não é de data science, você é só um operador de ferramenta.

Se você tem interesse em qualquer uma dessas áreas mas nunca parou alguns anos pra aprender matemática, você é e sempre vai ser só um consumidor, um operador de ferramentas. Você nunca vai ser a pessoa que vai trabalhar na criação e manutenção dessas ferramentas, e você nunca vai estar à frente da curva, sempre vai estar reagindo às demandas do mercado. Pior do que isso, o que eu mais vejo é gente de programação que sequer sabe português direito e é incapaz de formular um e-mail coerente com começo, meio e fim. E você quer falar de inteligência artificial?? Ah vá.

Número 5: pela própria natureza do business, empresa de cursos não tem tanto interesse na sua carreira propriamente dita, ele só quer te manter fazendo os cursos dela o mais tempo possível. E não digo isso insinuando que elas são perversas ou qualquer coisa assim. É simplesmente como o mercado funciona. Pra qualquer empresa de cursos é interessante que você tenha a ilusão que precisa de mais e mais cursos deles pra cada nova ferramenta que o mercado comece a demandar. Quase ninguém tem demanda imediata pros tais cursos de base que eu falei, como cálculo, álgebra linear. Por isso eu falo que é importante, se puder, que você faça uma faculdade. Não é pelo canudo ou pra se formar, mas pra você descobrir essa fundação que a maioria dos cursos comerciais nem menciona. Programar não é só sair escrevendo qualquer código e fazer rodar e ficar feliz com isso. Isso é só o equivalente a colocar água no cup noodles e achar que virou chef. Isso não é empoderamento, é só gratificação instantânea.

Entenda o modelo de negócios: se num mundo ideal todo mundo descobrisse que não é tão difícil assim ser autodidata, haveria necessidade de cursos? Vou dar um exemplo anedota de mim mesmo. Eu comecei a aprender Java em 1996, quando saiu a versão 1.0, não tinha curso. Eu aprendi .NET em 1999 quando acho que era versão Beta, e ainda não tinha curso. Eu aprendi Ruby em 2005, quando ainda não tinha curso. Eu aprendi Objective-C em 2010, quando ainda não tinha curso. Eu comecei a aprender o básico de Swift em 2014, no dia que lançou 1.0 e ainda não tinha curso. Eu aprendi Elixir em 2015, quando ainda não tinha curso. Tudo que eu aprendi foi quando ainda sequer tinha a opção de cursos. Não espero que todo mundo faça isso, mas é mais uma das coisas que você não vai conseguir fazer se pra tudo você depende de um curso.

Número 6: com tudo isso eu não estou dizendo que cursos são ruins, cursos são só serviços. Nada mais, nada menos. Eles ajudam, mas não faz parte do modelo de negócios ensinar você a aprender sozinho, não importa a propaganda. E você sempre vai ter a ilusão que porque fez um curso já aprendeu tudo ou quase tudo que precisava e aqui vem outra coisa importante: nenhum curso vai ser capaz de ensinar mais que uns 20%, se muito, de qualquer tema, não importa qual. Os outros 80% você vai ter que aprender sozinho. Mesmo que no título do curso tenha a palavra "avançado", continua não sendo nem perto de tudo.

Número 7: você só sabe que tá começando a pegar ritmo na sua carreira quando tudo que sai de novo, você consegue se virar pra aprender rápido e sozinho. Cursos são como a rodinha na bicicleta, uma hora você precisa tirar e andar sem. E quando tira a rodinha, você vai começar a fazer o que já devia ter aprendido desde o começo: a cair e levantar. Você só postergou esse dia em troca de gratificação instantânea sem de fato ter aprendido o mais importante. De novo, alguns precisam das rodinhas pra pegar coragem antes de tentar sem, mas não se engane, uma hora você vai precisar tirar, então garanta que isso aconteça o mais cedo possível.

Número 8: eu falo isso desde o video de Matando Semi-Deuses, mas só porque eu ou qualquer outro influenciador disse alguma coisa, não dê tanta importância pra isso. A gente só é um bando de chato cagando regra pros outros. Eu disse agora pouco que quando eu tinha uns 20 anos eu nunca tive nem curiosidade de procurar influenciador - e eu sequer sabiam quem eles eram porque eu não acompanhava. Nunca senti vontade de pedir recomendações.

Por exemplo, se você pergunta pra mim ou qualquer outro influenciador quais cursos eu recomendo, o que você espera? Nenhum de nós fez todos os cursos do começo ao fim pra poder tabular numa matriz, comparar e apresentar uma resposta objetiva pra você. Eu detesto fazer cursos, acho todos muito devagar. O máximo que qualquer um de nós pode fazer é dizer o que a gente ouviu falar. Ou seja, meu chute não vai ser muito melhor que seu chute. E nesses casos eu sempre prefiro ficar com meu chute. Lembra do episódio de Não Terceirize suas Decisões? Pois é, eu nunca tive e continuo não tendo interesse no que um influenciador tem a dizer. Duvide do que a gente fala, faça você mesmo sua lição de casa.

Número 9: de novo, não estou dizendo que são todos os cursos ou que eles são culpados disso, mas o formato que todo mundo tá acostumado é seguir uma lista de itens, um checklist. Você faz um passo a passo, vai cumprindo os itens do curriculo, e no final você acha que evoluiu só porque conseguiu cumprir os passos. É uma rotina que te deixa acostumado com a coisa errada. Em vez de você pensar por você mesmo pra saber se evoluiu e pra onde ir, você se acostuma a esperar um checklist de tudo. E quando faz um item a mais, já acha que conquistou grande bosta. Sem querer, rotinas assim como de cursos te deixam reativo e passivo. Você espera que a vida real é que nem um video game, com fases simples e pré-definidos que quando você passa acha que é grande coisa. É que nem que jogar Fifa no playstation e no final acha que virou Neymar. Entenda, esses checklists foram feitos pra você passar. A vida real não, ela foi feita pra não deixar você passar. Já passou da hora de tirar as rodinhas da bicicleta né?

Finalmente, o que vai tornar você obsoleto e colocar sua carreira em risco não são ferramentas de low-code ou o GPT-3 ou o DeepMind ou a Skynet, é a sua incapacidade de aprender sozinho, sua irritante ansiedade em achar que é esperto e queimar etapas, e sua eterna credulidade de se iludir com gratificação instantânea. E você não tá sozinho, ou você acha que todo mundo também não quer ganhar rápido com pouco esforço? Por isso que esquemas de pirâmide nunca desaparecem. Como diz o ditado, todo dia sai um malandro e um trouxa de casa, se eles se encontram, sai negócio. E sempre quem procura recompensa fácil com pouco ou nenhum esforço é o trouxa. Quem vai tornar sua carreira obsoleta não é ninguém além da sua falta de esforço. Então pare de tentar achar justificativas de ficção científica pra achar que sua carreira corre perigo.

A moral da história é, você decidiu ser um chef, mas é preguiçoso demais pra aprender a descascar batata. Alguém inventa o Cup Noodles e você treme nas bases achando que acabou sua carreira. Sério isso?? E eu to reclamando mesmo, porque vocês não tem noção de quantas perguntas iguais a essa eu recebi nos últimos meses. É o mesmo tipo de cara que tá precisando de emprego, daí você oferece e manda um teste e o indivíduo me devolve feito nas coxas e vai no twitter reclamar que ninguém dá chance dele virar techlead ganhando salario de 6 digitos e por isso é uma vítima da sociedade. Se eu quando tinha 20 nos anos 90 já sabia que o mundo não funciona assim e dei meus pulos, vocês hoje já deviam ser muito mais espertos que isso, com a quantidade massiva de material de graça que tem disponível hoje. Vai no site do MIT ou da universidade de Stanford e faz as aulas gratuitas de matemática que tem. Alguém já tentou?

tags: akitando cursos ead gpt-3 deepmind low-code no-code ansiedade

Comments

comentários deste blog disponibilizados por Disqus