Provavelmente essa é a pergunta que mais me fizeram na vida: preciso de faculdade para ser um bom programador?
E a resposta é…
Depende!
Pode parecer um pouco confuso… Depende, porra? Esperava uma resposta sim ou não, né? Eu demorei muitos anos para entender isso…
Vou contar um pouco da minha história como um programador… Eu sou um desenvolvedor que começou aprender no bootstrap total, autodidata, na rudimentar a internet dos anos 2000, quando a gente não tinha direito nem o Google. Eu estudei a Bíblia do Delphi, que era um livro de mais de 500 páginas e durante muito tempo eu pensei não precisava de faculdade para poder ser um bom programador. Eu sempre tive emprego, consegui resolver as coisas que eu tinha que fazer. Com o tempo as comunidades foram crescendo, as documentações foram ficando melhores, eu aprendi a programar em C++, C#, PHP, Node e tudo mais, sem precisar da faculdade para isso. Hoje em dia eu tenho uma posição um pouco diferente com relação a esse tema, porque que eu entrei para uma área que é muito específica e muito difícil da programação, que é a área de desenvolvimento de jogos.
No ano passado, 2021, eu abri a Uzmi Games e comecei a desenvolver jogos. Essa é uma área em que muita gente sonha entrar, fazer cursos e começar a desenvolver seus próprios jogos. E ai meu questionamento é: por que vocês acham que as produções de games são tão caras e tão demoradas? Pra fazer um bom jogo precisa de 2, 3, 5 anos… Tem jogos que têm 10 anos que estão sendo feitos. E a resposta é simples: porque é uma área muito complexa, que envolve muitos conhecimentos diversos. Por exemplo, no jogo Tales of Shadowland, que é produzido pela Uzmi Games, a gente tem pessoas para cuidar do áudio, para cuidar da parte 2D da UI do jogo, da programação do client, que é feita na Unity, da programação do blackend, que é feito em C#, pessoas que vão mexer com animação e modelagem 3D, texturização, level design, roteirização, criação de personagens e por aí vai. Às vezes uma mesma pessoa faz várias atividades, mas isso engloba uma quantidade de conhecimentos enorme e é muito difícil uma pessoa só ter todos esses conhecimentos para poder produzir um jogo de qualidade. É por isso que as empresas de jogos têm dúzias de funcionários.
Agora, tirando essa parte da prolixidade do começo da conversa e de falar de jogos, por que é que eu falei que precisar de faculdade para ser um programador depende? Porque depende muito do que você quer na sua carreira profissional. Se você falar que quer ser um programador de site, porque dá dinheiro fazer sites e tal, vou te falar que muito provavelmente tem todo conhecimento que você precisa na internet e, em alguns meses, você consegue aprender a fazer seus sites “sozinho”. Você vai passar muitos anos aperfeiçoando essa técnica, melhorando a forma como você escreve código, não vai ser o melhor dos melhores, não vai ter os melhores padrões, mas vai funcionar, vai dar conta do recado e vai fazer a coisa que é mais importante pra você, que é gerar dinheiro.
Depois disso, você vai evoluindo como programador e vai começar a pensar que você é um “inovador”, vai querer criar seus próprios frameworks, vai se achar o “Guru da sabedoria”, essa é uma fase transitória complicada, quando você começa a ter um pouco mais de conhecimento. Até chegar num ponto, depois de uns 10 anos, quando você tiver mais maduro como profissional, em que você vai falar assim, “cara, não sei de porra nenhuma”, vai entender que tudo que você aprendeu até agora é uma fração mínima de conhecimento e que a área de tecnologia e programação é muito ampla. Você pode fazer de tudo com esse negócio: pode fazer realidade virtual, pode fazer inteligente artificial, data science, e tudo mais.
Quando você começa a ficar mais maduro como programador, a vida direciona para onde você vai. Você começa pensando coisa, quer fazer site, depois quer fazer app, quer entrar no mercado DeFi, sei lá… O mundo é muito louco e você vai acabar sendo direcionado para uma área específica… Aí, se você fala que quer mexer com DeFi, na área de cripto, que é um conhecimento super específico, você vai ter que aprender Solidity, smart contracts, Web3, blockchain (espero que meu canal esteja ajudando você a se direcionar para esse caminho, que eu acho um caminho super interessante!), mas a gente está falando de uma área que vai envolver muita matemática, que vai envolver cálculos mais robustos do que os que você usa para fazer um site, vai precisar de uma tecnologia de alta escalabilidade, com baixa latência e tudo mais. Você precisa se aprofundar mais em infraestrutura de servidores, escalabilidade, data center, redes, vai ter que entender os protocolos, como faz pra reduzir a latência na comunicação pra você ter uma boa aplicação DeFi, isso pensando em uma DeFi como a dYdX, que é uma Exchange. Então você vai precisar de uma série de conhecimentos para poder tornar o seu software bom, e aí TALVEZ você sinta falta de alguns conhecimentos que a faculdade pode te proporcionar.
Eu sempre digo o seguinte: para quem tem zero conhecimento, a faculdade é uma opção viável, é um bom lugar pra começar, porque ela vai te dar uma série de conhecimentos, boa parte você nunca vai utilizar, assim como as coisas que a gente aprendeu na escola, mas vai ter coisas interessantes que você vai aprender. Você vai aprender o básico de programação, vai ter uma experiência que normalmente não teria no mercado de trabalho, vai aprender uma base matemática um pouco mais sólida… Na prática, você vai utilizar isso no seu dia a dia? Muito provavelmente, não. Mas se você falar para mim que quer estudar sobre inteligência artificial, não tem outro caminho, você vai ter que estudar matemática aplicada, derivadas, integrais, estatística, você vai ter que ir pra uma faculdade. É muito difícil você ter essa grade curricular fora da faculdade. Você tem a capacidade e a possibilidade de aprender sozinho? Tenho certeza que sim, mas, obviamente, essas matérias vão ser muito mais fáceis de entender tendo um professor te ensinando. Eu fui professor durante muitos anos, então eu sei que às vezes você encontra um bom professor, que tem boa oratória, que vai explicar bem sobre um tema e aquilo vai começar a abrir sua mente com relação às coisas que você tem preconceito…
Eu tenho um puta preconceito com matemática, odeio matemática, e você pode pensar, “mas como é que você, programador de jogos, odeia matemática?” Cara, eu tento abstrair matemática em todos os cenários possíveis, então eu vou procurar alguém que tenha essa solução, que já manja de matemática mais do que eu. Odiar matemática não vai me impediu de chegar ao meu objetivo, que, no caso, era criar um MMORPG, e a gente conseguiu fazer isso na Uzmi Games, mesmo eu não tendo muito conhecimento em matemática, mas eu contratei pessoas que tinham esse conhecimento. Aí a gente sai um pouco do espectro do programador para começar a falar sobre gestão. Acho que a boa prática do gestor é justamente trazer gente boa para a equipe, que vai complementar essa equipe. Então se você precisa fazer cálculos matemáticos de trigonometria, de colisão, você vai precisar de um cara bom de matemática. E foi o que eu fiz, trouxe uma boa pessoa, que entende muito, que já estava muito avançada no estudo de MMOs, para dentro da empresa e isso fez uma diferença gritante no andamento do projeto. Eu poderia conseguir chegar nesse objetivo sem essa pessoa, ou sem um especialista em matemática? Poderia, é possível, mas a trajetória, o tempo que ia demorar, ia ser muito maior, isso é evidente.
Então você tem que fazer uma boa reflexão, você tem um objetivo bem claro com relação a sua carreira? O que é que você espera da programação? É a mesma coisa do cara que está aprendendo música. Você quer aprender música? Quer aprender qual instrumento? Um bom pianista foca a vida inteira em ser pianista. Um bom programador vai ficar a vida inteira focando naquilo que ele quer fazer. Se você é muito prolixo e quer fazer de tudo, quer fazer site, app, jogos, você vai acabar não fazendo nada. Você vai ser igual um pato, que não consegue nadar, não consegue voar, não consegue fazer nada. Você tem que focar em alguma coisa que você goste, obviamente tem que olhar pro mercado e ver como estão os salários, se tem demanda praquele tipo de especialização, se vale a pena, isso é importante também, mas depois que você definiu, você vai entender quais são os requerimentos daquele serviço.
Quando eu botei na cabeça que eu queria fazer um MMORPG, eu sabia que era um negócio difícil para caramba de fazer, que precisava de muito tempo, de muito dinheiro, precisa de uma série de coisas para poder ser feito, então eu corri atrás de conseguir os recursos que eu precisava: profissionais, dinheiro e tudo mais, para tornar aquilo possível. Outra coisa muito importante: tornar possível não quer dizer que o negócio vai ter sucesso. No nosso caso, por exemplo, da Uzmi Games, a gente conseguiu fazer o MMO funcionar, colocamos player jogando, ficou do caralho, mas isso não quer dizer que o jogo é um sucesso, ele não explodiu no mundo inteiro (ainda, espero eu), mas existem outros trabalhos além da programação, resolver o problema técnico é uma parte do sistema. Mas vamos ficar na parte de programação e fazer um raciocínio mais “óbvio”: eu quero virar um puta programador de apps Android. Ótimo! Você vai ter que aprender Java ou Kotlin, vai ter que entender a minúcia de como é que funciona o Android, quais as possibilidades e as restrições… Você vai ter que entender muito daquele negócio chamado Android para você ser muito bom naquilo. Você necessariamente precisa fazer uma “faculdade de Android”? Não, você não vai precisar, mas você vai ter que sentar bunda, abrir o YouTube e ver dezenas, centenas de vídeos, vai ter que ler documentações em inglês e entender aquilo ali e aí, daqui uns 10 anos, que é quando você vai começar a ficar razoável, a gente conversa.
Agora, quando você vai poder ser considerado muito bom naquele negócio? Cara, eu acho que a pessoa é boa mesmo quando ela sai do espectro do ego pessoal, de se sentir muito boa, e passa a ter um reconhecimento de bons profissionais do mercado. Quando eu comecei a me sentir um bom programador? Quando pessoas que eu considero excelentes profissionais chegaram para mim e falaram “cara, você é bom”. Eu ignoro todo o restante, porque 99,9% da população não têm parâmetros para poder falar se você é bom ou ruim. Agora, se seu professor da faculdade que você admira, fala que você é muito bom, independente das notas (sem entrar no mérito de avaliações, acho muito complexo, mas acho que os professores tinham que ter o poder de avaliar se a pessoa está capacitada para passar naquela matéria ou não sem depender de uma prova), mas se seu professor te admira, se você trabalha numa empresa e os profissionais que trabalham com você te acham bom, se você é bem visto pelo mercado, então provavelmente você está chegando lá e se tornando um bom profissional. Não fique fingindo, alimentando seu ego, achando que você é muito bom, se você não tem uma avaliação externa. Você precisa dessa aprovação social, vamos dizer assim, você precisa que outras pessoas considerem você bom e não só pessoas aleatórias, tem que ser pessoas área, pessoas que você admira. Se você perguntar uma pessoa que eu admiro para caralho, por exemplo, é o Fábio Akita, é um dos caras que eu respeito, ele fala muita coisa foda, muitas coisas que eu nem entendo, mas o cara tem um gabarito absurdo, um conhecimento quase único, muito vasto, percebe-se que ele tem muitos e muitos anos de estudo e ele tem uma capacidade de concatenar essas informações num roteiro bem redigido e gravar vídeos excelentes. Eu acompanho Fábio mais ou menos desde 2012, um artigo dele me fez aprender NodeJS, na versão 0.4. Se algum dia eu tive a oportunidade de trabalhar ou de ter contato com Fábio e ele falar para mim que eu sou um cara bom, eu vou estar me sentindo preenchido, meu ego vai estar preenchido, eu vou ter certeza que, se aquele cara está falando que eu sou bom, então eu sei que eu sou bom, porque o poder de avaliação que ele tem, só uma fração da população do mundo tem, o conhecimento que esse cara tem para falar para mim que eu sou bom, é porque realmente eu sou. Essa questão de você ser bom em alguma coisa passa pela avaliação de várias pessoas.
Você se considerar um bom pianista, é uma coisa, agora, as pessoas te admirarem e o piano ser parte integrante de sua vida, como é o caso do maestro brasileiro João Carlos Martins, o cara é absurdo no piano, apesar do problema nas mãos, ele dedicou a vida àquilo e as pessoas o reconhecem, as pessoas admiram o cara, vão nos concertos que ele faz, por que ele é referência naquilo. Aquele cara é muito bom no que ele faz. Então a avaliação de bom ou muito bom em alguma coisa passa dessa discussão de ter uma faculdade ou não ter uma faculdade. O fato de você ter um diploma não vai fazer diferença na minha avaliação, já conheci excelentes profissionais que fizeram faculdade e excelente profissionais que não fizeram faculdade, isso não é uma regra, isso vai depender da área, vai depender do esforço individual de cada pessoa. Então não fique bitolado se você deve fazer ou não.
A minha sugestão é o seguinte: se você tem possibilidade, tem tempo, você ainda é jovem, está começando a sua carreira agora, tem como pagar a faculdade… Então faça! Vai ser legal a experiência social, a rotina e tal, vai ser legal. Mas isso não vai te tornar um excelente profissional, você vai ter mais uma longa trajetória de 10, 20 anos de profissão para você começar a ficar bom. Caralho, precisa disso tudo para ser bom? Para ser foda, sim. Só que você vai conseguir gerar dinheiro ao longo desse processo, então não se preocupe com isso, entendeu? Vai chegar num ponto em que você não vai mais nem pensar. Hoje em dia eu tenho que calcular, eu estou com 33, comecei a programar com 14… A quantidade de tempo não importa mais, honestamente falando. Se eu já estou há muito tempo fazendo essa porra, nem importa mais há quanto tempo eu faço, porque os meus resultados falam por si só. Eu criei aplicações para milhões de usuários, chamei a atenção de um dos maiores YouTubers do Brasil e não só dele, não só do Felipe Neto, que foi meu sócio no Vigia, mas de outros caras famosos que vêem no meu trabalho um trabalho de qualidade, consistente, que gera resultado, que gera dinheiro no bolso dos caras no final do mês. O Douglas (Rato Borrachudo) também, que eu conheci na época do Vigia de Preço e é meu sócio hoje. É a consistência no que você faz da sua vida.
Mas se você me perguntar se eu tive esse foco todo quando eu comecei lá com 14 anos? É obvio que não, cara. Eu fui fazendo porque eu gostava de mexer com computador e eu tinha um computador, naquela época era raro quem tinha computador em casa, quem tinha uma conexão com a internet discada. Com o tempo eu fui ganhando gosto pelo negócio, fui criado os meus próprios objetivos e eu demorei muitos anos para entender. Se eu for levar em consideração o período que eu acho, de fato, que comecei a me tornar um profissional respeitado na área, foi de 2017 para cá, que eu comecei a adquirir outras características que eu julgo serem muito importantes para um profissional, que é previsibilidade, coerência, disposição. Qualquer hora do dia ou da noite, eu estava sempre disponível, eu dediquei a minha vida para poder montar o Vigia e isso gerou frutos, atraiu pessoas que gostaram do que eu estava fazendo, até que eu vendi a minha empresa.
É um trabalho de formiguinha, que você vai melhorando cada dia mais. É igual a um vinho que está lá, maturando, e quanto mais tempo, melhor ele fica. Um programador, quanto mais o tempo vai passando, quanto mais situações adversas ele vai experimentando, melhor ele fica, fica mais treinado, já sabe o que fazer em determinados tipos de situações. Então, não fique preocupado com esse dilema de faculdade. Se preocupe em fazer o seu trabalho, um dia após o outro, vá melhorando gradativamente, procurando boas referências, como o Fábio Akita, como o Rodrigo Branas, que são caras excelentes, veja o conteúdo dos caras, vá se aprimorando e evoluindo no seu tempo. Não se preocupe em querer achar que você vai ser programador sênior aos 22 anos, não existe isso, você precisa de muita maturidade. Outra coisa, também, que eu acho que muda bastante a nossa cabeça é quando a gente começa a ficar mais velho, que tem família, que tem filhos e começa a levar o trabalho com uma seriedade diferente de quando se é adolescente. Hoje um rapaz que chega e fala que é sênior, mas tem 23 anos, solteiro, morando na casa dos pais… Mano, ainda te falta muita coisa para você ser sênior na vida. Precisa ter mais nível de responsabilidade, precisa se arriscar mais, sair da sua zona de conforto. Você pode até ser um excelente desenvolvedor, mas te faltam tantas outras características como pessoa, que não sei se eu te enquadraria como sênior. E até mesmo essas classificações são meio, né… Não sei… Eu não tenho a mínima ideia de quando eu virei pleno, sênior… Seria muito fácil se a gente tivesse um selo na testa que, a cada vez que a gente mudasse a chave, passava de junior para pleno, de pleno para sênior. A primeira vez que eu fui CTO de uma empresa, eu não sei se eu tinha competência, mas eu fui. Errei muito e continuo errando. Ninguém é perfeito. Mas você vai aprendendo com os erros que você comete e com os erros dos outros e se você aprender a aprender com o erro dos outros e não repetir esses erros, provavelmente você vai ter um futuro promissor, mais cedo ou mais tarde.
Esse texto é uma adaptação do vídeo “Preciso de faculdade para ser um bom programador?”