Open-source project
geektutu/interview-questions avatar
geektutu/interview-questions

geektutu/interview-questions: A Chinese-Language Question Bank for ML, Python and Go Interviews

机器学习/深度学习/Python/Go语言面试题笔试题(Machine learning Deep Learning Python and Golang Interview Questions)

1,150 stars209 forksJupyter NotebookLicense varies

At a glance

What is it?
This repository collects multiple-choice and short-answer questions on machine learning, deep learning, Python and Go, with answers hidden behind collapsible blocks. It is a study corpus, not a framework, and its value depends on how you plan to consume the Markdown and notebook files.
Who is it for?
Use geektutu/interview-questions if you want a Chinese-language question bank to read through or feed into your own spaced-repetition or flashcard pipeline, and if you can accept that the repository states no licence. Do not adopt it as a library, a test harness or an automated grader; there is no code to import and no answer key in machine-readable form.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 25 days ago.
What is it written in?
Mainly Jupyter Notebook, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem geektutu/interview-questions solves

Interview preparation material for machine learning and Go tends to be scattered across blog posts, PDFs and video courses, and the answer is usually printed directly under the question, which makes self-testing awkward. This repository takes a different packaging approach: questions and answers live in the same file, but the answer sits inside an HTML details block, so a rendered Markdown view shows the question first and hides the answer until the reader clicks.

The README describes the project as continuously organising and updating interview questions in the Python, machine learning and deep learning areas, and the directory listing shows the same pattern extended to Go. The intended reader is someone preparing for a Chinese-language technical interview, or an instructor assembling practice material. It is not aimed at someone who wants a library, a CLI or an evaluation harness. There is no package to install, no API to call, and no scoring mechanism.

How the repository is organised: Markdown, notebooks and a question index

The top level holds README.md, interview-questions.md, a ts.py file, and four directories: ipynb/, ml/, qa-golang/ and qa-ml/. The README's table of contents links each topic to a published page on geektutu.com and, for the machine learning sets, also to the corresponding Markdown file inside qa-ml/. So the repository is the source for a website, and the Markdown is the canonical text.

The machine learning sets are numbered in blocks of ten: qa-ml-1.md covers questions 01 to 10, qa-ml-2.md covers 11 to 20. The Go material is split by theme rather than by number, with separate pages for basic syntax, implementation principles, concurrency, and code-output questions. The presence of ipynb/ and ml/ suggests the notebook and machine learning working files sit alongside the prose, and ts.py is a loose Python script at the root.

That layout is worth reading carefully before you commit to a workflow. The README's own links point at the website first and the Markdown second, which implies the website is the primary reading surface. If you want to consume the questions programmatically, you are working against the grain of how the project presents itself.

Installing nothing: cloning the repository and reading the first question set

There is no install step. The README gives no package name, no build command and no dependency list, so the only setup is getting the files onto your machine. The repository is on GitHub as geektutu/interview-questions with master as the default branch.

Clone it and look at what you actually get:

bash
git clone https://github.com/geektutu/interview-questions.git
cd interview-questions
ls

The listing should show README.md, interview-questions.md, ts.py, and the ipynb, ml, qa-golang and qa-ml directories. From there, open the first machine learning set:

bash
ls qa-ml
cat qa-ml/qa-ml-1.md

The README's table of contents maps qa-ml-1.md to questions 01 through 10 and qa-ml-2.md to 11 through 20. Reading the raw Markdown means you will see the details blocks as literal HTML rather than as collapsed sections, so a Markdown renderer that supports the details element gives the intended experience. A plain terminal pager shows everything at once, answers included.

The question format itself is simple. A multiple-choice item presents a scenario, four lettered options, and then an answer block. The README's first example asks what the biggest problem is when a decision tree splits a continuous feature into one branch per distinct value, with options covering computation cost, poor performance on both sets, good training with poor test performance, and the reverse. The answer block explains that continuous values are usually binned by a threshold while discrete features use multi-way splits, and that one branch per value overfits. Short-answer items work the same way: the question names a term, the answer block defines it. The empirical error versus generalization error item and the k-fold cross-validation item follow that pattern.

Where the format gets in the way

The answers are prose inside HTML, not structured data. If you want to build a quiz app, an Anki deck or a retrieval evaluation set, you have to parse Markdown, strip the details and summary tags, and separate question text from option text and from the explanation. Nothing in the repository provides that separation. The README does not document a schema, a parser, or any output format.

