the-craft-of-selfteaching: A Jupyter Notebook book on self-teaching
A Jupyter Notebook book for self-learners, explaining a learn-practice loop with a Markdown reading version.
GitHub xiaolai/the-craft-of-selfteaching Updated 2026-10-29 Branch master Stars 18.5K Forks 17.9K
Jupyter Notebook Python Self-education Markdown

🧭 Decision Guide

Try it if you

  • You want to read the Chinese self-teaching book《自学是门手艺》in JupyterLab.
    README says to read T-appendix.jupyter-installation-and-setup first so JupyterLab can be installed locally for reading the book.
  • You need the Markdown format instead of the Jupyter Notebook format for the 2019 version.
    README states that a Markdown version was added on March 23, 2019, and provides its repository path.
  • You plan to participate in proofreading《自学是门手艺》through Pull Requests.
    README explicitly asks potential contributors to read “如何使用 Pull Request 为这本书校对” first.

Skip it if you

  • You are looking for an installable, callable Python package rather than Notebook book content.
    README centers on the book《自学是门手艺》and Python pseudocode, with no list-form feature set.
  • You require an explicit license and commercial-use terms.
    The project metadata lists the license as Not specified.
  • You need a versioned release package or an explicit stable version.
    The project has 0 releases and the latest version is No releases.

Requirements

  • README requires reading T-appendix.jupyter-installation-and-setup first and installing JupyterLab locally.

First step (verbatim from README)

teach_yourself(coding)

Watch out

  • README places JupyterLab setup guidance in T-appendix.jupyter-installation-and-setup, while the main page has no installation command.
    README explicitly says to read T-appendix.jupyter-installation-and-setup first.
  • Do not treat teach_yourself(coding) as a complete runnable Python tool; it appears in the README pseudocode block.
    The README labels the section “pseudo-code of selfteaching in Python”.

Alternatives

  • Markdown version:Better when you only need the text and do not want to use JupyterLab; README provides a Markdown version added in 2019.
    README body: “2019 年 3 月 23 日,新增 Markdown 版本。”

Not stated in the README

  • README does not specify minimum versions for JupyterLab, Python, or Notebook.
  • README does not specify the total chapter count, reading time, or coverage scope.
  • README does not specify the detailed proofreading workflow, testing method, or merge criteria.
  • The license is Not specified, and README adds no copyright or redistribution rules.

💡 Deep Analysis

6
No I want to adapt this Chinese Jupyter Notebook book into commercial company training material; with the project license marked Unknown and release_count at 0, can I reuse it directly?
For: A content engineer who wants to copy or adapt the Chinese Notebook content into commercial training material

No: you should not reuse it directly because the available evidence does not establish permission for commercial adaptation or redistribution.

  • The project data explicitly marks the license as Unknown; public hosting does not by itself grant rights to copy, adapt, use commercially, or redistribute the content.
  • The project insights also state that the actual repository license must be verified before copying, adapting, commercial use, or republication.
  • The README identifies Li Xiaolai as the author and thanks other collaborators, so adaptation may involve rights held by both the author and contributors.
  • release_count is 0, so there is no formal release boundary that can define which version is authorized or stable for commercial training material.

Until you obtain a clear license or written permission from the rights holders, use the repository only for reading and evaluation, not as packaged content in a commercial course.

  • Project data: `license` is `Unknown`
  • Project insights: verify the actual license and author authorization before copying, adapting, commercial use, or republication
  • README: `作者:李笑来` and acknowledgements to Huo Ju and Hong Qiangning
  • Project data: `release_count` is 0
Not stated in the README:The README does not provide the contents of a LICENSE file or an explicit copyright notice;The README does not state whether contributors hold separate copyrights or have authorized commercial adaptation;The README does not provide a formal contact for licensing from the author or maintainers
No I am preparing for a career transition and want a platform that automatically manages progress, provides quizzes, and gives feedback; is this Jupyter Notebook project suitable as my primary learning system?
For: A beginner pursuing a long-term career transition who requires immediate quizzes and automated feedback for technical skills

