<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://library.mohammedefaz.com">
  <title>Mohammed Efaz</title>
  <link href="https://library.mohammedefaz.com/feed.xml" rel="self"/>
  <link href="https://library.mohammedefaz.com"/>
  <updated>2026-07-28T13:25:12Z</updated>
  <id>https://library.mohammedefaz.com</id><entry>
    <title>start-here</title>
    <updated>2026-07-28T13:24:53Z</updated>
    <id>https://library.mohammedefaz.com/roadmap/start-here/</id>
    <content type="html">&lt;h1 id=&quot;where-i-am-now&quot; tabindex=&quot;-1&quot;&gt;Where I am now&lt;/h1&gt;
&lt;p&gt;This is the page I need for ordinary study sessions. I can return to the &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/&quot; class=&quot;internal-link&quot;&gt;full route&lt;/a&gt;, the &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/library-audit/&quot; class=&quot;internal-link&quot;&gt;48-book audit&lt;/a&gt;, or the &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/principles/&quot; class=&quot;internal-link&quot;&gt;rules that keep the plan mine&lt;/a&gt; when I need the reasoning behind the next action.&lt;/p&gt;
&lt;h2 id=&quot;my-current-stage&quot; tabindex=&quot;-1&quot;&gt;My current stage&lt;/h2&gt;
&lt;p&gt;I am in &lt;strong&gt;Stage 1: C, shell, Python DSA, and Unix context&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&quot;1-c-programming-a-modern-approach-2nd-edition&quot; tabindex=&quot;-1&quot;&gt;1. C Programming: A Modern Approach, 2nd Edition&lt;/h3&gt;
&lt;p&gt;I am at &lt;strong&gt;Chapter 6: Loops&lt;/strong&gt;. I have implemented and verified all 12 Chapter 6 programming projects. My next job is to review the chapter&#39;s ideas and solve the exercises independently before I continue.&lt;/p&gt;
&lt;p&gt;While the book is teaching C99-compatible material, I will compile with strict warnings:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cc -std=c99 -Wall -Wextra -Wpedantic -g program.c -o program
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When pointers, arrays, or dynamic memory enter the work, I will use sanitizers:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cc -std=c99 -Wall -Wextra -Wpedantic -g &#92;
  -fsanitize=address,undefined program.c -o program
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Warnings are part of the lesson. I should be able to explain every one instead of silencing it and hoping for the best.&lt;/p&gt;
&lt;h3 id=&quot;2-the-linux-command-line-3rd-edition&quot; tabindex=&quot;-1&quot;&gt;2. The Linux Command Line, 3rd Edition&lt;/h3&gt;
&lt;p&gt;I will continue from the beginning or from my current bookmark. I need to type the commands rather than read them passively, and I will use a disposable practice directory while I learn.&lt;/p&gt;
&lt;p&gt;The shell is also where the C work becomes real. I will use it to compile, run, inspect, and debug the programmes from King.&lt;/p&gt;
&lt;h3 id=&quot;3-a-common-sense-guide-to-data-structures-and-algorithms-in-python-volume-1&quot; tabindex=&quot;-1&quot;&gt;3. A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1&lt;/h3&gt;
&lt;p&gt;I will continue from Chapter 1 or from my current bookmark. I will implement the important structures and algorithms in Python, test them, and state their time and space complexity.&lt;/p&gt;
&lt;p&gt;Learning C elsewhere does not mean I need to drag C&#39;s memory-management cost into DSA practice. Python remains my main DSA language.&lt;/p&gt;
&lt;h3 id=&quot;4-unix-a-history-and-a-memoir&quot; tabindex=&quot;-1&quot;&gt;4. UNIX: A History and a Memoir&lt;/h3&gt;
&lt;p&gt;This is the lighter book in the stage. I can read it whenever I want a change of pace. It does not need exercises, notes, or a project.&lt;/p&gt;
&lt;h2 id=&quot;my-next-session&quot; tabindex=&quot;-1&quot;&gt;My next session&lt;/h2&gt;
&lt;p&gt;If I sit down and do not know which book to open, I will do this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open King at Chapter 6.&lt;/li&gt;
&lt;li&gt;Choose 1 loop concept or exercise.&lt;/li&gt;
&lt;li&gt;Predict the programme&#39;s behaviour before compiling it.&lt;/li&gt;
&lt;li&gt;Implement it without looking at a finished answer.&lt;/li&gt;
&lt;li&gt;Compile with warnings enabled.&lt;/li&gt;
&lt;li&gt;Test normal, boundary, and invalid input where it matters.&lt;/li&gt;
&lt;li&gt;Explain the loop condition, the changing state, and the termination rule.&lt;/li&gt;
&lt;li&gt;Leave an exact section, page, or exercise marker for the next session.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If I need a change of pace, I can use &lt;em&gt;The Linux Command Line&lt;/em&gt; or DSA Volume 1. Difficulty in the current work is not a reason to escape into a future-stage book.&lt;/p&gt;
&lt;h2 id=&quot;the-study-loop&quot; tabindex=&quot;-1&quot;&gt;The study loop&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;read -&amp;gt; predict -&amp;gt; implement -&amp;gt; compile/run -&amp;gt; test -&amp;gt; inspect -&amp;gt; explain -&amp;gt; continue
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Read:&lt;/strong&gt; I need the explanation before I start copying syntax.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Predict:&lt;/strong&gt; I should decide what I expect before the compiler gives me an answer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Implement:&lt;/strong&gt; I turn the prose into a programme, command, or experiment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compile and run:&lt;/strong&gt; I expose syntax, type, and environment problems.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test:&lt;/strong&gt; I check more than the sample input.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Inspect:&lt;/strong&gt; Later this will include debuggers, sanitizers, traces, disassembly, profilers, and hardware registers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Explain:&lt;/strong&gt; I make sure the success was not accidental.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continue:&lt;/strong&gt; I leave a precise marker so the next session starts cleanly.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-completion-means&quot; tabindex=&quot;-1&quot;&gt;What completion means&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For a textbook, I will read the main teaching material, run useful examples, and do enough exercises to use the ideas independently.&lt;/li&gt;
&lt;li&gt;For a project book, I will build the projects and make small changes of my own.&lt;/li&gt;
&lt;li&gt;For a pocket guide or manual, I will make a structured pass, try unfamiliar material, and keep it for lookup.&lt;/li&gt;
&lt;li&gt;For a security book, I will work only inside systems I own or have explicit permission to test.&lt;/li&gt;
&lt;li&gt;For a memoir, I will read it normally.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I do not need to complete exercises that repeat an idea I already understand, create elaborate notes, or manufacture proof that I studied. I should not skip an exercise or project that introduces something new.&lt;/p&gt;
&lt;h2 id=&quot;when-i-can-leave-stage-1&quot; tabindex=&quot;-1&quot;&gt;When I can leave Stage 1&lt;/h2&gt;
&lt;p&gt;I will move to Stage 2 when all of these are true:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I have completed King&#39;s main teaching material from my current position and the non-repetitive projects that introduce new ideas.&lt;/li&gt;
&lt;li&gt;I can write, compile, test, and debug small multi-file C programmes from the terminal without copying a template.&lt;/li&gt;
&lt;li&gt;I am comfortable with control flow, functions, arrays, pointers, strings, structures, files, scope, storage duration, and the common undefined behaviour covered by King.&lt;/li&gt;
&lt;li&gt;I have worked through &lt;em&gt;The Linux Command Line&lt;/em&gt; and used the commands rather than only reading them.&lt;/li&gt;
&lt;li&gt;I have finished DSA Volume 1 with working Python implementations of its central structures and algorithms.&lt;/li&gt;
&lt;li&gt;I have finished the Unix memoir.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;when-something-blocks-me&quot; tabindex=&quot;-1&quot;&gt;When something blocks me&lt;/h2&gt;
&lt;p&gt;I will give the blocker 1 focused attempt and preserve the exact error message. If it remains unresolved, I can switch to another current-stage book and return later. I will not lose days installing an environment for work that belongs several stages ahead.&lt;/p&gt;
&lt;p&gt;Kernel, embedded, Kali lab, CUDA, and model-performance environments can wait until I reach them.&lt;/p&gt;
</content>
    <link href="https://library.mohammedefaz.com/roadmap/start-here/"/>
  </entry><entry>
    <title>principles</title>
    <updated>2026-07-28T13:24:53Z</updated>
    <id>https://library.mohammedefaz.com/roadmap/principles/</id>
    <content type="html">&lt;h1 id=&quot;rules-that-keep-this-roadmap-mine&quot; tabindex=&quot;-1&quot;&gt;Rules that keep this roadmap mine&lt;/h1&gt;
