Computer Science basics
We recommend learning the following topics if you would like to apply for junior roles at big tech companies. Less important topics are marked with an asterisk (*).
- Essentials & programming concepts
- How computers work (a high-level overview)
- Computational thinking
- General code flow
- Binary system
- Primitive data types
- Numerical data types (e.g. integer, floating-point)
- String
- Functions
- Recursion
- Object-Oriented Programming
- Objects
- Classes
- Encapsulation
- Interfaces
- Inheritance
- Polymorphism
- Software construction
- Software quality
- Logging
- Documentation
- Self-documenting code
- Bugs and debugging
- Unit testing
- Libraries and frameworks (what they are, examples of common libraries and frameworks)
- Development and Collaboration Tools
- Command-line interface (parameters, options, help files, bash syntax)
- Build tools
- Basics of using IDE
- Code review
- Version control, Git
- GitHub*
- Programming languages basics
- Imperative vs functional (what are key differences)
- Strong vs weak typing
- Compiled vs interpreted languages (what does it mean, what are key differences)
- Comparison of the most popular programming languages*
- C/C++, Java, Go
- Python, Ruby
- Kotlin, Objective-C, Swift
- JavaScript, TypeScript
- Data Structures & Algorithms (some people count them as CS fundamental, while others don't, please see this document for more details)
- Standards and formats*
- Basics of JSON, XML, YAML, CSV
- Basics of Unicode
Most recommended resources:
Other recommended resources:
Please make sure to cover what you learned from recommended sources using one-off articles or videos you find on the Internet.
If you have any feedback, we would be more than welcome to hear it. Please email [email protected]
Last modified 2yr ago