Ask HN: How do I re-educate myself?
https://news.ycombinator.com/item?id=1567358I have a PG degree in CS (systems), and a fairly good knowledge of most of the basic concepts in systems and distributed systems.
I am highly interested in systems and distributed systems but I find my education is lacking. I have identified this to be mostly a problem of ignorance - I do not know of many of the interesting systems projects in the research area, of the problems faced and how they were solved. Consequently, I am unable to contrast and compare different methods of solving problems, etc.
I'm not only missing the more basic advanced knowledge (e.g. the more advanced data structures) but the deeper "domain" knowledge that comes with systems.
However, I have tried plugging this gap by reading books, papers,etc but I don't find myself getting a lot out of them - sure I can understand them, etc but there is no creativity that follows (e.g. new ideas or application of ideas to the problems I have). Soon I forget about the papers, ideas etc. Considering the time and effort it takes to properly understand an academic work (for me at least), the whole effort becomes very heavy, draining and often pointless.
I find I have this problem even with stuff that I'm really familiar with. For example, I know the average time complexity of quicksort but I'll be damned if I can implement it without looking it up. I know an algorithm called "heap sort" exists but that's about it - I can look it up in wikipedia NOW but I'll forget it in 6 months.
I want to educate myself to have a really sound and broad baseknowledge that I can build on and use to become better at what I do. I want to do this in the evenings and weekends, and in what I'm looking for is a way to "classically" educate myself from the ground up so that I don't have little bits and pieces of unrelated "facts" in my head that are of no practical use to me and that I continually refresh but rather a good foundation of ideas, base abstractions, properties etc that I can build on. I have often been struck by the fact that if I properly retained and understood 20% of everything I read, I would be a much better computer scientist.
I know that knowledge acquisition is a personal thing so I'm asking more about the techniques that one can use to acquire this knowledge without getting bogged down.