No: the project is a self-learning methodology delivered as executable documents, not a learning platform with progress tracking, quizzes, and automated feedback.

  • The project insights explicitly state that it is not a course platform or automated learning system and lacks progress management, quizzes, personalized recommendations, and automatic feedback.
  • The README centers on a Notebook book and models a “learn–practice–create” loop in Python pseudocode; feedback depends mainly on the reader’s own action rather than automated evaluation.
  • The README also provides a Markdown version, reinforcing that the project focuses on publishing and reading formats rather than an online teaching service.
  • The project has no homepage, reports zero releases, and does not list a hosted service or versioned course platform.

It can provide a learning-method framework during a career transition, but it does not satisfy your hard requirement for automated learning operations and immediate result feedback.

  • Project insights: it is not a deployable application, course platform, or automated learning system
  • Project insights: it lacks progress management, quizzes, personalized recommendations, and automatic feedback
  • README: `pseudo-code of selfteaching in Python`
  • Project data: homepage is empty; `release_count` is 0
Not stated in the README:The README does not say whether external quizzes, community feedback, or companion mentoring resources exist;The README provides no career-transition curriculum path, completion criteria, or learning-outcome data
Yes I do not want to install JupyterLab and can only read the Markdown files on GitHub; is this project still suitable under that constraint?
For: A knowledge worker who only uses static documents, does not plan to install JupyterLab, and wants to systematically improve learning habits

Yes, but you will get a static reading experience rather than the full interactive learning experience.

  • The README explicitly provides a Markdown version, showing that the project does not require every reader to use a Notebook environment.
  • Its content centers on self-learning goals, learning, practice, and creation; the main value is methodology rather than an online service that must run.
  • At the same time, the README calls local JupyterLab installation a “better experience” and asks readers to install it before reading, so avoiding it means losing execution, interactive context, and hands-on practice.
  • The project requires no backend service, database, or deployment platform; the project data identifies Jupyter Notebook, not a deployable application, as the main language.

Markdown is sufficient if your goal is to understand the methodology first. It is incomplete if you want to execute Notebook examples or turn the methods into coding practice.

  • README: “2019 年 3 月 23 日,新增 Markdown 版本”
  • README: local JupyterLab provides “更好的体验” for reading the book
  • README: `pseudo-code of selfteaching in Python` with `learn()`, `practice()`, and `create()`
  • Project data: `main_language` is `Jupyter Notebook`; homepage is empty; `release_count` is 0
Not stated in the README:The README does not say whether the Markdown version preserves every Notebook cell, exercise, and output;The README does not say whether the Markdown pages provide independent navigation, search, or formatting documentation
Yes I am learning coding, data analysis, and other technical subjects at the same time and do not want to be limited to one programming language; is this project suitable as a cross-domain self-learning framework?
For: A long-term self-learner managing several technical tracks and seeking one transferable method for coding, data analysis, and other fields

Yes: the project is intentionally centered on transferable self-learning methods rather than one language or professional curriculum.

  • The project insights identify beginners learning programming, data analysis, or other technical skills as target users, and describe the value as building learning ability transferable across domains.
  • The README uses anything as the function argument and continues with teach_yourself(another) after the loop, directly expressing movement from one subject to another.
  • The content emphasizes learning, practice, creation, and continuous iteration instead of a particular framework, model, or language API.
  • Python still mainly serves as the Notebook example medium, so the project cannot replace formal materials, real projects, or domain-specific feedback for coding or data analysis.

It works well as a cross-domain behavior and reflection framework; each technical track still needs its own subject matter and practice resources.

  • Project insights: target users include beginners preparing to learn programming, data analysis, or other technical skills
  • Project insights: the core value is learning ability transferable across domains
  • README: `def teach_yourself(anything)` and `return teach_yourself(another)`
  • README: the `learn()`, `practice()`, and `create()` loop
