4 ms·
If you want to understand how to build those things, you need to understand the actual theory of Computer Science. Textbooks and papers exist that will tell you
by unimpressive 10y ago
If you want to understand how to build those things, you need to understand the actual theory of Computer Science. Textbooks and papers exist that will tell you (in the abstract) how to implement pretty much everything you named there. Of course, creating systems on the level of quality those have would require immense effort from a single person, that's why they all have a team of contributors rather than one lone genius past the founding stage.
I'm frankly mildly disturbed that no other comment in this thread at the time of writing gave you the same answer.
- mohanmcgeek 10y agoCan you give me a list of said textbooks and papers? Or point me to a list that already exists?
- unimpressive 10y agoBasics list: http://matt.might.net/articles/what-cs-majors-should-know/ http://matt.might.net/articles/what-cs-majors-should-know/ To add a few of my own that aren't mentioned here which are more in the vein of what you're really looking for (disclaimer: I have not read most of these all the way through, some at all.) Compilers: The Dragon Book, the dragon book is usually criticized for being outdated so try and find another compilers book if you want, what you're looking for here is switching your mindset from 'I will try to hack up a compiler.' like the other comments here seem to be recommending, which will never work, to going 'this is a complicated piece of software it wouldn't be intuitive to me how to build, is there a theory behind it?'. Quite often the answer is yes. Operating Systems: The dinosaur book. Databases: At the University Of Washington I was told to read Database Systems by Garcia-Molina: https://www.amazon.com/Database-Systems-Complete-Book-2nd/dp/0131873253/ref=sr_1_1/161-0527345-7065268?ie=UTF8&qid=1477080808&sr=8-1&keywords=database+systems+garcia-molina https://www.amazon.com/Database-Systems-Complete-Book-2nd/dp... To talk a little bit more about what recommends this approach over other ones: The other comments seem to be recommending a mindset that your first step to trying to understand these complex systems is to implement them from scratch with your own naive view of the problem. This is at best a good beginners exercise to teach you the value of humility and learning from the work of others, or perhaps to get some practical experience in why the problem is hard. In general, you are never going to be able to have one of these systems spring forth from your brow on its own strength, unless you are a genius beyond genius who can in days or weeks replicate the hard work of years of study by some of the smartest people in your field.