Learning is an eternal path. I wanted to share my own adventure primarily for the following practical reasons: to help me remember what I have supposedly been working on technologywise and to help me practice a technique that is known as spaced repetition. This is really just a summary to motivate myself to keep on track and be reminded as often as possible to stay a bit more humble, as it becomes obvious that I don’t know much in the end. In the process, I hope you may find some inspiration too.
December
30
 University of London
 Discrete mathematics
 Recursion: recurrence relations, structural induction.
 Discrete mathematics
29
 University of London
 Discrete mathematics
 Mathematical induction, strong induction, wellordering principle.
 Discrete mathematics
28
 University of London
 Discrete mathematics
 Induction (proof by induction, strong induction), recursion.
 Discrete mathematics
 Review Git concepts: branching workflows; rebasing; interactive staging; rewriting history; submodules.
27
 University of London
 Introduction to Programming II
 Particle system and beat detector in
p5.js
.
 Particle system and beat detector in
 Introduction to Programming II
 Patching
st
to get scrollback and transparency.
26
 University of London
 Discrete mathematics
 Review rules of inference, inferences with quantifiers, direct proof, proof by contraposition, proof by contradiction, proof by cases.
 Introduction to Programming II
 Working with a beat detector in
p5.js
.
 Working with a beat detector in
 Discrete mathematics
 Review Python: regex; zip function.
 Setting up
AUR
in Manjaro.
25
 University of London
 Discrete mathematics
 Introduction to proofs (direct, contrapositive, contradiction), mathematical induction, proof by induction.
 Discrete mathematics
 Setting dualscreen workflow with
i3
.
23
 University of London
 Introduction to Programming II
 JavaScript: Review IIFE, arrow functions,
map
,fill
,reduce
,filter
,sort
.
 JavaScript: Review IIFE, arrow functions,
 Discrete mathematics
 Review rules of inference.
 Introduction to Programming II
22
 University of London
 Introduction to Programming II
 More on OOP in JavaScript, async and await functions.
 Discrete mathematics
 Review predicates and quantifiers, nested quantifiers and negations, rules of inference.
 Introduction to Programming II
21
 University of London
 Introduction to Programming II
 Dealing with memory leaks in JavaScript.
 Discrete mathematics
 Review predicates and quantifiers, nested quantifiers and negations, rules of inference.
 Introduction to Programming II
20
 University of London
 Introduction to Programming II
 Analyzing sounds in
p5.js
with fast Fourier transform.
 Analyzing sounds in
 Discrete mathematics
 Review boolean algebra, predicate logic and quantifiers.
 Introduction to Programming II
 Common Gotchas from The Hitchhiker’s Guide to Python.
 Using DeepSource static code analysis tool for Python and Go.
 Using Vifm as terminal file manager.
19
 University of London
 Discrete mathematics
 Review propositional logic: propositional satisfiability; logical equivalences.
 Discrete mathematics
18
 University of London
 Introduction to Programming II
 JavaScript: delaying actions with
setTimeout
.
 JavaScript: delaying actions with
 Discrete mathematics
 Review propositional logic, implications (converse, inverse, contrapositive, biconditionals, compound propositions), propositional equivalences (tautology, contradictions, contingency).
 Introduction to Programming II
17
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Heap’s algorithm, recursive functions in Python.
 Algorithms and Data Structures I
 Configuring and compiling DWM.
16
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Recursive algorithm to set blank characters in solved puzzle.
 Algorithms and Data Structures I
 Understanding window placement and tags in DWM.
15
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Depthsearch algorithm, symmetry in Sudoku.
 Algorithms and Data Structures I
14
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Dancing links and backtracking algorithms.
 Algorithms and Data Structures I
13
 University of London
 Introduction to Programming II
 Review JavaScript: arrow functions, loops with
forEach
structure, modules in ES6, IIFE.
 Review JavaScript: arrow functions, loops with
 Introduction to Programming II
12
 University of London
 Discrete mathematics
 Working with LaTeX expressions with LibreOffice extension.
 Discrete mathematics
 Getting to know Xmonad, bspwm and dwm.
11
 University of London
 Discrete mathematics
 Review injective and surjective functions, bijective functions, inverse functions, exponential and logarithm functions.
 Discrete mathematics
10
 University of London
 Discrete mathematics
 Review sets, set builder notation, functions, set partitions, injective and surjective functions, bijective functions, inverse functions.
 Discrete mathematics
9
 University of London
 Introduction to Programming II
 Positioning elements in CSS3, fullscreen API, CSS3 hover effects.
 Introduction to Programming II
8
 University of London
 Introduction to Programming II
 Promises in JavaScript, adding autocompletion to forms elements, working with applications that toggle fullscreen.
 Introduction to Programming II
 Batch renaming files in Bash functions.
7
 University of London
 Introduction to Programming II
 Add loading animations to
p5.js
application.  Work with
p5.GUI
library.
 Add loading animations to
 Introduction to Programming II
6
 University of London
 Introduction to Programming II
 Working with sound files properties (pitch, volume, playback rate), conditional ternary operator, SweetAlert2 events, asynchronous functions.
 Introduction to Programming II
5
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Dancing links and backtracking algorithms, mathematics of Sudoku.
 Algorithms and Data Structures I
4
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Working with a coordinate system inside vectors (pseudocode) and lists (Python).
 Algorithms and Data Structures I
3
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Permuting elements with queues.
 Algorithms and Data Structures I
2
 University of London
 Algorithms and Data Structures I
 Sudoku assignment: Converting Python functions to pseudo code and vice versa.
 Algorithms and Data Structures I
November
30
 University of London
 Introduction to Programming II
p5.js
: Manipulating the DOM, working with media files, working with SweetAlert library.
 Introduction to Programming II
29
 University of London
 Introduction to Programming II
p5.js
: File dropper, manipulating the DOM, working with media files.
 Introduction to Programming II
 Read article Things I Learnt from a Senior Software Engineer.
28
 University of London
 Discrete mathematics
 Review: Boolean algebra, Boolean functions, logic gates, combinational circuits, simplification of circuits.
 Discrete mathematics
27
 University of London
 Discrete mathematics
 Review: Logic gates, postulates of Boolean algebra, Boolean functions.
 Algorithms and Data Structures I
 Comparing function growth, big O notation, worstcase time complexity, input size.
 Discrete mathematics
 Solve permuted multiples, Project Euler.
26
 University of London
 Discrete mathematics
 Review: Karnaugh maps, De Morgan’s Theorem, logic gates, combinational circuits, simplification of circuits, Boolean algebra, adders.
 Algorithms and Data Structures I
 Randomaccess machines.
 Discrete mathematics
25
 University of London
 Discrete mathematics
 Review: Morgan’s laws in Boolean algebra, modular properties in Boolean algebra, laws of Boolean algebra, Karnaugh maps.
 Discrete mathematics
24
 University of London
 Introduction to Programming II
 Finish Practical Design Patterns in JavaScript course at Pluralsight (mediator pattern, command pattern).
 Finish JavaScript Best Pratices course at Pluralsight (why best practices, syntax, behaviors, async patterns, production code).
 Finish Mastering Git course at Pluralsight (workflows, reset, stash, solving conflicts, working with history, fixing mistakes).
 Introduction to Programming II
23
 University of London
 Introduction to Programming II
 Finish JavaScript Fundamentals course at Pluralsight (programming the BOM and DOM, promises & error handling, data access using HTTP, forms, security and building for production).
 Finish JavaScript Objects and Prototypes course at Pluralsight (creating JavaScript objects, object properties, prototypes and inheritance).
 Practical Design Patterns in JavaScript course at Pluralsight (what design patterns are, objects, creational design patterns, structural design patterns, behavioral patterns).
 Introduction to Programming II
22
 University of London
 Discrete mathematics
 Review: Operations in Boolean algebra.
 Introduction to Karnaugh Maps with The Organic Chemistry Tutor.
 Boolean Logic & Logic Gates with Crash Course Computer Science.
 Introduction to Programming II
 Finish JavaScript: Getting Started course at Pluralsight (introduction, types, arrays, program flow, functions, objects, programming for web pages).
 JavaScript Fundamentals course at Pluralsight (language features, operators, functions, objects and arrays, classes and modules).
 Discrete mathematics
21
 University of London
 Discrete mathematics
 Finish watching Logic gates with The Organic Chemistry Tutor.
 Algorithms and Data Structures I
 Review: loops in JavaScript, bubble sort in JavaScript.
 Discrete mathematics
