74c023e0d8a20785cd2158a418bdfe1d44b64751
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
- ⭐ You should have basic working knowledge, and know how to get around.
- ✨ 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
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 ⭐
Backend
- 1 current server side framework (C# MVC, ExpressJS, Spring boot) 💫
- SQL (Structured Query Language) ✨
- 1 Relational database ⭐
- 1 Non-relational database ⭐
- 1 strong typed language (C#, Java, Scala, etc) ✨
Language Semantics 💫
- JavaScript gotchas (== vs ===, NaN vs undefined vs null,
this, etc) - Operators
- Methods
- Functions
- Variables
- Annonymous and Lambda functions
- Property getters and setters
- Generics
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 ⭐
Description