ProgramingBooks is a Chinese book index whose own links point at the upstream fork
what-non-programming-books-should-programmers-read
At a glance
- What is it?
- A single readme curating free Chinese programming books across nineteen general topics and thirty languages, forked from another list and derived from two Stack Overflow threads. The thing to know before you use it is that the badges, the contribution links and the contributor list on the page all address the upstream project rather than this repository, and that the last recorded push is from March 2018.
- Who is it for?
- Use this as a directory rather than as a curriculum. The category structure is genuinely good, and the fact that it separates nineteen infrastructure topics from thirty language tracks is more useful than most flat lists.
- Can I use it commercially?
- Yes. Apache-2.0 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?
- Probably not. The repository last received commits 104 months ago, on March 13, 2018.
- 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 October 23, 2026, and from our analysis. They are not legal advice.
Star history
- wangzhenjjcn/ProgramingBooks50 ★ · +0
| Repository | 2026-08-18 | 2026-10-23 |
|---|---|---|
| wangzhenjjcn/ProgramingBooks | 50 | 50 |
0 Stars in the last 66 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
Every link on the page addresses the upstream project
Read the links carefully and you find that almost none of them point here. The badges at the top resolve to the upstream repository's issue tracker, network graph, stargazers, continuous integration page and releases. The contribution section tells you to use that upstream project's issues and pull requests. The contributor list link goes to the upstream's contributors graph. There is a section naming the project this was forked from, and the fork line carries a query parameter that identifies a browser extension. The one exception is the link to the Chinese version of the second Stack Overflow thread, which is a file in this repository. So the page presents itself as a contribution point while routing every submission upstream. That is a fork artefact rather than a design decision, but it means the copy is not the place to report a broken link.
Three sources, and only one of them is a programming book list
The page credits exactly three origins and they are different in kind. The first is a Stack Overflow thread asking for the single most influential book every programmer should read, paired with a Chinese translation hosted on a personal site rather than in this repository. The second is a different Stack Overflow thread, this one asking which non-programming books programmers should read, and its Chinese version does live here as a markdown file. The third is another well known programming book index on GitHub, with a Chinese translation maintained elsewhere. So the most substantial single contribution in this repository is a translated answer to a question about reading books that are not about programming. That is worth knowing if you were looking for a language-agnostic reading list, because the table of contents does not have a section for it.
Nineteen general topics, and most of them are infrastructure
The first half of the table of contents is titled as the language-independent section and holds nineteen subheadings. Read them in order and the shape of the collection becomes clear: operating systems, intelligent systems, distributed systems, compilers, functional concepts, computer graphics, web servers, version control, editors, then a run of specific data stores, then management and monitoring, project practice, design patterns, web development, big data, the art of programming, and a catch-all. The centre of gravity is not computer science fundamentals but operations. There is one entry under compilers and it is a translation project for a course based on a classic book. The operating systems section by contrast holds more than twenty links, and most of them are about the Linux command line, kernel internals, drivers and containers.
Version control carries nineteen links, more than several languages
The version control subsection is the largest single section shown, with nineteen entries, and its composition is telling. There are four or five distinct guides to Git proper, including one from a well known Chinese tutorial author and the official Git book's Chinese edition in two separate renderings. Then there is a cluster of community guides: a cheat sheet, a GitHub cheat sheet, a GitHub help document, a git-flow memo sheet, a GitHub roaming guide, and a community book. Two entries cover a different distributed version control system entirely, its tutorial and a Chinese translation of a bootstrap tool for it, and one covers the older Subversion handbook. What is missing is any indication of which to read first, so the section works as an index and not as a path.
The editor section is mostly translations of retired software
Ten entries sit under editors, and reading the titles dates the section immediately. Two are translations of the Vim script book written as a hard method tutorial, and two are Chinese translations of the Atom editor's flight manual and official documentation. Atom is discontinued, which means two of the ten links are translations of documentation for an application that no longer exists. The rest are a fork of an editor-as-environment project, a Chinese translation of the editor's own documentation, a guide on using the editor as an IDE, a hands-on tutorial, a short markdown introduction, and two Emacs guides, one of them the well known year-long learning plan and one a survival guide. If you are choosing an editor today, the Emacs entries are the ones still worth opening.
Thirty language tracks, and the links are translations rather than originals
The second half of the table of contents lists thirty language tracks, from Android and mobile application development through AWK, two C-family entries, C#, Clojure, web markup, Dart, Elixir, Erlang, Fortran, Go, Groovy, Haskell, iOS, Java, JavaScript, LaTeX, Lisp, Lua, OCaml, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, Shell and Swift. The list is broad and current enough to include newer entries, which tells you it was maintained rather than abandoned at the start. But the pattern across the visible sections is translation rather than curation: a Chinese version of a document originally written in another language, hosted on a git book service or a repository that exists only to hold the translation. Reading a translation project gives you the book's structure without the exercises or the errata.
The whole index is one readme with nothing to query
The repository contains five files and one of them is the index. There is no data file, no schema, no site generator and no script. That has an upside: the entire collection fits in a single document you can read end to end, search with your editor's text search, or clone and grep. It also has a downside that matters if you want to build on it: there is no machine readable form. You cannot ask how many entries exist, which languages are covered, or when a link last resolved, because none of that is recorded anywhere. Two community files exist alongside, a code of conduct and a contribution guide, and there is a git attributes file for line endings. There is no changelog, which for a list whose value depends entirely on link survival is the wrong file to omit.
The last recorded push is from March 2018
The dates matter more here than in most link lists, because a list of books is a list of URLs and URLs rot. The most recent push recorded to the default branch carries a date of 13 March 2018, and there are no tagged releases. Nothing has been added in over eight years. The repository is not marked archived, so it will still surface in search, but the freshness of the last update tells you that any entry added in 2018 has had eight years to break and nothing has been pruning them. Two categories are especially likely to have decayed: the translation projects hosted on services that shut down, and the entries for software and books that have since been retired. Plan on spot-checking, not on trusting.
Editorial conclusion
Use this as a directory rather than as a curriculum. The category structure is genuinely good, and the fact that it separates nineteen infrastructure topics from thirty language tracks is more useful than most flat lists. But treat every entry as a pointer to check rather than a recommendation to follow: there is no description, no difficulty marking and no ordering within a section, and a large share of the entries are translation projects for documents that were never intended as standalone books. Two things to verify before you rely on it. That the links still resolve, since the last recorded change is from 2018. And where you should send a correction, because the page routes you to the upstream issue tracker rather than to this repository.
Frequently asked questions
What is the best book about programming?
The index does not answer that question and does not try to. Its starting point is a Stack Overflow thread asking for the single most influential book every programmer should read, with a Chinese translation linked from a personal site rather than from this repository. From there it organises entries by topic and language without recommending an order.
Does NASA use C++ or Python?
Nothing in the repository addresses language choice at any organisation. It is a directory of Chinese programming books with subheadings for thirty language tracks, and its contents are links rather than guidance about which language to use for what.
What is the 80/20 rule in programming?
The repository does not discuss principles, heuristics or rules of that kind. What it holds is a categorized index whose nineteen general topics lean toward operating systems, networking, version control and editors rather than toward programming practice, with the rest of the space given over to per language sections.
How do I say "I love you" in programming?
There is no such example here and the question is not addressed. The closest thing to a worked example is the contribution section, which asks people to share treasured classic free books through the upstream project's issue tracker and pull requests rather than through this repository.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/wangzhenjjcn-programingbooks)Star history chart for your README
[](https://hysenlabs.com/projects/wangzhenjjcn-programingbooks)Was this useful?