&lt;p&gt;This file protects the decisions I made while researching the roadmap. Anyone changing the curriculum, including a future version of me, needs to read it first.&lt;/p&gt;
&lt;h2 id=&quot;what-i-am-trying-to-build&quot; tabindex=&quot;-1&quot;&gt;What I am trying to build&lt;/h2&gt;
&lt;p&gt;I want deep practical ability across:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C and modern C&lt;/li&gt;
&lt;li&gt;Python data structures, algorithms, and LeetCode&lt;/li&gt;
&lt;li&gt;Linux command-line use, shell scripting, internals, system programming, and kernel programming&lt;/li&gt;
&lt;li&gt;modern C++ and asynchronous systems&lt;/li&gt;
&lt;li&gt;bare-metal embedded C&lt;/li&gt;
&lt;li&gt;Kali Linux, ethical hacking, and Linux hardening&lt;/li&gt;
&lt;li&gt;machine learning and deep learning&lt;/li&gt;
&lt;li&gt;LLM construction&lt;/li&gt;
&lt;li&gt;CUDA, GPU-kernel work, and AI inference and performance engineering&lt;/li&gt;
&lt;li&gt;reasoning models, reinforcement learning, and RLHF&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Finishing books is not the goal by itself. I want competence backed by implementation, testing, debugging, profiling, and real lab work.&lt;/p&gt;
&lt;h2 id=&quot;the-choices-i-do-not-want-quietly-reversed&quot; tabindex=&quot;-1&quot;&gt;The choices I do not want quietly reversed&lt;/h2&gt;
&lt;h3 id=&quot;1-teaching-style-matters-to-me&quot; tabindex=&quot;-1&quot;&gt;1. Teaching style matters to me&lt;/h3&gt;
&lt;p&gt;I learn best from clear, progressive, practical books with explanations, examples, exercises, and projects. K. N. King&#39;s &lt;em&gt;C Programming: A Modern Approach&lt;/em&gt; is the closest model for what works for me.&lt;/p&gt;
&lt;p&gt;Prestige does not cancel fit. If I dislike the way a famous book teaches, I am not going to make it mandatory because other people treat it as a rite of passage.&lt;/p&gt;
&lt;h3 id=&quot;2-computer-systems-a-programmer-s-perspective-is-not-mandatory&quot; tabindex=&quot;-1&quot;&gt;2. Computer Systems: A Programmer&#39;s Perspective is not mandatory&lt;/h3&gt;
&lt;p&gt;I dislike the presentation style of &lt;em&gt;Computer Systems: A Programmer&#39;s Perspective&lt;/em&gt;, and I do not intend to use it as a core textbook.&lt;/p&gt;
&lt;p&gt;It must not return as a gate for Stage 3, Linux, C++, kernel work, CUDA, or performance engineering. It remains in the library inventory as an unselected book. I accept that leaving it out creates a gap in formal computer-architecture coverage unless I later choose a different resource.&lt;/p&gt;
&lt;h3 id=&quot;3-python-is-my-main-dsa-and-leet-code-language&quot; tabindex=&quot;-1&quot;&gt;3. Python is my main DSA and LeetCode language&lt;/h3&gt;
&lt;p&gt;My DSA route is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;LeetCode 75 in Python&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;C is my main systems language, but that does not mean every subject needs to be learnt through C. I chose Python for DSA so I can focus on the algorithms without mixing in manual memory management.&lt;/p&gt;
&lt;h3 id=&quot;4-algorithmic-thinking-is-optional&quot; tabindex=&quot;-1&quot;&gt;4. Algorithmic Thinking is optional&lt;/h3&gt;
&lt;p&gt;I may read &lt;em&gt;Algorithmic Thinking, 2nd Edition&lt;/em&gt; after Stage 2 if I want more C-based problem-solving practice.&lt;/p&gt;
&lt;p&gt;It is not my main DSA book, a stage requirement, a replacement for the 2 Wengrow volumes, or a blocker for Stage 3. I rejected it as the primary text because its selective, problem-first structure does not match the way I want to learn the subject.&lt;/p&gt;
&lt;h3 id=&quot;5-owning-a-book-does-not-make-it-part-of-the-plan&quot; tabindex=&quot;-1&quot;&gt;5. Owning a book does not make it part of the plan&lt;/h3&gt;
&lt;p&gt;My Calibre library is a pool of candidates. I choose from it based on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;relevance to the goal,&lt;/li&gt;
&lt;li&gt;prerequisite order,&lt;/li&gt;
&lt;li&gt;teaching-style fit,&lt;/li&gt;
&lt;li&gt;unique value,&lt;/li&gt;
&lt;li&gt;overlap,&lt;/li&gt;
&lt;li&gt;and whether I am likely to finish the book and practise what it teaches.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I do not need to force every computer-science title I own into the default route.&lt;/p&gt;
&lt;h3 id=&quot;6-security-and-reasoning-stay-in-the-main-roadmap&quot; tabindex=&quot;-1&quot;&gt;6. Security and reasoning stay in the main roadmap&lt;/h3&gt;
&lt;p&gt;I want both offensive and defensive Linux security. I also want reasoning-model and post-training work.&lt;/p&gt;
&lt;p&gt;I will not push either subject into an optional list merely to reach CUDA or inference performance sooner.&lt;/p&gt;
&lt;h3 id=&quot;7-i-keep-1-roadmap&quot; tabindex=&quot;-1&quot;&gt;7. I keep 1 roadmap&lt;/h3&gt;
&lt;p&gt;This repository contains 1 default curriculum. Git preserves older versions, so parallel active and archived roadmap folders only create confusion.&lt;/p&gt;
&lt;p&gt;I will not create another competing roadmap directory unless I deliberately decide that I need one.&lt;/p&gt;
&lt;h3 id=&quot;8-i-do-not-need-artificial-lanes&quot; tabindex=&quot;-1&quot;&gt;8. I do not need artificial lanes&lt;/h3&gt;
&lt;p&gt;Inside the current stage, I can work through 2 or 3 books and choose based on my energy. The stage order protects the prerequisites, but I do not need permanent lanes, percentage splits, daily page quotas, or equal-progress rules.&lt;/p&gt;
&lt;h3 id=&quot;9-different-books-need-different-reading-modes&quot; tabindex=&quot;-1&quot;&gt;9. Different books need different reading modes&lt;/h3&gt;
&lt;p&gt;I will not force every resource into cover-to-cover reading.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I will follow the main teaching sequence and practise when I use a textbook.&lt;/li&gt;
&lt;li&gt;I will build the projects when I use a project book.&lt;/li&gt;
&lt;li&gt;I will make a structured pass through manuals and pocket guides, then keep them for lookup.&lt;/li&gt;
&lt;li&gt;I will read lighter narrative books normally.&lt;/li&gt;
&lt;li&gt;I will leave advanced research texts until I have the stated prerequisites.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;10-new-books-need-a-reason&quot; tabindex=&quot;-1&quot;&gt;10. New books need a reason&lt;/h3&gt;
&lt;p&gt;If I find a real gap later, I can add a resource. Before I do, I need to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;name the missing capability,&lt;/li&gt;
&lt;li&gt;show why the current library does not cover it,&lt;/li&gt;
&lt;li&gt;propose the smallest useful addition,&lt;/li&gt;
&lt;li&gt;check the latest edition,&lt;/li&gt;
&lt;li&gt;and make a deliberate decision rather than adding it on impulse.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;11-this-repository-is-only-for-the-learning-plan&quot; tabindex=&quot;-1&quot;&gt;11. This repository is only for the learning plan&lt;/h3&gt;
&lt;p&gt;This repository holds the learning journey, curriculum, library decisions, practice rules, and current position. Content production, branding, publishing plans, and unrelated project management belong elsewhere.&lt;/p&gt;
&lt;h2 id=&quot;my-verified-position&quot; tabindex=&quot;-1&quot;&gt;My verified position&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Active stage: Stage 1.&lt;/li&gt;
&lt;li&gt;Active anchor: &lt;em&gt;C Programming: A Modern Approach, 2nd Edition&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Current position: Chapter 6, Loops.&lt;/li&gt;
&lt;li&gt;Completed work: all 12 Chapter 6 programming projects are implemented and verified.&lt;/li&gt;
&lt;li&gt;Current companion: &lt;em&gt;The Linux Command Line, 3rd Edition&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Current DSA book: Wengrow Volume 1 in Python.&lt;/li&gt;
&lt;li&gt;Lighter reading: &lt;em&gt;UNIX: A History and a Memoir&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;checklist-before-i-change-the-route&quot; tabindex=&quot;-1&quot;&gt;Checklist before I change the route&lt;/h2&gt;
&lt;ul class=&quot;task-list&quot;&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_0&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_0&quot;&gt; I read this file.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_1&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_1&quot;&gt; I did not treat book ownership as a requirement.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_2&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_2&quot;&gt; I kept Python as my main DSA and LeetCode language.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_3&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_3&quot;&gt; I did not make &lt;em&gt;Algorithmic Thinking&lt;/em&gt; mandatory.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_4&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_4&quot;&gt; I did not make CS:APP mandatory.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_5&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_5&quot;&gt; I kept security and reasoning-model work in the default route unless I changed the goal itself.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_6&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_6&quot;&gt; I kept unrelated content-production work outside this repository.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_7&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_7&quot;&gt; I explained every changed prerequisite or book decision.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_8&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_8&quot;&gt; I checked the current edition of every new recommendation.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_9&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_9&quot;&gt; I updated &lt;code&gt;START_HERE.md&lt;/code&gt;, &lt;code&gt;CURRICULUM.md&lt;/code&gt;, &lt;code&gt;LIBRARY_INVENTORY.md&lt;/code&gt;, and &lt;code&gt;README.md&lt;/code&gt; together.&lt;/label&gt;&lt;/li&gt;
&lt;li class=&quot;task-list-item&quot;&gt;&lt;input type=&quot;checkbox&quot; id=&quot;cbx_10&quot; disabled=&quot;true&quot; /&gt;&lt;label for=&quot;cbx_10&quot;&gt; I recorded the change in Git.&lt;/label&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-principle-behind-the-plan&quot; tabindex=&quot;-1&quot;&gt;The principle behind the plan&lt;/h2&gt;
&lt;p&gt;I am not trying to assemble the most academically impressive reading list. I am trying to build the most rigorous route I can sustain, practise, and finish.&lt;/p&gt;
</content>
    <link href="https://library.mohammedefaz.com/roadmap/principles/"/>
  </entry><entry>
    <title>overview</title>
    <updated>2026-07-28T13:24:53Z</updated>
    <id>https://library.mohammedefaz.com/roadmap/</id>
    <content type="html">&lt;h1 id=&quot;my-learning-roadmap&quot; tabindex=&quot;-1&quot;&gt;My learning roadmap&lt;/h1&gt;
