How to teach Exams and homework are useless, only projects matter Updated 2025-07-16
See: Section "Exam".
The only thing that matters is that students aim towards the goals described at explain how to make money with the lesson.
Any "homework for which the student cannot use existing resources available online" is a waste of time.
The ideal way to go about it is to reach some intermediate milestone, and then document it. You don't have to do the hole thing! Just go until your patience with it runs out. But while you are doing it, go as deep and wide as you possibly can, without mercy.
This is actually how Ciro Santilli learns new subjects he is curious about, even as an adult! Some examples:
How to teach Explain how to make money with the lesson Updated 2025-07-16
People will be more interested if they see how the stuff they are learning is useful.
Achieving novel results for science, or charitable goals (e.g. creating novel tutorials) are also equaly valid. Note that those also imply you being able to make a living out of something, just that you will be getting donations and not become infinitey rich. and that is fine.
Projects don't need of course to reach the level of novel result. But they must at least aim at moving towards that.
This is one of the greatest challenges of education, since a huge part of the useful information is locked under enterprise or military secrecy, or even open academic incomprehensibility, making it nearly to impossible for the front-line educators to actually find and teach real use cases.
How to teach Give answers Updated 2025-07-16
Give students answers to all questions.
Explain in extreme detail how each result was reached.
And when they've had enough, then can read answers and understand while the problem is fresh in their minds.
If you don't give answers, no one will be able to use your online material without you being there to hold their hands.
Forbidding students from publishing their answers also goes against let students learn by teaching.
How to teach Group students by interest, not by age Updated 2025-07-16
Rather, we should group students by subject of interest; e.g. natural sciences, social sciences, a sport, etc., just like in any working adult organization!
This way, younger students can actually actively learn from and collaborate with older students about, see notably Jacques Monod's you can learn more from older students than from faculty.
This becomes even more natural when you try to give students must have a flexible choice of what to learn.
This age distinction should be abolished at all stages of the system, not only within K-12, but also across K-12, undergraduate education and postgraduate education.
This idea is part of the ideal that the learning environment should be more like a dojo environment (AKA peer tutoring, see also dojo learning model), rather than an amorphous checkbox ticking exercise in bureaucracy so that "everyone is educated".
Perhaps, even more importantly, is that we should put much more emphasis on grouping students with other students online, where we can select similar interest amongst the entire population and not just on a per-local-neighbourhood basis.
How to teach Help students achieve their goal Updated 2025-07-16
This is the most important of all points.
Don't set goals for your students.
Ask students what they want to do, and help them achieve that goal.
If they don't know what to do, give suggestions of interesting things they could do.
Once they have a goal, just help them learn everything that is needed to achieve that goal
This is because the universe of potentially useful things that can be learnt is infinite, and no human can ever learn everything.
The only solution, is to try and learn only what seems necessary to reach your goal, and just try to reach your goal instead.
This approach is called backward design.
Also, setting overly ambitious goals, is a good idea: the side effects of ambitious goals are often the most valuable thing achieved.
How to teach Let students learn by teaching Updated 2025-07-16
Tell students to:
- make suggestions to the course material themselves, since you have used text and published your source.Review their suggestions, and accept the best ones.
- answer the questions of other students on your online forum. Let them work instead of you.
Praise those that do this very highly, and give them better grades if you have that superpower.
Whatever you do, even if it is playing video games: if you manage to produce related content that will interest other people, and possibly allow you to get paid, it will much much fun to do that thing.
How to teach Publish somewhere people can comment Updated 2025-07-16
Then, if people find errors, or have questions, they will write a comment near the content itself.
Then, next person that comes along and has the same problem, will also find that comment, and your answer will solve their problems too.
The perfect way to do this is to use GitHub issues
How to teach Publish your material even if it is not perfect Updated 2025-07-16
Just make it very clear what you've tried, what you observed, and what you don't understand if anything at all.
This will already open up room for others to come and expand on your attempt, and you are more likely to learn the answers to your questions as they do.
And there's a good chance someone who knows more than you will come along and correct or teach you something new about the subject. For example, this has happened countless times to Ciro Santilli when doing Ciro Santilli's Stack Overflow contributions.
Perfect is the enemy of good.
Examples of famous fails:
- QED and the men who made it: Dyson, Feynman, Schwinger, and Tomonaga by Silvan Schweber (1994) chapter 7.11 "Epilogue" mentions how Julian Schwinger has lots of unpublished notes, or that his collaborators had to write most of the stuff down themselves in the end because he felt they were not perfect enough
How to teach Showcase student work Updated 2025-07-16
And that is the whole point.
The outcome of that however is that you have to learn how to explain what you've achieved to others and why it is awesome.
Just like in the real world.
You have to create portfolio, and do some public relations.
How to teach Talk with individuals, not to groups Updated 2025-07-16
Everything you want to teach is already online.
And if it is not, then you are wasting your time saying it face-to-face instead of creating such online resource.
The only goal of meeting students is talking to them individually or in small groups to:
- understand what they feel
- transmit your passion for the subject
and letting them do the same amongst themselves.
If you talk to a large group, you will only reach / understand a very small percentage of the group, so your time is wasted.
It is better to deeply understand what 25% of the students feel and adapt the course material, than to talk to everyone at once, and have only 5% understand anything.
How to teach Text is cheaper than video Updated 2025-07-16
Text materials are generally superior to video because they:
Only produce video material if:
- it shows an experiment, physical technique, natural phenomena or location that is of interest. See also: Section "Videos of all key physics experiments"
- it gives fundamental geometric insight on the subject
- you are filming a human transmitting their passion about the subject, and the speaker is amazing, and does not speak for too long
How to teach Use English Updated 2025-07-16
By writing in English you reach more people.
English is the de-facto Lingua Franca of the second half of the 20th Century, it is the new lingua franca, the new Latin, and there is no escaping it.
Students who don't know English will never do anything truly useful in science and technology. So it is pointless to teach them anything (besides English itself).
How to teach Version your material Updated 2025-07-16
How to use a single source multiple times in a Wikipedia article? Updated 2025-07-16
en.wikipedia.org/wiki/Help:Footnotes#Footnotes:_using_a_source_more_than_once gives the following method:
Definition, anywhere on article, likely ideally as the first usage:
<ref name="myname">{{cite web ...}}</ref>And then you can use it later on as:which automatically expands the exact same thing, or using the shortcut:
<ref name="myname" />{{r|myname}}To cite multiple pages of a book: en.wikipedia.org/wiki/Wikipedia:Citing_sources#Citing_multiple_pages_of_the_same_source, the best method is to define and use the reference without adding the Do not set the page in or for multiple pages:
p or location in cite as:<ref name="googleStory">{{cite book |title=The Google Story}}</ref>{{rp|p=123}}cite, otherwise it shows up on the references. Instead we use the {{rp}} template. And then use the reference with the {{r}} template as:{{r|googleStory|p=456}}{{r|googleStory|pp=123, 156-158}} Join two SVG side-by-side from the command line Updated 2025-07-16
How to write technical help requests and bug reports Updated 2025-07-16
Ciro Santilli often sees all those genius who are much smarter than him making shitty forum/mailing list posts, they need to learn this:
- The apparently most important one liner error message must appear in the title, and fuller apparently relevant logs must appear on the body
- These are an important part of the minimal working example.
- For build errors, you must give your OS and compiler version and version of any relevant external library
Hox gene Updated 2025-07-16
HP spinoff Updated 2025-07-16
HTML Updated 2025-07-16
Examples:
- html/min.html: minimal valid HTML document. It is insane however.
- html/min-sane.html: minimal sane HTML document. There are smaller valid ones, but they are insane.
- html/img.html
- html/img-broken.html: stackoverflow.com/questions/22051573/how-to-hide-image-broken-icon-using-only-css-html
- html/img-load-lazy.html: stackoverflow.com/questions/2321907/how-do-you-make-images-load-lazily-only-when-they-are-in-the-viewport/57389607#57389607
- html/iframe.html. Uses: html/iframe2.html, html/hello.txt and html/hello
- forms
- YouTube embeds
HTML canvas Updated 2025-07-16
Here is an animation demo with some useful controls:
HTML snippet:
new class extends OurbigbookCanvasDemo {
init() {
super.init('hello');
this.pixel_size_input = this.addInputAfterEnable(
'Pixel size',
{
'min': 1,
'type': 'number',
'value': 1,
}
);
}
draw() {
var pixel_size = parseInt(this.pixel_size_input.value);
for (var x = 0; x < this.width; x += pixel_size) {
for (var y = 0; y < this.height; y += pixel_size) {
var b = ((1.0 + Math.sin(this.time * Math.PI / 16)) / 2.0);
this.ctx.fillStyle =
'rgba(' +
(x / this.width) * 255 + ',' +
(y / this.height) * 255 + ',' +
b * 255 +
',255)'
;
this.ctx.fillRect(x, y, pixel_size, pixel_size);
}
}
}
} Unlisted articles are being shown, click here to show only listed articles.
