Computer by Ciro Santilli 40 Updated 2025-07-16
The artistic instrument that enables the ultimate art: coding, See also: Section "The art of programming".
Much more useful than instruments used in inferior arts, such as pianos or paintbrushes.
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.
Video 1.
A computer is the equivalent of a bicycle for our minds by Steve Jobs (1980)
Source. Likely an excerpt from an interview done for a documentary in 1980. TODO exact source.
Video 2.
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.
also:
Secondly it exciting because Microsoft doesn't own it, and therefore there is a tremendous amount of innovation happening.
then he talks about the impending role for online sales. Amazon incoming.
Computers basically have two applications:
Generally, the smaller a computer, the more it gets used for communication rather than computing.
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.
Telecommunication by Ciro Santilli 40 Updated 2025-07-16
Communicating at a distance, from Greek "tele" for distance!
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.
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
If they don't have a goal, any attempt to learn is a total and complete waste of time.
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.
"Graduating" and "getting a diploma" are not valid goals, because they are useless. A goal has to be either an amazing specific technological or artistic development.
Grouping by age as done in traditional education as of 2020 is useless.
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.
This is part of a larger concept Ciro Santilli holds dear: don't just consume, but also produce.
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.
If you give a course in a classroom, you reach 10 people (the others were sleeping).
If you make a perfect course online, and answer questions online, you reach 10 thousand.
Not doing things online is a waste of time.
You are a highly trained professional, and your time is extremely valuable.
Even if it takes twice as long to create the material than giving course, you are still more efficient by a factor of 500.
It is as if there were 500 little copies of you working full time. It is a superpower.
Give students answers to all questions.
Explain in extreme detail how each result was reached.
Students have the amazing capacity of not looking at answers if they don't want to.
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.
Writing in any other language is a waste of time.
The reason is simple: English speakers control a huge proportion of the world's GDP.
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:
  • are faster to create and edit
  • uses less disk space and network bandwidth
  • is easier to search: Ctrl + F on the browser and off you go. And then grep if you have superpowers.
Only produce video material if:
Never create videos of people just speaking hardcore content for long amounts of time.
If you have to use videos, make them as short as possible, and index them with a textual table of contents.
Also consider using sequences of images or GIFs instead of videos, since those are cheaper.
Figure 1.
Textbooks Y U NO HAVE CTRL-F meme
. Source. Same applies to videos.
Search a lot first, and only create your own when you can't find something that suits you.
Someone else has already written everything you can come up with.
And if you do find something useful that you want to modify, propose your modifications to the author: they can also be useful to them and others.
Once you have crated something awesome, you have to advertise it, otherwise no one will ever find it.
This means:
  • whenever you walk into a classroom, give students a link to the material
    Then ask them if they want to talk about anything.
    Then leave the classroom and go produce more good material instead of wasting your time there :-)
  • 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.
  • after you've done something awesome, Google possible relevant keywords that should hit it.
    This will lead you to other websites that talk about the same content.
    Then, leave comments on those pages linking to your stuff, or email the authors of those pages.
    It is borderline spam, but if the subject is closely related, it is a win for everyone.
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
For example, if you write LaTeX files for you PDFs, give both PDFs and the LaTeX.
This allows other people to:
  • modify and reuse your material
  • make improvement suggestions that you can accept by clicking a button
    The perfect way to do this is to use GitHub pull requests
People will be more interested if they see how the stuff they are learning is useful.
Useful 99% of the time means you can make money with it.
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.
This way people have to link back to you, which makes you more famous.
And they can't steal your material without giving anything back.
This is what Wikipedia and Stack Exchange use.
When you do get face to face time with students, don't teach a large group.
Everything you want to teach is already online.
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.
There is only one thing that can truly motivate you to make good materials: becoming famous.
Strive for that. Make good materials. Publish them. Get good reviews. Loop.
This generates a virtuous loop, which makes you produce better and better material.
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:
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.
The Moonshots in Education project also has a fantastic related quote:
Real World Work. Students must produce learning projects with real world applications and an authentic audience.

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!
We have two killer features:
  1. 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-calculus
    Articles 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/derivative
  2. 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.
    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.
  3. https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
  4. Infinitely deep tables of contents:
    Figure 6.
    Dynamic article tree with infinitely deep table of contents
    .
    Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
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