&lt;p&gt;This is the route I am following. It came from comparing 2 earlier roadmaps, auditing 48 books in my library, and ordering the subjects by dependency. The &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/principles/&quot; class=&quot;internal-link&quot;&gt;rules that keep this roadmap mine&lt;/a&gt; protect the decisions that must survive future revisions.&lt;/p&gt;
&lt;h2 id=&quot;the-rule&quot; tabindex=&quot;-1&quot;&gt;The rule&lt;/h2&gt;
&lt;p&gt;I finish the current stage before moving to the next. Inside that stage, I can keep 2 or 3 books active and choose the one that suits my energy.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;read → predict → implement → run → test → inspect → explain → continue
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Implementation, debugging, testing, and measurement matter more than finishing pages quickly.&lt;/p&gt;
&lt;h2 id=&quot;where-i-am-now&quot; tabindex=&quot;-1&quot;&gt;Where I am now&lt;/h2&gt;
&lt;p&gt;I am in Stage 1 at Chapter 6 of K. N. King&#39;s C book. I have completed its 12 programming projects and will review the chapter before solving its exercises independently. The &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/start-here/&quot; class=&quot;internal-link&quot;&gt;current position page&lt;/a&gt; records the next concrete actions.&lt;/p&gt;
&lt;h2 id=&quot;the-route&quot; tabindex=&quot;-1&quot;&gt;The route&lt;/h2&gt;
&lt;pre class=&quot;mermaid&quot;&gt;flowchart LR
    subgraph foundations[&quot;Foundations&quot;]
        direction TB
        s1[&quot;1. C, shell, Python DSA&quot;] --&gt; s2[&quot;2. Repeated building&quot;]
        s2 --&gt; s3[&quot;3. Modern C and Linux internals&quot;]
    end

    subgraph systems[&quot;Systems&quot;]
        direction TB
        s4[&quot;4. C++ and Linux APIs&quot;] --&gt; s5[&quot;5. Larger programs and deeper APIs&quot;]
        s5 --&gt; s6[&quot;6. Memory, kernel, embedded&quot;]
        s6 --&gt; s7[&quot;7. Larger C++ systems&quot;]
        s7 --&gt; s8[&quot;8. Linux security&quot;]
    end

    subgraph ai[&quot;ML and AI&quot;]
        direction TB
        s9[&quot;9. ML and deep learning foundations&quot;] --&gt; s10[&quot;10. Build an LLM&quot;]
        s10 --&gt; s11[&quot;11. Native ML and CUDA&quot;]
        s11 --&gt; s12[&quot;12. AI performance&quot;]
        s12 --&gt; s13[&quot;13. Reasoning and post training&quot;]
    end

    s3 --&gt; s4
    s8 --&gt; s9&lt;/pre&gt;&lt;h2 id=&quot;stage-1-c-shell-python-dsa-and-unix-context&quot; tabindex=&quot;-1&quot;&gt;Stage 1: C, shell, Python DSA, and Unix context&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;C Programming: A Modern Approach&lt;/em&gt;; &lt;em&gt;The Linux Command Line&lt;/em&gt;; &lt;em&gt;A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1&lt;/em&gt;; &lt;em&gt;UNIX: A History and a Memoir&lt;/em&gt; as a light companion.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Small multi file C programs built and debugged from the terminal, comfortable shell use, and working Python implementations of the main Volume 1 structures and algorithms.&lt;/p&gt;
