tparnell 53139eab8a stahp
2018-10-13 10:44:30 -04:00
2018-10-13 10:44:30 -04:00

Big ol' checklist of things to know. Mostly for my wife whom wants to get into programming, but could be for anyone entering. This is mostly focused on a web developer role.

Here is a skill legend, if these are not on line items they are on headers of sections

  • 🚫 You shouldn't have to know this, but its worth knowing about
  • Something you should know of, and its basic applications
  • You should know how this works for most use cases, and be able to execute without bingling
  • 💫 You should be a master of this topic

Lingo 💫

  • API
  • Refactor
  • Bug
  • CMS
  • DevOps
  • "Batteries Included"

Frameworks and Technologies

Tools

  • git
  • The command line
  • grep, sed, awk, tmux, vim, htop

Front end

  • HTML 💫
  • CSS 💫
  • CSS Selectors 💫
  • LESS or SCSS
  • The DOM
  • JQuery
  • A 3rd party component library (bootstrap.js, material-ui, etc.) 💫
  • 1 current client side framework (React, Angular, Vue) 💫
  • JavaScript
  • A language that compiles into JavaScript
  • ajax :sparkles
  • fetch :sparkles
  • Browser debugging tools (chrome, firefox, ieedge) 💫
  • Polyfills 💫
  • Browser compatibility of APIs and features
  • Front end performance stratergies
    • Bundling
    • Minification
    • Compression
    • Image compression
    • Lazy loading
    • Code splitting

Backend

  • 1 current server side framework (C# MVC, ExpressJS, Spring boot) 💫
  • SQL (Structured Query Language)
  • 1 Relational database
  • 1 Non-relational database

Markup formats

  • json 💫
  • xml
  • markdown

APIs

  • REST :dizzy
  • SOAP
  • GraphQL
  • OData 🚫

Languages

  • 1 strong typed language (C#, Java, Scala, etc)

Semantics 💫

  • Operators
  • Methods
  • Functions
  • Variables
  • Annonymous and Lambda functions
  • Property getters and setters
  • Generics
  • Closures
  • Regular Expressions aka regex

Language tools

  • package managers

Theory

  • Understanding datastuctures, and how to shape data efficently 💫
    • Array
    • Stack
    • Queue
    • Hashmap/Dictionary
    • Binary tree
  • Language Parsers
  • Abstract Syntax Tree
  • Compilers
  • Managed vs non-managed languages
  • Object Oriented Programming and design 💫
  • Software design patterns (Adapter, factory, facade, etc) 💫
  • BigO for time complexity

Infrastructure

Network

  • OSI model
  • TCP 💫
  • HTTP 💫
  • IP
  • UDP
  • Latency

Components

  • Load Balancer
  • Virtual Machines
  • Storage types (magnetic, solid state, SAN, NAS)
  • Content Delivery Network (CDN)
  • Containers
  • Container orchestrators
  • Kubernetes

JavaScript

  • npm 💫
  • globally installed tools npm install -g 💫
  • yarn
  • esmodules 💫
  • commonJS modules 💫
  • node_modules directory 💫
  • unpkg
  • JavaScript gotchas 💫
    • this
    • === vs ==
    • semicolon insertion
    • 0 == "0" // true
    • 0 === "0" // false
  • ES5 vs ES6 (aka ES2015) 💫
  • features of ES2016
  • features of ES2017
  • destructuring 💫
  • ES6 classes 💫
  • string interpolation 💫
  • Object spread
  • Babel 💫
  • let vs var
Description
A checklist of things to know when trying to enter the software industry
Readme 35 KiB