Listen to this post!
This is basically just a list of stuff I plan to learn, then every so often I’ll come take a look at it and update it and add more depending on what I’m currently doing, just keeping track of everything I’ve learned 😅
✔️ - I’m comfortable with this.
🚧 - Not 100% but working on it.
💡 - Thinking about it soon.
Nothing - Not yet a priority
Front End Basics
- HTML
- CSS
- Javscript Fundamentals
- var / let / const ✔️
- Math operators ✔️
- Comparison operators ✔️
- Conditional operators ✔️
- Data Types ✔️
- Type Conversion ✔️
- Functions ✔️
- Arrow Functions ✔️
- Callback Functions ✔️
- IFFE ✔️
- For Loops ✔️
- While loops ✔️
- The switch statement ✔️
- Scope ✔️
- ‘this’ Keyword ✔️
- Template Literals ✔️
- DOM Manipulation ✔️
- Handling Events ✔️
- Scheduling: setTimeout and setInterval ✔️
- Ajax and Fetch API ✔️
- Slice and Splice ✔️
- Object.keys and Object.values ✔️
- Extras
Intermediate Front-End
- HTML
- CSS | Example App
- Advanced Javscript and ES6+
- Destructuring ✔️
- Data Structures ✔️
- for of / for in ✔️
- Array.from() Array.of() ✔️
- Spread and Rest operators ✔️
- Promises ✔️
- Sets ✔️
- Async/Await ✔️
- Symbols ✔️
- Generators ✔️
- Decorators ✔️
- Proxies ✔️
- forEach, Filter, Map and Reduce ✔️
- Maps ✔️
- Functional Programming
- Ramda 🚧
- Closure ✔️
- Higher-Order Functions ✔️
- Currying and partials ✔️
- Composition ✔️
- Purity and Side effects ✔️
- Point-free Style ✔️
- Recursion ✔️
- Functors ✔️
- Monads 🚧
- Everything else 🚧
- Object Oriented Programming
- Prototypal Inheritance ✔️
- Classes ✔️
- Property Getters and Setters ✔️
- Function Binding ✔️
- Constructors ✔️
- React
- JSX ✔️
- Props ✔️
- State ✔️
- Virtual DOM ✔️
- Component Lifecycle Methods ✔️
- React Router ✔️
- Functional setState ✔️
- Hooks ✔️
- Container and Presentational Components ✔️
- Functional and Class Components ✔️
- SyntheticEvent ✔️
- File structure ✔️
- Testing
- Basic state management
- Vue 🚧
- Templates ✔️
- Props ✔️
- Component Basics
- Data ✔️
- Computed ✔️
- Watch 🚧
- Methods ✔️
- Directives ✔️
- Class / Style bindings ✔️
- $refs ✔️
- Slots ✔️
- Component Lifecycle Methods ✔️
- Vue Router ✔️
- Event Handling ✔️
- Dynamic Components ✔️
- VueX ✔️
- Transitions
- Render functions & JSX
- Mixins
- Server Side Rendering
- Extras
Advanced Front-End
- Javascript
- Typescript
- Rxjs
- Advanced React
- Controlled components and Control Props
- Component State Reducers ✔️
- Providers ✔️
- Advanced React Patterns
- Advanced state management
- State Architecture Patterns ✔️
- Redux Thunk ✔️
- Redux Saga ✔️
- Flux ✔️
- Mobile Development
- React Native
- …
- React Native
- Electron
- …
- Extras
- Technical Debt
- Git flow
- Web Performance
- CDN ✔️
- Image Optimization ✔️
- Webpack Optimizations ✔️
- Preloading, Caching ✔️
- Manging Dependencies ✔️
- Babel Plugins ✔️
- Web Workers and Multithreading ✔️
- Cloud functions
- LazyLoading, Parallel Loading ✔️
- HTTP/2 ✔️
- Email Templating
Back-End Basics
- Node.js | Example App
- Express ✔️
- WebSockets ✔️
- Streams ✔️
- MongoDB
- Mongoose ✔️
- Schema Design ✔️
- MongoDB Commands
- CRUD ✔️
- Aggregation ✔️
- Transactions ✔️
- SQL
- PostgreSQL ✔️
- Sequelize ORM ✔️
- SQL Commands
- CRUD ✔️
- Aggregation ✔️
- Transactions ✔️
- Migrations ✔️
- Indicies ✔️
- Filters ✔️
- GraphQL
- Queries ✔️
- Mutations ✔️
- Prisma ✔️
- Apollo (React) ✔️
- GraphQL-Yoga (Node.js) ✔️
- Absinthe (Elixir)
- Authentication
- Deployment
- Docker ✔️
- Bash 🚧
- Linux in general 🚧
- Cron ✔️
- …
- Heroku ✔️
- VPS
- PM2 ✔️
- Nginx ✔️
- Domains, DNS and CNAMEs ✔️
- Log Files ✔️
- Fail2ban ✔️
- General security ✔️
Intermediate Back-End
-
- String Methods ✔️
- Array Methods ✔️
- Hash Methods ✔️
- Loops ✔️
- Date & Time ✔️
- Ranges ✔️
- Iterators ✔️
- File I/O ✔️
- Blocks ✔️
- Ruby on Rails
- MVC Pattern ✔️
- Models ✔️️
- Views ✔️
- Controllers ✔️
- ERB ✔️
- Debugging ✔️
- Generators ✔️
- Built In Helpers ✔️
- Migrations ✔️
- ActionCable ✔️
- File attatchments ✔️
- Testing 🚧
- ActiveRecord ✔️
- Devise
- Authentication ✔️
- Emails ✔️
-
- String Methods ✔️
- Array Methods ✔️
- Map Methods ✔️
- Enum Methods ✔️
- List Methods ✔️
- Loops / List comprehensions ✔️
- Structs ✔️
- Ranges ✔️
- Pattern Matching ✔️
- Nested pattern matching 🚧
- Guards ✔️
-
- Models ✔️️
- Views ✔️
- Controllers ✔️
- Migrations ✔️
- Sockets ✔️
- Plugs ✔️
- ExUnit / Testing ✔️
- Ecto ✔️
- Associations ✔️
- Ecto.Multi ✔️
- Composing Queries ✔️
-
OTP
- Message Passing ✔️
- Processes ✔️
- Genserver ✔️
- Monitors ✔️
- Tasks ✔️
- Supervisors ✔️
- Agents ✔️
- ETS tables, caching etc. ✔️
- Distributed systems
- Clustering, Networking etc.
Algorithms
- Basics / Data Structures
- Primitives / Arrays / Objects / Maps / Sets ✔️
- Big O / Time Complexity ✔️
- Stacks ✔️
- Queues ✔️
- Linked Lists ✔️
- Trees
- Hash Tables ✔️
- Binary Trees ✔️
- Bloom Filters
- Tries
- Sorting
- Bubble Sort ✔️
- Selection Sort ✔️
- Insertion Sort ✔️
- Merge sort ✔️
- Quick Sort ✔️
- Heap Sort
- Radix Sort
- Searching
- Breadth First Search ✔️
- Depth First Search
- In-Order Traversal
- Pre / Post Order Traversal
- Graphs & Paths
- Graphs
- Matrix
- Adjacency List
- Dynamic Programming
- …