Vida de Cadete — construindo a base da base 📚

Rods
10 min readMay 14, 2022

--

Esse é o segundo post da minha série explorando como foi a minha experiência durante a primeira fase do jogo-currículo da escola de programação 42 em São Paulo (se não viu o primeiro post, confere aqui!), em que pretendo compartilhar a mudança da minha forma de enxergar o meu aprendizado, e também oferecer 3 dicas de cursos/aulas online que podem te ajudar destrinchando os primeiros projetos e dando os primeiros passos na escola.

Pelo que se sabe, não existe uma régua de corte que determina o quão longe nas listas é preciso ter avançado durante a piscina/basecamp pra conseguir entrar na 42. Assim, é natural que os primeiros projetos ao entrar na trilha de fundamentos atinjam alguns cadetes com mais força do que outros. Tudo depende do seu conhecimento prévio em programação e computadores, e especificamente em C e Unix.

Eu fiz o meu basecamp com conhecimentos prévios em lógica de programação, orientação a objeto, APIs, front-end, banco de dados e AWS, fruto de quase 2 anos em transição de carreira para dev. Entreguei até a lista C06, e assim que entrei na 42 e peguei o primeiro projeto pra fazer, percebi que o meu conhecimento em programação era muito superficial para preencher as lacunas que programar na linguagem C te exige. Eu nunca antes do basecamp tinha lidado com o conceito de ponteiros, por exemplo. Alocação explícita de memória é algo que eu desconheço da linguagem Java. Diretivas de compilação do Makefile? Nem sonhava. É claro que a facilidade de raciocínio lógico/computacional — e uma formação em exatas — que carregava comigo me foi de grande valia. Mas só serviu até a página 2. Ainda assim, muita ferramenta faltava, muito eu tinha para aprender.

[…] É claro que existe uma curva de aprendizado e alguma frustração, mas os jogos são feitos primariamente para relaxar e divertir, e é nesse lugar de relaxamento que a gente aprende as coisas com mais rapidez, facilidade e curiosidade.

Algumas horas de estudo prévias podem te deixar bem mais preparade pra entender os projetos e desenvolvê-los, em contraste com o cenário em que tudo é muito novo e difícil e estranho o tempo todo. E se a sensação de “eu não faço ideia de como cheguei até aqui e como sair daqui” se sustenta por longos períodos de tempo (semanas ou meses, projeto atrás de projeto) isso é desesperador. Quanto maior o sentimento de sufoco/desespero, menor as chances de aprender com qualidade — se parar pra pensar essa é a lógica por trás de um jogo: é claro que existe uma curva de aprendizado e alguma frustração, mas os jogos são feitos primariamente para relaxar e divertir, e é nesse lugar de relaxamento que a gente aprende as coisas com mais rapidez, facilidade e curiosidade, e não quando existe uma enorme pressão te sufocando e puro desespero. E não tem jeito: sem uma base sólida, a gente vai ficar sempre titubeando, hesitando, tropeçando, escorregando, sofrendo.

Esse post vai explorar então quais foram os recursos que me serviram para me dar mais chão, para preencher lacunas e construir uma fundação sólida de conhecimentos, especialmente nos três primeiros projetos do currículo, para então a partir daí me sentir mais à vontade com novos desafios a cada novo projeto que peguei pra fazer.

Sobre o método de aprendizado da 42

Eu acho que aqui vale a pena comentar brevemente sobre o que faz a 42 ser tão diferente de outras instituições de ensino tradicional. Intencionalmente qualifico o método da 42 como um método de aprendizado e não de ensino, porque aqui dentro o foco não está em quem ensina, mas em quem aprende. Não espere se deslocar até as dependências físicas da 42 para encontrar uma pessoa que irá te ensinar o que você precisa saber, e atestar que você aprendeu o que devia ter aprendido (por meio de uma prova, por exemplo). Pode ser que você encontre outras pessoas que poderão te ajudar (e esse é o espírito da comunidade, claro!), mas mesmo que você esteja inteiramente só nas dependências da 42, nada te falta para progredir no seu aprendizado. Você tem um objetivo claro (projetos), você tem os meios para conseguir informação (acesso à internet), você tem a ferramenta para praticar e desenvolver seu aprendizado (um computador com um editor de texto e um compilador). (Além de um rooftop maravilhoso, staff super gente fina espaços de conforto para descansar com qualidade, etc.) E você é a única pessoa responsável pelo seu aprendizado, ou seja: não existe ninguém responsável por te ensinar nada.

Neste cenário, é preciso entender que, diferente dos enunciados da escola em que por costume temos todas as informações de que precisamos para resolver o problema, na 42, os pdfs de cada projeto são exatamente o contrário disso. Os PDFs não contém as informações que você precisa para resolver os problemas. Os pdfs servem para te dar contorno (o que está dentro do escopo do projeto e o que está fora) e para esclarecer quais são as condições válidas para escrever e entregar seu projeto (funções permitidas, comportamentos esperados, formatação do código), de maneira a evitar dúvidas na hora da avaliação p2p.