20
 University of London
 Algorithms and Data Structures I
 Review: bubble sort & insertion sort, loops in JavaScript.
 Discrete mathematics
 Functional completeness in Boolean algebra, Logic gates with The Organic Chemistry Tutor.
 Algorithms and Data Structures I
19
 University of London
 Algorithms and Data Structures I
 Review: elementary data structures; bubble sort & insertion sort.
 Linked lists (HackerRank), Arrays vs Linked lists (Computerphile), Linked lists (Computerphile).
 Algorithms and Data Structures I
18
 University of London
 Discrete mathematics
 Boolean expressions, Boolean functions, identities of Boolean algebra, duality.
 Algorithms and Data Structures I
 Introduction to
Node.js
, insertion sort algorithm in JavaScript.
 Introduction to
 Discrete mathematics
17
 University of London
 Introduction to Programming II
 Software architecture patterns.
 SOLID principle (Single Responsibility, Open Closed, Liskov substitution, Interface Segregation and Dependency Inversion Principles).
 Introduction to Programming II
16
 University of London
 Discrete mathematics
 Review: De Morgan’s laws for quantifiers; rules of inference.
 Boolean algebra, postulates of Boolean algebra, Boolean functions.
 Algorithms and Data Structures I
 Insertion sort algorithm, loops in JavaScript, bubble sort in JavaScript.
 Discrete mathematics
15
 University of London
 Discrete mathematics
 Review: De Morgan’s laws for quantifiers; rules of inference.
 Propositional satisfiability.
 Discrete mathematics
14
 University of London
 Discrete mathematics
 Review: laws of propositional logic; predicate logic; predicates; quantification; nested quantifiers; De Morgan’s laws for quantifiers; rules of inference with/without quantifiers.
 Algorithms and Data Structures I
 Review: Linked lists.
 Bubble sort on a stack.
 Discrete mathematics
13
 University of London
 Discrete mathematics
 Review: logical equivalences; predicates & quantifiers; De Morgan’s laws; rules of inference with/without quantifiers.
 Algorithms and Data Structures I
 Review: dynamic arrays; linear search algorithm; searching stacks and queues.
 Introduction to Programming II
IntersectionObserver
in JavaScript at CSSTrick. Read about JavaScript Best Practices at W3Schools.
 Discrete mathematics
12
 University of London
 Discrete mathematics
 De Morgan’s law for quantifiers, rules of inference with/without quantifiers.
 Algorithms and Data Structures I
 Review: discretisation; Euclidean algorithm; birthday party problem; vectors; queues; stacks; arrays.
 Discrete mathematics
11
 University of London
 Discrete mathematics
 Predicates and quantifiers, De Morgan’s law for quantifiers.
 Algorithms and Data Structures I
 Implementing stacks and queues with linked lists, bubble sort.
 Introduction to Programming II
 Producing highquality Gantt charts.
 Discrete mathematics
10
 University of London
 Algorithms and Data Structures I
 Linked lists.
 Algorithms and Data Structures I
9
 University of London
 Discrete mathematics
 Definition of predicates, quantifiers, logical operators and nested quantifiers.
 Algorithms and Data Structures I
 Linear search algorithm, searching stacks and queues.
 Discrete mathematics
8
 University of London
 Discrete mathematics
 Review: logical implications; logical equivalence; laws of propositional logic.
 Predicate logic, quantification (universal, existential, uniqueness quantifiers), nested quantifiers.
 Algorithms and Data Structures I
 Linear abstract data structures (stacks, queues, vectors, arrays, dynamic arrays).
 Discrete mathematics
7
 University of London
 Discrete mathematics
 Review: logical implications; logical equivalence; laws of propositional logic.
 Algorithms and Data Structures I
 Queues, deques, linked lists.
 Discrete mathematics
6
 University of London
 Discrete mathematics
 Logical implications, logical equivalence, laws of propositional logic.
 Algorithms and Data Structures I
 Using stacks to check for palindromes, dynamic sets (stack, queue).
 Discrete mathematics
 Review how to use
crontab
to schedule tasks with Bash and Python scripts.
5
 University of London
 Algorithms and Data Structures I
 Data structure: Queues; stacks.
 Algorithms and Data Structures I
4
 University of London
 Algorithms and Data Structures I
 Data structure: vectors.
 Algorithms and Data Structures I
 Read Awesome CommandLine Tools from Vim from Scratch.
 Use Forgit (fuzzy finder for Git).
3
 University of London
 Algorithms and Data Structures I
 Examples in pseudocode.
 Algorithms and Data Structures I
 Configure and use todo.txt.
 Customize
fzf
withag
for Z Shell and Bash.
2
 University of London
 Introduction to Programming II
 Using
Function.prototype.bind()
instead ofthat = this
.  Software structure on Destroy All Software.
 Using
 Introduction to Programming II
 Piping Linux commands like a real plumber.
1
 University of London
 Discrete mathematics
 Review: powerset of a set; set operations; sets representation with Venn diagrams; De Morgan’s laws; laws of sets.
 Introduction to Programming II
p5.js
sound: working with frequency bands,P5.gui
.
 Discrete mathematics
October
31
 University of London
 Discrete mathematics
 Review: powerset of a set; set operations; sets representation with Venn diagrams; De Morgan’s laws; laws of sets.
 Propositional logic, propositions, truth tables, truth sets, compound propositions, logical implication (converse, contrapositive, inverse).
 Introduction to Programming II
p5.js
sound: amplitude; frequency, creating a “ridge plots” visualization.p5.js
data.
 Discrete mathematics
 Review basics of Flask web framework (routes, templates with Jinja2).
 Vimwiki: managing tags, creating tables.
30
 University of London
 Discrete mathematics
 Bijective functions, logarithmic functions, floor & ceiling functions.
 Discrete mathematics
29
 University of London
 Discrete mathematics
 Partial functions, function compositions, bijective functions.
 Discrete mathematics
 Configure ActivityWatch with extra watchers.
 5 GOLDEN Rules Of MINIMAL Graphic Design with Satori Graphics.
28
 University of London
 Discrete mathematics
 Review graph of functions.
 Partial functions.
 Four Basic Proof Techniques Used in Mathematics with patrickJMT (direct, by contradiction, by induction, by contrapositive).
 Discrete mathematics
 Git review: Merging branches (fastforwarding), cherry picking,
git push
,git pull
, tracking branches, aliases.
27
 University of London
 Discrete mathematics
 Injective, bijective & surjective functions, inverse functions, composition of functions.
 Discrete mathematics
 On Learn Git Branching: Working with remote branches, working with diverged history,
pull rebase
, merging feature branches, remotetracking branches,fetch
arguments,pull
arguments.
26
 University of London
 Discrete mathematics
 Injective & surjective functions.
 Discrete mathematics
 Basics of WebRTC.
 Basics of Pandoc and Vimtex.
 groff/troff: MUH MINIMALIST Documents with Luke Smith.
 The Science of Great UI with Coding Tech.
 On Learn Git Branching: Relative refs (
^
/~
),reset
,revert
,cherrypick
, interactive rebase, tags,describe
,clone
, remote branches,fetch
,pull
.
25
 University of London
 Discrete mathematics
 Introduction to functions (onetoone [injective] and onto [surjective] functions), plotting functions, set operations, set notations.
 Discrete mathematics
 How patterns are matched in
.gitignore
.  New features in Python 8 (
:=
walrus operator,/
positionalonly parameters,{var_name=}
selfdocumenting fstrings).
23
 University of London
 Discrete mathematics
 Propositional equivalences, De Morgan’s laws, applications of satisfiability.
 Discrete mathematics
 Review Git basics.
22
 University of London
 Discrete mathematics
 Applications of propositional logic, propositional equivalences.
 Discrete mathematics
21
 University of London
 Discrete mathematics
 Logic and proofs (propositional logic), applications of propositional logic, Set theory from scratch.
 Introduction to Programming II
 Documenting through SRS (software requirements specification), creating Gantt charts specifically for software development.
p5.js
: Loading and playing a sound.
 Discrete mathematics
20
 University of London
 Introduction to Programming II
 Making a website from Vimwiki.
 Introduction to Programming II
19
 University of London
 Introduction to Programming II
 Study case 2 (music visualizer):
p5.dom
(handling events), anonymous functions.
 Study case 2 (music visualizer):
 Introduction to Programming II
18
 University of London
 Discrete mathematics
 Review aspects of set theory.
 Introduction to Programming II
 Study case 2 (music visualizer): Figure out how sound works with Fourier series in
