6 ms·
For High Throughput compute, and cache correctness. Here are the primers I can give. None of these are required. Strong langauge, cs, interpersonal skills, team
by valarauca1 8y ago
For High Throughput compute, and cache correctness. Here are the primers I can give. None of these are required. Strong langauge, cs, interpersonal skills, team inter-interoperability, and commitment to quality (via unit and integration testing, and skill working with liners) can get you a lot further.
The resources I'm linking are supplementary to the above, and you'll likely encounter them in the wild. But they'll help you build a base of knowledge, and give you terminology to search for, and work with.
- What Every Programmer should know about memory: https://people.freebsd.org/~lstewart/articles/cpumemory.pdf https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
- Cache Obviousness: https://www.youtube.com/watch?v=bY8f4DSkQ6M https://www.youtube.com/watch?v=bY8f4DSkQ6M (the suggestions, and terminology are important)
- Parallelism: (This is a good primer, there are a lot of complementary posts linked on the site) https://preshing.com/20120612/an-introduction-to-lock-free-programming/ https://preshing.com/20120612/an-introduction-to-lock-free-p... https://preshing.com/20120913/acquire-and-release-semantics/ https://preshing.com/20120913/acquire-and-release-semantics/
- If you plan on working with linux these is an excellent reference: http://man7.org/linux/man-pages/dir_section_2.html http://man7.org/linux/man-pages/dir_section_2.html remember there is no magic in Linux, everything eventually has to go through a system call. So if you learn the systemcalls, you can can learn how things work :)
- Fog's optimization resources are awesome: https://www.agner.org/optimize/ https://www.agner.org/optimize/
- MIT courseware: https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP63WbdFxL8giv4yhgdMGaZNA https://www.youtube.com/watch?v=ytpJdnlu9ug&list=PLUl4u3cNGP... https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP...
- This cheat sheet is worth committing to memory: http://www.bigocheatsheet.com/ http://www.bigocheatsheet.com/ the reference links are also great for building up knowledge
- I highly recommend CMU DB open course ware: (intro) https://www.youtube.com/watch?v=vyVGm_2iFwU&list=PLSE8ODhjZXja3hgmuwhf89qboV1kOxMx7 https://www.youtube.com/watch?v=vyVGm_2iFwU&list=PLSE8ODhjZX... (advanced) https://www.youtube.com/watch?v=poEfLYH9W2M&list=PLSE8ODhjZXjYplQRUlrgQKwIAV3es0U6t https://www.youtube.com/watch?v=poEfLYH9W2M&list=PLSE8ODhjZX...
This should give you a good primer on Concurrency, and DB's. For networking likely a basic TLA+ certification class will be 99% review, but for the things it isn't will offer great insight.
- sbmthakur 8y agoThat's an interesting list. Thanks for compiling.