Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/anishsharma21/nand2tetris

This repository tracks my progress in building the hardware and software of a computer from scratch - a journey that will take me from the basics of logic gates to building a fully functioning computer and operating system.
https://github.com/anishsharma21/nand2tetris

assembly boolean-logic compilers computer-architecture logic-gates machine-language nand2tetris operating-systems

Last synced: about 5 hours ago
JSON representation

This repository tracks my progress in building the hardware and software of a computer from scratch - a journey that will take me from the basics of logic gates to building a fully functioning computer and operating system.

Awesome Lists containing this project

README

        

# Nand2Tetris

This repository tracks my progress in building the hardware and software of a computer from scratch - a journey that will take me from the basics of logic gates to building a fully functioning computer and operating system.

## Purpose
The purpose of this repository is to document my learning process and showcase the projects and checkpoints I reach along the way.

## Key Aspects
- **Creating a Computer from Scratch**: Starting with basic NAND gates, I will build up to a complete computer system, understanding each component and its function.
- **Mastering My Craft**: I am adopting a hands-on approach to computer science, allowing me to deepen my understanding and skills in hardware and software development.
- **Understanding Layers of Abstraction**: By constructing each layer of the computer, from hardware to high-level software, I will gain insight into the abstractions that are typically hidden in modern computing.

## The Importance of Understanding Lower Levels of Abstraction
In modern software development, the depth of knowledge about the lower levels of abstraction is often lacking. The current educational approach frequently skips over these fundamental concepts, which are crucial for a solid foundation in computer science. The complexity and numerous layers of abstraction in today's software development can make it overwhelming for junior developers, leading to anxiety and confusion about what to learn. I know I felt and continue to feel this way, especially given the chaotic state of web development in 2024.

The abundance of tools, frameworks, and methodologies, along with the dogma surrounding the "right way" to do things, adds to this chaos. I have decided to reject this overwhelming complexity and return to a simpler, more fundamental approach. By understanding the workings of a computer and software from the ground up, I aim to build a strong foundation and grow my expertise in a more structured and meaningful way.

Follow along to see the progress and the various projects that will be developed as part of this comprehensive learning experience.