Outtalent Docs

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]