Backward design Updated +Created
This is one of Ciro Santilli's most important principles.
Steve Jobs has a great quote about this. He's totally right on this one!
You've got to start with the customer experience and work backwards to the technology. You can't start with the technology and try to figure out where you're going to sell it.
Video 1.
Steve Jobs Insult Response excerpt from the 1997 WWDC
. Source. TODO understand the context of the question a bit better. It is something to do with an OpenDoc thing and Java.
Decide your goal first, and then do whatever is needed to how to reach it.
Don't start randomly learning tech, because that means you will waste a lot of time learning useless stuff.
There is of course some level chicken-and-egg paradox in this, as highlighted by Dilbert, since choosing an achievable goal in the first place requires some level of technical understanding.
Figure 1.
Dilbert cartoon about designing a nuclear power plant from user requirements (2002)
Source.
This cartoon illustrates well how when doing deep tech and fighting against the laws of physics, you can't just start from user requirements, but you also have to also think "what can we actually get done at all with this new technique".
The best research engineers are able to identify what is just on the cusp of the "possible", but which has the greatest value. This is the endless dance between the tech push, and the market/need pull.
However, it is much more common that people will get way too involved in learning useless stuff and lose sight of the useful end goals.
Rather, take an iterative approach:
There is some truth to the counter argument that "but if you don't spend a lot of time learning the basics, you can never find solutions".
However, these people underestimate your brain. The brain is beautiful, and human intuition is capable of generating interest towards the things that are actually useful to reach your goal. When you feel like learning something related to your goal, by all means, give yourself the time to do so. But this still be much more efficient than just learning random things that other people tell you to learn.
Bibliography:
Do one cool thing every day Updated +Created
If you are a pussy and work a soul crushing job, this is one way to lie to yourself that your life is still worth living: do one cool thing every day.
Find a time in which your mind hasn't yet been destroyed by useless work, usually in the morning before work, and do one thing you actually like in life.
Work a little less well for you boss, and a little better for yourself. Ross Ulbricht:
I hated working for someone else and trading my time for money with no investment in myself
Selling drugs online is not advisable however.
Even better, try to reach an official agreement with your employer to work 20% less than the standard work week. For example, you could work one day less every week, and do whatever you want on that day. It is not possible to push your passion to weekends, because your brain is too tired. "You keep all non-company-related IP you develop on that time" is a key clause obviously.
On a related note, good employers must allow employees to do whichever the fuck "crazy projects", "needed refactorings or other efficiency gains" and "learn things deeply" at least 20% of their time if employees want that: en.wikipedia.org/wiki/20%25_Project. Employees must choose if they want to do it one day a week or two hours per day. One day per month initiatives are bullshit. Another related name: genius hour.
Video 1.
I did it for me, Skyler
. Source. Pursuing a dream part time can make you feel afraid and tired. But at least, you will feel alive.
Maybe you will be fired, but long term, having tried, or even succeeded your dream, or a one of its side effects, will be infinitely more satisfying.
The same goes for school, and maybe even more so because your parents can still support you there. Some Gods who actually followed this advice and didn't end up living under a bridge:
  • George M. Church "[We] hope that whatever problems... contributed to your lack of success... at Duke will not keep you from a successful pursuit of a productive career." Lol, as of 2019 the dude is the most famous biotechnologist in the world, those "problems" certainly didn't keep him back.
  • Freeman Dyson proved the equivalence of the three existing versions of quantum electrodynamics theories that were around at his time, and he has always been proud of not having a PhD!
    Video 2.
    Freeman Dyson - Why I don't like the PhD system (95/157) by Web of Stories (2016)
    Source.
  • Ramanujan, from Wikipedia:
    He received a scholarship to study at Government Arts College, Kumbakonam, but was so intent on mathematics that he could not focus on any other subjects and failed most of them, losing his scholarship in the process.
  • Person that Ciro met personally and shall remain anonymous for now for his privacy: once Ciro was at a bar with work colleagues casually, it was cramped, and an older dude sat next to his group.
    The dude then started a conversation with Ciro, and soon he explained that he was a mathematician and software engineer.
    As a Mathematician, he had contributed to the classification of finite simple groups, and had a short Wiki page because of that.
    He never did a PhD, and said that academia was a waste of time, and that you can get as much done by working part time a decent job and doing your research part time, since you skip all the bullshit of academia like this.
    Yet, he was still invited by collaborating professors to give classes on his research subject in one of the most prestigious universities in the world. Students would call him Doctor X., and he would correct them: Mister X.
    As a software engineer, he had done a lot of hardcore assembly level optimizations for x86 for some mathematical libraries related to his mathematics interests. He started talking microarchitecture with Ciro's colleagues.
    And he currently worked on an awesome open source project backed by a company.
    At last but not least, he said he also fathered 17 children by donating his sperm to lesbian mothers found on a local gay magazine, and that he had met most/all of those children after they were born.
    A God. Possibly the most remarkable person Ciro ever met, and his jaw was truly dropped.
