Outtalent Docs
  • Welcome to Outtalent Docs
  • Top Companies
    • Recommended multinational tech companies
    • Recommended US-only startups
    • Companies that hire remotely from almost any country
    • Climate change companies
    • Top local employers
    • Other companies
    • Job openings at startups & big tech companies
  • Guides
    • Computer Science basics
    • Data structures and algorithms
    • Gaining seniority
    • Big tech interviews
      • Coding interviews
        • Programming language for interviews
        • LeetCode guide
      • Systems design interview guide
      • Irine's coding interview guide
    • Resume and LinkedIn guide
      • "Ridiculous Resume Rule"
      • Resume: sections
      • Resume: format
      • Resume: top
      • Resume: summary
      • Resume: work experience
      • Resume: education
      • Resume: leadership & awards
      • Resume: interests
      • Resume: excluded info
      • LinkedIn photo
      • LinkedIn profile examples
      • LinkedIn: company name
    • Writing guide
      • Writing: Goals
    • Learning English
      • English learning services
      • Common English mistakes
    • Information diet
    • Mental health
    • Related career opportunities
      • Internships
      • Growing your project
      • Programs for women
Powered by GitBook
On this page

Was this helpful?

  1. Guides

Computer Science basics

PreviousJob openings at startups & big tech companiesNextData structures and algorithms

Last updated 3 years ago

Was this helpful?

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 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 team@outtalent.com.

- free video course from Harvard

- structured text-based Computer Science content

- learning to code using interactive UI

this document
Harvard’s Introduction to Computer Science course (CS 50)
Jet Brains Academy’s CS course
Codecademy