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:
Harvard’s Introduction to Computer Science course (CS 50) - free video course from Harvard
Other recommended resources:
Jet Brains Academy’s CS course - structured text-based Computer Science content
Codecademy - learning to code using interactive UI
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.
Last updated