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]
Copy link