p5.js
.
 Study case 2 (music visualizer): Figure out how sound works with Fourier series in
 Discrete mathematics
17
 University of London
 Discrete mathematics
 Introduction to set theory, set builder method, powerset of a set, cardinality of powerset, set operations, De Morgan’s laws.
 Discrete mathematics
16
 University of London
 Algorithms and Data Structures I
 Birthday Party problem, discretisation and pseudocode, pseudocode and functions, loops in pseudocode, Euclidean algorithm in pseudocode, converting flowcharts to pseudocode and vice versa.
 Introduction to algorithms, flowcharts, Heron’s method, pseudocode.
 Algorithms and Data Structures I
 Solve String subpattern recognition I on Codewars.
15
 University of London
 Introduction to Programming II
 Study case 1: Drawing application – under the hood, introduction to
p5.dom
, handling events inp5.dom
.  Study case 2: Music visualizer.
 Asynchronous function calls, using callbacks, debugging skills (breakpoints and stepping), testing for stability, usability testing.
 Interview with Christophe Rhodes.
 Study case 1: Drawing application – under the hood, introduction to
 Introduction to Programming II
14
 University of London
 Discrete mathematics
 Set theory.
 Introduction to Programming II
 Introducing case study 1: drawing app.
 Discrete mathematics
 Version Control with Git on Coursera: Rebasing; rewriting history (amending a commit, interactive rebase); pull requests; Git workflows (centralized, feature branch, forking, Gitflow).
 Git MERGE vs REBASE with Academind.
 Git  The STASH Command with Academind.
 Git Tutorial: Fixing Common Mistakes and Undoing Bad Commits with Corey Schafer.
 Git Tutorial: Using the Stash Command with Corey Schafer.
 Git Tutorial: Diff and Merge Tools with Corey Schafer.
13
 University of London
 Discrete mathematics
 Set operations, set identities, set builder notation.
 Discrete mathematics
12
 University of London
 Discrete mathematics
 Injective and surjective properties, introduction to functions, Heron’s method.
 Discrete mathematics
11
 University of London
 Discrete mathematics
 Set theory: partition; set operations; set identities; set builder notation.
 Discrete mathematics
10
 University of London
 Discrete mathematics
 Venn diagrams representations of sets, set representation and manipulation (complement of a set), De Morgan’s laws, Laws of sets (commutative, associative and distributive).
 Introduction to Programming II
 Public vs private properties.
 Discrete mathematics
9
 University of London
 Discrete mathematics
 Introduction to set theory, set builder method, powerset of a set, cardinality of powerset, set operations.
 Discrete mathematics
8
 University of London
 Introduction to Programming II
 Object orientation in practice, organizing code.
 Algorithms and Data Structures I
 Review Heron’s method.
 Introduction to Programming II
7
 University of London
 Algorithms and Data Structures I
 Problems, algorithms and flowcharts.
 Algorithms and Data Structures I
5
 Version Control with Git on Coursera: Git overview (remote repository), Git’s graph model (Directed Acyclic Graph), Git IDs, Git references, branches, merging, resolving merge conflicts, tracking branches, fetch, pull, push.
4
 Version Control with Git on Coursera: Git overview (remote repository).
 Converting JSON to CSV through Vim macros.
 Integrating Google Sheets with Slack, using Zapier.
3
 Version Control with Git on Coursera: Git overview (Git locations, commit to a local repository).
2
 Introduction to Algorithms, Third Edition: Standard notations and common functions.
 Version Control with Git on Coursera: DevOps and Git in a Nutshell.
1
 Introduction to Algorithms, Third Edition: Divideandconquer algorithms, growth of functions (asymptotic notation, bigo notation [asymptotic upper bound], bigomega notation [asymptotic lower bound], littleo notation [upper bound not asymptotically tight], littleomega notation [lower bound not asymptotically tight]).
YAML
andTOML
syntax. Recursion ‘Super Power’ (in Python) with Computerphile.
September
30
 Introduction to Algorithms, Third Edition: Insertion sort, analyzing algorithms (best, worst & average cases, running time, size of input, order of growth), designing algorithms (divideandconquer), merge sort algorithm.
29
 Finish reading Pragmatic Programmer: Continuous development, pragmatic starter kit (version control, regression testing, full automation).
 Introduction to Algorithms, Third Edition: The role of algorithms in computing.
28
 Pragmatic Programmer: Security basic principles, naming things, software requirements, requirements documents, agile movement.
 Solve Find the Torsional Angle challenge (Python) on HackerRank.
27
 Pragmatic Programmer: Testdriven development, unit testing, propertybased testing, security basic principles.
 Develop Slack app locally with ngrok.
 Solve Hex Color Code regex challenge (Python) on HackerRank.
26
 New UI Design Trends with DesignCourse.
 Read article The Many Faces and Filetypes of Python Configs on Hackers And Slackers.
 Learn basic usage of Dynaconf to manage configuration files in Python projects.
 Build and deploy a simple Slack bot in Python to Heroku.
25
 Pragmatic Programmer: Inheritance; using external configuration in applications; concurrency and parallelism; tips on following instincts and programming deliberately; estimating algorithms speed; refactoring; testing code.
 Read article How to Run and Control Background Processes on Linux on How To Geek.
24
 Read Python Virtual Environments: A Primer on Real Python.
23
 Threading in Python with Corey Schafer.
 Multiprocessing in Python with Corey Schafer.
 Pragmatic Programmer: Prototyping.
21
 Customizing
zsh
better.
20
 Pragmatic Programmer: Prototyping; domain languages (internal, external languages); estimating; relying on systems with plain text files; using the command shell; making the most of your text editor; using VCS for everything; advice on debugging; manipulating text with dedicated tools and programming languages; how to work with engineering daybooks; killing programs early; when and when not to use assertions; balancing system resources; decoupling code (the onedot rule of chaining method calls, avoiding global data).
19
 Pragmatic Programmer: Design principles (ETC [easier to change]), DRY [Don’t Repeat Yourself]), orthogonality (independence of components), reversibility.
18
 Git: Merge; rebase; branches.
17
 Git: staging; unstaging; checkout; reset; rebase.
14
 University of London
 Web development
 Working with Slick carousel, Lightbox plugin for Bootstrap, touch events in JavaScript, event handlers & event listeners.
 Web development
13
 University of London
 Web development
 General review of Bootstrap 4 framework, Slick JavaScript library, Lightbox library.
 Web development
12
 University of London
 Web development
 General review of Bootstrap 4 framework.
 Web development
11
 University of London
 Web development
 General review of Bootstrap 4 framework.
 Web development
 Using progress bars with Click, compiling SASS with
rubysass
Using Slick and Lightbox as JavaScript plugins.
10
 University of London
 Web development
 Bootstrap 4 framework: List group items, badges, forms, input groups, alerts, progress bars, tables, pagination, cards, media objects, grid system flexbox, JavaScript widgets, collapse widget, accordion widget, tooltips, popovers, modals.
 Web development
Gulp
withnode.js
, Emmet syntax.
9
 University of London
 Web development
 Review how Bootstrap 4 framework works: setup; typography; alignment; positioning; CSS breakpoints; buttons; nav bars.
 Web development
 Recursion in
p5.js
: Coding Challenge #77: Recursion.
8
 University of London
 Introduction to programming: Working with realistic physics in
p5.js
.
 Introduction to programming: Working with realistic physics in
7
 University of London
 Introduction to programming: Working with realistic physics animations, particle systems (fireworks), working with the DOM inside
p5.js
.
 Introduction to programming: Working with realistic physics animations, particle systems (fireworks), working with the DOM inside
 Closures in JavaScript.
6
 University of London
 Introduction to programming: Layering canvases in
p5.js
, calling scripts dynamically.
 Introduction to programming: Layering canvases in
 Python: Unit testing, importing modules.
5
 University of London
 Introduction to programming: Splitting application into modules, working with sound in
p5.js
.
 Introduction to programming: Splitting application into modules, working with sound in
4
 University of London
 Introduction to programming: Constructor functions, working with sound and
DOM
functions inp5.js
.
 Introduction to programming: Constructor functions, working with sound and
 Logging in Python.
 Setting up Mailgun with custom domains.
3
 University of London
 Numerical mathematics: Calculus, linear algebra, sequences & series, probability, number bases, modular arithmetic.
 Creating a watchdog in Python.
2
 University of London
 Numerical mathematics: Calculus, linear algebra, sequences & series, probability, number bases, modular arithmetic.