The Go material is also unevenly available. The README links four Go pages on geektutu.com, but the table of contents does not offer Markdown counterparts for them the way it does for the two machine learning sets. The qa-golang directory exists in the repository listing, but the README does not tell you which file corresponds to which published page. You will have to open the directory and map it yourself.

There is a second, subtler problem. Interview questions age. The README's answer to the neural network overfitting question attributes the largest effect to the number of hidden nodes, which is a reasonable textbook answer but not a statement about any specific framework. The Go questions are more exposed, since language semantics and runtime behaviour change between releases. The README does not state which Go version the questions were written against, and with no releases in the repository there is no changelog to check. Treat the Go answers as claims to verify against your target version rather than as settled facts.

Licence and the cost of reuse

The repository has no licence file listed among its top-level entries, and the README does not name a licence. Instead, the preface states that the exercises were compiled at considerable effort, asks readers to respect that work, and says that verbatim republication of the original text is prohibited without permission.

That is a reservation of rights, not a grant. For an individual reading the questions to prepare for an interview, the practical effect is close to nothing. For anyone planning to republish the question text, bundle it into a paid course, or ship it inside a commercial product, the README's wording is a direct signal to ask first. This is a description of what the README says, not legal advice; if the reuse matters to your organisation, have someone qualified read the actual terms.

The upgrade cost is low in the technical sense and undefined in the editorial sense. Since there is no package, no version and no releases, there is nothing to upgrade and no breaking-change surface. You pull the branch and you have the current state. What you cannot do is pin a version, because none is published. If the question text changes under you, you will notice only by diffing the files yourself.

How it compares with LeetCode-style and flashcard-based preparation

The closest alternative approach is a platform like LeetCode, which pairs each problem with an executable judge and a submission history. The difference is fundamental: LeetCode evaluates whether your code passes tests, while this repository only asks whether you can recall or reason about a concept. A decision tree question here has a correct lettered answer and a paragraph of explanation; there is no runnable artifact and no way for the repository to tell you that you were wrong.

A second alternative is a spaced-repetition tool such as Anki, where the unit is a card you write yourself. That approach forces you to compress each question into a prompt and an answer, which is exactly the transformation this repository does not do for you. If you already work in Anki, the repository is raw material and the conversion is your job.

A third comparison is the source material the README itself cites: the CMU machine learning exam archive and Andrew Ng's Coursera machine learning course. Those are structured curricula with lectures and assignments attached. This repository is a question bank extracted from that kind of material, without the surrounding teaching. If you do not already know the underlying concepts, a question bank is a poor first contact with them, because the explanations are short and assume familiarity.

Editorial conclusion

Use geektutu/interview-questions if you want a Chinese-language question bank to read through or feed into your own spaced-repetition or flashcard pipeline, and if you can accept that the repository states no licence. Do not adopt it as a library, a test harness or an automated grader; there is no code to import and no answer key in machine-readable form. Before relying on it, verify three things yourself: whether the qa-ml Markdown files and the ipynb directory actually agree on the same question set, whether the Go questions in qa-golang are still accurate against the Go version you target, and whether your intended reuse (republication, internal training material, a commercial product) is permitted, given that the README reserves rights and no licence file is present.

Frequently asked questions

What is geektutu/interview-questions?

It is a repository of machine learning, deep learning, Python and Go interview and written-test questions, with answers placed inside collapsible details blocks. The README describes it as a continuously updated collection, and it is also published as pages on geektutu.com.

Does geektutu/interview-questions have a licence?

No licence is listed among the top-level repository entries, and the README does not name one. The preface instead reserves rights and states that verbatim republication is prohibited without permission.

How do I install geektutu/interview-questions?

There is no installation. The README gives no package name or build command; you clone the repository from GitHub and read the Markdown files, such as qa-ml/qa-ml-1.md for machine learning questions 01 to 10.

Does geektutu/interview-questions include Go questions as Markdown files?

The README's table of contents links four Go pages on geektutu.com, covering basic syntax, implementation principles, concurrency and code output, but it does not offer Markdown counterparts for them the way it does for the machine learning sets. A qa-golang directory does exist in the repository listing.

Official sources

  1. geektutu/interview-questions on GitHub
  2. Issues
  3. Project website
  4. README
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/geektutu-interview-questions.svg)](https://hysenlabs.com/projects/geektutu-interview-questions)