amitness/learning: a personal curriculum log, not a learning platform
A log of things I'm learning
At a glance
- What is it?
- The repository is a Markdown table of courses, books and video series with progress markers, updated roughly once a month. It is useful as a template for structuring self-directed study and useless as a library, a dataset or a tool.
- Who is it for?
- Adopt this repository only as a structural template: copy the table format and the generic-versus-adjacent split, then replace every row with your own resources. Do not treat it as a curated recommendation list, because the README shows completion markers without any evaluation of the material.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 15 days ago.
- What is it written in?
- GitHub does not report a main language for this repository.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What amitness/learning actually is
The README opens by describing the repository as "a running log of things I'm learning", aimed at building software engineering skills while expanding knowledge of adjacent technologies. That sentence is the whole product. There is no package to install, no module to import, no CLI. The repository is a set of Markdown tables with columns for format, resource, length and progress, and the progress column uses checkmark and empty-square symbols to mark completion. The stated update cadence is once a month, and the stated current focus is Generative AI. The topics list covers deep learning, generative AI, learning resources, LLMs, machine learning, NLP and Python, but those tags describe the subject matter of the links, not the contents of the repository. If you are looking for code that trains a model or processes text, this is the wrong repository and there is nothing in the supplied material suggesting otherwise. The audience is one person: the author. The secondary audience is anyone who wants to see how another engineer organises a multi-year self-study plan and is willing to copy the structure.
The generic versus adjacent split
The organising idea visible in the README is a division between Generic Skills, described as "domain-agnostic, stack-independent skills", and everything else. The generic block contains System Design, Maths, Data Structures and Algorithms, Data Modeling, Design Sense, and Linux and Command Line. The README cites two external articles to justify the approach: one on mastering adjacent disciplines and one on continuous improvement. That citation is the closest thing to a design rationale in the material. The split is a real editorial decision, and it carries a cost. Grouping A/B testing, OAuth, REST API design, linear algebra and Figma illustration under one heading means the section has no single learning path. A reader cannot work through Generic Skills in order because the rows are not sequenced by dependency. The tables are inventories, not syllabi. That is fine for a personal log where the author already knows why each row is there, and it is a problem for anyone who copies the file expecting the order to mean something. The one signal about sequencing is the progress column: some rows are checked, some are empty, and at least one row uses an hourglass symbol, which suggests an in-progress state distinct from complete and not-started.
Reading the progress column without overreading it
Progress is encoded with symbols rather than text, and the README does not define them. A checkmark appears next to completed items. An empty square appears next to items that are not complete. An hourglass appears next to Advanced Algorithms, where the length column reads 1/7. The fraction and the hourglass together imply partial completion, but the README gives no legend, so the exact meaning of each symbol has to be inferred. This matters if you plan to fork the repository and continue the log, because you will inherit an undocumented convention. Two other columns are similarly loose. The length column mixes units freely: pages for books, hours for DataCamp courses, and lesson fractions for Udacity and Neetcode courses. A row reading 5/5 next to a Udacity course and a row reading 4h next to a DataCamp course are not comparable quantities, yet they sit in the same column. The format column is more consistent, using Book, Udacity, Udemy, Datacamp, Neetcode, edX, MIT, Youtube, Pluralsight, Course and Article as values. That inconsistency is not a defect for a personal log. It is a defect if you try to parse the file programmatically or aggregate the lengths.
Running it: clone, read, edit
There is nothing to build. The default branch is master, and the repository is not archived. The practical workflow is to clone it, open README.md in an editor, and edit the tables. A clone command would look like git clone https://github.com/amitness/learning, followed by cd learning. Because the content is Markdown, any editor works, and the tables render on GitHub without a build step. There are no configuration keys, no environment variables and no dependency manifest mentioned in the supplied material. If you want to reuse the structure, the realistic path is to copy the table headers (Format, Resource, Length, Progress) and the section headings, then replace the rows. If you want to keep the progress symbols, define them somewhere in your own README, because this one does not. The absence of any tooling is worth stating plainly: there is no script that checks links, no workflow that validates the Markdown, and no automation behind the monthly update. The cadence is a human habit, not a scheduled job. Recent releases were not retrieved, and the README does not describe a release process, which is consistent with a documentation-only repository.
What the log does not tell you
The most important limitation is that completion is the only recorded signal. A checkmark next to a book means the author finished it, not that the book was good, current, or suitable for anyone else. There is no rating column, no notes column, no date column. You cannot tell from the README whether a completed course was worth the hours. Several rows point at material that ages quickly: an AWS Certified Developer Associate course labelled 2018, and a Udacity catalogue that has changed shape over the years. Because the update cadence is monthly but the rows are not dated, a reader cannot distinguish a resource added last month from one added years ago. There is also no coverage of how the author decides what to add. The README links to a continuous improvement article, but the selection criteria are not written down. For a reader, this means the repository is a snapshot of one person's choices at an unknown mix of dates. Treating it as a vetted curriculum imports assumptions the file does not support. The MIT licence permits reuse, but it does not make the resource list accurate or current.
Alternatives and the difference in approach
The obvious alternative is a curated awesome-style list, such as the many awesome-machine-learning repositories on GitHub. The difference is editorial stance. An awesome list is written for an audience: entries are selected to be broadly useful, and the maintainer usually accepts contributions and applies some inclusion criteria. This repository is written for one person, and the progress column only makes sense to that person. A second alternative is a structured course catalogue with prerequisites and ordering, such as a university syllabus or a roadmap-style repository. Those impose a sequence. This one does not, which is why Generic Skills can hold linear algebra and Figma illustration side by side. A third alternative is a spaced-repetition or note-taking tool where each completed resource produces an artifact: summaries, flashcards, code. This repository produces no artifact beyond the checkmark. If your goal is to retain what you study, a log of completed titles is weaker than a set of notes, and the README does not claim otherwise. The honest comparison is that this repository is a well-maintained personal index, and the alternatives are either audience-facing lists or output-producing study systems.
Maintenance cost and licence
The maintenance burden for the author appears to be low: edit a Markdown file once a month. For a forker, the burden is higher than it looks. Every link is a dependency. Udacity, DataCamp, Udemy and Pluralsight all change their catalogues, retire courses and move URLs, and none of that is validated by anything in the repository. A forked copy will accumulate dead links unless someone checks them. The MIT licence is permissive and, per the repository metadata, applies to the whole project. That means you can copy the tables into your own repository, modify them and redistribute them, provided you keep the licence notice. It does not grant any rights to the linked courses, books or videos, which remain under their own terms. This is a description of the licence identifier, not legal advice; if you plan to republish the tables at scale, read the LICENSE file in the repository and the terms of each linked provider. The absence of a release history also means there are no versioned snapshots to pin against, so any fork starts from whatever master contains on the day you clone it.
Editorial conclusion
Adopt this repository only as a structural template: copy the table format and the generic-versus-adjacent split, then replace every row with your own resources. Do not treat it as a curated recommendation list, because the README shows completion markers without any evaluation of the material. Anyone expecting installable code, a dataset or an API will find none. Before reusing it, check the last push date against the resources you intend to keep, and confirm the MIT licence text in the repository before republishing any part of the tables.
Community notes