PROJECTS

Working on Gargantua a 2d game engine from scratch in C++23.
Working on loxcompiler a compiler using LLVM for the Lox programming language.
Working on ElementsOfProgramming a mathematical framework for programming.
Working on Murphy a web browser from scratch, in C++23.
Endurance a simple implementation of automatic differentiation reverse mode.
loxlol an interpreter for the lox language.
Squad a try on the SQUAD dataset (question answering) with the bidaf model.
Build a 6502 computer from scratch run “Hello world” on a computer built from scratch using a 6502. I’m planning to write a kernel once i finish the base project.

Computer science

C++

Book C++ Primer by Lippman, Lajoie, Moo
Book Professional C++ by Marc Gregoire
Book The C++ Programming Language by Bjarne Stroustrup
Book C++ Templates The Complete Guide by Vandevoorde, Josuttis
Book C++ Concurrency in Action by Anthony Williams

Python

Official tutorial https://docs.python.org/3/tutorial/

C

Book The C Programming Language by Ritchie, Kernighan

Golang

Official tutorial https://go.dev/tour/list
Book Learning Go An idiomatic approach to real world Go programming by Jon Bodner
Book Let’s Go by Alex Edwards (current)

Java

Book Core Java vol. 1 & 2 by Cay S. Horstmann (but I really don’t like Java)

OCaml

Official tutorial https://ocaml.org/docs/your-first-program#using-the-preprocessor-to-generate-code

Performance, parallel programming and distributed systems

Structured Parallel Programming: Patterns for Efficient Computation by McCool, Reinders, Robison
Site MPI https://mpitutorial.com/tutorials/ for a project, check my github
Course MIT Performance Engineering of Software Systems
Course MIT Distributed systems (pause)
Book Programming massively parallel processors, A hands-on approach by Hwu, Kirk, Hajj (pause)
Course Computer enhance by Casey Muratori (current)

Algorithms and data structures

Course MIT Introduction to Algorithms 2011
Course MIT Design and Analysis of Algorithms (pause)
Book Introduction to Algorithms 3rd ed. by Cormen, Leiserson, Rivest, Stein
Book Advanced Algorithms and Data Structures by Marcello La Rocca
Book Elements of programming by Stepanov, McJones

Computer architecture

Book Structured Computer Organization by Tanenbaum, Austin

Operating systems

Book Operating Systems Concepts by Silberschatz, Galvin, Gagne
Book Operating Systems: Three Easy Pieces

Network

Book Computer Networking: A Top-Down Approach by Ross, Kurose

Software architecture

Book Large Scale C++ by John Lakos (pause)
Book Game Programming Patterns by Robert Nystrom
Book C++ Software design, Design principles and patterns by Klaus Iglberger

Game engine and rendering

Book Game Engine Architecture by Jason Gregory
Github TinyRenderer
Book Real time collision detection (reference for 2d collisions)

Trading systems and real time systems

Book Developing High-Frequency Trading systems by Donadio, Ghosh, Rossier

Artificial intelligence

Course MIT Artificial Intelligence
Course MIT Deep Learning
Course Stanford CS229 Machine Learning
Course Stanford CS230 Deep Learning
Course Stanford CS224n NLP with deep learning (2021)
Course NYU Deep Learning
Book Deep Learning by Goodfellow, Bengio, Courville
Book Hands-On Machine Learning by Geron Aurelien
Book Mathematics for Machine Learning by Deisenroth, Faisal, Ong (used as reference)
Book An introduction to statistical learning by James, Witten, Hastie, Tibshirani, Taylor (current)

Theoretical computer science and programming languages

Course MIT Theory of computation (current)
Book The annotated Turing (about Turing’s paper “On computable numbers”) by Charles Petzold (current)
Book Crafting interpreters by Robert Nystrom

Math

Course Sapienza Analisi 1
Course MIT Multivariable calculus
Course MIT Linear algebra
Book Calculus vol 1 by Tom M. Apostol
Book Introduction to operations research by Hillier, Lieberman
Book A first course in probability by Sheldon M. Ross
Book Information Theory A tutorial introduction by James V Stone
Book Proofs by Jay Cummings
Book Elements of set theory by Herbert B. Enderton
Course MIT Signal and Systems (pause)
Book Algebra by Michael Artin (pause)
Book A beginner’s guide to mathematical logic by Raymond M. Smullyan (current)

Chemistry & Biology

Course MIT Principles of Chemical Science
Course MIT Introductory Biology
Book Molecular biology of the cell by Bruce Alberts (pause)

Neuroscience & Psychology

Course MIT Introduction to Psychology
Course MIT The Human Brain