Not stated in the README:The README does not provide complete reading lists or learning paths for coding, data analysis, or other specific domains;The README provides no quantitative study or user-outcome data for cross-domain transfer
It depends I am just starting with Python and want to install JupyterLab locally so I can read the text and run examples in the same Notebook; is this project suitable as my introductory material?
For: A Python beginner who wants to read and practice this Chinese self-teaching book in JupyterLab while still learning the Notebook workflow

It depends: the project is suitable for building a self-learning method, but not as a complete standalone Python course.

  • The README presents the project as “the craft of self-teaching” and models a loop with learn(), practice(), and create(), so its focus is learning process rather than Python syntax.
  • The project contains 1,915 lines of Python-related data versus 1,191,195 units of Jupyter Notebook data, indicating that Python mainly serves as an example and interaction medium.
  • The README explicitly asks readers to begin with the Jupyter installation appendix and install JupyterLab locally, which adds an entry cost for Notebook beginners.
  • A Markdown version is also available, but static reading cannot provide the full execution experience of a Notebook.

Use it to establish a learning routine alongside a proper Python textbook, exercises, and projects; do not expect it to teach Python systematically from start to finish.

  • README: the `learn()`, `practice()`, and `create()` loop in `def teach_yourself(anything):`
  • README: read `T-appendix.jupyter-installation-and-setup` first to install `Jupyterlab` locally
  • Project data: Jupyter Notebook 1,191,195; Python 1,915
  • README: a Markdown version was added on March 23, 2019
Not stated in the README:The README does not specify supported Python versions, operating systems, or the exact dependency list;The README does not specify the number, difficulty, or third-party package requirements of the Python examples
Yes I plan to review this Jupyter Notebook book with collaborators through GitHub Pull Requests; is this project suitable for repository-style collaboration?
For: An open-source contributor who wants to turn the book into team learning material and review Notebook content through GitHub Pull Requests

Yes: the README provides a clear Pull Request entry point, but that does not mean the project includes full team-course management capabilities.

  • The README directly links to “如何使用 Pull Request 为这本书校对”, showing that repository-based revision is part of the intended workflow.
  • Chapters, Markdown explanations, and Python examples are stored in Notebook files, which are suitable for Git-based diffs and version tracking.
  • The project data reports release_count as 0 and license as Unknown. Collaboration can therefore begin from the current repository state, but release boundaries and redistribution rights are unclear.
  • The README does not describe issue templates, CI, review rules, or contributor roles, so this is a collaborative electronic book rather than a mature course-content operations system.

It is suitable for proofreading, discussion, and content iteration. Team training would still require separate task allocation, progress tracking, and authorization rules.

  • README: contributors should first read `如何使用 Pull Request 为这本书校对`
  • README: chapters use `.ipynb` Notebook files to carry text and Python examples
  • Project data: `release_count` is 0; `license` is `Unknown`
  • README: no issue, CI, or contributor-role documentation is listed
Not stated in the README:The README does not specify the current branching strategy, review thresholds, or merge permissions;The README does not state whether the author permits adaptation, commercial use, or redistribution

✨ Highlights

  • README provides a local reading path with JupyterLab
  • A Markdown version was added in 2019
  • It gained 148 stars on GitHub Trending that day

🔧 Engineering

  • Provides the book《自学是门手艺》as Jupyter Notebook reading material
  • README uses Python pseudocode to explain the self-teaching loop and links to a Markdown version

⚠️ Risks

  • README provides no JupyterLab installation command or version requirement
  • The project has 0 releases, and README does not specify a stable version
  • The license is marked Not specified, leaving commercial-use boundaries unclear

👥 For who?

  • Individual learners who want to read Chinese self-teaching methodology in JupyterLab
  • Contributors who want to proofread the book through Markdown or Notebook files