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 4mo ago
Copy link