Topics (203k) Articles (205k) Users (306) Discussions (237) Comments (383) Files (715) New article
The artistic instrument that enables the ultimate art: coding, See also: Section "The art of programming".
Unlike other humans, computers are mindless slaves that do exactly what they are told to, except for occasional cosmic ray bit flips. Until they take over the world that is.
Steve Jobs talking about the Internet (1995)
Source. The web is incredibly exciting, because it is the fulfillment of a lot of our dreams, that the computer would ultimately primarily not be a device for computation, but [sic] metamorphisize into a device for communication.
Secondly it exciting because Microsoft doesn't own it, and therefore there is a tremendous amount of innovation happening.
Computers basically have two applications:Generally, the smaller a computer, the more it gets used for communication rather than computing.
- computation
- communication. Notably, computers through the Internet allow for modes of communication where:
- both people don't have to be on the same phone line at the exact same time, a server can relay your information to other people
- anyone can broadcast information easily and for almost free, again due to servers being so good at handling that
The early computers were large and expensive, and basically only used for computing. E.g. ENIAC was used for calculating ballistic tables.
Communication only came later, and it was not obvious to people at first how incredibly important that role would be.
This is also well illustrated in the documentary Glory of the Geeks. Full interview at: www.youtube.com/watch?v=TRZAJY23xio. It is apparently known as the "Lost Interview" and it was by Cringely himself: www.youtube.com/watch?v=bfgwCFrU7dI for his Triumph of the Nerds documentary.
A very cool thing about telecommunication is, besides how incredibly fast it advanced (in this sense it is no cooler than integrated circuit development), how much physics and information theory is involved in it. Applications of telecommunication implementation spill over to other fields, e.g. some proposed quantum computing approaches are remarkably related to telecommunication technology, e.g. microwaves and silicon photonics.
This understanding made Ciro Santilli wish he had opted for telecommunication engineering when he was back in school in Brazil. For some incomprehensible reason, telecommunications was the least competitive specialization in the electric engineering department at the time, behind even power electronics. This goes to show both how completely unrelated to reality university is, and how completely outdated Brazil is/was. Sad stuff.
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.
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.
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.
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.
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).
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
Someone else has already written everything you can come up with.
Once you have crated something awesome, you have to advertise it, otherwise no one will ever find it.
This means:
- Then ask them if they want to talk about anything.
- whenever someone asks as question on an online forum, answer it, and link to the section of your material that also answers that question.The material will answer many of their future questions.
Eventually, people will find you on the front page of Google searches, and then you will know that you've truly made something useful.
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
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.
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 Publish your material even if it is not perfect by
Ciro Santilli 40 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 Exams and homework are useless, only projects matter by
Ciro Santilli 40 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:
Pinned article: Introduction to the OurBigBook Project
Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
Intro to OurBigBook
. Source. We have two killer features:
- topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculusArticles of different users are sorted by upvote within each article page. This feature is a bit like:
- a Wikipedia where each user can have their own version of each article
- a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.Figure 1. Screenshot of the "Derivative" topic page. View it live at: ourbigbook.com/go/topic/derivativeVideo 2. OurBigBook Web topics demo. Source. - local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
- to OurBigBook.com to get awesome multi-user features like topics and likes
- as HTML files to a static website, which you can host yourself for free on many external providers like GitHub Pages, and remain in full control
Figure 2. You can publish local OurBigBook lightweight markup files to either OurBigBook.com or as a static website.Figure 3. Visual Studio Code extension installation.Figure 5. . You can also edit articles on the Web editor without installing anything locally. Video 3. Edit locally and publish demo. Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension. - Infinitely deep tables of contents:
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact






