· Lucas Resende · Estudos · 5 min de leitura
Do Scratch ao C: Como Foram Minhas Primeiras 3 Semanas no CS50 de Harvard
Sentir que estou tentando beber água de um hidrante, desenhar lógicas em lousas digitais e a satisfação indescritível de ver um código funcionar.
Quando comecei as primeiras aulas do CS50x (o curso introdutório de Ciência da Computação de Harvard), o professor David J. Malan avisou logo de cara: aprender programação pode parecer como tentar beber água diretamente de um hidrante.
Três semanas depois, posso confirmar: o volume de informação é enorme. De início, confesso que bateu um leve receio pelo fato das aulas serem 100% em inglês, mas as explicações eram tão didáticas que, com uma ou outra pesquisa rápida, deu para acompanhar super bem.
Para não me afogar, precisei de um ritmo próprio: dividi as sessões de estudo ao longo de 2 a 3 dias por aula, sempre parando o vídeo, entendendo a lógica, anotando e testando no código. No fim das contas, encarar as dificuldades e ver a solução funcionar por conta própria traz uma satisfação indescritível.
Quero compartilhar como foi vivenciar essa maratona inicial, da lógica visual no Scratch até os primeiros desafios em C, com meus comentários de bastidor, erros e pequenas vitórias.
Week 0: Aprendendo a pensar como programador (e brincando no Scratch)
A Semana 0 me fez virar uma chave importante: Ciência da Computação não é sobre memorizar sintaxe, mas sobre resolver problemas. É o processo que acontece no espaço entre o input (o problema) e o output (a solução).
Entender como os computadores funcionam por baixo dos panos, do binário até a forma como imagens e textos são guardados na memória, me deu uma perspectiva totalmente nova. Mas o momento em que a chave virou de verdade foi na prática.
Para treinar a lógica sem as barreiras do código em texto, o curso usa o Scratch, uma ferramenta desenvolvida pelo MIT em que programamos juntando blocos visuais coloridos, quase como montar um quebra-cabeça. Nele, criei meu primeiro projeto interativo (Starting from Scratch). Montei blocos customizados com parâmetros, criei variáveis e condicionais. Parecia um jogo simples de início, mas me forçou a pensar em estrutura e abstração antes de encostar em uma linha de código textual.
Week 1: O choque com a linguagem C e o amor pelo terminal
Se no Scratch tudo era visual e amigável, a Semana 1 nos joga direto na linguagem C. De repente, um simples ponto e vírgula esquecido paralisa o programa inteiro.
Conforme fui avançando nos vídeos, me peguei me desafiando a ir além do que o professor mostrava na tela. Tiveram pequenos tropeços, como descobrir meio “na raça” que para declarar um char eu precisava usar aspas simples ('a'), mas cada erro virava um aprendizado imediato.
Dois momentos se destacaram muito para mim:
- Adeus mouse, olá Terminal: Aprendi a interagir direto com a linha de comando (
ls,cd,make,./hello). No começo é estranho não usar a interface gráfica, mas você percebe rapidamente como o teclado torna a navegação muito mais fluida. - A lógica na lousa digital: Nos exercícios da pirâmide do Mario e do cálculo de troco (Cash), a cabeça deu um nó. A saída foi abrir uma lousa digital, desconstruir a lógica linha por linha e desenhar como os loops se comportavam. Me desafiei até a criar funções próprias para renderizar os blocos, e ver o código rodar sem iterações desnecessárias foi recompensador.
Week 2: Arrays, strings e a resiliência nos problemas
Na Semana 2, entramos em conceitos mais profundos: como a memória RAM organiza dados em blocos (arrays), como strings são apenas sequências de letras terminadas por um caractere invisível (\0), e como funciona a criptografia.
Organizei meus estudos em blocos de foco de 25 minutos e passei por uma verdadeira montanha-russa de sentimentos. Anotei no meu diário de estudos, por exemplo: “Aprendi o que são Arrays, achei muito legal!” e, 25 minutos depois: “Tá, arrays não são tão fáceis assim kkk, começou a ficar complexo”.
Nos exercícios da semana, o bicho pegou:
- No Scrabble, penei para mapear as pontuações das letras na tabela ASCII. Cheguei a anotar frustrado: “Minha nossa senhora, esse negócio é MUITO difícil kk. Vou continuar amanhã de cabeça fresca”. E foi a melhor decisão. Voltei no dia seguinte, desenhei a lógica na lousa e o código finalmente fluiu.
- No Readability e no Caesar, a satisfação foi ver que desconstruir o problema em etapas menores fazia tudo se encaixar, desde a rotação de caracteres da criptografia até os ajustes de arredondamento da fórmula de leitura.
O que tiro dessas 3 primeiras semanas
Se eu pudesse resumir meu principal aprendizado até aqui em três pontos, seriam estes:
- Desenhar antes de codificar: Tentar resolver um problema digitando direto no editor gera frustração. Escrever o raciocínio no papel ou numa lousa digital economiza horas.
- Aprender a gostar dos erros: O compilador reclamando não é um puxão de orelha, é um guia. Ver o
check50mudar de vermelho para verde depois de tanto testar e ajustar é a melhor recompensa. - Paciência e processo: Como anotei após terminar uma das aulas: parar, entender, anotar e voltar. Fazer os exercícios, enfrentar dificuldades e conseguir achar a solução conectando conceitos de múltiplas aulas dá uma sensação boa demais.
Sinto que a base que estou construindo aqui vai sustentar muito do que vou aplicar na FATEC e nos meus projetos futuros. A decisão do reset de carreira faz cada vez mais sentido.

