Job Requirements

Learning Roadmap

These are the fundamentals that every engineer should master early in their career. They are, in rough priority order:

  1. Computer & Network Basics
    1. Operating Systems and their role
    2. The kernel on Linux and what it does
    3. CPU, Disk, and Memory
    4. Aware of basic networking concepts
      1. HTTP and TCP/IP protocols
      2. Domain Names/DNS
      3. IP Addresses and ports
      4. Routers, switches, LAN, WAN
      5. HTTPs, TLS/SSL
  2. Version Control
    1. Understand why and how it’s used
    2. Learn Git, since it’s the most common (but know there are others)
      1. Know how to clone a repo
      2. Know how to create and manage branches
      3. Know how to add remotes and push to them
      4. Know how to add tags
      5. Know about merging vs. rebasing
    3. Learn about GitFlow and how its used in your organization
    4. Learn Bitbucket and Github
      1. Know how to initialize repositories and push to them
  3. Basic Terminal Commands
    1. Navigate directories
    2. Create new files and directories
    3. Know the basics of users and file permissions
    4. Know how to install new packages
    5. SSH and creating SSH Keys
    6. Understand options (ex: --help)
    7. Know how to read man pages and other help resources
  4. Basic programming components and syntax:
    1. Variables
    2. Keywords
    3. Loops
    4. Functions
    5. Operators
    6. Truthy vs. Falsey
    7. File I/O
  5. Data Types, Data Structures, and their relationship to Algorithms
    1. Are able to identify basic data types and data structures, especially in your main language
      1. Primitives: Strings, Integers, Booleans
      2. Basic Data Structures: Arrays, Objects
      3. Advanced Data Structures: Stacks, Heaps, Binary Trees
    2. Understand the difference between a class and an object instance
    3. Understand what an algorithm is and how complexity is measured
    4. Have knowledge about one or two algorithms and the data structures they interface with (ex: sorting a list, searching a grid with a stack, etc.)
  6. The basics of how the Internet works and its history
    1. Know how web requests are structured and how browsers make them
      1. DNS and IP addresses
      2. HTTP/HTTPS
      3. Webservers (apache, nginx)
  7. Fundamental HTML and CSS

Reading List