&lt;h2 id=&quot;stage-2-repeated-building-in-c-shell-and-python-dsa&quot; tabindex=&quot;-1&quot;&gt;Stage 2: Repeated building in C, shell, and Python DSA&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Tiny C Projects&lt;/em&gt;; &lt;em&gt;The Ultimate Linux Shell Scripting Guide&lt;/em&gt;; &lt;em&gt;A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Repeated C project work, useful shell automation, advanced Python DSA implementations, matching practice problems, and LeetCode 75 in Python.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Algorithmic Thinking&lt;/em&gt; is optional after this stage and never blocks Stage 3.&lt;/p&gt;
&lt;h2 id=&quot;stage-3-modern-c-and-linux-internals&quot; tabindex=&quot;-1&quot;&gt;Stage 3: Modern C and Linux internals&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Modern C, 3rd Edition&lt;/em&gt;; &lt;em&gt;How Linux Works, 3rd Edition&lt;/em&gt;; &lt;em&gt;Linux Pocket Guide, 4th Edition&lt;/em&gt; as a structured reference.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; An explanation of the important changes through C23 and a practical understanding of Linux boot, devices, processes, filesystems, services, libraries, networking, and virtualisation.&lt;/p&gt;
&lt;h2 id=&quot;stage-4-modern-c-linux-userspace-ap-is-and-security-oriented-linux&quot; tabindex=&quot;-1&quot;&gt;Stage 4: Modern C++, Linux userspace APIs, and security oriented Linux&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Introducing C++&lt;/em&gt;; &lt;em&gt;Linux System Programming, 2nd Edition&lt;/em&gt;; &lt;em&gt;Linux Basics for Hackers, 2nd Edition&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; A normal multi file modern C++ program, tutorial level use of the main Linux userspace APIs, and security oriented Linux operation.&lt;/p&gt;
&lt;h2 id=&quot;stage-5-c-projects-deep-linux-ap-is-and-kali-methodology&quot; tabindex=&quot;-1&quot;&gt;Stage 5: C++ projects, deep Linux APIs, and Kali methodology&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Learn C++ by Example&lt;/em&gt;; &lt;em&gt;The Linux Programming Interface&lt;/em&gt;; &lt;em&gt;Learning Kali Linux, 2nd Edition&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Practical C++ projects, deeper Linux systems programs, and a documented introductory security assessment inside an isolated lab.&lt;/p&gt;
&lt;h2 id=&quot;stage-6-memory-kernel-programming-and-bare-metal-execution&quot; tabindex=&quot;-1&quot;&gt;Stage 6: Memory, kernel programming, and bare metal execution&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;C++ Memory Management&lt;/em&gt;; &lt;em&gt;Linux Kernel Programming, 2nd Edition&lt;/em&gt;; &lt;em&gt;Bare-Metal Embedded C Programming&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Clear reasoning about lifetime and allocation, basic kernel modules tested in a recoverable VM, and a small embedded program brought from reset to peripheral operation.&lt;/p&gt;
&lt;h2 id=&quot;stage-7-larger-and-asynchronous-c-systems&quot; tabindex=&quot;-1&quot;&gt;Stage 7: Larger and asynchronous C++ systems&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;C++ Software Design&lt;/em&gt;; &lt;em&gt;Asynchronous Programming with C++&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; A medium sized C++ application with clear ownership, useful abstractions, asynchronous behaviour, tests, sanitizers, cancellation, and clean shutdown.&lt;/p&gt;
&lt;h2 id=&quot;stage-8-offensive-and-defensive-linux-security&quot; tabindex=&quot;-1&quot;&gt;Stage 8: Offensive and defensive Linux security&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;The Ultimate Kali Linux Book, 3rd Edition&lt;/em&gt;; &lt;em&gt;Mastering Linux Security and Hardening, 3rd Edition&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; A permission based lab workflow for finding Linux weaknesses and a matching ability to harden, monitor, and recover systems.&lt;/p&gt;
&lt;h2 id=&quot;stage-9-practical-machine-learning-statistics-and-deep-learning&quot; tabindex=&quot;-1&quot;&gt;Stage 9: Practical machine learning, statistics, and deep learning&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Machine Learning with PyTorch and Scikit-Learn&lt;/em&gt; as the main practical text; &lt;em&gt;Understanding Deep Learning&lt;/em&gt; for theory; &lt;em&gt;Statistics Every Programmer Needs&lt;/em&gt; for mathematical support; &lt;em&gt;Why Machines Learn&lt;/em&gt; as an intuition companion; &lt;em&gt;The Little Book of Deep Learning&lt;/em&gt; as a compact reference.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Sound ML experiments, correct validation and metrics, trained and inspected neural networks, and the ability to diagnose basic statistical, modelling, and implementation failures.&lt;/p&gt;
&lt;h2 id=&quot;stage-10-build-a-large-language-model-from-scratch&quot; tabindex=&quot;-1&quot;&gt;Stage 10: Build a large language model from scratch&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Book:&lt;/strong&gt; &lt;em&gt;Build a Large Language Model (From Scratch)&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; A small working tokenizer, transformer, training loop, checkpoint path, evaluation path, and fine tuning path that I can explain rather than treat as a sealed system.&lt;/p&gt;
&lt;h2 id=&quot;stage-11-native-ml-cuda-and-gpu-performance&quot; tabindex=&quot;-1&quot;&gt;Stage 11: Native ML, CUDA, and GPU performance&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Hands-On Machine Learning with C++, 2nd Edition&lt;/em&gt;; &lt;em&gt;CUDA Programming Guide, Release 13.3&lt;/em&gt;; &lt;em&gt;Understanding Latency Hiding on GPUs&lt;/em&gt; after basic profiling experience.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Correct and profiled implementations of vector operations, reductions, scans, tiled matrix multiplication, convolution, softmax, layer normalisation, and 1 fused operation. Every optimisation must start from a verified baseline and end with a new measurement.&lt;/p&gt;
&lt;h2 id=&quot;stage-12-ai-systems-performance-engineering&quot; tabindex=&quot;-1&quot;&gt;Stage 12: AI systems performance engineering&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Book:&lt;/strong&gt; &lt;em&gt;AI Systems Performance Engineering&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; One model profiled across Python, framework, compiler, runtime, CPU, GPU, memory, batching, caching, quantisation, serving, and distributed layers, plus at least 1 native C++ and CUDA extension or equivalent custom operator.&lt;/p&gt;
&lt;h2 id=&quot;stage-13-reasoning-models-reinforcement-learning-and-rlhf&quot; tabindex=&quot;-1&quot;&gt;Stage 13: Reasoning models, reinforcement learning, and RLHF&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Books:&lt;/strong&gt; &lt;em&gt;Mathematical Foundations of Reinforcement Learning&lt;/em&gt;; &lt;em&gt;Build a Reasoning Model (From Scratch)&lt;/em&gt;; &lt;em&gt;Reinforcement Learning from Human Feedback&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Finish with:&lt;/strong&gt; Small scale reasoning and post training experiments covering evaluation, inference time scaling, verification, search, reward modelling, policy optimisation, distillation, preference data, and RLHF.&lt;/p&gt;
&lt;h2 id=&quot;decisions-i-do-not-need-to-reopen&quot; tabindex=&quot;-1&quot;&gt;Decisions I do not need to reopen&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Python remains the main DSA language.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Computer Systems: A Programmer&#39;s Perspective&lt;/em&gt; is not selected because its teaching style does not work for me.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Algorithmic Thinking&lt;/em&gt; remains optional.&lt;/li&gt;
&lt;li&gt;Rust and database books remain outside the current goal.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/library-audit/&quot; class=&quot;internal-link&quot;&gt;complete 48 book audit&lt;/a&gt; contains the detailed evidence and every other selection decision.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;expected-duration&quot; tabindex=&quot;-1&quot;&gt;Expected duration&lt;/h2&gt;
&lt;p&gt;The route represents roughly 2,500 to 4,000 productive hours. A strong working foundation may take 15 to 24 months with near full time study or 3 to 5 years with serious part time study. Tools are installed only when their stage begins.&lt;/p&gt;
</content>
    <link href="https://library.mohammedefaz.com/roadmap/"/>
  </entry><entry>
    <title>library-audit</title>
    <updated>2026-07-28T13:24:53Z</updated>
    <id>https://library.mohammedefaz.com/roadmap/library-audit/</id>
    <content type="html">&lt;h1 id=&quot;the-48-book-audit-behind-my-roadmap&quot; tabindex=&quot;-1&quot;&gt;The 48-book audit behind my roadmap&lt;/h1&gt;
