geektutu/interview-questions: A Bilingual Question Bank That Lives in Markdown
机器学习/深度学习/Python/Go语言面试题笔试题(Machine learning Deep Learning Python and Golang Interview Questions)
At a glance
- What is it?
- This repository collects Chinese-language machine learning, deep learning, Python and Go interview questions, with answers folded into collapsible details blocks. It is a study corpus, not a runnable system, and that shapes both its usefulness and its limits.
- Who is it for?
- Adopt this repository if you are preparing for Chinese-language ML, deep learning, Python or Go interviews and you want the source text in a diffable format you can fork and extend. Do not adopt it if you need a maintained, licensed, self-contained curriculum with coverage guarantees, because the repository states no licence and the README itself describes the work as continuously reorganised rather than finished.
- 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 10 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 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What the Repository Actually Contains
The README describes the project as a continuously organised and updated collection of interview and written-test questions covering Python, machine learning, deep learning and Go. The directory listing splits along that line. Under machine learning there are two numbered sets, questions 01-10 and 11-20, each with a link to a published post on geektutu.com and a local markdown file under qa-ml/. Under Go there are four entries: basic syntax, implementation principles, concurrent programming, and code-output questions. The Go entries link only to published posts; the README does not advertise local markdown mirrors for them the way it does for the machine learning sets. That asymmetry matters if you intend to work offline.
The primary language of the repository is listed as Jupyter Notebook, which is a little misleading for a question bank. The material a reader actually consumes is markdown and the rendered web pages behind the links. Treat the notebook classification as a packaging artefact rather than a signal that the repository ships executable notebooks.
The stated sources are CMU's Machine Learning exam page and Andrew Ng's Coursera course. The README lists these under a heading that translates as main sources of the questions, which tells you the content is curated and adapted rather than invented from scratch. It also tells you the answers are the author's own explanations layered onto borrowed question stems.
The details/summary Answer Format and Why It Works
Every sample question in the README uses the same HTML construct: a details element with a summary child holding the word for answer, and the explanation inside a nested div. On GitHub this renders as a collapsed block that expands on click. On a static site generator that passes raw HTML through, it behaves the same way. In a plain markdown viewer that strips HTML, the answers appear inline after the question, which is a degradation rather than a break.
The format solves a real problem for self-testing. A reader scrolling a page of multiple-choice questions can attempt each one before revealing the explanation, without a separate answer key file to keep in sync. The explanation is not just a letter. In the decision-tree example, the answer states that continuous features are normally split by binary thresholds while discrete features use multi-way splits, then explains that one branch per distinct value overfits and generalises poorly. The letter alone would teach nothing; the reasoning is the content.
The cost is that the answer text is embedded in HTML inside markdown. Any tooling that parses these files as pure markdown, such as a flashcard exporter or a question-randomiser, has to handle raw HTML blocks. That is a small but real integration tax, and the repository offers no schema, no front matter, and no machine-readable metadata describing topic, difficulty or question type. If you want to build a spaced-repetition deck from this corpus, you are writing the parser yourself.
The Two Question Types and What They Test
The README separates multiple choice from open-ended questions, and the split is meaningful. The multiple-choice items are single-concept discriminators. The overfitting question asks which factor most affects overfitting and underfitting in a neural network, with options covering hidden node count, learning rate, initial weights, and a fixed input count per training run. The answer picks hidden node count and argues that model complexity drives overfitting, with hidden node count determining model size directly. That is a defensible position for a general exam, though a practitioner would note that learning rate interacts with regularisation and training duration, so the question rewards knowing the intended answer rather than reasoning from first principles. Expect this style throughout: one best answer, explained in two or three sentences.
The open-ended items are definitional. Empirical error versus generalisation error is answered as training-set error versus error on new samples. K-fold cross-validation is answered with the procedure: split N samples into K parts of N/K each, rotate one part as the test set, train on the remaining K-1, compute generalisation error per split, then average across the K runs. These answers are compact and correct at the level of a course exam. They are not a substitute for implementing cross-validation and observing how variance changes with K.
For the Go side, the README gives only the four topic links and no sample questions, so the format and depth of the Go content cannot be judged from the repository material alone. Based on the titles, the coverage runs from syntax through runtime internals to concurrency and output-prediction drills, which is a conventional and sensible progression for Go interviews.
How You Get It Running
There is nothing to install. The repository is a content collection, and the README gives no build step, no dependency file, and no generator command. Getting the material means one of two things.
Clone it and read the markdown directly:
git clone https://github.com/geektutu/interview-questions
Then open the files under qa-ml/, for example qa-ml/qa-ml-1.md for questions 01-10 and qa-ml/qa-ml-2.md for 11-20. Any markdown viewer that supports HTML details elements, including GitHub's own rendering, will collapse the answers.
Or read the published posts, which the README treats as the primary destination. The machine learning sets are at geektutu.com/post/qa-ml-1.html and geektutu.com/post/qa-ml-2.html, with an index at geektutu.com/post/qa-ml.html. The Go sets are at geektutu.com/post/qa-golang-1.html through qa-golang-3.html, plus qa-golang-c1.html for the code-output questions. If you are studying rather than forking, the web posts are the intended reading surface and the repository is the source mirror.
The README carries an explicit statement that the author spent substantial effort compiling the exercises and that unauthorised reproduction of the original text is prohibited. That is a usage constraint, not a technical one, but it belongs in the same paragraph as the clone command because it defines what you may do with the clone.
Where This Corpus Falls Short
The most concrete limitation is stated by the project itself. The README says the author is continuously organising and updating the material, which means coverage is a moving target. The machine learning track stops at question 20 as of the README's current table of contents. There is no stated total, no roadmap, and no completion criterion. If you need a bounded syllabus you can finish in a fixed number of weeks, this repository does not give you one.
The licence is listed as unknown in the repository metadata, and the README's own notice reserves rights over the original text. Those two facts point the same way: you should not assume you can redistribute the question text, package it into a commercial course, or republish it on your own site. Forking for personal study is a different matter from republishing, and the README draws that line in the author's own words rather than through a standard licence file. Without a LICENSE file, the default position is that the author retains rights, so treat redistribution as something to ask about rather than assume.
Second, the answers are written for exam recall. The cross-validation answer describes the averaging procedure but says nothing about stratified folds, grouped data, or time-series splits, all of which break the naive K-fold assumption. Someone who memorises the answer and applies it to a temporal dataset will build a leaky evaluation. The repository does not warn about this, and it is the kind of gap that matters more than any missing question.
Third, the repository is not a runnable artefact. There is no test suite, no CI configuration mentioned, and no way to verify that an answer is still correct against a current library version. Answers about neural network behaviour are largely version-independent, but anything touching framework APIs would rot silently.
Alternatives and the Difference in Approach
The obvious alternative for the machine learning track is the source material the README itself cites: Andrew Ng's Coursera course and CMU's Machine Learning exam archive. The difference is structural. Those are courses and exam papers with sequencing, assignments and, in the Coursera case, graded exercises and video instruction. This repository is a question-and-answer digest with no pedagogy around it. It is faster to skim and cheaper to search, but it will not teach you the material from zero. If you already know the concepts and want to drill recall, the digest wins. If you are learning them for the first time, the course wins, and the repository is a revision aid you consult afterwards.
For the Go track, the natural comparison is the official Go documentation and the language specification. The repository's Go sections cover syntax, implementation principles, concurrency and output prediction, which is a narrower and more interview-shaped slice than the documentation. The documentation explains the memory model and the scheduler in normative detail; the repository compresses those into question-answer pairs. Again the trade is depth for speed of review. Neither replaces reading the specification if you need to reason about a subtle concurrency bug under interview pressure.
The format-level alternative is any flashcard tool. This repository ships no deck, no Anki export, and no spaced-repetition scheduling. If that is what you want, you are converting the markdown yourself, and the embedded HTML answer blocks are the obstacle you will hit first.
Maintenance Cost and What to Verify Before Committing
If you fork this for a study group or an internal onboarding doc, the maintenance burden is editorial rather than technical. There is no build to keep green and no dependency to upgrade. The work is reviewing answers as the underlying material changes, translating or extending the sets, and deciding how to handle the licence question before you publish anything derived. The last push recorded for the repository is 2026-09-05, so the project is active rather than abandoned, but the README's framing suggests growth is incremental and author-driven. You should not plan around a schedule.
The licence question is the one to resolve first. The repository metadata says unknown and the README asserts rights over the original text. Those are not the same as an open source licence, and neither grants you redistribution rights by default. If your use is personal study or internal reading, that distinction is unlikely to matter. If your use is republishing, bundling into a paid product, or shipping the questions inside a training platform, ask the author before you build on it. This is a description of what the repository states, not legal advice; a lawyer is the right person for the second question.
Finally, verify coverage against your actual target. The README's table of contents is the ground truth for what exists. If your interview loop includes Python-specific questions, note that Python appears in the repository description and topics but the README's directory lists only machine learning and Go sections, so the Python material is not visible in the supplied table of contents. Check the published posts before assuming a Python track is present at the depth you need.
Editorial conclusion
Adopt this repository if you are preparing for Chinese-language ML, deep learning, Python or Go interviews and you want the source text in a diffable format you can fork and extend. Do not adopt it if you need a maintained, licensed, self-contained curriculum with coverage guarantees, because the repository states no licence and the README itself describes the work as continuously reorganised rather than finished. Before relying on it, verify two things: the licence status with the author, since the README reserves rights over the original text, and the freshness of the Go and machine learning answers against your target role, since the linked posts are the canonical version and the repository is a mirror of them.
Community notes