Migliora il tuo craft, un progetto alla volta
Vuoi diventare un bravo programmatore? Programma progetti significativi!
Esplora i progetti
Sqrt
Implementa un algoritmo per il calcolo approssimato della funzione radice quadrata. Un esempio applicato di calcolo numerico, una fondamentale branca dell'informatica e della matematica applicata.
Printf
Impara a lavorare con le funzioni variadiche in C e riscrivi la funzione printf, utilizzata per effettuare delle stampe formattate in C, da zero, avendo a disposizione solo la system call write.
Simple Libc
L'obiettivo di questo progetto è l'implementazione di una piccola libreria di funzioni riprese dalla famosa libc. Imparare ad implementare le funzioni che diamo per scontato della libc è un ottimo modo per fare pratica con il linguaggio C.
Emulatore CHIP-8
Implementa il tuo primo emulatore CHIP-8, una macchina virtuale sviluppata da Joseph Weisbecker negli anni 70 per facilitare la scrittura di videogiochi sui primi microcomputers, come il COSMAC VIP. Un ottimo progetto per chi vuole imparare cosa significa scrivere un emulatore.
Maze Generator
Impara come utilizzare la teoria dei grafi per risolvere qualsiasi labirinto. La stessa teoria può essere utilizzata per generare nuovi labirinti in modo procedurale. Questo progetto mostra una interessante combinazione tra nozioni algoritmiche e semplici tecniche di rendering 2D.
Space Invaders
Implementa il classico videogioco Space Invaders. Impara a gestire il game loop, sprite, collisioni, e il modo in cui un videogioco gestisce grafica, input e tempo. Un classico esempio di game development 2D.
Simple Shell
Ogni programmatore esperto dovrebbe aver implementato almeno una volta una shell. La shell è il programma che interagisce con il sistema operativo per eseguire tutti i comandi di nostro interesse: processi, pipe, e il ciclo read-eval-print (REPL).
Simple Editor
Ogni programmatore esperto dovrebbe aver implementato almeno una volta un text editor. L'editor è il programma che utilizziamo ogni giorno per scrivere ed editare il testo. Senza editor non possiamo scrivere codice.
Simple Interpreter
Ogni programmatore esperto dovrebbe aver implementato almeno una volta un interprete. L'inteprete è quel programma che trasforma il testo in computazione. Esattamente come fa Python. Scrivere un interprete significa vedere come si implementa un linguaggio di programmazione interpretato.
Simple Compiler
Ogni programmatore esperto dovrebbe aver implementato almeno una volta un compilatore. Il compilatore è quel programma che trasforma il testo in un altro programma, che può poi essere eseguito. Esattamente come fa gcc. Scrivere un compilatore significa vedere come si implementa un linguaggio di programmazione compilato.