It is not that hard to educate yourself as people who are selling education want us to think. It is all about spending your time and effort to study the big ideas, appreciate works of right people and read right books.
Another secret is that you need how to learn, how to extract meaning, update your knowledge base. The you could learn on-demand, on-the-fly, fast and effective. One should practice general, analytic skills, not narrow, technological.
Avoid blogs, punks and mediocre
There are millions of books and billions of web-pages available with any kind of information imaginable. Unfortunately, 98% of those books (and pages) are of very low quality and reading them will be total waste of time. However, tyer are some selected titles, written by talented people in their best effort. Those titles are only worth to read.
For example, there a very few selected fiction books to illustrate what I'm talking about: Catcher In The Rye by Selinger, Great Gatsby by S. Fitzgerald, Lolita by Nabokov, Atlas Shrugged by Ayn Rand, One Flew Over the Cuckoo's Nest by Ken Kesey. There are few more, but not more than a hundred titles.
The key idea is to study masters, not their followers. There are thousands and thousands of books about Oriental philosophy and religious views written by punks who spend a few month in India or Tibet and have themselves read a book or two. Most of those books are nothing but waste of time and even more confusion for a reader. But there are very few talented people worth reading. Study ideas of those masters.
There are also some very special people, who put aside everything in their live, but their work. We call them introverts, geeks, shut-ins, or
Highlights of Calculus and Derivatives by prof. Gilbert Strang
Book + On-line Course (video lectures)
The book plus video lectures format of learning is very efficient, because you can watch those lectures many times, pause to make notes, and rewind and watch it again. Same as with a book - you can return to the content you need any time you wish.
- This is the best CS course for beginners available, taught by enlightened teacher. You also might *feel* something. CS 61A by prof. BRIAN HARVEY
- AIMA - Online course based on the famous textbook by Russel and Norvig. Introduction to Artificial Intelligence
- ML - The best course which came from Stanford. Machine Learning Course by Andrew Ng (The pioneer of on-line education)
- PGM - Probabilistic Graphical Models - the way to deal with uncertainty. Probabilistic Graphical Models
- Public Static Void - The famous heretic speech by Rob Pike.
- The iconic lecture by Alan Kay part 1 part 2 - Shut up and listen.
- Berkeley CS61A - Brian Harvey, the enlightened teacher. (btw, older versions are much better. They are not oversimplified yet and taught a Lisp, not an idiot-proof subset of it to pass by).
- MIT 6.001 - A pair of true wizards and magicians. Watch several times, until a premature enlightenment.
- RECURSIVE FUNCTIONS OF SYMBOLIC EXPRESSIONS AND THEIR COMPUTATION BY MACHINE by John McCarthy - The greatest one.
- The UNIX time-sharing system by Dennis M. Ritchie
- Revised5 Report on the Algorithmic Language. Scheme.
- What every programmer should know about memory by Ulrich Drepper (GNU libc lead developer)
- Making reliable distributed systems in the presence of sodware errors by Joe A. Armstrong (Creator of Erlang)
- Dynamo: Amazon's Highly Available Key-value Store
- On Lisp by Paul Graham. This is one of the many starting points that leads to the premature enlightenment.)
- How to Design Programs Another good book.
- The Little Schemer by Daniel P. Friedman and Matthias Felleisen
- Common Lisp the Language, 2nd Edition vy Guy L. Steele (before joining the Java madness this guy wrote about Scheme and Common Lisp. He is, by the way, a technical writer.)
- Go - Programming language for productive and pleasant daily programming. Look what could happen when several smart people joined forces. They actually enjoying it.
- Python3 To fell the power of clarity and unity of the language. It is a well-done programming language, second only to Lisp.
- Arc To learn that real-world applications could be developed very fast and with only several hundred Kilobytes of clean and readable source code.
- nginx To realize what the usage of an appropriate model along with attentions to syscalls and deep understanding what your OS capable of could bring.
- Redis To see an innovative way to deal with technological data and to appreciate the work of the one of brilliant young engineers.
- LevelDB To understand how two talented people in their spare time could develop a solution which beats all existing up to date in industry.
- Paul Graham He is the founder of YCombinator. He used to write a lot of essays and occasionally some code There are several must-read articles: Beating The Averages, What Made Lisp Different, Why no OOP, The Hundred-Year Language, How To Make Wealth, Startup in 13 Sentences.
- Peter Norvig He is mere the head of Google Research division. Required readings: Lisp as an Alternative to Java, Python for Lisp Programmers, Tutorial on Good Lisp Programming Style
- Arc implementation - to realize what computer programming is really.
- Nginx core functions - to understand what is System programming.
- Plan9 core libraries - to realize what is possible with such elegance and clarity.