# 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 (general)

[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**

N.Nisan, S.Schoken. 2021. **The Elements of Computing Systems** (Second Edition)

[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)

[Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook/) [full textbook]

## 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**

[Course: NodeJS Essential Training (LinkedIn Learning)](https://www.linkedin.com/learning/node-js-essential-training-14888164)

[Course: Building RESTful APIs with Node.js and Express](https://www.linkedin.com/learning/building-restful-apis-with-node-js-and-express-16069959)

## 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**

[What is the difference between `${var}`, `"$var"`, and `"${var}"` in the Bash shell? (Stack Overflow)](https://stackoverflow.com/q/18135451/10484600)

## SQL

[Course: MySQL Essential Training (LinkedIn Learning)](https://www.linkedin.com/learning/mysql-essential-training-2)

[Course: MySQL Advanced Topics (LinkedIn Learning)](https://www.linkedin.com/learning/mysql-advanced-topics)
