Computer science: the study of computation and the development of algorithms to solve problems efficiently.
Resources
- dev roadmap
- programmer competency matrix
- python design patterns
- coding interview university
- system design primer with flashcards
Fields
Computer systems
- computer architecture
- concurrency, parallel computing, and distributed computing
- computer networks
- computer security and cryptography
- databases and data mining
Theoretical computer science
- theory of computation
- automata theory - different logical structures for solving problems
- computability theory
- computational complexity theory
- example of an open problem: p=np?
- quantum computing theory
- information and coding theory
- information theory: quantification, storage, and communication of information
- coding theory: study of the properties of codes and their fitness for a specific application
- data structures and algorithms
- programming language theory and formal methods
- programming language theory: design, implementation, analysis, characterization, and classification of programming languages and their individual features
- formal methods: technique for the specification, development and verification of software and hardware systems
Applied computer science
- computer graphics and visualization
- image and sound processing
- computational science
- quantitative finance
- social computing and human–computer interaction
- software engineering
- AI