9 Programming Projects That Will Make You a Better Developer.

TThe Coding Koala
컴퓨터/소프트웨어자격증/평생교육AI/미래기술

Transcript

00:00:00You know what's more frustrating than building a project? Not knowing what to build.
00:00:04At some point in your developer journey, you reach this weird phase.
00:00:08Building another CRUD app with a JavaScript framework feels boring,
00:00:11but building an operating system from scratch feels impossible. You're stuck in the middle.
00:00:16You don't want it easy. You don't want impossible. You just want something meaningful.
00:00:21Something challenging enough to level you up, but not so overwhelming that you quit halfway.
00:00:26Trust me, I've been there. So in this video, I'm going to give you some really great project ideas.
00:00:32I've divided these into three levels. Level one, building your foundations. Level two, storage,
00:00:38databases, and data systems. And level three, advanced systems and internals.
00:00:44If you build these projects, you won't just become better at coding. You'll start thinking like an
00:00:49engineer. Let's start with level one. The first project is building your own HTTP server from
00:00:55scratch. If you're watching this, you probably know what an HTTP server is. Every time you open
00:01:01a website or call an API, there's a request and a response happening behind the scenes.
00:01:06But so far, you've only interacted with it through frameworks like Express. Building your own mini
00:01:12HTTP server forces you to understand what's really happening underneath. You'll learn how TCP sockets
00:01:19send and receive data, how HTTP requests are parsed, how responses are formatted, and how multiple
00:01:25requests are handled concurrently. If you are already feeling overwhelmed about how you are
00:01:30supposed to take on these projects, I have a little solution for you at the end of this video. Make
00:01:35sure you don't miss that. Now let's go to the second project. Building your own shell. You've used
00:01:40commands like cd, ls, pwd hundreds of times. But have you ever thought about what actually processes
00:01:46those commands? When you build your own shell, you create that system yourself. You'll learn things
00:01:52like reading and parsing user input, executing processes and handling system calls, and
00:01:58understanding OS level concepts like processes and commands. By building your own shell from scratch,
00:02:04you'll understand computers from deep level. Now things start getting interesting. We will see what
00:02:09the projects are in level two. The first project here is building your own Redis. Redis is an
00:02:15in-memory data store used as a cache, database, message broker, and more. It's incredibly fast. But
00:02:21until you build one yourself, you won't really understand why. When you implement your own Redis
00:02:26clone, you will learn how in-memory data structures work. You'll implement basic Redis commands. You
00:02:32will understand the Redis protocol. You will manage multiple client connections efficiently using event
00:02:38loops. These are just some highlights. There are still many things you'll learn after you start
00:02:43working on this. You will realize software engineering is more than just building CRUD applications.
00:02:48Next project is building your own GIT. You use GIT every day. But do you really know how it works?
00:02:54When you build a simplified version control system yourself, everything clicks. You will understand
00:03:00how commits are stored internally. You will implement hashing and content addressable storage.
00:03:05You will organize file snapshots into commit trees. And there's so much more you'll learn and implement.
00:03:11And the great thing about building from scratch is that you can modify it to work as you wish.
00:03:16Finally, our third project is building your own SQLite database. SQLite is a serverless
00:03:22database engine that stores everything in a single file. Unlike MySQL or Postgres, there's no separate
00:03:29server process. It's lightweight but incredibly powerful. When you build your own version,
00:03:34you'll understand how data is organized using structures like B-trees. You'll pause and execute
00:03:39simple queries. You will implement indexing for faster retrieval. As a developer, you cannot escape
00:03:45databases. But once you understand how one works internally, you will be among the few developers.
00:03:52Now on level three, we go deeper. The first project here is building your own mini programming language.
00:03:58Yes, your own language. You will create something that reads code, understands it, and executes
00:04:04instructions. And while that sounds intimidating, it's one of the most rewarding projects you can build.
00:04:10You'll learn and implement things like Alexa, Pasa, and abstract syntax tree. Most importantly, you'll
00:04:17understand how interpreters and compilers actually work. This is a great project because you'll finally
00:04:22understand how we actually communicate with computers. And you can also flex that you created
00:04:27a programming language and name it whatever you want. So the second project is building your own
00:04:32BitTorrent client. This is where distributed systems come into play. BitTorrent is a peer-to-peer
00:04:38file sharing system where users download file chunks from multiple peers instead of a single server.
00:04:44When you build this, you'll implement peer discovery, manage connections between nodes, split files into
00:04:50chunks, ensure file integrity, and handle distributed communication. This is not an easy project.
00:04:57I'm sure you didn't even understand half of the things I just said. But it teaches you how large
00:05:02scale distributed systems actually function. And finally, our last project is building your own coding
00:05:08assistant. Something similar to Claude code. Modern AI tools feel great. But under the hood, they are
00:05:14systems integrating large language models with traditional software architecture. When you build
00:05:20one yourself, you'll integrate an LLM API into an application. You'll parse and index project files
00:05:27to provide context. You'll manage prompts and control responses. You will design a system that
00:05:32blends AI with real engineering principles. And after you start working on this, you will understand
00:05:38how these popular AI coding tools actually work under the hood. And not just that, since AI is so
00:05:44hyped up today, this is a really great and challenging project that can make you stand out. Now let's be
00:05:50honest. Some of these projects are hard. Building your own Redis, Geet, or BitTorrent client isn't
00:05:55something you casually finish over a weekend. You will get stuck. You will doubt yourself. Sometimes
00:06:01you won't even know if you're implementing it correctly. And that's usually where most people
00:06:05quit. So to deal with this, there's a platform called CodeCrafters. It's a project-based learning
00:06:11platform where you rebuild tools like Redis, SQLite, DNS servers, HTTP servers, step by step. They don't
00:06:19give you the solution. They give you tests and structured milestones. And you implement everything
00:06:23yourself. I've personally used it when working on these projects. And honestly, having that structured
00:06:29direction made the difference between quitting and finishing. So if you like these project ideas but
00:06:34want guidance while still doing the real work, I'll leave a link in the description. But whether you use
00:06:39a platform or go fully solo, the important thing is that you actually build yourself. If you have also
00:06:45been tearing apart the internet, searching for the next project to build, I hope this gave you clarity.
00:06:51It might feel scary at first, but cold water doesn't get warm until you jump in. If you enjoyed this
00:06:57kind of video, make sure to like, subscribe, and let me know which project you're going to start with.
00:07:02I'll see you in the next one.

