Skip to content

My 2018 personal development plan as a software engineer.

Notifications You must be signed in to change notification settings

cortadocodes/personal-development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Personal development - cortadocodes

Overview

This repository documents my personal development as a software engineer and Python programmer. It includes:

Together, these form a plan and a measure of my progress; as such, this repository will be added to, changed and improved over time.

Proposed projects

Project Location Status
Automate my finances finances-automation Active
Easy rental search easy-rental-search Active
Raspberry Pi home security system pi-security Active
Renewable energy dashboard renewable-energy-dashboard Not started
Voice coding package voice-coding Not started
Hack my Dyson air purifier hack-dyson-purifier Not started
Scraped lyric generator using Markov chain scraped-lyric-generator On hold; requires refactor/restructure
Scrape engineering job listings scrape-job-listings Not started

Other projects:

  • Set up a VPN server on a cloud-based virtual machine
  • Create an inventory system keeping track of when products need to be rotated and notifying the owner when this is the case
  • Scrape interest rates of various financial products over time and plot them on a live dashboard
  • Traverse the network of dependencies in a python package and produce a graph illustrating their linking structure (e.g. for visual inspection for circular imports)

Topics for study

This is the list of topics I have identified for further study and investigation.

Topic Details Status
Advanced use of git (rebasing, squashing, tagging, hooks etc.) Here Completed
Virtual environments Here Completed
Regex (theory and practical use) Here Completed
Bash and shell control in depth Here Completed
Creating CLIs in python with argparse Here Completed
Web scraping with requests and beautifulsoup4 Here Active
PostgreSQL; creating, hosting and interacting with databases Here Active
Docker Here Active
Clean code and architecture Here Active
Compression and archiving Here Active
Python multiprocessing library Here Active
Context managers Here Active
Generators and yield Here Active
Interacting with and building RESTful APIs Here Active
Python packaging in depth Here
Testing and mocking with pytest in depth Here
Use of PyCharm in depth Here
Python decorators Here
Linux command line utilities Here
HTTP conventions Here
Memory architectures Here
Digital Ocean and Terraform Here
Setting up a gittea mirror
Lambda functions
Ansible
Daemons
RabbitMQ and Celery
File I/O including binary files and streams (including text wrappers and the python io libary)
Python classes in depth (including @classmethod and @staticmethod)
Abstract base classes
Principles of Test Driven Development (TDD)
Error handling in Python
os and sys python libraries
Python set operations
matplotlib and seaborn
Markdown vs reStructuredText
Sphinx documentation
Encoding
Storage formats e.g. csv vs parquet vs pickle
Google cloud platform in depth
Continuous integration and deployment
Mapping
Hashes
Machine learning libraries
The basics of Go
Use of vim in depth
Static-typing in Python
Hexagonal architecture
Python GUIs and graphics
Hosting webservers using e.g. Nginx
pandas.groupby objects further in depth
NoSQL databases; mongoDB
Cybersecurity basics for engineers
HypothesisWorks tests
Kubernetes
Spark and Hadoop
ElasticSearch
Airflow
Scala
Kafka
Blockchain basics

Possible courses

Smaller courses

These are generally shorter and lower cost courses.

Course Provider Cost Certified Completed
How to use Git and GitHub Udacity Free No 2018-08-09
GCP Essentials Quest Qwiklabs Subscription Yes 2018-08-17
Learn SQL Codecademy Subscription No 2018-08-25
SQL: Analyzing Business Metrics Codecademy Subscription No 2018-08-25
SQL: Table Transformation Codecademy Subscription No 2018-08-26
Intro to Relational Databases Udacity Free No
Computer Science Fundamentals Brilliant Subscription No
Computer Science Algorithms Brilliant Subscription No
Computer Memory Brilliant Subscription No
Intro to Computer Science Udacity Free No
Software Development Process Udacity Free No
GCP - Infrastructure and DevOps QwikLabs PAYG Yes
GCP - Big Data QwikLabs PAYG Yes
GCP - Security, Backup & Recovery QwikLabs PAYG Yes
GCP - Websites & App Dev QwikLabs PAYG Yes
GCP - Machine Learning QwikLabs PAYG Yes
Intro to Machine Learning Udacity Free No
Artificial Neural Networks Brilliant Subscription No
Machine Learning Brilliant Subscription No
Practical Deep Learning For Coders (Parts 1 and 2) fast.ai Free No

Larger courses

These are generally deeper and higher cost courses.

Course Provider Cost Certified Started Completed
Programming for Data Science Udacity nanodegree £349 Yes
Become a Professional Full Stack Developer Udacity nanodegree £799 Yes
Become a Machine Learning Engineer Udacity nanodegree £799 Yes
Machine Learning for Data Scientists Udacity nanodegree £1598 Yes

Books for study

Book Author Area
'Fluent Python: Clear, Concise, and Effective Programming' Luciano Ramalho Python
'Computer Science: An Overview' J. Glenn Brookshear Computer science
'Code Complete 2: A Practical Handbook of Software Construction' Steve McConnell Software engineering
'Pro Git (v2)' Scott Chacon and Ben Straub Version control (git)
'Python Machine Learning (Second edition) Sebastian Raschka & Vahid Mirjalili Python, machine learning
'The DevOps Handbook:: How to Create World-Class Agility, Reliability, and Security in Technology Organizations' Gene Kim, Patrick Debois, John Willis DevOps
'Accelerate: The Science of Lean Software and Devops: Building and Scaling High Performing Technology Organizations' Gene Kim, Nicole Forsgren, Jez Humble DevOps