Por exemplo, o pdf te dirá algo como: “a funcionalidade X precisa ser entregue e não pode haver nenhum vazamento de memória”, e não muito mais do que isso — como implementar a funcionalidade X? quais conhecimentos é preciso desenvolver para resolver o problema? qual é o nome do conceito por trás do projeto, pra vc poder dar um gooogle? O pdf te deixa intencionalmente no seco. E isso de certa forma significa que você tem liberdade total para resolver o problema do jeito que fizer mais sentido pra você. Agora, se seu projeto não tiver a funcionalidade X, ou se tiver vazamentos de memória, ou não estiver formatado conforme a norma pede, você justamente receberá um 0 na avaliação. Ou seja, os pdfs te dão as regras de fair play do jogo; agora como o jogo vai ser jogado, com quem será jogado, se é em 1 ou 2 ou 10 cadetes juntes, aí é por conta de quem está jogando (e se divertindo no meio do caminho, de preferência).

De resto: turn yourself around (no bom e velho português: se vira) pra fazer a entrega acontecer.

E é exatamente aí que reside o ✨poder da comunidade🌈 da 42. Não é apenas porque algumas pessoas da comunidade em níveis diferentes de conhecimento já sabem determinados conteúdos e podem compartilhá-los (se quiserem/estiverem disponíveis) com o resto da comunidade; mas também, é muito porque várias pessoas do mesmo nível podem pesquisar assuntos diferentes ao mesmo tempo, e depois partilharem umas com as outras os conhecimentos adquiridos, para juntas progredirem. De certa forma, é esse tipo de atitude de apoio coletivo que te ajuda a se dar bem com a metodologia da 42. Ninguém entra sozinhe na 42, ninguém sai sozinhe da 42.

Por outro lado, uma “escola sem professories” não significa que a figura de uma pessoa que apresenta o conteúdo de maneira gradual e estruturada seja totalmente descartada e desnecessária. Toda vez que vc pesquisa um conteúdo no google, sempre vai chegar em um artigo que alguém escreveu, ou um vídeo que alguém gravou, ou uma pergunta respondida no Stackoverflow que vai te ensinar sobre o conteúdo que vc tá buscando. E na minha experiência, foram exatamente algumas dessas aulas em formato tradicional ministradas por ume professore que me ofereceram tijolinhos para ir construindo minha escada do conhecimento, principalmente no início da 42. E é sobre três casos específicos de professories cujas aulas assisti e que foram o que de fato solidificaram a minha base de fundamentos em C/programação/ciência da computação como um todo que eu gostaria de falar.

Se você tá com tempo disponível esperando começar o seu curso na 42, ou se já entrou na 42 e tá se sentindo completamente perdide, eu acredito que empenhar seu tempo assistindo algumas ou todas das recomendações abaixo vai ser um investimento que trará muito retorno no médio/longo prazo! Confia ehuehe

CS50

Em cima de um palco, professor David Mallan fala sobre ordenação de algoritmos com o auxílio de pequenos armários que contêm números distribuídos aleatoriamente dentro de cada um. No palco dá pra ver uma grande tela de projeção com slides, o púlpito com o computador que David utiliza durante as aulas, e uma pessoa estudante usando um véu sobre a cabeça. David e a pessoa estudante estão usando máscaras de proteção facial.
As aulas acontecem dentro de um auditório com todo tipo de auxílio cênico/visual para explicar os conceitos! Nesse print, a aula era sobre algoritmos de ordenação.

É uma matéria de introdução à ciência da computação da faculdade Harvard, nos Estados Unidos, oferecida uma vez por ano e ministrada pelo professor David Mallan. Eu conheci o CS50 depois do meu basecamp, quando uma galera decidiu fazer o curso enquanto esperava o resultado do basecamp, e apesar de não ter feito todas as aulas do curso antes de começar na 42, as aulas que assisti com certeza me CARREGARAM durante os primeiros projetos. Em especial, o primeiro módulo do curso (se não me engano as 6 primeiras aulas) sobre C oferecem a base teórica pra todos os projetos da primeira fase da 42. Eu não posso deixar de recomendar esse curso se você, assim como eu, gosta da liberdade que a 42 te dá, e ao mesmo tempo sente falta de ter o conhecimento apresentado de maneira estruturada, degrau por degrau, e o David depois de tantos anos lecionando essa matéria simplesmente virou um verdadeiro mestre nisso. Vc encontra o CS50 em português aqui e em inglês aqui.

Aulas do Samuka

Captura de tela de um vídeo do professor Samuka. A tela ao fundo é o terminal, e ele aparece em um retângulo no canto inferior direito explicando o que está fazendo no terminal.

