Learning Progress 2018 and Earlier

December

31

  • Managing configuration in ranger.

30

29

  • Using ClickUp for task and project management.

28

  • Google IT
  • Managing resources on cloud services, platform services (servers & databases), directory services, centralized management.

27

  • Google IT

  • Print services, NFS servers, chat communication services (XMPP, IRC, etc.)

  • Configure locales on Linux.

  • Using Joplin & Todoist.
  • Setting up bumblebee-status with i3.

26

  • i3wm configuration: status bar, workspaces, themes, modules.

25

  • Google IT
  • Physical infrastructure services.
  • Configuring network services.
  • i3wm setup & configuration.

23

  • Google IT
  • IT infrastructure services.
  • Regular expressions in Python.
  • Working with JSON files in Python.

22

  • Google IT
  • System administration & tasks.
  • Regular expressions in Python.

21

  • Google IT
  • Operating Systems: Filesystems; Process management; Remote access; Virtualization; Logging.

20

  • Google IT
  • Operating Systems: file and text manipulation, users & permissions, package & software management.

19

  • Google IT
  • Networking services: VPNs; proxies.
  • Connecting to Internet: Dial-up, broadband, wireless, WANs.
  • Troubleshooting: verifying connectivity, digging into DNS, cloud, IPv6.
  • Operating systems: basic commands (PowerShell & Bash).

18

  • Google IT
  • Networking services: name resolution, DNS, DHCP, NAT.
  • Implementing linked lists in Python.

17

  • Google IT
  • Routing (tables, protocols, addresses).
  • Transport layer, application layer.

16

  • Google IT
  • Introduction to Computer Networking: Subnetting.

15

  • Test Driven Development: Pytest; Unittest; Doctest; test doubles; test coverage.

14

  • Google IT
  • Introduction to Computer Networking: TCP/IP five-Layer model, basics of networking devices.

13

  • Google IT
  • Operating System: Installing Windows/Linux/Mac, virtual machines, Chrome OS.
  • Networking: TCP/IP, history, limitations, impact, security, privacy.
  • Software: abstractions; types of software; interacting with software.
  • Troubleshooting: best practices, customer service, documentation & writing effective documentation, technical interview.

12

  • Google IT
  • Hardware: CPU & other components, overclocking, BIOS, computer assembly.
  • Operating System: file systems, kernel, logs, user space, boot process.

11

  • Add plugins to Pelican (static site generator): plugin tag_cloud.
  • Enrolled in Google IT Support Professional Certificate on Coursera.
  • Introduction to IT support, history of computing, digital logic, computer architecture layer.

10

  • Bootstrap (web framework): Tables.
  • Pelican (static site generator): Use Pages in theme; Integrate menu items; Add a custom 404 error page.
  • Read The Complete Software Developer’s Career Guide, by John Sonmez: Section 3 (What you need to know about software development) & Section 4 (Working as a developer). Section 4 contained the inspiration I needed to write about this Learning Progress.

9

  • Manage Python dictionary with (x, y) coordinates (Advent of Code, day 3).

8

  • Use fenced code blocks in Markdown.
  • Add Markdown extensions in Pelican.
  • Emmet syntax with Vim plugin emmet-vim.

7

  • Compare strings that differ by one character (Advent of Code, day 2).
  • Get common letters from two strings (Advent of Code, day 2).

6

  • Customize scrollbar in CSS.
  • Modify code blocks in CSS with Pygments.
  • Module asyncio in Python (including sentdex tutorials on YouTube).

5

  • Use markdown-preview plugin for Neovim.
  • Storing Python dictionaries into files & retrieving them.
  • Convert list of strings to integers.
  • Special Pythagorean triplet, Project Euler.

4

  • Apply text transformations in CSS (example with Copyleft symbol instead of Copyright).
  • p5.js library: Simple themes like shapes, colors & text.

3

  • Use Vimwiki for note-taking.
  • Arithmetic in JavaScript.

2

  • Set fzf with ag in Neovim.
  • Remove all buffers except current one in Neovim.
  • Use MathJax syntax.
  • Conditionals in JavaScript.

1

  • Vim’s location list.
  • fzf behavior with .gitignore & .ignore files.
  • Functions in JavaScript.
  • Swap partitions in Linux.
  • Use Calcurse in terminal.

November

29

  • Implement linked list in Python.

27

  • SVG icon transparency in CSS.
  • Make better use of display properties in CSS.
  • SVG rendering of PNG images with Inkscape.
  • SVG support in modern web browsers.

26

25

  • Use Font Awesome.
  • Disqus integration with comment counts.
  • Correctly set Python host in Neovim.

