194 lines
4.8 KiB
Markdown
194 lines
4.8 KiB
Markdown
Big ol' checklist of things to know to become a webdeveloper. 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 with only minimal 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:
|