1
 University of London
 Numerical mathematics: Graph transformations, probability, binomial probability, linear algebra, affine transformations, number bases, modular arithmetic.
August
31
 University of London
 Numerical mathematics: Sequences and series, modular arithmetic, number bases, probability.
30
 University of London
 Numerical mathematics: SUVAT equations, local minima and maxima with first derivative test, sequences and series.
29
 University of London
 Numerical mathematics: Calculus and derivatives, limits and continuous functions, inverse functions and their derivatives, SUVAT equations.
28
 University of London
 Numerical mathematics: Calculus and derivatives, product rule, quotient rule, chain rule.
 Read Git Guides  Jacob Herrington  Git Bisect is Easy (How to Initiate the Robot Uprising) and
git cherrypick
.
27
 University of London
 Numerical mathematics: Geometric progressions, sequences, calculus and derivatives.
 Read Git Guides  Jacob Herrington  10 Git Tricks to Save Your Time and Sanity.
26
 University of London
 Numerical mathematics: Linear dependence and independence, linear subspaces, number bases, number base conversions, modular arithmetic, patterns in sequences.
25
 University of London
 Numerical mathematics: Systems of equations with matrices, inverse matrices, permutations in matrices, basic operations on vectors, linear combinations of vectors, span, linear independence.
24
 University of London
 Numerical mathematics: Law of sine, Law of cosine, triangles with ambiguous cases, matrices (linear transformations, systems of equations).
22
 University of London
 Numerical mathematics: Dot product and angle between two vectors, polar coordinates, SUVAT equations, derivatives.
21
 University of London
 Numerical mathematics: Inverse of matrices, probability of an event, mutually exclusive events, independent events, conditional probability, fundamental counting principle.
20
 University of London
 Numerical mathematics: Simple machine learning model, Bayes’ Theorem (likelihood, prior, evidence, posterior), Bayesian inference.
19
 University of London
 Introduction to programming: JavaScript arrays, debugging techniques, methods, vector objects in
p5.js
.  Numerical mathematics: Probability & statistics: independent events, complement of an event, averages (mean, median, mode), variance, standard deviation, conditional probability, sets.
 Introduction to programming: JavaScript arrays, debugging techniques, methods, vector objects in
17
 University of London
 Numerical mathematics: Introduction to combinatorics and probability, counting principles, independent events (multiplication law), permutations, mutually exclusive events, complement of an event, combinations.
 Web development
 JavaScript basics: Execution context, execution stack (creation and execution phases), hoisting, scoping and scoping chain, DOM manipulation and events,
this
keyword in practice, events handlers & events listeners.
16
 University of London
 Numerical mathematics: Affine transformations, kaleidoscopes and tilings, solving simultaneous equations using matrices, linear transformations of matrices, homogeneous coordinates.
 Web development
 JavaScript basics: basic operators, operator precedence, conditional statements, boolean logic, ternary operators, switch statement, truthy & falsy values, equality operators, functions, arrays, objects, properties and methods, loops and iterations, continue, break, ES5, ES2015+.
15

University of London
 Numerical mathematics: Linear transformations of matrices.

Neovim: Using the
dot
command (dot formula).  Comments in Python: Best Practices with Real Python. Equality testing, review JavaScript arrays on Execute Program.
14
 University of London
 Numerical mathematics: Multiplying matrices and column vectors, linear transformations of matrices, homogeneous coordinates.
13

University of London
 Numerical mathematics: Cross product of vectors, inverse of a matrix, multiply matrices and column vectors.

Python Tutorial: Unit Testing Your Code with the unittest Module with Corey Schafer.
12

University of London
 Numerical mathematics: Homogeneous coordinates, cross product of two vectors, triple scalar product, vector product, inverse of a matrix with cofactor method and JordanGauss method.

Using primary (
Shift + Insert
) and default (Ctrl + Shift + v
) clipboard in terminal.  Git Fu Developing with Coding Tech:
git
aliases (Git aliases and aliases with Shell commands!
), logs, reflogs, stash, bisect.
11

University of London
 Numerical mathematics: Solving a matrix equation, inverse of a square matrix, system of linear equations.

Dot product and cross product in Python.
10

University of London
 Numerical mathematics: matrices & systems of equations, elementary row operations, Gaussian elimination with backsubstitution, GaussJordan elimination, operations with matrices.
 Introduction to programming: Working with
this
keyword, vectors inp5.js
.

Python concepts:
sys.path
, creating packages and subpackages.
9

University of London
 Numerical mathematics: matrices (linear combinations, multiplication), determinant.

Using
git stash
,git commit amend
,git diff
,.gitignore
and.git/info/exclude
files,git blame
.
8
 University of London
 Numerical mathematics: SUVAT equations in vector form, Operations with 2D vectors, dot product, angle between vectors, operations with 3D vectors.
 Web development
 More on
Handlebars.js
: Custom expressions, partials.
7
 University of London
 Numerical mathematics: Triple scalar product, crossproduct of two vectors.

Essence of linear algebra with 3Blue1Brown: determinant; cross products.

Multi Programming with Computerphile.
 Equality testing, review JavaScript arrays on Execute Program.
6

University of London
 Numerical mathematics: Vectors in space, crossproduct of two vectors, Analytic geometry.
 Web development:
Handlebars.js
helpers.

Python Quick Tip: The Difference Between “==” and “is” (Equality vs Identity) with Corey Schafer.
 Review JavaScript arrays on Execute Program.
5

University of London
 Introduction to programming: Working with
this
keyword.  Numerical mathematics: Vectors, dot product, matrices & determinants, elementary row operations, Gaussian elemination with backsubstitution, matrices with rowechelon form, analytic geometry in three dimensions.
 Introduction to programming: Working with

Review JavaScript arrays on Execute Program,
forEach
iterations.
4

University of London
 Introduction to programming: More on constructor functions, creating a particle system with an emitter (holds, adds and removes particles), making platforms in a
p5.js
game.  Numerical mathematics: More on vectors, dot product.
 Web development: Web template systems (Mustache and
Handlebars.js
).
 Introduction to programming: More on constructor functions, creating a particle system with an emitter (holds, adds and removes particles), making platforms in a

JavaScript arrays on Execute Program.
3

University of London
 Introduction to programming: Vector objects and adding sound in
p5.js
, factory pattern, constructor functions.  Numerical mathematics: Matrices, inverse matrices.
 Introduction to programming: Vector objects and adding sound in

Solve digit fifth powers, Project Euler.
2
 University of London
 Numerical mathematics
 Essence of linear algebra with 3Blue1Brown: Matrix multiplication as composition, threedimensional linear transformations, the determinant, inverse matrices, column space and null space, nonsquare matrices as transformations between dimensions, dot products and duality, cross products.
 Numerical mathematics
1
 University of London
 Numerical mathematics: addition, subtraction, scalar product (dot product) with vectors and matrices.
 Essence of linear algebra with 3Blue1Brown: vectors — what even are they, linear combinations, span, and basis vectors, linear transformations and matrices.
 Numerical mathematics: addition, subtraction, scalar product (dot product) with vectors and matrices.
July
31
 University of London
 Numerical mathematics
 Calculus: Differentiating exponential functions, find maxima, minima, turning points and asymptotes of graphs of trigonometric, exponential and logarithmic functions.
 Numerical mathematics
30
 University of London
 Numerical mathematics
 Calculus: Using differentiation to analyse the behaviour of a function, differentiating trigonometric functions.
 Numerical mathematics
29
 University of London
 Numerical mathematics
 MIT Highlights of Calculus by MIT: Limits and continuous functions, inverse funtions and the natural logarithm, derivatives of natural logarithms and sine inverse, growth rates & log graphs, linear approximation & Newton’s method, chains f(g(x)) and the chain rule.
 Numerical mathematics
28
 University of London
 Numerical mathematics
 MIT Highlights of Calculus by MIT: Big picture of calculus, big picture of derivatives, max and min and second derivative, the exponential function, product rule, quotient rule, big picture of integrals, derivative of
sin(x)
andcos(x)
.
 MIT Highlights of Calculus by MIT: Big picture of calculus, big picture of derivatives, max and min and second derivative, the exponential function, product rule, quotient rule, big picture of integrals, derivative of
 Numerical mathematics
27
 University of London
 Numerical mathematics
 Calculus: The quotient rule, product rule, chain rule.
 Chains f(g(x)) and the chain rule by MIT
 Web development: On JavaScript: touch events, orientation events.
 Introduction to programming: JavaScript methods.
 Numerical mathematics