24

  • Link selectors in CSS.
  • Security measures to take with VPN (Virtual Private Networks).

23

  • Generate favicon for different devices and platforms.

22

  • Make more responsive design in HTML5 & CSS3.
  • Manage bookmarks on the command-line with Buku.

22

  • Disqus website integration.

19

  • Horizontal scrollable elements with Bootstrap.
  • Jinja2 syntax.
  • Linear gradients with transparency in SVG images.

18

  • Gradient mask with transparency in Inkscape.
  • @media queries in CSS.
  • Navigation bar togglers in Bootstrap.

17

  • tmux color schemes and powerline settings.

16

  • HTML Fundamentals (certificate).
  • Use third-party fonts in HTML.
  • Build a simple landing page in HTML5 & CSS3.

15

  • Draggable JS.
  • Set up SSH tunnel in MySQL Workbench & DBeaver.

14

  • Customize forms in Flask micro-framework with WTForms.
  • Manage pylint settings.

13

  • SQLAlchemy in Flask micro-framework.

12

11

  • Manage notifications in Bash for terminated commands with NotiFyre.

10

  • Review how to mount exFat filesystem on Linux.
  • Installing fonts on a per-user basis on Linux (Ubuntu derivatives).
  • Set Bash git prompt.

9

  • Concept and application of inheritance in Jinja2 templates.
  • Add Flask Babel to Flask projects.
  • Set up pylint with Python project.
  • Validators in WTForms with Flask.
  • Finishing Python Flask Tutorial with Corey Schafer on YouTube (including blueprints, sending emails, forms and user input, user authentication and managing database).

8

  • TicTacToe tutorial serie with sentdex on YouTube.
  • Building a Flask application with SQLAlchemy to manage database.

7

  • Integrate user accounts in Flask application.

6

  • Structuring Flask application in packages.

5

4

  • Plot in Matplotlib and export to PDF files automatically from input files.

3

  • Error handling in Python 3.

2

  • Modify appearance of folds in Neovim.
  • Integrate tmux with Neovim.
  • Convert videos to GIF images.
  • Review concept of mutability in Python.

1

  • Configure tmux.

October

31

  • Use compose key in Linux.

30

28

  • Review tuples, strings and loops in Python.
  • breakpoint() function in Python 3.7.
  • Integrate plugins in WordPress.

27

  • Review Vim macros.

26

  • Use and modify dictionary autocompletion in Neovim.
  • Use mappings in Neovim that toggle one command.
  • Create scatter plots, subplots, annotations and trendlines with Matplotlib.

25

  • Regex examples in Vim.
  • Use pandas & numpy modules to manage data from CSV files to generate plots with Matplotlib.

24

  • Iterators and iterables in Python.
  • Selenium module in python and XPath selections.

23

  • Arithmetic in SQL.
  • yaml logging & configuration format.
  • Logging in Python with logging module.

22

  • Apply circular text transformations in GIMP.

21

  • Use quickfix list in Vim.

20

  • Redraw the screen in Neovim and clear highlighted selection.
  • Threading in Python.
  • Incorporate log files automatically with Python script.
  • Use argparse Python module.

19

  • Configure MySQL/MariaDB server locally.

18

  • Learn about pipenv.
  • Set Python PATH with different versions installed from source.
  • Improve workflow of virtual environments in Python.

17

  • Manage dashboard in Conekta.
  • Functions to find elements in Python module selenium.

16

  • Use urllib.request in Python to get the HTTP status of web pages programmatically.

15

  • Options in rsync command to build backup script in Python.

14

  • Applications of blockchain technology.
  • coverage.py to test all Python code.
  • Simple algorithms in Python to count (reverse, consecutive).

12

  • Review concept of recursion.
  • Review conversion of numbers from different bases (mainly binary & octal).

11

  • Themes in Pelican (static site generator).
  • Set aliases for domain name to get HTTPS everywhere.

10

  • Review rounding in Python (built-in functions & math module).

9

  • Make a website on GitHub Pages.
  • Git commands (submodule, branch, merge, revert, show, log).

8

  • Use linters with ALE (Vim plugin).
  • Use JSON in Python.
  • Use Twilio dashboard.
  • Webhooks (reverse APIs).

7

  • Use argparse module in Python scripts.
  • Threading in Python (threading module).
  • Install latest Python version from source (article on Real Python).
  • Enable fonts with ligatures in Neovim.
  • rsync command & graphical interfaces (including Grsync).

6

  • Review Vim basics (editing, modes, word commands, search features, find and replace commands).
  • Basic features in Krita (digital painting).
  • Use applications packaged with flatpak.

