194 lines
4.8 KiB
Markdown
194 lines
4.8 KiB
Markdown
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
|
|
|
|
- :no_entry_sign: You shouldn't have to know this, but its worth knowing about
|
|
- :star: Something you should know of, and its basic applications
|
|
- :sparkles: You should know how this works for most use cases, and be able to execute without bingling
|
|
- :dizzy: You should be a **master** of this topic
|
|
|
|
# Lingo :dizzy:
|
|
|
|
- [ ] API
|
|
- [ ] Refactor
|
|
- [ ] Bug
|
|
- [ ] CMS
|
|
- [ ] DevOps
|
|
- [ ] "Batteries Included"
|
|
- [ ] "Time box"
|
|
- [ ] Continuous Intergraton
|
|
- [ ] Continuous Delivery
|
|
- [ ] SCM
|
|
- [ ] VCS
|
|
|
|
|
|
# Frameworks and Technologies
|
|
|
|
|
|
## Tools
|
|
|
|
- [ ] Souce Control :sparkles:
|
|
- [ ] git :sparkles:
|
|
- [ ] The command line :star:
|
|
- [ ] grep, sed, awk, tmux, vim, htop :star:
|
|
- [ ] Package managers :sparkles:
|
|
- [ ] Compilers :sparkles:
|
|
- [ ] REPL :star:
|
|
- [ ] Debuggers :sparkles:
|
|
- [ ] linters :sparkles:
|
|
|
|
## Front end
|
|
|
|
- [ ] HTML :dizzy:
|
|
- [ ] CSS :dizzy:
|
|
- [ ] CSS Selectors :dizzy:
|
|
- [ ] LESS or SCSS :sparkles:
|
|
- [ ] The DOM :star:
|
|
- [ ] JQuery :sparkles:
|
|
- [ ] A 3rd party component library (bootstrap.js, material-ui, etc.) :dizzy:
|
|
- [ ] 1 current client side framework (React, Angular, Vue) :dizzy:
|
|
- [ ] JavaScript :dizzy:
|
|
- [ ] A language that compiles into JavaScript :star:
|
|
- [ ] ajax :sparkles:
|
|
- [ ] fetch :sparkles:
|
|
- [ ] HTTP status codes :dizzy:
|
|
- [ ] Cookies :sparkles:
|
|
- [ ] HTTP headers :sparkles:
|
|
- [ ] Browser debugging tools (chrome, firefox, ieedge) :dizzy:
|
|
- [ ] Polyfills :dizzy:
|
|
- [ ] Browser compatibility of APIs and features :sparkles:
|
|
- [ ] Front end performance stratergies :sparkles:
|
|
- Bundling
|
|
- Minification
|
|
- Compression
|
|
- Image compression
|
|
- Lazy loading
|
|
- Code splitting
|
|
|
|
|
|
## Backend
|
|
|
|
- [ ] 1 current server side framework (C# MVC, ExpressJS, Spring boot) :dizzy:
|
|
- [ ] SQL (Structured Query Language) :sparkles:
|
|
- [ ] 1 Relational database :star:
|
|
- [ ] 1 Non-relational database :star:
|
|
|
|
## Markup formats
|
|
|
|
- [ ] json :dizzy:
|
|
- [ ] xml :sparkles:
|
|
- [ ] markdown :star:
|
|
|
|
## APIs
|
|
|
|
- [ ] REST :dizzy:
|
|
- [ ] SOAP :sparkles:
|
|
- [ ] GraphQL :star:
|
|
- [ ] OData :no_entry_sign:
|
|
|
|
|
|
# Languages
|
|
|
|
- [ ] 1 strong typed language (C#, Java, Scala, etc) :sparkles:
|
|
- [ ] 1 dynamic language (javascript, ruby, python, etc)
|
|
- [ ] 1 scripting language (bash, powershell, etc)
|
|
|
|
|
|
## Semantics :dizzy:
|
|
|
|
- [ ] Operators
|
|
- [ ] Methods
|
|
- [ ] Functions
|
|
- [ ] Variables
|
|
- [ ] Annonymous and Lambda functions
|
|
- [ ] Property getters and setters
|
|
- [ ] Generics
|
|
- [ ] Closures
|
|
- [ ] Regular Expressions aka regex :sparkles:
|
|
|
|
|
|
|
|
# Theory
|
|
|
|
- [ ] Understanding datastuctures, and how to shape data efficently :dizzy:
|
|
- Array
|
|
- Stack
|
|
- Queue
|
|
- Hashmap/Dictionary
|
|
- Binary tree
|
|
- [ ] Language Parsers :sparkles:
|
|
- [ ] Abstract Syntax Tree :sparkles:
|
|
- [ ] Managed vs non-managed languages :sparkles:
|
|
- [ ] Object Oriented Programming and design :dizzy:
|
|
- [ ] Static vs Dynamic typing :dizzy:
|
|
- [ ] Strong vs week type systems :sparkles:
|
|
- [ ] [Software design patterns](https://sourcemaking.com/) (Adapter, factory, facade, etc) :dizzy:
|
|
- [ ] BigO for time complexity :star:
|
|
|
|
# Infrastructure
|
|
|
|
## Network
|
|
|
|
- [ ] OSI model :star:
|
|
- [ ] TCP :dizzy:
|
|
- [ ] HTTP :dizzy:
|
|
- [ ] IP :star:
|
|
- [ ] UDP :star:
|
|
- [ ] Latency :star:
|
|
|
|
## Components
|
|
|
|
- [ ] Load Balancer :sparkles:
|
|
- [ ] Virtual Machines :star:
|
|
- [ ] Storage types (magnetic, solid state, SAN, NAS) :star:
|
|
- [ ] Content Delivery Network (CDN) :sparkles:
|
|
- [ ] Containers :star:
|
|
- [ ] Container orchestrators :star:
|
|
- [ ] Kubernetes :star:
|
|
|
|
## DevOps :star:
|
|
|
|
- [ ] Configuration as code
|
|
- [ ] Chef or puppet :no_entry_sign:
|
|
- [ ] Cloud management tools (terraform, Azure resource manager, AWS cloud formation templates)
|
|
- [ ] Self-Hosted Build systems (jenkins, cruse control) :star:
|
|
- [ ] Cloud build systems (travisci, appveyor, circleci, azure pipelines) :sparkles:
|
|
|
|
# JavaScript
|
|
|
|
- [ ] npm :dizzy:
|
|
- [ ] globally installed tools `npm install -g` :dizzy:
|
|
- [ ] yarn :star:
|
|
- [ ] esmodules :dizzy:
|
|
- [ ] commonJS modules :dizzy:
|
|
- [ ] `node_modules` directory :dizzy:
|
|
- [ ] unpkg :star:
|
|
- [ ] JavaScript gotchas :dizzy:
|
|
- `this`
|
|
- `=== vs ==`
|
|
- semicolon insertion
|
|
- `0 == "0" // true`
|
|
- `0 === "0" // false`
|
|
- [ ] ES5 vs ES6 (aka ES2015) :dizzy:
|
|
- [ ] features of ES2016 :sparkles:
|
|
- [ ] features of ES2017 :star:
|
|
- [ ] destructuring :dizzy:
|
|
- [ ] ES6 classes :dizzy:
|
|
- [ ] string interpolation :dizzy:
|
|
- [ ] Object spread :sparkles:
|
|
- [ ] Babel :dizzy:
|
|
- [ ] `let` vs `var` :dizzy:
|
|
- [ ] `eslint` :star:
|
|
|
|
# git
|
|
|
|
In english you can describe:
|
|
|
|
- [ ] A git commit :dizzy:
|
|
- [ ] A git rebase vs merge :dizzy:
|
|
- [ ] A git branch :dizzy:
|
|
- [ ] Forking :sparkles:
|
|
- [ ] Merging :dizzy:
|
|
- [ ] Merge conflicts :sparkles:
|
|
- [ ] Resolving a merge conflict :star:
|