TIL (Today I Learnt)
Inspired by @jbranchaud's repo and @thoughtbot's repo
This project is a collection of small things I learn about different languages, frameworks and technologies. It consists of short markdown documents summarising concepts or tips I'd like to share. The goal is to write something new everyday or as often as possible.
Currently: 145 TILs
Categories
- Arduino
- Command line
- Computer Science Jargon
- CSS
- Data Structures and Algorithms
- Design patterns
- DevOps
- Electronics
- Front-End
- Git
- HTML5
- Java
- JavaScript
- Machine Learning
- Processing
- Random
- Raspberry Pi
- Security
- Software Development
Arduino
- Setup the correct baud rate in the Serial monitor
- Play .wav files on Arduino without an SD card
- How to read resistors
- Using a mini breadboard
- Some prototyping vocabulary
- Difference Voltage and Current
- Ohms
Command Line
Computer Science Jargon
- Pure functions
- Tight coupling vs loose coupling
- Higher-order functions
- Programming paradigms
- Basic CS terms
- Interpreter vs compiler
- Expressions
- Compound assignment
- Scope
- Closure
- REPL
- Polymorphism
- Graph traversals
- Composition & Inheritance
- Predicate function
- Type introspection
- Abstract syntax tree
- Dynamic programming
- First-class citizen
- Anonymous functions
- Curry functions
CSS
- Mix Blend Mode
- CSS Reset
- Feature queries
- Inherited & Non-inherited Properties
- CSS Specificity
- :empty
- widows
- Difference resetting and normalizing CSS
- The stacking context
- Descendant combinator
Data Structures and Algorithms
- Binary search
- Linear search
- Insertion sort
- Big O notation
- Difference stack and queue
- Singly-Linked list
- Doubly-linked list
- Memoization
- Depth-First Search
- Breadth-first search
- Hash tables
- Different types of tree traversals
- Quick sort
- Merge sort
- Recursive looping
- Bubble sort
- Selection sort
Design patterns
DevOps
Electronics
Front-End
- Graceful degradation vs Progressive Enhancement
- Flash of Unstyled Content (FOUC)
- Console.time()
- Performance tips
- Critical Rendering Path
- Cross-Site Scripting
- Cross-Site Request Forgery
- Secure web app with HTTP headers
Git
- Git pull rebase
- How to fix most recent commit
- How to untrack node_modules folder when already commited to Github
- How to find which commit introduced a bug
- Git gc
- Remove file/folder from git history
- Git branch vs git checkout -b
- Squashing commits
HTML5
Java
JavaScript
- JavaScript security with Obfuscators
- Array destructuring
- Different types of functions
- Event Delegation
- AMD - Asynchronous Module Definition
- Hoisting
- Coercion
- var vs. let
- IIFE
- Transpiling
- Universal rendering
- this
- Difference null / undefined / undeclared
- JavaScript Event Loop
- Objects
- Tree Shaking
- Implicit shadowing
- Class - Prototypal inheritance
- Delegation
- The JavaScript engine
- The Web Storage API
- Difference native objects and host objects
- Difference call(), apply() and bind()
- Spread syntax
- Rest syntax
- Map object
- Pass by value/reference
Node
React
Design patterns
Flow
Machine Learning
- Glossary
- Bayes rule
- Naive Bayes
- SVM
- Decision tree
- Classification and Regression
- Supervised vs Unsupervised
Processing
- Formula to map out image pixels from two dimensional array to one dimensional array with the raw depth data of the Kinect
- Using the map function
- Vectors and forces
- Save animations as video
Random
- Save a video with transparent background to use it in AR in Unity
- What happens when you enter a URL in the browser and press 'enter'
- How does DNS work
- Take a full size screenshot in Chrome
- Useful shortcuts in VSCode
- Keyboard shortcuts on websites/apps
RaspberryPi
Security
Front-end security
Software Development
License
Β© 2016 - Charlie Gerard
This repository is licensed under the MIT license. See LICENSE for details.