&lt;p&gt;I did not want the roadmap to become a list of every technical book I had collected. I audited all 48 relevant candidates in my Calibre library and gave each one a job, an optional place, or a reason to stay outside the route.&lt;/p&gt;
&lt;h2 id=&quot;the-result&quot; tabindex=&quot;-1&quot;&gt;The result&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Calibre library root: &lt;code&gt;~/Documents/pkm/02_Areas/Calibre Library&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Calibre database: &lt;code&gt;~/Documents/pkm/02_Areas/Calibre Library/metadata.db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Books and manuals audited: &lt;strong&gt;48&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Selected for the default route: &lt;strong&gt;36&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Optional reads: &lt;strong&gt;1&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Not selected: &lt;strong&gt;11&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These counts describe fit. They are not ratings of the books.&lt;/p&gt;
&lt;h2 id=&quot;how-i-made-the-choices&quot; tabindex=&quot;-1&quot;&gt;How I made the choices&lt;/h2&gt;
&lt;p&gt;I considered the goal, the prerequisite order, the teaching style, the book&#39;s unique value, its overlap with the rest of the route, and whether I was likely to finish it and use what it taught.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/principles/&quot; class=&quot;internal-link&quot;&gt;rules that keep this roadmap mine&lt;/a&gt; protect the choices that matter most.&lt;/p&gt;
&lt;h2 id=&quot;what-the-labels-mean&quot; tabindex=&quot;-1&quot;&gt;What the labels mean&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default, Stage N:&lt;/strong&gt; I selected it for a specific stage in the roadmap.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Default, reference or light:&lt;/strong&gt; I selected it, but I will not treat it as a full technical textbook.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional read:&lt;/strong&gt; I may read it, but it cannot block the next stage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not selected:&lt;/strong&gt; It remains in Calibre but is outside the default route.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-complete-inventory&quot; tabindex=&quot;-1&quot;&gt;The complete inventory&lt;/h2&gt;
&lt;div class=&quot;table-scroll&quot; role=&quot;region&quot; aria-label=&quot;Scrollable table&quot; tabindex=&quot;0&quot;&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Book&lt;/th&gt;
&lt;th&gt;Author&lt;/th&gt;
&lt;th&gt;My decision&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;th&gt;Formats&lt;/th&gt;
&lt;th&gt;Calibre record directory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;AI Systems Performance Engineering&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Chris Fregly&lt;/td&gt;
&lt;td&gt;Default, Stage 12&lt;/td&gt;
&lt;td&gt;I will use it as the full-stack performance capstone after ML, C++, and CUDA&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Chris Fregly/AI Systems Performance Engineering (361)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Algorithmic Thinking, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Daniel Zingaro&lt;/td&gt;
&lt;td&gt;Optional after Stage 2&lt;/td&gt;
&lt;td&gt;I may use it for extra C problem practice, but its selective structure does not replace my Python DSA route&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Daniel Zingaro/Algorithmic Thinking, 2nd Edition (330)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Algorithms, 4th Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Robert Sedgewick and Kevin Wayne&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;It is a strong book, but the Java approach overlaps with the Python DSA sequence I prefer&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Robert Sedgewick, Kevin Wayne/Algorithms, 4th Edition (332)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Asynchronous Programming with C++&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Javier Reguera-Salgado and Juan Antonio Rufes&lt;/td&gt;
&lt;td&gt;Default, Stage 7&lt;/td&gt;
&lt;td&gt;I need practical work with concurrency, futures, promises, coroutines, and asynchronous systems&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Javier Reguera-Salgado, Juan Antonio Rufes/Asynchronous Programming with C__ (360)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Bare-Metal Embedded C Programming&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Israel Gbati&lt;/td&gt;
&lt;td&gt;Default, Stage 6&lt;/td&gt;
&lt;td&gt;It gives me practical hardware-near C through registers, startup code, interrupts, and peripherals&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Israel Gbati/Bare-Metal Embedded C Programming (366)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Build a Large Language Model (From Scratch)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Sebastian Raschka&lt;/td&gt;
&lt;td&gt;Default, Stage 10&lt;/td&gt;
&lt;td&gt;I will implement the tokenizer, attention, transformer, training, and fine-tuning path myself&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Sebastian Raschka/Build a Large Language Model (From Scratch) (327)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Build a Reasoning Model (From Scratch)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Sebastian Raschka&lt;/td&gt;
&lt;td&gt;Default, Stage 13&lt;/td&gt;
&lt;td&gt;It gives the roadmap an applied endpoint in evaluation, inference-time scaling, RL, and distillation&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Sebastian Raschka/Build a Reasoning Model (From Scratch) (328)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;C Programming: A Modern Approach, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;K. N. King&lt;/td&gt;
&lt;td&gt;Default, Stage 1&lt;/td&gt;
&lt;td&gt;This is my main C foundation and the clearest example of the teaching style that works for me&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;K. N. King/C Programming (Second Edition) (323)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;C++ Memory Management&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Patrice Roy&lt;/td&gt;
&lt;td&gt;Default, Stage 6&lt;/td&gt;
&lt;td&gt;I want a deeper treatment of lifetime, ownership, allocation, RAII, arenas, and allocators&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Patrice Roy/C__ Memory Management (367)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;C++ Software Design&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Klaus Iglberger&lt;/td&gt;
&lt;td&gt;Default, Stage 7&lt;/td&gt;
&lt;td&gt;I will use its design ideas after I have real C++ projects to apply them to&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Klaus Iglberger/C__ Software Design (365)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Computer Systems: A Programmer&#39;s Perspective, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Randal E. Bryant and David R. O&#39;Hallaron&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;I dislike its textbook style, so I will not turn it into a mandatory Stage 3 gate&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Randal E. Bryant/Computer Systems_ A Programmer&#39;s Perspective (331)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;CUDA Programming Guide, Release 13.3&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;NVIDIA Corporation&lt;/td&gt;
&lt;td&gt;Default, Stage 11&lt;/td&gt;
&lt;td&gt;I need the authoritative CUDA programming model and a reference I can return to while profiling&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;NVIDIA Corporation/CUDA Programming Guide (329)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Data Structures and Algorithms in Python&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Michael T. Goodrich, Roberto Tamassia, and Michael H. Goldwasser&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;It is broad but more textbook-like than I want, and it repeats the role of the Wengrow sequence&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser/Data Structures and Algorithms in Python (333)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Domain-Specific Small Language Models&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Guglielmo Iozzia&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;It is a narrow later specialisation, and the local record appears to be a personalised or prerelease copy&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Guglielmo Iozzia/Domain-Specific Small Language Models (for Catie Robert) (398)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Grokking Relational Database Design&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Qiang Hao and Michail Tsikerdekis&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;Database design is useful, but it sits outside the goal of this roadmap&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Qiang Hao, Michail Tsikerdekis/Grokking Relational Database Design (400)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Hacking and Security: The Comprehensive Guide to Penetration Testing and Cybersecurity&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Michael Kofler and collaborators&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;I chose focused Kali and Linux-hardening books instead of another broad security reference&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Michael Kofler, Klaus Gebeshuber, Peter Kloep, Frank Neugebauer, Andre Zingsheim, Thomas Hackne/Hacking and Security_ The Comprehensive Guide to Penetration Testing and Cybersecurity (349)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Hands-On Machine Learning with C++, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Kirill Kolodiazhnyi&lt;/td&gt;
&lt;td&gt;Default, Stage 11, selective&lt;/td&gt;
&lt;td&gt;I will use it as a native C++ bridge after Python ML, with attention on runtime and deployment boundaries&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Kirill Kolodiazhnyi/Hands-On Machine Learning with C__ (363)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;How Linux Works, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Brian Ward&lt;/td&gt;
&lt;td&gt;Default, Stage 3&lt;/td&gt;
&lt;td&gt;This is the readable Linux-internals book at the centre of Stage 3&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Brian Ward/How Linux Works, 3rd Edition (353)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Introducing C++&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Frances Buontempo&lt;/td&gt;
&lt;td&gt;Default, Stage 4&lt;/td&gt;
&lt;td&gt;It is a current modern C++ introduction and the bridge I need before CUDA and runtime work&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Frances Buontempo/Introducing C__ (356)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Just Use Postgres!: All the Database You Need&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Denis Magda&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;Database specialisation is outside the present goal&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Denis Magda/Just Use Postgres!_ All the Database You Need (401)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Learn C++ by Example&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Frances Buontempo&lt;/td&gt;
&lt;td&gt;Default, Stage 5&lt;/td&gt;
&lt;td&gt;I want guided project practice after the C++ introduction&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Frances Buontempo/Learn C__ by Example (362)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Learning Kali Linux, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Ric Messier&lt;/td&gt;
&lt;td&gt;Default, Stage 5&lt;/td&gt;
&lt;td&gt;It adds testing methodology, analysis, vulnerability work, evidence, and reporting&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Ric Messier/Learning Kali Linux (357)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Linux Basics for Hackers, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;OccupyTheWeb&lt;/td&gt;
&lt;td&gt;Default, Stage 4&lt;/td&gt;
&lt;td&gt;It gives me a beginner-friendly transition from ordinary Linux into security-oriented Linux and Kali&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;OccupyTheWeb/Linux Basics for Hackers, 2nd Edition_ Getting Started with Networking, Scripting, and Security (348)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Linux Kernel Programming, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Kaiwan N. Billimoria&lt;/td&gt;
&lt;td&gt;Default, Stage 6&lt;/td&gt;
&lt;td&gt;I want practical work with kernel builds, modules, tasks, memory, scheduling, and synchronisation&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Kaiwan N. Billimoria/Linux Kernel Programming, Second Edition (359)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Linux Pocket Guide, 4th Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Daniel J. Barrett&lt;/td&gt;
&lt;td&gt;Default, Stage 3 reference&lt;/td&gt;
&lt;td&gt;I will use it for a structured command survey and keep it as a permanent lookup resource&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Daniel J. Barrett/Linux Pocket Guide (358)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Linux System Programming, 2nd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Robert Love&lt;/td&gt;
&lt;td&gt;Default, Stage 4&lt;/td&gt;
&lt;td&gt;It gives me a concise first tutorial before I take on the deeper TLPI treatment&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Robert Love/Linux System Programming, 2nd Edition (354)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Linux: The Comprehensive Guide&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Michael Kofler&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;It overlaps heavily with Shotts, Ward, Love, TLPI, shell scripting, and the selected security books&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Michael Kofler/Linux_ The Comprehensive Guide (336)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Machine Learning with PyTorch and Scikit-Learn&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Sebastian Raschka, Yuxi Liu, and Vahid Mirjalili&lt;/td&gt;
&lt;td&gt;Default, Stage 9&lt;/td&gt;
&lt;td&gt;This is my main practical ML foundation in the ecosystem I will later use for LLM and inference work&lt;/td&gt;
&lt;td&gt;EPUB, PDF, TXT&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Sebastian Raschka, Yuxi (Hayden) Liu, Dr. Vahid Mirjalili/Machine Learning with PyTorch and Scikit-Learn (283)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Mastering Linux Security and Hardening, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Donald A. Tevault&lt;/td&gt;
&lt;td&gt;Default, Stage 8&lt;/td&gt;
&lt;td&gt;This is my main defensive Linux security and hardening text&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Donald A. Tevault/Mastering Linux Security and Hardening, Third Edition_ A Practical Guide to Protecting Your Lin (347)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Mathematical Foundations of Reinforcement Learning&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Shiyu Zhao&lt;/td&gt;
&lt;td&gt;Default, Stage 13 support&lt;/td&gt;
&lt;td&gt;I need the relevant formal RL foundation before reasoning and post-training work&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shiyu Zhao/Mathematical Foundations of Reinforcement Learning (337)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Modern C++ Programming Cookbook, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Marius Bancila&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;The recipe format overlaps with the structured C++ books already in the route&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Marius Bancila/Modern C__ Programming Cookbook, Third Edition (364)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Modern C, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Jens Gustedt&lt;/td&gt;
&lt;td&gt;Default, Stage 3&lt;/td&gt;
&lt;td&gt;It updates King&#39;s foundation through C23, modern memory, threads, and atomics&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Jens Gustedt/Modern C, Third Edition (320)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Reinforcement Learning from Human Feedback&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Nathan Lambert&lt;/td&gt;
&lt;td&gt;Default, Stage 13&lt;/td&gt;
&lt;td&gt;I want post-training and RLHF depth after the LLM and RL foundations&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Nathan Lambert/Reinforcement Learning from Human Feedback (338)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Rust Web Programming, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Maxwell Flitton&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;Rust and web specialisation would split my attention from the systems, security, and AI route I chose&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Maxwell Flitton/Rust Web Programming_ Third Edition (403)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Statistics Every Programmer Needs&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Gary Sutton&lt;/td&gt;
&lt;td&gt;Default, Stage 9 support&lt;/td&gt;
&lt;td&gt;It gives me practical statistics for sound ML evaluation and experimentation&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Gary Sutton/Statistics Every Programmer Needs_ Practical Python Implementations and Quantitative Methods (402)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;The Linux Command Line, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;William Shotts&lt;/td&gt;
&lt;td&gt;Default, Stage 1&lt;/td&gt;
&lt;td&gt;This is my main shell, command-line, and Bash foundation&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;William Shotts/The Linux Command Line_ A Complete Introduction, 3rd Edition (339)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;The Linux Programming Interface&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Michael Kerrisk&lt;/td&gt;
&lt;td&gt;Default, Stage 5 deep reference&lt;/td&gt;
&lt;td&gt;I will use it as the authoritative userspace Linux and Unix API treatment after Robert Love&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Michael Kerrisk/The Linux Programming Interface_ A Linux and UNIX System Programming Handbook (352)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;The Little Book of Deep Learning&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Francois Fleuret&lt;/td&gt;
&lt;td&gt;Default, Stage 9 reference&lt;/td&gt;
&lt;td&gt;I want a compact conceptual reference beside the practical and full theory books&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Francois Fleuret/The Little Book of Deep Learning (340)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;The Rust Programming Language, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Steve Klabnik, Carol Nichols, and Chris Krycho&lt;/td&gt;
&lt;td&gt;Not selected&lt;/td&gt;
&lt;td&gt;It is a good language book, but Rust is outside my current route&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Steve Klabnik, Carol Nichols, Chris Krycho/The Rust Programming Language, 3rd Edition (399)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;The Ultimate Kali Linux Book, 3rd Edition&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Glen D. Singh&lt;/td&gt;
&lt;td&gt;Default, Stage 8&lt;/td&gt;
&lt;td&gt;It gives me the main practical offensive-security lab progression&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Glen D. Singh/The Ultimate Kali Linux Book, Third Edition_ Harness Nmap, Metasploit, Aircrack-ng, and Empire (344)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;The Ultimate Linux Shell Scripting Guide&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Donald A. Tevault&lt;/td&gt;
&lt;td&gt;Default, Stage 2&lt;/td&gt;
&lt;td&gt;It extends Shotts into practical scripting, text processing, interfaces, and debugging&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Donald A. Tevault/The Ultimate Linux Shell Scripting Guide (355)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Tiny C Projects&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Dan Gookin&lt;/td&gt;
&lt;td&gt;Default, Stage 2&lt;/td&gt;
&lt;td&gt;It turns C syntax and exercises into repeated finished programmes&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Dan Gookin/Tiny C Projects (319)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Understanding Deep Learning&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Simon J. D. Prince&lt;/td&gt;
&lt;td&gt;Default, Stage 9&lt;/td&gt;
&lt;td&gt;This is my main rigorous deep-learning theory foundation&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Simon J.D. Prince/Understanding Deep Learning (341)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Understanding Latency Hiding on GPUs&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Vasily Volkov&lt;/td&gt;
&lt;td&gt;Default, Stage 11 advanced&lt;/td&gt;
&lt;td&gt;I will use it for deeper latency, occupancy, and GPU-performance reasoning after practical profiling&lt;/td&gt;
&lt;td&gt;PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Vasily Volkov/Understanding Latency Hiding on GPUs (342)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;UNIX: A History and a Memoir&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Brian W. Kernighan&lt;/td&gt;
&lt;td&gt;Default, Stage 1 light&lt;/td&gt;
&lt;td&gt;I want the history connecting Unix, C, tools, shells, and the culture around them&lt;/td&gt;
&lt;td&gt;EPUB, PDF&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Brian W. Kernighan/Unix_ A History and a Memoir (368)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;Why Machines Learn: The Elegant Math Behind Modern AI&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Anil Ananthaswamy&lt;/td&gt;
&lt;td&gt;Default, Stage 9 light&lt;/td&gt;
&lt;td&gt;It gives me a readable intuition companion for the mathematics behind ML&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Anil Ananthaswamy/Why Machines Learn_ The Elegant Math Behind Modern AI (343)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Jay Wengrow&lt;/td&gt;
&lt;td&gt;Default, Stage 1&lt;/td&gt;
&lt;td&gt;This is the approachable DSA foundation that fits my preferred language and teaching style&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Jay Wengrow/A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 1_ Level Up Your Core (351)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;Jay Wengrow&lt;/td&gt;
&lt;td&gt;Default, Stage 2&lt;/td&gt;
&lt;td&gt;It continues the Python DSA route and leads into LeetCode 75&lt;/td&gt;
&lt;td&gt;EPUB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Jay Wengrow/A Common-Sense Guide to Data Structures and Algorithms in Python, Volume 2_ Level Up Your Core (350)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h2 id=&quot;edition-checks&quot; tabindex=&quot;-1&quot;&gt;Edition checks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;My King PDF is the 2nd edition and predates C11. &lt;em&gt;Modern C, 3rd Edition&lt;/em&gt; supplies the C23 update later.&lt;/li&gt;
&lt;li&gt;My copy of &lt;em&gt;The Linux Command Line&lt;/em&gt; is the 3rd edition dated 2026.&lt;/li&gt;
&lt;li&gt;My &lt;em&gt;Linux Pocket Guide&lt;/em&gt; is the 4th edition.&lt;/li&gt;
&lt;li&gt;My &lt;em&gt;Introducing C++&lt;/em&gt; is the March 2026 O&#39;Reilly edition.&lt;/li&gt;
&lt;li&gt;My &lt;em&gt;Hands-On Machine Learning with C++&lt;/em&gt; is the 2nd edition with 2025 material.&lt;/li&gt;
&lt;li&gt;My CUDA guide is Release 13.3, dated 27 May 2026.&lt;/li&gt;
&lt;li&gt;My &lt;em&gt;Build a Reasoning Model&lt;/em&gt; PDF contains 2026 material.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;decisions-i-want-to-preserve&quot; tabindex=&quot;-1&quot;&gt;Decisions I want to preserve&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Python remains my main DSA and LeetCode language.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Algorithmic Thinking&lt;/em&gt; remains optional.&lt;/li&gt;
&lt;li&gt;CS:APP remains unselected because its teaching style does not fit me.&lt;/li&gt;
&lt;li&gt;Security and reasoning-model work remain in the default route.&lt;/li&gt;
&lt;li&gt;The C++ cookbook and broad &lt;em&gt;Hacking and Security&lt;/em&gt; book remain outside the route.&lt;/li&gt;
&lt;li&gt;Content-production planning remains outside the curriculum repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;keeping-the-library-intact&quot; tabindex=&quot;-1&quot;&gt;Keeping the library intact&lt;/h2&gt;
&lt;p&gt;The Calibre library is read-only during curriculum work. I will open and manage books through Calibre rather than rename, move, or edit its record directories by hand.&lt;/p&gt;
</content>
    <link href="https://library.mohammedefaz.com/roadmap/library-audit/"/>
  </entry><entry>
    <title>history</title>
    <updated>2026-07-28T13:24:53Z</updated>
    <id>https://library.mohammedefaz.com/roadmap/history/</id>
    <content type="html">&lt;h1 id=&quot;how-i-arrived-at-this-roadmap&quot; tabindex=&quot;-1&quot;&gt;How I arrived at this roadmap&lt;/h1&gt;
