Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Coding a database server from scratch in C
Rating: 4.7 out of 5(19 ratings)
582 students

Coding a database server from scratch in C

A real-world project for mid-level C coders who wants to reach the next level and learn databases/network programming.
Last updated 1/2025
English

What you'll learn

  • Learn how to structure a real-world programming project
  • Learn sockets and network programming
  • Learn about database structure, datastructures, hash tables and binary trees
  • Learn how to measure and optimize your code and learn to make your code secure

Course content

1 section10 lectures17h 18m total length
  • Introduction: Designing your own database24:39

    In this brand new series about databases you will learn about data structures, effective search algorithms etc. In this first introductionary episode of the series you will learn how to design a database based of a variant of a binary tree. Later we will begin the actual coding of the database.

  • Coding a binary tree1:30:15

    In this episode you will learn how to store data in memory. We will code a binary tree implementation which we'll later use as a basis for a hyper-efficient database. You will also improve your skills with regards to pointers, function pointers, macros and linked lists etc.

  • Coding a fast Redis database server2:54:05

    Redis claims to be "The world's fastest in-memory database", but we know we can do better, right? Watch me write a hopefully faster than Redis database server in C. This is a recorded live stream from the 21:st of June 2024.

  • Keep writing a faster-than-Redis DB server2:42:30

    Redis claims to be "The world's fastest in-memory database", but we know we can do better, right? Watch me write a hopefully faster than Redis database server in C. This is a recorded live stream.

  • Coding a Pretty-printer1:05:32

    n this episode you will learn how to code a pretty-printer. It's a feature that prints a "graphical" representation of your data structures on the screen. In our case our binary tree. In this episode you will learn pointers at an advanced level and also structures as well as troubleshooting memory problems. Enjoy.

  • A linear search algorithm1:51:46

    In this episode we finish our "naive" implementation of the tree, by coding the linear search and lookup functions. We then import a list of 70 000 English words and we create a leaf out of every one. They are put in folders like /a/b/c depending on the word's initial character. This will make it possible to do calculations of how fast it is, so we know what to optimize. Remember, our very serious goal is making this the fastest in the world.

  • Optimization: How fast is your code?1:38:59

    In this video you will learn the answer to the question: How fast is your code, really? Before you can do any kind of optimization, you will need to know that. And this episode gives you the tools. #programming #optimization

  • Coding a hash table from scratch1:26:20

    In this episode I'll explain and code our own hash table implementation. We write it from scratch in C without any external dependencies. This is a perfect way to learn about this amazing technology, when it comes to database performance.

  • Coding the inner database structure2:51:47

    In this series we code our own database from the ground up in C. This episode will focus on the inner structure of the database. How should we represent the data inside of the program's memory, for fast-access and to make it easier for us going forward. This is an episode of the series "Creating your own database server".   This episode is a live stream recording which has not been shown previously. #programming #advancedc #clanguage #database #server #sockets

  • More episodes release in feb 2025
  • Bonus episode52:40

Requirements

  • It is recommended to first do the beginner C course, and then this one.

Description

Coding a database server in C
High quality 1080p. This is a C programming course, "Create your own database server", including several regular videos and two live stream recordings. In this series you will learn how to design data structures and how to think when designing and coding a fast in-memory database server.

You will learn about Tcp network connections and parsing of Cli (command-line interface) commands. You will learn about linear searches, performance measuring, binary trees and hyper-optimized hash tables using different kinds of algorithms. You will also improve your knowledge in structs, linked lists, pointers and function pointers as well as the other advanced concepts of the C language.

List of video lessons of this course
00:00:00 Intro
00:00:41 Designing your own database
00:25:21 Coding a binary tree
01:55:37 Coding a fast Redis database server
04:49:42 Keep writing a faster-than-Redis DB server
07:32:13 Coding a Pretty-printer
08:37:46 A linear search algorithm

+ 3 new episodes

About the instructor
dr. Jonas Birch is one of the most popular Youtube stars when it comes to low-level programming languages such as C and Assembly. He's famous for creating calm videos, almost without any cuts so you will see the real story when it comes to programming. This includes mistakes, bugs and how to troubleshoot and fix them. Almost all his courses on Udemy is among the highest rated and after watching the free preview videos, you will probably understand why.

The source code for many of the projects is available at the code repo.

If you are a beginner at C you will get most out of this course if you first do the beginner C course. This is primarily a course for mid-level C coders who's done the beginner stuff and wants to take it to the next level and try out a real-world programming project. With that said, I do think you'll enjoy this either way - perhaps you just want to watch what is possible, and how the top guys write their code.

Check out the free preview videos - hours of free content. Then you can make an informed decision to purchase the course. Maybe even buy two, and give one as a birthday present :)

#advancedc, #cproject, #database, #sockets, #tutorial

Who this course is for:

  • This course is for mid-level C coders who wants to take it to the next level and try out a real project