26
 University of London
 Numerical mathematics
 Calculus: The quotient rule, product rule, chain rule.
 Numerical mathematics
25
 University of London
 Numerical mathematics
 Calculus: Differentiating compositions of functions with the chain rule, differentiation of polynomial, rational and algebraic functions.
 Numerical mathematics
24

University of London
 Numerical mathematics
 Calculus: Differentiating polynomials and rational functions, limits of functions, chords and lines tangent to graphs.
 Numerical mathematics

Python Tutorial: Calling External Commands Using the Subprocess Module
23
 University of London
 Numerical mathematics
 Calculus: Limits of functions, chords and lines tangent to graphs.
 Numerical mathematics
22
 University of London
 Numerical mathematics
 Calculus: Limits of sequences, limits of summations, evaluating limits at infinity.
 Numerical mathematics
21
 University of London
 Numerical mathematics
 Calculus: Limits at infinity & limits of sequences.
 Numerical mathematics
20

University of London
 Numerical mathematics
 Calculus: Introduction to limits.
 Web development: On JavaScript: Event listeners.
 Numerical mathematics

How references work (
HEAD
, detachedHEAD
),git reflog
, tags, annotated tags.
19
 University of London
 Numerical mathematics
 Calculus: The quotient rule, product rule, chain rule, introduction to limits.
 Numerical mathematics
18

University of London
 Numerical mathematics: The product rule.
 Essence of Calculus with 3Blue1Brown: Higher order derivatives, Taylor series, what they don’t teach you in calculus.
 Numerical mathematics: The product rule.

Create Slack App with Zapier integrations.
 Git: Modifying files on GitHub,
git pull
.
17

University of London
 Numerical mathematics
 Essence of Calculus with 3Blue1Brown: What’s so special about Euler’s number e, implicit differentiation, limits, l’Hopital’s rule & epsilon delta definitions, integration & the fundamental theorem of calculus and what does area have to do with slope.
 Numerical mathematics

Git: Configuring SSH,
git status
, staging, committing,git remote
,git log
, collaborating on GitHub.
16
 University of London
 Numerical mathematics
 Essence of Calculus with 3Blue1Brown: Visualizing the chain rule and product rule.
 Numerical mathematics
15
 University of London
 Introduction to programming: Create a simple yet complete game with
p5.js
.  Numerical mathematics: Introduction to calculus: limits and differentiation, exponential and logarithmic functions.
 Essence of Calculus with 3Blue1Brown: Introduction; the paradox of the derivative; derivative formulas through geometry.
 Introduction to programming: Create a simple yet complete game with
14
 University of London
 Numerical mathematics: Introduction to calculus: limits and differentiation, exponential and logarithmic functions.
13
 University of London
 Web development: Manipulating the DOM, events and events handlers, JavaScript syntax.
12
 University of London
 Numerical mathematics: Logarithmic functions.
11
 University of London
 Numerical mathematics: Logarithmic functions.
10

University of London
 Introduction to programming: JavaScript: Nesting objects and arrays, search patterns, debugging techniques (common errors with data, iterative coding).
 Numerical mathematics: Exponential & logarithmic functions.

Read article on new features in Python 3 at pythoncatalin.
9

University of London
 Introduction to programming: JavaScript: Variables and scopes, two dimensional arrays.
 Numerical mathematics: Exponential functions, logarithmic functions.

Vim
global substitution features, tags stack,CTRL + F
in command mode to search previous commands.  Classic Computer Science Problems in Python, by David Kopec: constraintsatisfaction problem framework.
8
 University of London
 Web development: Introduction to JavaScript for the web: clientside JavaScript, roles of the language.
7

University of London
 Web development: Describe the experience of building a website with a remote team from multiple continents.

Learn the technical differences between Live CD/USB, persistent Live CD/USB, full installation on drive and inside virtual machines with fixed or dynamically allocated storage space.
6
 University of London
 Web development: More on building a responsive website from scratch.
5

University of London
 Introduction to programming: Traversing arrays.
 Web development: More on building a responsive website from scratch.

Read article Is There Such a Thing As Bugfree Software? on Hacker Noon.
 Read article How to Write Unit Tests and How They Help in The Development Process on Steel Kiwi.
4
 University of London
 Numerical mathematics: Exponential & logarithmic models, more on exponential and logarithmic functions.
3

University of London
 Numerical mathematics: More on exponential and logarithmic functions.

Configure
unclutter
to hide cursor automatically.  Configure
vimgitgutter
with Neovim.
2

University of London
 Numerical mathematics: Inverse functions, exponential and logarithmic functions.

VIM tutorial: linux terminal tools for bug bounty pentest and redteams with @tomnomnom with STÖK.
1

University of London
 Introduction to programming: Refactoring code, userdefined functions, function input & output.