Key Takeaway

To advance from a developer to an engineer, one must build foundational systems, data structures, and distributed architectures from the ground up to truly understand how software functions.

Highlights

Transitioning from basic CRUD applications to building complex system internals like HTTP servers and shells.

Understanding data persistence and storage systems by recreating Redis, Git, and SQLite from scratch.

Exploring advanced distributed systems and programming language internals including custom interpreters.

Integrating modern AI by building a coding assistant that leverages Large Language Models and file indexing.

Utilizing structured learning platforms like CodeCrafters to overcome the difficulty of building complex tools solo.

Developing an engineering mindset by focusing on the 'how' and 'why' behind everyday developer tools.

Timeline

Introduction: The Developer's Plateau

The speaker addresses the common frustration of being stuck between simple web apps and impossibly complex systems. He proposes a three-level framework designed to challenge developers without causing them to quit. These levels cover foundations, data systems, and advanced internals to bridge the gap in engineering knowledge. The goal is to move beyond just writing code and start thinking like a system architect. This structured approach ensures that the learning process remains meaningful and results in tangible growth.

Level 1: System Foundations

The first level focuses on building an HTTP server and a custom shell to understand low-level computer operations. Building an HTTP server from scratch teaches concepts like TCP sockets, request parsing, and handling multiple concurrent connections. Creating a shell reveals how the operating system processes commands through system calls and process execution. These projects are essential because they demystify the basic tools that every developer uses daily. By the end of this level, developers will understand the underlying communication and execution layers of their environment.

Level 2: Data and Storage Systems

Level two involves recreating widely used storage tools like Redis, Git, and SQLite to master data management. Rebuilding Redis highlights in-memory data structures and event loops, while the Git project explores content-addressable storage and commit trees. The SQLite project is particularly significant as it introduces the internal workings of B-trees and query execution within a serverless database. These projects show how data is organized, optimized, and retrieved efficiently at a fundamental level. Mastering these systems places a developer in the top tier of professionals who understand database internals.

Level 3: Advanced Internals and AI

The most advanced level challenges developers to build a custom programming language, a BitTorrent client, and an AI coding assistant. The language project involves building a lexer and parser to understand how code is converted into machine-executable instructions. Building a BitTorrent client introduces the complexities of peer-to-peer distributed systems, file integrity, and chunk management. Finally, the AI coding assistant project integrates modern LLMs with traditional software principles, requiring file indexing and prompt management. These high-level projects are designed to showcase a developer's ability to handle the most modern and difficult engineering tasks.

Conclusion: Overcoming Implementation Hurdles

The speaker concludes by admitting that these projects are difficult and can lead to self-doubt or quitting. He recommends using structured platforms like CodeCrafters to provide the necessary milestones and tests to finish these complex builds. Regardless of the method used, the emphasis remains on the importance of actually building rather than just reading about concepts. The final message is a call to action to stop searching for projects and start building one to gain true technical clarity. This section reinforces that the struggle of building is where the real learning and engineering growth happen.

Community Posts

View all posts