e588091d6448f1458a9292251459470c31e75564
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 with only minimal bingling
- 💫 You should be a master of this topic
Lingo 💫
- API
- Refactor
- Bug
- CMS
- DevOps
- "Batteries Included"
- "Time box"
- Continuous Intergraton
- Continuous Delivery
- SCM
- VCS
Frameworks and Technologies
Tools
- Souce Control ✨
- git ✨
- The command line ⭐
- grep, sed, awk, tmux, vim, htop ⭐
- Package managers ✨
- Compilers ✨
- REPL ⭐
- Debuggers ✨
- linters ✨
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 ✨
- fetch ✨
- HTTP status codes 💫
- Cookies ✨
- HTTP headers ✨
- 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 💫
- SOAP ✨
- GraphQL ⭐
- OData 🚫
Languages
- 1 strong typed language (C#, Java, Scala, etc) ✨
- 1 dynamic language (javascript, ruby, python, etc)
- 1 scripting language (bash, powershell, etc)
Semantics 💫
- Operators
- Methods
- Functions
- Variables
- Annonymous and Lambda functions
- Property getters and setters
- Generics
- Closures
- Regular Expressions aka regex ✨
Theory
- Understanding datastuctures, and how to shape data efficently 💫
- Array
- Stack
- Queue
- Hashmap/Dictionary
- Binary tree
- Language Parsers ✨
- Abstract Syntax Tree ✨
- Managed vs non-managed languages ✨
- Object Oriented Programming and design 💫
- Static vs Dynamic typing 💫
- Strong vs week type systems ✨
- 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 ⭐
DevOps ⭐
- Configuration as code
- Chef or puppet 🚫
- Cloud management tools (terraform, Azure resource manager, AWS cloud formation templates)
- Self-Hosted Build systems (jenkins, cruse control) ⭐
- Cloud build systems (travisci, appveyor, circleci, azure pipelines) ✨
JavaScript
- npm 💫
- globally installed tools
npm install -g💫 - yarn ⭐
- esmodules 💫
- commonJS modules 💫
node_modulesdirectory 💫- unpkg ⭐
- JavaScript gotchas 💫
this=== vs ==- semicolon insertion
0 == "0" // true0 === "0" // false
- ES5 vs ES6 (aka ES2015) 💫
- features of ES2016 ✨
- features of ES2017 ⭐
- destructuring 💫
- ES6 classes 💫
- string interpolation 💫
- Object spread ✨
- Babel 💫
letvsvar💫eslint⭐
git
In english you can describe:
- A git commit 💫
- A git rebase vs merge 💫
- A git branch 💫
- Forking ✨
- Merging 💫
- Merge conflicts ✨
- Resolving a merge conflict ⭐
Description