Encontrei os vídeos do prof. Samuka e o seu canal xavecoding pesquisando sobre Makefile, que é uma ferramenta pivotal para desenvolver projetos em C cada vez maiores. A playlist inteira é sobre estruturas de dados em C, e aborda muito mais do que Makefile, começando desde ponteiros, funções e structs, passando por alocação de memória e o processo de compilação, até assuntos mais intermediários/avançados como listas encadeadas, pilhas e filas. A playlist inteira é super interessante e eu gostei muito da forma como Samuka ensina, mas é longa. O que vc vai aproveitar dessa playlist varia de projeto pra projeto. Talvez os vídeos iniciais sobre conceitos básicos de C e ponteiros sejam de grande valia também! Pra mim, no momento inicial da formação me beneficiei bastante da parte do processo de compilação e o Makefile. Vale a pena conferir a playlist inteira aqui.

Crash Course Computer Science

Nesse episório, Carrie Anne fala sobre linguagens de programação, e traz a figura de Grace Hopper que influenciou a criação da linguagem de alto nível COBOL, cuja sintaxe é parecida com a da língua inglesa.

Não consigo expressar em palavras o quão incrível é a ideia do canal Crash Course: ajudar as pessoas a aprender sobre o que elas tiverem interesse. O canal tem playlists incríveis sobre os mais diversos assuntos — ciência da computação, história, biologia, psicologia, jogos, filosofia, física, a lista é enorme — , e talvez o melhor que eu possa fazer pra tentar expressar a minha admiração pelas pessoas que construíram esse canal é dizer que, quando encontrei essa playlist, no início de uma transição de carreira, todo vídeo que eu assistia eu terminava com um sorrisão na cara, com gosto de quero mais, e às vezes até mesmo chorando (o episódio sobre Alan Turing é devastador. E extremamente necessário). Em todos os vídeos que assistia, achava tudo muito bonito, eloquente, enriquecedor, inspirador.

Os exemplos pra mim são incrivelmente didáticos, as vinhetas de “alcançamos um novo nível de abstração” são super divertidas e parecem aparecer sempre na hora certa, e as animações que eles utilizam durante as explicações… Eu sou fã de conseguir visualizar as coisas quando estou aprendendo, e em meio a um mundo totalmente abstrato de 0s e 1s que existem e interagem dentro de uma caixinha metálica, a forma como esses vídeos conseguem ilustrar os conceitos, protocolos, ideias, é simplesmente sensacional. Além de trazerem um arcabouço monumental de imagens, vídeo-gravações, documentos e fatos históricos para acompanhar cada vídeo, cada transição. E assim vão contando a história (assustadoramente recente) da computação emergindo como uma ciência no mundo. A cada foto histórica apresentada, cada documento de página amarelada, cada dado histórico trazido para contextualizar o aprendizado eu sentia como se estivesse recebendo presentes. Me sentia colocado pra dentro, incluído no rolê, experiência diametralmente oposta ao que eu tinha experimentado na maioria esmagadora de experiências com o aprendizado que tive no ensino tradicional, na vida.

Os vídeos são longos, e recheadíssimos de informação, então é humanamente impossível (e desnecessário até) aprender tudo de uma vez. O que essa série fez de maior por mim foi me apresentar CONTEXTOS para que, ao entrar nesse mundo novo e misterioso da programação, eu tivesse ganchos mentais sobre os quais me apoiar para enfrentar um novo conceito ou um novo problema. Eu realmente lavei a minha alma e me transformei assistindo esses vídeos, e até hoje eu volto para assistir vídeos quando me deparo com um assunto que eu lembro de já ter visto na série. Não tenho mais o que dizer, apenas: assista. Aqui a playlist completa.

De maneira geral, eu resumiria a essência desse post da seguinte forma: aprender a forma que mais funciona para você aprender é muito importante. Aprender identificar quais são as suas dificuldades e barreiras que te afastam de construir algo que é seu (tipo: um projeto) é muito importante. Aprender a procurar recursos diferentes para saciar suas dificuldades e construir pontes de aprendizado é importante. Esse post é a minha forma de procurar ajudar mais pessoas que talvez, quem sabe, tenham uma forma de aprendizado parecida com a minha. E eu sigo todos os dias me deparando com as minhas barreiras, e procurando descobrir como é que farei para superá-las, uma por vez, e até onde eu estiver com disposição para ir. Espero que esse post te sirva, se não pelos recursos aqui apresentados, ao menos como fonte de ideias e de inspiração :)

Até a próxima! E boa sorte aí nos estudos 😉

Este foi o segundo post da série “Vida de cadete”, em que pretendo explorar como tem sido estudar na École 42 em São Paulo. Os próximos textos pretendem olhar mais de perto como o currículo da 42sp se divide e o que esperar da primeira etapa, e responder a famigerada pergunta “dá pra trabalhar e estudar na 42?”. Então não deixa de me seguir aqui no Medium (ou no Twitter) pra ficar sabendo de novas postagens. Valeu!

--

--

Rods

42sp student, generally curious, aspiring maker of.