My Biggest Challenge With Programming (Q&A #11) with sentdex.
 How to use Gnaural to create binaural beats with Gnaural.
June
30
 University of London
 Numerical mathematics: Steganography, RSA algorithm, sequences & series.
29
 University of London
 Numerical mathematics: Sequences & series.
28

University of London
 Numerical mathematics: Sequences & series.

Talk on going mouseless with Vim, Tmux, and Hotkeys with Leeren.
27
 University of London
 Numerical mathematics: Sequences & series, transformation of graphs.
26

University of London
 Numerical mathematics: Transformation of graphs.

Responsive CSS grid with no media queries with DesignCourse.
25
 University of London
 Numerical mathematics: RSA algorithm, transformation of graphs.
24
 University of London
 Web development: More on CSS grid layouts and redesigning a website from scratch.
23
 University of London
 Web development: CSS grid layouts, redesigning a website from scratch.
22
 University of London
 Numerical mathematics: RSA algorithm.
21
 University of London
 Numerical mathematics: Steganography, modular arithmetic, encryption & RSA algorithm, transformation of graphs.
20

University of London
 Web development: CSS animations, CSS
gridarea
,@fontface
,@media
queries.
 Web development: CSS animations, CSS

8 super heroic Linux commands that you probably aren’t using with Engineer Man.
19

University of London
 Numerical mathematics: Steganography, modular arithmetic.
 Web development: CSS frameworks, accessibility.

Classic Computer Science Problems in Python, by David Kopec: Missionaries and cannibals problem with
BFS
.  Matplotlib Tutorial (Part 10): Subplots with Corey Schafer.
18

University of London
 Introduction to programming: Advanced work with arrays, nested iteration for drawing patterns.
 Numerical mathematics: Exponential and logarithmic functions.

Classic Computer Science Problems in Python, by David Kopec: More on search algorithms (
BFS
,DFS
,A*
).  Matplotlib Tutorial (Part 9): Plotting Live Data in RealTime with Corey Schafer.
17

University of London
 Introduction to programming: Advanced work with arrays, nested iteration for drawing patterns.
 Numerical mathematics: Steganography.
 Web development: Coding responsive behavior.
 More on Core study skills course.

Classic Computer Science Problems in Python, by David Kopec: More on search algorithms.
 Matplotlib Tutorial (Part 8): Plotting Time Series Data with Corey Schafer.
16

University of London
 Numerical mathematics: Plotting, transformation of graphs.
 More on Core study skills course.

Classic Computer Science Problems in Python, by David Kopec: Search algorithms.
 What is a bare Git repo and why you need them with Engineer Man.
 Matplotlib Tutorial (Part 7): Scatter Plots with Corey Schafer.
15

University of London
 Numerical mathematics: Plotting, transformation of graphs.
 Core study skills course.

Classic Computer Science Problems in Python, by David Kopec: Search algorithms.
 Matplotlib Tutorial (Part 6): Histograms with Corey Schafer.
14

University of London
 Numerical mathematics: Cryptography on Khan Academy: Fundamental theorem of arithmetic, public key cryptography, Diffiehellman key exchange, RSA encryption, Euler’s totient function, primality tests.

Matplotlib Tutorial (Part 5): Filling Area on Line Plots with Corey Schafer.
13

University of London
 Numerical mathematics: Polar coordinates, solving trigonometric equations, damped trigonometric graphs, trigonometric ratios and functions, number bases with rational and irrational numbers.

Matplotlib Tutorial (Part 4): Stack Plots with Corey Schafer.
12

University of London
 Numerical mathematics: trigonometric ratios and functions.
 Web development: Creating a responsive website from scratch.

Classic Computer Science Problems in Python, by David Kopec: Encryption with
XOR
bit operation.  Matplotlib Tutorial (Part 3): Pie Charts with Corey Schafer.
11

University of London
 Introduction to programming: Create a very simple sidescrolling game with
p5.js
.
 Introduction to programming: Create a very simple sidescrolling game with

Classic Computer Science Problems in Python, by David Kopec: Recursive functions, memoization, generators, compressing and decompressing data.
 Matplotlib Tutorial (Part 2): Bar Charts and Analyzing Data from CSVs with Corey Schafer.
10

University of London
 Numerical mathematics: trigonometric ratios and functions.

Classic Computer Science Problems in Python, by David Kopec: Recursive functions.
 Introduction to Data Science in Python on Coursera: More on Python fundamentals (lambda, list comprehension),
Numpy
basics.  Matplotlib Tutorial (Part 1): Creating and Customizing Our First Plots with Corey Schafer.
9

University of London
 Numerical mathematics: Analytic trigonometry, unit circle, law of sines, law of cosines.

Flask: Learn Flask for Python with FreeCodeCamp.org.
 Introduction to Data Science in Python on Coursera: Advanced Python objects,
map()
.
8
 University of London
 Introduction to programming: JavaScript
for
loops, arrays.  Numerical mathematics: Trigonometry.
 Web development: CSS grids and columns, CSS animations, accessibility in CSS.
 Introduction to programming: JavaScript
7
 University of London
 Numerical mathematics: Trigonometry.
6
 University of London
 Numerical mathematics: Compositions with inverse trigonometric functions, inverse trigonometric functions, trigonometrical functions.
 Web development: CSS box model, CSS layout.
5
 University of London
 Introduction to programming: Game project.
 Numerical mathematics: Trigonometrical functions.
4
 University of London
 Numerical mathematics: Trigonometrical functions, identities & equations.
 Web development: CSS colouring, CSS typography.
3

University of London
 Web development: CSS selectors, CSS typography.

Tribonacci Numbers (and the Rauzy Fractal) with Numberphile.
2
 University of London
 Web development: CSS selectors.
1
 University of London
 Numerical mathematics: Plotting, transformation of graphs.
May
31
 University of London
 Numerical mathematics: Angles and triangles, trigonometry.
30

University of London
 Numerical mathematics: Angles and triangles.
 Web development: HTML prototype.

Q Learning Intro/Table  Reinforcement Learning p.1 with sentdex.
29
 University of London
 Numerical mathematics: Trigonometry on Khan Academy, angles and triangles.
28
 University of London
 Introduction to programming: Game project (working with extra canvas in
p5.js
).  Numerical mathematics: Trigonometry.
 Introduction to programming: Game project (working with extra canvas in
27
 University of London
 Introduction to programming: Interaction with game character (movement, gravity).
 Simple steps to help shut down scammers with Engineer Man.
26
 University of London
 Introduction to programming: Conditionals with types, debugging techniques.

The Coding Train: nested loops, functions, function parameters & arguments, functions & returns, classes in JavaScript with ES6, constructor arguments with classes in JavaScript, web editor: adding JavaScript files, what is an array, arrays & loops, arrays of objects, for of loops, mouse interactions with objects, removing objects from arrays, while & for loops.
 Web development: HTML body, introduction to CSS.
25
 University of London
 Introduction to programming: Conditional logic, template literals.
 The Coding Train: checking objects intersection/collisions, object communication part 2, while & for loops.
24

University of London
 Numerical mathematics: Kinematic equations, angles, triangles, trigonometry.
Custom commands with fzf in Linux terminal with Luke Smith.
23
 University of London
 Numerical mathematics: Plotting, transformation of graphs, Fibonacci spiral.
22

University of London
 Numerical mathematics:
suvat
equations.
 Numerical mathematics:
Suckless’s dwm: So easy even a caveman could do it! with Luke Smith.
21

University of London
 Numerical mathematics: Polynomial and rational functions, motions (distance and speed, displacement and velocity, acceleration).
For Loops  JavaScript Programming Basics p.6 with sentdex.
20
 University of London
 Numerical mathematics: Polynomial and rational functions.
19
 University of London
 Numerical mathematics: Distance formula, midpoint formula, linear extrapolation, step functions, transformations of functions, composition of functions, polynomial and rational functions, Criss Cross Factoring with Steven Kliemann.
18
 University of London
 Introduction to programming: Type casting in JavaScript.
 Numerical mathematics: Cartesian coordinates, 2D & 3D shapes in planes.
17
 University of London
 Numerical mathematics: More on functions, graphs of functions, piecewise functions, composite functions.
16
 University of London
 Numerical mathematics: Functions, graphs of functions, piecewise functions, composite functions.
 Introduction  JavaScript Programming Basics p.1 with sentdex.
15
 University of London
 Web development: HTML body.
 Setting up VirtualBox on Manjaro.
 Creating wireframes in Adobe XD.
14
 University of London
 Introduction to programming: drawing more objects in
p5.js
.  Web development: HTML markup history, meta tags, open graphs tags, SEO.
 Introduction to programming: drawing more objects in
13
 University of London
 Introduction to programming: drawing more objects in
p5.js
.
 Introduction to programming: drawing more objects in
 Reconfigure hardware and software on macOS from scratch with external backup.
12
 University of London
 Web development: Introduction to HTML.
11
 University of London
 Numerical mathematics: Series, convergence, divergence.
 Web development: Basics of HTML wireframes, CSS, PWA (Progressive Web App) & service workers.
10
 University of London
 Numerical mathematics: Series, convergence, divergence.
9
 University of London
 Numerical mathematics: Generating random numbers, arithmetic & geometric progressions.
 Introduction to Data Science in Python on Coursera: Python fundamentals, Pandas.
8
 University of London
 Numerical mathematics: Arithmetic & geometric progressions, series.
 Introduction to Data Science in Python on Coursera: Python fundamentals.
 Learn Pandas in about 10 minutes! A great python module for Data Science! with Python Programmer.
7
 University of London
 Numerical mathematics: Arithmetic sequences & partial sums.
 Creating Search Over Time Video Graphs  Data Analysis of Google Takeout p.2 with sentdex.
6
 University of London
 Numerical mathematics: Recursive series, finite & infinite series.
 Configure Dunst.
 Building Search Word Database  Data Analysis of Google Tracking Takeout p.1 with sentdex.
5
 University of London
 Numerical mathematics: Infinite series, limits.
 Setting up
Neomake
&Black
with Neovim.
4
 Configure Manjaro i3 from scratch.
2
 Changing compose key settings in
.xinitrc
.  BIOS settings: TPM (Trusted Platform Module), VT (Virtualization Technology), DEP (Data Execution prevention).
1
 Android deployment  Kivy Mobile and Desktop App Dev w/ Python with sentdex.
 How Password Managers Work with Computerphile.
April
30
 Introduction to Data Science in Python on Coursera: Working with dataframes in
Pandas
.  Finishing Chat Application  Kivy Mobile and Desktop App Dev w/ Python with sentdex.
29
 Introduction to Data Science in Python on Coursera: Introduction to
Pandas
.  How to make vim spell error search the current line only? (Stackoverflow answer).
 DIY Raspberry Pi Wireless Driveway Gate Opener with Engineer Man.
 Chat Application Page  Kivy Mobile and Desktop App Dev w/ Python with sentdex.
28
 University of London
 Numerical mathematics: simplified RSA algorithm, finding encryption and decryption keys for any mod.
 Introduction to Data Science in Python on Coursera: Introduction to
NumPy
.
27
 University of London
 Numerical mathematics: Python algorithm to calculate congruence for very large numbers, RSA algorithm, number bases, modular arithmetic, sequences & series.
 Introduction to Data Science in Python on Coursera: Python fundamentals, introduction to
NumPy
.  Working with pipes in shell scripts  Part 2 with Luke Smith.
26
 University of London
 Numerical mathematics: RSA algorithm.
 Working with pipes in shell scripts with Luke Smith.
 Scheduling tasks/functions/methods  Kivy Mobile and Desktop App Dev w/ Python with sentdex.
 15 VS Code Extensions For FrontEnd Developers in 2019 with Traversy Media.
 Configure VS Code to the core.
 Setting up
Snap
andFlatpak
packages.
25
 University of London
 Numerical mathematics: RSA algorithm.
 Changing Screen/view/page  Kivy Mobile and Desktop App Dev w/ Python with sentdex.
24
 Buttons & Events  Kivy Mobile and Desktop App Dev w/ Python with sentdex.
 Clarifying the Issues with Mutable Default Arguments with Corey Schafer.
23
 University of London
 Numerical mathematics: Sequences and series, linear congruence, modular exponentiation, modular inverses.
 Kivy Intro  Mobile and Desktop App Dev w/ Python with sentdex.
22
 University of London
 Numerical mathematics: Linear congruence, modular exponentiation, RSA encryption.
 Skim through Automate the Boring Stuff with Python, by Al Sweigart: Reading & writing files.
 5 Common Python Mistakes and How to Fix Them with Corey Schafer.
21
 University of London
 Numerical mathematics: Euclidean algorithm, extended Euclidean algorithm, modular inverses.
 Skim through Automate the Boring Stuff with Python, by Al Sweigart: Python programming basics, regular expressions.
20
 University of London
 Numerical mathematics: Euclidean algorithm, extended Euclidean algorithm, modular inverses.
 Using string formatting to evaluate hexadecimal, binary, decimal and octal versions of a value (Stackoverflow answer).
19
 University of London
 Numerical mathematics: Euclidean algorithm.
18
 University of London
 Numerical mathematics: Modular arithmetic, number theory, Euclidean algorithm.
 Configuring st (simple terminal) and dmenu.
17
 University of London
 Introduction to programming:
p5.js
with functions, loops & objects.
 Introduction to programming:
 Batch convert and rename images and videos in terminal with
ImageMagick
,ffmpeg
andrename
.
16
 University of London
 Numerical mathematics: Modular arithmetic.
15
 University of London
 Numerical mathematics: Arithmetic in any base, modular arithmetic, theory of divisibility, theory of congruences.
 How I Setup a New Development Machine  Using Scripts to Automate Installs and Save Time with Corey Schafer.
 Bjarne Stroustrup: Why I Created C++ with Big Think.
14
 University of London
 Numerical mathematics: Steganography, arithmetic in hexadecimal and octal.
13
 University of London
 Numerical mathematics: Octal and hexadecimal.
 Linking variables from different functions to print them (Stackoverflow answer).
12
 University of London
 Numerical mathematics: Arithmetic in binary.
11
 University of London
 Introduction to programming: JavaScript objects, conditionals and variable types.
 Web development: How a web browser works; the importance of design; content, structure & storytelling.
10
 University of London
 Introduction to programming: builtin variables, JavaScript objects.
 Web development: Delivering Web content.
9
 University of London
 Introduction to programming: builtin variables, JavaScript objects.
 Numerical mathematics: Algorithms for converting binary from/to decimal with fractional part.
 How to Write Python Scripts to Analyze JSON APIs and Sort Results with Corey Schafer.
8
 University of London
 Introduction to programming: development environment, drawing in 2D.
 Numerical mathematics: Introduction to number bases and modular arithmetic, number bases, octal and hexadecimal with fractional parts.
7
 University of London
 Web development: Introduction to the Web.
 How to fix SyntaxError in a module that gives an error upon import? (Stackoverflow answer).
6
 Creating chat application with sockets in Python with sentdex.
 Essence of linear algebra with 3Blue1Brown: Transformation ranks, nonsquare matrices.
 Import error with Discord bot (Stackoverflow answer).
 Flask Web App Not Rendering on PythonAnywhere (Stackoverflow answer).
5
 Python: Checking dead links asynchronously.
4
 Python: Writing to files with asynchronous jobs in queue.
3
 Essence of linear algebra with 3Blue1Brown: Determinant; inverse matrices; column space and null space.
2
 Essence of Calculus with 3Blue1Brown: Higher order derivatives, Taylor series.
 Essence of linear algebra with 3Blue1Brown: Vectors; linear combinations; span; basis vectors; linear transformations; matrices; matrix multiplication as composition; threedimensional transformations.
 Linux Nice and Priority values with Engineer Man.
 How to use virtual environments with the builtin venv module with Corey Schafer.
 Setting up
LaTeX
with Vim.
1
 Essence of Calculus with 3Blue1Brown: Limits; L’Hôpital’s rule; fundamental theorem of calculus; areas and slopes.
March
31
 Tuples in regular expressions (Stackoverflow answer).
 Managing GitHub organizations.
 Essence of Calculus with 3Blue1Brown: Euler’s number, implicit differentiation.
30
 Essence of Calculus with 3Blue1Brown: Chain rule, product rule.
 SQL VIEWS + Complex Queries, Cross Joins, Unions with Socratica.
 Everyday Python Programming — Cryptocurrency stock exchange API with Engineer Man.
 Regular expressions in Python with Google for Education.
29
 Essence of Calculus with 3Blue1Brown: Fundamentals of Calculus, derivatives.
 Merging history in Git.
 Importing existing GPG keys and setting Git to use them.
28
 Python for Everyday Life: Anatomy of a Web application, MVC frameworks, building and testing a simple website with Flask, working with SQLite in Python, ORMs (Django & SQLAlchemy), designing a bot deployed to Heroku.
 Reworking history in Git (squash, pick).
27
 Finished AI For Everyone on Coursera: AI strategy, pitfalls to avoid, major application areas (computer vision, NLP, speech, robotics, machine learning), major AI techniques (unsupervised learning, transfer learning, reinforcement learning, Generative Adversarial Networks, knowledge graph), AI and society.
26
 AI For Everyone on Coursera: What is AI (machine learning, data, terminology, deep learning), building & choosing AI projects, technical tools.
25
 10 Python Tips and Tricks For Writing Better Code with Corey Schafer: Ternary operators, underscores placeholders, string formatting in fstrings placeholders, using context managers,
enumerate
function in loops,zip
function in loops, value unpacking, getting and setting attributes on objects (getattr
,setattr
), inputting sensitive information (getpass
function),help
anddir
function.  SQL Joins Explained with Socratica.
 Linux Cron Jobs with Engineer Man.
 Python for Everyday Life: Interact with httpbin Test Service, fetching data from API, automating Internet tasks (Gmail, Twitter, Reddit).
 Creating a Discord bot with custom commands.
 Matching Brackets on Code Abbey.
24
 Solve square digit chains, Project Euler.
 Setting up a webcam on Linux and using it with Webcamoid.
23
 Python for Everyday Life: Working with images, parsing QR codes, face recognition, working with APIs.
 Figuring out delayed requests with API response (Stackoverflow answer).
 Solve self powers, Project Euler.
 Solve powerful digit sum, Project Euler.
22
 Solve Champernowne’s constant, Project Euler.
 Solve Coded triangle numbers, Project Euler.
 Python: Working with PDF files, processing images with Pillow.
21
 Certifications on TestDome (Python, Linux, Numerical Reasoning).
 Python review with Python for Everyday Life: Logging, regular expressions, function decorators, context managers, generator expressions & generators, magic methods, metaprogramming, functional programming, pythonic code, manipulation files & folders, handle common file formats.
20
 Following along Scrapy tutorial.
 Modular arithmetic with negative divisors.
19
 Sending emails with Python (Gmail and local debugging server) with Corey Schafer.
 Batch convert .NEF photos to .tif with
mogrify
from ImageMagick.  Keeping files securely encrypted with GPG.
 Creating templates & styles with Scribus.
18
17
 Solve Circular primes, Project Euler.
 Solve Doublebase palindromes, Project Euler.
 Solve Integer right triangles, Project Euler.
 Replacing the first word in a string in Python 3 (Stackoverflow answer).
16
 Officially enrolled in BSc in Computer Science (Machine Learning and Artificial Intelligence) at Goldsmiths, University of London.
15
 Insertion sort algorithm.
 URL encoding with
cURL
andrequests
.  Scraping a website with
requests_html
(Stackoverflow answer).  Quickly open files in Vim (Stackoverflow answer).
14
 Sockets Tutorial with Python 3 (buffering and streaming data & sending and receiving Python objects with pickle) with sentdex.
 PostgreSQL, SELECT (part 1 & part 2), INSERT INTO & UPDATE with Socratica.
 Solve Lattice paths, Project Euler.
13
 Setting up a basic web application with Pyramid.
 Review vimfugitive features and mappings.
 Review properties of CSS selectors and hierarchies.
 Manage caching of CSS files with MD5 hashes.
 Setting up CopyQ, a “Clipboard Manager with Advanced Features”.
12
 Python scripting: Communicating with HaveIBeenPwned.com’s API to ensure a password hasn’t been breached. Code available on Github.
 Solve Lexicographic permutations, Project Euler.
 Solve Number spiral diagonals, Project Euler.
 Solve Digit factorials, Project Euler.
 Sockets Tutorial with Python 3 (receiving and sending data) with sentdex.
 Web Scraping with RequestsHTML with Corey Schafer.
11
 Refactoring Python Applications for Simplicity, by Anthony Shaw on Real Python: Code complexity.
 Python: Find unique words in text file (Stackoverflow answer).
 Limiting RAM usage inside Python script.
 Solve Finding the number of factors in a large number, Project Euler.
10
 Tor network, Tor Browser, onion routes, deep/dark web.
9
 Read Learning Python, by Mark Lutz: Core data types, Python statements, assignments, expressions, if tests, syntax rules, ternary expressions, loops.
8
 Review data structures in Python.
7
 Python: Programming Efficiently, on LinkedIn Learning (
jupyterlab
, list / dict / set comprehension, modulescollections
,geopy
&basemap
).  Introduction to ethical hacking on LinkedIn Learning.
 Changing CSS style for Gitstats.
 Solve Special Pythagorean triplet, Project Euler.
6
 Data analysis with Python, Pandas and introduction to scikitlearn with sentdex.
 Integrating Gitstats in Pelican website.
5
 Finished Mathematics for Computer Science on Coursera.
 Finished Mindshift on Coursera.
 Review Vim features on vimcasts.org: Longrange line duplication with
:t
, working with arglist &:argdo
,:global
with yank,windo diffthis
,gn
.
4
 Mathematics for Computer Science on Coursera: Transformation of graphs, kinematics equations.
 Data analysis with Python and Pandas (visualization, groupby, correlation) with sentdex.
 Mindshift on Coursera: Deliberate practice, reframing experiences, facing adversity, π approach to learning instead of T.
 Monitor a website with Python with Corey Schafer.
 Retrieving data with PyGithub.
3
 Mathematics for Computer Science on Coursera: Plotting; transformations of graphs.
 Screencasting/streaming with ffmpeg.
 Custom commands with fzf in Linux terminal with Luke Smith.
2
 Mathematics for Computer Science on Coursera: Series & patterns, limits of sequences, convergence and divergence, graph sketching.
 Redirecting websites hosted on GitHub Pages.
 The Hadwiger–Nelson problem with Numberphile.
1
 Mathematics for Computer Science on Coursera: More on geometric progressions with A size papers, series.
February
28
 Mathematics for Computer Science on Coursera: Introduction to sequences and series, modified Josephus problem with any number, geometric progressions on A paper sizes.
27
 Mathematics for Computer Science on Coursera: Encryption using modular arithmetic, solving Josephus problem with bitwise operators.
 Josephus problem explained by Numberphile.
 Python: Introduction to data visualization with Bokeh with Traversy Media.
 Python requests tutorial with Corey Schafer.
26
 Mathematics for Computer Science on Coursera: More examples on modular arithmetic.
25
 Mathematics for Computer Science on Coursera: Congruence & equivalence relations, modular exponentiation.
 The future of Cloud Computing with a16z.
24
 Python: Scope in classes (Stackoverflow answer).
23
 Mathematics for Computer Science on Coursera: Review modular arithmetic concepts.
22
 Mathematics for Computer Science on Coursera: Modular arithmetic (multiplicative identity & inverses, exponentiation, Fermat’s Little Theorem).
21
 Mathematics for Computer Science on Coursera: Arithmetic in any base, modular arithmetic (additive identity, additive inverses).
 The ELO rating system explained by James Grime.
20
 Mathematics for Computer Science on Coursera: Steganography (hiding text and images inside another image) in binary, hexadecimal and decimal.
 Mindshift on Coursera: Learning environment, memory tips, meditation (focused attention and open monitoring).
 10 Days of JavaScript on HackerRank.com: Bitwise operators, signed binary numbers.
 Refresher on So Good They Can’t Ignore You, by Cal Newport with Talks at Google.
19
 Mathematics for Computer Science on Coursera: Arithmetic in binary, working with octal and hexadecimal numbers (integers and fractions).
 Mindshift on Coursera: Ideas on pace and style of learning.
 10 Days of JavaScript on HackerRank.com: Template literals, arrow functions.
18
 Mathematics for Computer Science on Coursera: Review & create algorithms for binary to decimal conversion and vice versa.
 Learning How to Learn on Coursera: Quick review & tips on writing more readable ideas.
17
 Finished Learning How to Learn on Coursera.
 Website optimization with Google Lighthouse.
16
 Learning How to Learn on Coursera: Motivation; overlearning; Einstellung (attitude, mindset); interweaving practice; procrastination; memory.
15
 Started Learning How to Learn on Coursera: Focused/diffused thinking, procrastination, memory, sleep, creativity & problem solving, chunking.
 Manage a website remotely with
rsync
andSSH
.
14
 Started Mathematics for Computer Science on Coursera, course offered by Goldsmiths, University of London: Number bases, converting between binary and decimals with fraction, rational and irrational numbers.
 10 Days of JavaScript on HackerRank.com: Classes, inheritance.
13
 Finished How Computers Work on Coursera, course offered by Goldsmiths, University of London: General concepts on networks, security and web.
12
 How Computers Work, Coursera: Abstractions; notional machines; application states; modularity.
 10 Days of JavaScript on HackerRank.com: Object initializers, dot notation, bracket notation.
11
 Finished Introduction to Computer Programming on Coursera, course offered by Goldsmiths, University of London.
10
 Configure VirtualBox with all major Operating Systems (Windows, Mac, Linux, BSD).
 Inkscape: Convert text to vector paths.
9
 10 Days of JavaScript on HackerRank.com: Regular expressions, arrays, error handling, creating objects.
8
 Recreate structure of
content/
folder inoutput/
with Pelican (Stackoverflow answer).  Managing submodules with Git.
7
 Set up dotfiles on GitHub.
 Configure and use Z Shell (Zsh).
 10 Days of JavaScript on HackerRank.com: Arithmetic operators, functions, let & const, conditional statements (ifelse, switch), strings, loops.
6
 Review SQL commands.
 Started 10 Days of JavaScript on HackerRank.com.
5
 Git: branches; tags; commit revisions.
 Review Vim and Qutebrowser shortcuts on ShortcutFoo.
4
 Learning to use and enjoy Qutebrowser.
 Simplifying vector paths in Inkscape.
3
 Design a logo with the golden ratio.
2
 Review Git basics.
January
18
 HarvardX: CS50
 First steps in C (header files, syntax, compiler).
 Broadcasting events in Scratch.
17
 HarvardX: CS50
 Making a simple game in Scratch.
16
 Finished the JavaScript Tutorial course on SoloLearn!
 JavaScript: Objects; DOM & events; ECMAScript 6.
 Using embedded terminals in
Neovim
.
15
 JavaScript: Conditional statements, loops and functions.
14
 JavaScript: builtin variables and events.
13
 Creating abstract SVG paths in Inkscape.
 Creating functions in JavaScript with
Processing.js
&p5.js
.
12
 Finished Google IT Support Professional Certificate!
 IT Security: Review (application policies, privacy policies, information policies, password policies, security recommendations on mobile & laptop, wireless security, authentication systems, network separation, firewalls, intrusion detection & prevention systems).
11

Google IT
 IT Security: Review of security measures.

Creating collapsible, responsive content in CSS with Bootstrap 4.
10
 Google IT
 IT Security: Secure network architecture, wireless security, network monitoring, system hardening, application hardening, security model of Chrome OS.
9
 Google IT
 IT Security: AAA (Authentication, Authorization, Accounting).
8
 Google IT
 IT Security: Symmetric encryption, asymmetric encryption, hashing, cryptography applications.
 Standard functions in SQL.
7
 Google IT
 IT Security: Malicious software, network attacks, other types of attacks.
 Statistics (Poisson distribution, geometric distribution, binomial distribution).
6
 Google IT
 System administration consultation (process improvements).
 Finish reading Atomic Habits, by James Clear.
 Managing duplicates in Python (Bash History Cleaner).
5
 Google IT
 Disaster recovery plans & postmortems.
 Statistics (conditional probability).
4
 Google IT
 Setting a backup server (BackupPC) on Linux. Disaster recovery plans.
 Bitwise operations (Python).
3
 Google IT
 Data recovery plans, types of backups.
 Primality testing algorithm in Python.
2
 Google IT
 Active Directory (managing users and passwords, group policy), OpenLDAP.
 Began reading Atomic Habits, by James Clear.