< danieliu.xyz

I want to learn...


list of resources for a variety of topics - collected from my experiences

Programming Languages

C

Jacob Sorber's Youtube Channel - entire youtube channel dedicated to a variety of c concepts

C++

Cherno's cpp series - youtube playlist covering a bunch of cpp concepts, use this as more of a reference than a guide

cplusplus.com - my favourite site for cpp documentation

x86 assembly

Davy Wybiral - brief youtube playlist with some assembly programming basics, should get you started

Haskell

Learn YOu a Haskell for Great Good! - very detailed and well explained book on haskell

Haskell for Imperative Programmers series - youtube series on various haskell topics. goes very in-depth. might be better to use this one as a reference instead of watching every single video

Rust

rust has a bit of a learning curve, especially if you are not familiar with cpp.

Let's Get Rusty series - youtube playlist on a whole bunch of haskell concepts

r4cppp: rust for C++ programmers - exactly what it sounds like. if you are familiar with cpp, this will be a very great help

Zig

Zig Learn - Book style guide going through various language features

Rendering Libraries

OpenGL

Learn about OpenGL rendering concepts like primitives (VBs, IBs, VAOs), shaders (lighting, textures, maps), and some linear algebra concepts. Most resources use cpp.

learnopengl.com - solid website that walks you through OpenGL basics. you can easily get by by only following this

Cherno OpenGL series - youtube playlist tutorial about various OpenGL concepts. also focuses on optimizations and does some things in more efficient ways than learnopengl.com

docs.gl - OpenGL documentation (use as a reference)

Ncurses

Primarily focus on c.

NCURSES HOWTO - basic website based guide to walk through Ncurses basics. also covers a couple of ncurses libraries like the panel, menu and form libraries. also includes a couple of example projects

Casual Coder Ncurses series - youtube playlist that covers some ncurses fundamentals. this is good if you like video tutorials over text. also explains a couple of important concepts in good depth.

ncurses 3x - documentation for ncurses library (use as reference, and also in depth reading)

Xlib (rust)

Learn xlib programming with rust (the language i chose). Good luck with this one - xlib is huge and documentation is sparse. I had to scour the source code as documentation. To get started, you need rust bindings for xlib, i ended up using x11rb. My best advice for this is to read the source code for other projects that use x11rb to figure out what the heck is going on. It may perhaps be better to learn xlib first using c as there seems to be more resources.

x11rb tutorial - decent walkthrough of x11 basics. nothing much on extensions like render or xkb though

XFT but for XCB - font rendering concepts

Game Engine

Bevy

Rust game engine with ECS, built in renderer and a bunch of other cool features.

Logic Projects Youtube Channel - lots of awesome video tutorials on bevy (simple concepts, shaders, let's codes)

Unofficial Bevy Cheat Book - pretty great docs on general concepts

Here are also a couple great 3rd party libraries for bevy

bevy_rapier - physics library

kayak_ui - very cool macro system for making writing ui not a nightmare (early stages of development)

bevy_hanabi - particle system

bevy-inspector-egui - in game inspector

Projects

Window Manager

Create a window manager using rust and the x11rb crate.

xplain - series of in depth articles on how the X11 protocol works

How X Window Managers Work, And How To Write One - specifics on how a window manager works, and some cpp code to along with it. note that this tutorial uses Xlib whereas x11rb is based on xcb

x11rb simple window manager - an example project provided by x11rb

日本語

Wanikani - kanji learning site (it's paid, but you can do a free trial and see if you like, also great community forum)

Kaniwani - Wanikani, but quizzes English->Japanese instead (you just need a Wanikani account to use)

80/20 Japanese - lots of in depth articles on grammar (mostly particles)

Tae Kim - many articles covering a wide range of grammar points

Animelon - anime site with both Japanese and English subtitles (older anime only)

Jisho - Japanese dictionary

DeepL - pretty good translator

Bunpro - SRS for grammar, it's paid (and the site is a bit jank), but the idea is good

Genki - n5-n4 grammar textbook (some exercises are meant to be done in a group though, also comes with audio files)

Quartet - n3-n2 grammar textbook, it integrates all four skills into one lesson very nicely

日本語の森 - nice youtube channel with jlpt content