&lt;p&gt;The current plan came from 2 earlier attempts. Git preserves both versions, but I no longer keep them as competing folders because I want 1 route I can follow without reopening the same decision every week.&lt;/p&gt;
&lt;h2 id=&quot;the-first-attempt-a-broad-28-book-route&quot; tabindex=&quot;-1&quot;&gt;The first attempt: a broad 28-book route&lt;/h2&gt;
&lt;p&gt;My first roadmap tried to hold the full range of subjects that drew me in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;C&lt;/li&gt;
&lt;li&gt;Linux command-line work&lt;/li&gt;
&lt;li&gt;Python DSA&lt;/li&gt;
&lt;li&gt;modern C++&lt;/li&gt;
&lt;li&gt;Linux system and kernel programming&lt;/li&gt;
&lt;li&gt;embedded C&lt;/li&gt;
&lt;li&gt;offensive and defensive security&lt;/li&gt;
&lt;li&gt;CUDA&lt;/li&gt;
&lt;li&gt;LLMs&lt;/li&gt;
&lt;li&gt;reasoning models&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It reflected what I wanted to learn. It kept Python DSA, security, and reasoning models in the main sequence, and it let me move among a few books inside each stage.&lt;/p&gt;
&lt;p&gt;The gaps became clearer when I looked at the route as preparation for real AI systems work. It did not give me a complete practical ML and deep-learning foundation before LLM and inference work. It also blurred the difference between CPU asynchrony, CPU data parallelism, CUDA kernels, and full-stack inference performance. Some broad references were treated as if every selected book needed the same cover-to-cover reading method.&lt;/p&gt;
&lt;h2 id=&quot;the-second-attempt-a-low-level-performance-route&quot; tabindex=&quot;-1&quot;&gt;The second attempt: a low-level performance route&lt;/h2&gt;
&lt;p&gt;The second roadmap narrowed the route towards C, systems, embedded work, C++, machine learning, CUDA, and AI performance.&lt;/p&gt;
&lt;p&gt;This version fixed several technical problems. It added practical ML and deep-learning foundations, improved the dependency chain into CUDA, separated Python orchestration from C++ runtimes and GPU kernels, and treated manuals as references rather than ordinary textbooks. It also forced me to audit all 48 local candidates instead of stopping at the books I had already noticed.&lt;/p&gt;
&lt;p&gt;The technical order improved, but the plan stopped fitting the person who had to follow it.&lt;/p&gt;
&lt;p&gt;It made &lt;em&gt;Algorithmic Thinking&lt;/em&gt; my main DSA route even though I had chosen Python and disliked the book&#39;s selective structure as a primary course. It made &lt;em&gt;Computer Systems: A Programmer&#39;s Perspective&lt;/em&gt; mandatory even though I had already rejected its presentation. It also pushed security and reasoning-model work outside the default path to shorten the route towards performance.&lt;/p&gt;
&lt;p&gt;That version optimised the abstract destination and ignored too much of what would keep me moving.&lt;/p&gt;
&lt;h2 id=&quot;the-route-i-am-following-now&quot; tabindex=&quot;-1&quot;&gt;The route I am following now&lt;/h2&gt;
&lt;p&gt;The current roadmap keeps the useful parts of both attempts.&lt;/p&gt;
&lt;p&gt;From the broad route, I kept:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Python DSA through both Wengrow volumes&lt;/li&gt;
&lt;li&gt;LeetCode 75 in Python&lt;/li&gt;
&lt;li&gt;security in the main sequence&lt;/li&gt;
&lt;li&gt;reasoning models and RLHF as the endpoint&lt;/li&gt;
&lt;li&gt;a simple stage-based way of working&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;From the performance route, I kept:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;full practical ML and deep-learning foundations&lt;/li&gt;
&lt;li&gt;modern C++ before CUDA&lt;/li&gt;
&lt;li&gt;a clear separation between userspace, kernel, embedded, CPU async, CUDA, and inference performance&lt;/li&gt;
&lt;li&gt;selective use of manuals and references&lt;/li&gt;
&lt;li&gt;the full 48-book audit&lt;/li&gt;
&lt;li&gt;measurement as the centre of the performance stages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also corrected the choices that did not fit me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Algorithmic Thinking&lt;/em&gt; is optional.&lt;/li&gt;
&lt;li&gt;CS:APP is not selected.&lt;/li&gt;
&lt;li&gt;Owning a book does not make it mandatory.&lt;/li&gt;
&lt;li&gt;Security and reasoning models remain inside the default route.&lt;/li&gt;
&lt;li&gt;The repository contains 1 default roadmap.&lt;/li&gt;
&lt;li&gt;Content-production work stays outside this repository.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;the-shape-of-the-plan&quot; tabindex=&quot;-1&quot;&gt;The shape of the plan&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;C + shell + Python DSA
-&amp;gt; repeated building
-&amp;gt; modern C + Linux internals
-&amp;gt; C++ + Linux userspace APIs + security Linux
-&amp;gt; C++ projects + deep Linux APIs + Kali methodology
-&amp;gt; memory + kernel + embedded
-&amp;gt; larger asynchronous C++ systems
-&amp;gt; offensive and defensive security
-&amp;gt; ML + statistics + deep learning
-&amp;gt; build an LLM
-&amp;gt; native ML + CUDA + GPU performance
-&amp;gt; AI systems performance
-&amp;gt; reasoning models + RL + RLHF
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;how-i-will-revise-it&quot; tabindex=&quot;-1&quot;&gt;How I will revise it&lt;/h2&gt;
&lt;p&gt;I expect the plan to change as I learn more, but I do not want every new book or opinion to send it back to the drawing board. Before changing the route, I will:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;read &lt;code&gt;LEARNER_REQUIREMENTS.md&lt;/code&gt;,&lt;/li&gt;
&lt;li&gt;update the root roadmap rather than create another competing copy,&lt;/li&gt;
&lt;li&gt;explain why the existing sequence no longer fits,&lt;/li&gt;
&lt;li&gt;preserve my explicit decisions unless I have changed my mind,&lt;/li&gt;
&lt;li&gt;update every affected root document together,&lt;/li&gt;
&lt;li&gt;and record the revision in Git.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The roadmap can evolve. It still needs to remain 1 plan.&lt;/p&gt;
</content>
    <link href="https://library.mohammedefaz.com/roadmap/history/"/>
  </entry><entry>
    <title>about</title>
    <updated>2026-07-28T13:24:53Z</updated>
    <id>https://library.mohammedefaz.com/about/</id>
    <content type="html">&lt;h1 id=&quot;about&quot; tabindex=&quot;-1&quot;&gt;About&lt;/h1&gt;
&lt;p&gt;I use this site to keep a public trail of what I am learning, building, and trying to understand.&lt;/p&gt;
&lt;p&gt;Right now, I am following a 13-stage route from C and Linux through machine learning, CUDA, AI systems performance, and reasoning models. The &lt;a href=&quot;https://library.mohammedefaz.com/roadmap/&quot; class=&quot;internal-link&quot;&gt;Roadmap&lt;/a&gt; records where I am, what I chose, what I left out, and what I expect to build before moving on.&lt;/p&gt;
&lt;p&gt;Longer notes and essays appear under &lt;a href=&quot;https://library.mohammedefaz.com/blog/&quot; class=&quot;internal-link&quot;&gt;Writing&lt;/a&gt;.&lt;/p&gt;
</content>
    <link href="https://library.mohammedefaz.com/about/"/>
  </entry></feed>