5

  • Options in Terminator (terminal emulator).
  • Basics of restoring files with extundelete command.

4

  • Set up account and website configuration in Disqus.
  • Basics of restoring files with extundelete command.
  • Manage Flask messages (errors).
  • Set up custom domain on Pythonanywere (superb platform to use Python in the cloud).

3

  • Modal popups in Bootstrap.
  • Concept of using AJAX to avoid page refresh.

2

  • Fields validation in Flask WTForms.
  • Capture and use arguments in URL within Flask application.
  • Basic inner workings of Blockchain technology.

1

  • Find duplicates in Vim and highlight them with macro.
  • More on POST requests in Python with Flask application.

September

30

  • Logging in multiple files in Python.
  • Manage errors in pylint.

29

  • Use CSS grids with Bootstrap.
  • Convert images from PNG to SVG.
  • String encryption in JavaScript.

28

  • Connect to AWS database instance through SSH.

27

  • Set CNAME and other records for domain name.
  • Deploy a website to GitHub.

26

  • Manage downloaded files with selenium module in Python.
  • Quickly clean big chunks of data in Vim with regular expressions.

25

  • Working with invisible elements with selenium Python module.
  • Manage Python requests to login forms with hidden token.

24

  • Regex to set more complicated mappings in Neovim.
  • Set up xmodmap to remap all keys.
  • Use diff mode in Neovim.

23

  • Basics on Python web scraping with Beautiful Soup.
  • Check/change DNS settings and speed.

22

  • Start to use Silver Searcher.
  • Buffer navigation with more mappings in Neovim.

21

  • Watch short introduction on Neovim, by Nick Nisi.
  • More options in glances terminal application.

20

  • Spreadsheets graphs in LibreOffice.
  • Sort dictionaries in Python.

19

  • Integrate custom functions in Vim (with ag, fzf & jedi).

18

  • Vim & Neovim differences to better adjust configuration.
  • Extract frames from videos in terminal with ffmpeg.

17

  • Run Vim commands to affect all buffers with :bufdo & :argdo.
  • Configure Git to authenticate with SSH.

16

15

  • Use Chrome with selenium module in Python.

14

  • Use ADB & Fastboot to access Android phone from computer.

13

  • Make use of fzf in terminal & Neovim.
  • Configure Neovim from scratch.
  • Discover Oni, text editor powered by Neovim.

12

  • urllib Python module by watching Socratica on YouTube.

11

  • Review table joins in SQL.
  • Set environment variables from terminal.

10

  • Set and release clips in Inkscape to cut from objects.

9

  • List all file types recursively in Bash.
  • Sign SSL certificates on Pythonanywhere.

8

  • Internet domains (top-level, generic, country code).

7

  • Set up Flask application on Pythonanywhere with custom URL.

6

  • Use yaml configuration files with Python.

5

  • Set up project with Click (command line interface toolkit).

3

  • Dictionaries being ordered in Python 3.7.

2

  • Python timeit module & use of __init__.py files.
  • Django tutorial serie with Corey Schafer on YouTube.

1

  • Python selenium module: deal with page load time & XPath.

Earlier in 2018

Git & GitHub

  • Contribute a pull request and get feedback.
  • Make use of forks and public/private repositories.
  • Use GitHub from terminal.

Python

SQL

  • [Basic] Certificate of Completion of Database for Developers, by Oracle.

Vim/Neovim & other text editors

  • Clear variables and registers in Neovim to improve mappings efficiency.
  • Completion with Ctrl + x in Neovim.
  • Control over buffers and windows in Neovim.
  • Make use of ctags in Vim.
  • Plugin vim-rhubarb for Neovim.
  • Search files recursively inside a project in Neovim.
  • Set pdb mappings in Neovim.
  • Start using more comfortable-motion.vim plugin with Neovim.
  • Start using plugin ALE with Neovim.
  • Start using plugin deoplete.nvim with Neovim.
  • Use ctrlp plugin.
  • Use jedi-vim plugin.
  • Use vim-airline settings plugin.
  • Use vim-fugitive to visualize differences between files in split windows.
  • Use setting wildignore in Neovim.
  • Vim script language.
  • Use VS Code, Atom & nano (mainly).

Earlier

Linux

Basics of…

  • Python: Get certificate for Python 3 Tutorial on SoloLearn.
  • HTML, CSS, JavaScript, SQL, Visual Basic, Pascal, Scribus, LibreOffice, GIMP, Audacity, Inkscape, Blender, XAMPP (Apache distribution), Wordpress, Freeplane (mind mapping software).