# Resources ## Algorithms and Data Structures J.Wengrow. 2017. **A Common Sense Guide to Data Structures and Algorithms** S. Skienna. 2011. **The Algorithm Design Manual** A. Bhargava. 2016. **Grokking Algorithms: An Illustrated Guide** McDowell. 2009. **Cracking the Coding Interview** [for useful algorithm exercises] ## Artificial Intelligence P. Norvig, S. Russell. 2020. **Artificial Intelligence: A Modern Approach** N. Weiner. 1948. **Cybernetics** ## Backend (CPD) [Backend Roadmap](https://roadmap.sh/backend) [DevOps Roadmap](https://roadmap.sh/devops) [Software Design Roadmap](https://roadmap.sh/software-design-architecture) ## C [Everything I wish I knew when I started learning C](https://tmewett.com/c-tips/) ## Computer Science (general) Abelson, Sussman. 1998. **Structure and Interpretation of Computer Programs** [Welcome to CS](https://runestone.academy/ns/books/published/welcomecs/index.html) [roadmap.sh/computer-science](https://roadmap.sh/computer-science) ## Electronics, hardware, computer architecture M.Justice. 2020. **How Computers Really Work** J.C. Scott. 2009. **But How Do It Know? The Basics of Computers for Everyone** G. Walters. 2001. **The Essential Guide to Computing** C. Roberton. 1008. **Fundamental Electrical and Electronic Principles** Hennesy, Patterson. 2020. **Computer Organization and Design** ([BBC O'Reilly Link](https://learning.oreilly.com/library/view/computer-organization-and/9781483221182/)) Bryant, O'Halloran. 2016. **Computer Systems: A Programmer's Perspective** [How do transistors work, anyway?](https://lcamtuf.substack.com/p/how-do-transistors-work-anyway) [NAND latch](http://hyperphysics.phy-astr.gsu.edu/hbase/Electronic/nandlatch.html) ## General programming R.C.Martin. 2008. **Clean Code** Hunt, Thomas. 1999. **The Pragmatic Programmer** ## Linux B.Ward. 2021. **How Linux Works** ## Mathematics and Logic M. Bergmann, J. Moor, J.Nelson. 1990. **The Logic Book** J. Vince. 2015. **Foundation Mathematics for Computer Science** Gelfand, Shen. 2004. **Algebra** J.Kun. 2018. **A Programmer's Introduction to Mathematics** E. Lehman, F. Thomson Leighton, A.R. Meyer 2017. **Mathematics for Computer Science** ## Networks G. Caldarelli, M. Catanzaro. 2012. **Networks: A Very Short Introduction** ## Python A. Sweighart. 2020. **Beyond the Basic Stuff with Python** A. Sweighart. 2015. **Automate the Boring Stuff with Python** [Tiny Python Projects (O'Reilly)](https://learning.oreilly.com/library/view/tiny-python-projects/9781617297519/) [Learning Arduino with Python](https://realpython.com/arduino-python/) ## Shell B. Perry, D. Taylor. 2015. **Wicked Cool Shell Scripts**