Gandhi TODO source:
You can chain me, you can torture me, you can even destroy this body, but you will never imprison my mind
High flying bird vs gophers Updated +Created
Ciro once read that there are two types of mathematicians/scientists (he thinks it was comparing Einstein to some Jack of all trades polymath who didn't do any new discoveries):
  • high flying birds, who know a bit of everything, feel the beauty of each field, but never dig deep in any of them
  • gophers, who dig all the way down, on a single subject, until they either get the Nobel Prize, or work on the wrong problem and waste their lives
TODO long after Ciro forgot where he had read this from originally, someone later pointed him to: www.ams.org/notices/200902/rtx090200212p.pdf Birds and Frogs by Freeman Dyson (2009), which is analogous but about Birds and Frogs. So did Ciro's memory play a trick on him, or is there also a variant; of this metaphor with a gopher?
Ciro is without a doubt the bird type. Perhaps the ultimate scientist is the one who can combine both aspects in the right amount?
Ciro gets bored of things very quickly.
Once he understands the general principles, if the thing is not the next big thing, Ciro considers himself satisfied without all the nitty gritty detail, and moves on to the next attempt.
In the field of mathematics for example, Ciro is generally content with understanding cool theorem statements. More generally, one of Ciro's desires is for example to understand the significance of each physics Nobel Prize.
This is also very clear for example after Ciro achieved Linux Kernel Module Cheat: he now had the perfect setup to learn all the Linux kernel shady details but at the same time after all those years he finally felt that "he could do it, so that was enough", and soon moved to other projects.
If Ciro had become a scientist, he would write the best review papers ever, just like in the current reality he writes amazing programming tutorials on Stack Overflow.
Ciro has in his mind an overly large list of subjects that "he feels he should know the basics of", and whenever he finds something in one of those topics that he does not know enough about, he uncontrollably learns it, even if it is not the most urgent thing to be done. Or at least he puts a mention on his "list of sources" about the subject. Maybe everyone is like that. But Ciro feels that he feels this urge particularly strongly. Correspondingly, if a subject is not in that list, Ciro ignores it without thinking twice.
Ciro believes that high flying birds are the type of people better suited for venture capital investment management: you know a bit of what is hot on several fields to enough depth to decide where to place your bets and how to guide them. But you don't have the patience to actually go deeply into any one of them and deal with each individual shit that comes up.
Cosmos: A Personal Voyage (1980) episode 1 mentions as quoted by the Wikipedia page for Eratosthenes:
According to an entry in the Suda (a 10th-century encyclopedia), his critics scorned him, calling him beta (the second letter of the Greek alphabet) because he always came in second in all his endeavours.
That's Ciro.
Help students achieve their goal Updated +Created
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.
Also, setting overly ambitious goals, is a good idea: the side effects of ambitious goals are often the most valuable thing achieved.
"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.
Further improvements to the website's base technology Updated +Created
github.com/cirosantilli/node-express-sequelize-nextjs-realworld-example-app contains the same baseline tech as OurBigBook, and I have been use to quickly test/benchmark new concepts for the website base.
I'm almost proud about that project, as a reasonable template for a Next.js project. It is not perfect, notably see issues on the issue tracker, but it it quite reasonable.
The side effects of ambitious goals are often the most valuable thing achieved once again? I to actually make the project be more important thatn the side effects this time, but we'll see.
Since the last update, I've made some major improvements to the baseline tech of the website, which I'll move little by little into OurBigBook. Some of the improvements actually started in OurBigBook.com. The improvements were: