Learning tracker

This is a reverse timeline of the courses I have taken and the books I have studied, along with a quick summary of what I learned.

HighLoad System Design

Jan 2024 at self-taught

The Book "Designing Data-Intensive Applications" by Martin Kleppmann

SoftwareDesin - Programming in Small Styles

Dec 2023 at self-taught

Studying and Practicing the book "Exercises in Programming Style" by Cristina Videira Lopes

Diving Deeper in Functional Programming Concepts

Oct 2023 at A closed underground Software/System Design school, which I can't mention, sorry :)

An in-depth course on all the basic principles of functional programming.

Clear Architecture

Sep 2023 at A closed underground Software/System Design school, which I can't mention, sorry :)

Quick and practical start in all major programming styles and architectures.

Clear Legacy

Aug 2023 at A closed underground Software/System Design school, which I can't mention, sorry :)

Learning the way to understanding legacy projects and make changes to them without breaking things. Techniques for right way to thinking of refactoring, testing and modernizing old codebases.

OOAD At practice

Jun 2023 at A closed underground Software/System Design school, which I can't mention, sorry :)

High Level Design. Practice in designing software project with focusing on a class system, following the proposed methodology step by step.

Dive in OOP

May 2023 at self-taught

The book "Object Calisthenics" by Jeff Bay and its discussions.

OOAD courses

Dec 2022 - May 2023 at A closed underground Software/System Design school, which I can't mention, sorry :)

The courses studies the low-level design of object-oriented programming (OOP) class structures and explores a deep understanding of the principles of object-oriented development, including SOLID. It covers topics such as inheritance, composition, dynamic binding, and polymorphism in the context of programming in large systems of any complexity

Imperative and Object-oriented programing models

Jun 2022 - Jul 2022 at self-taught

The book "Concepts, Techniques, and Models of Computer Programming" and other works by Peter Van Roy

Functions, Methods, and Interfaces in Go

Apr 2022 at coursera.org Ian Harris course

Continue your exploration of the Go programming language as you learn about functions, methods, and interfaces. Topics include the implementation of functions, function types, object-orientation in Go, methods, and class instantiation. As with the first course in this series, you’ll have an opportunity to create your own Go applications so you can practice what you’re learning.

Functional programming

Apr 2022 at self-taught

The book "Functional Programming Using F#" by Michael R. Hansen

Declarative programming model

Feb 2022 at self-taught

From the book "Concepts, Techniques, and Models of Computer Programming" and other works by Peter Van Roy

Getting Started with Go

Jan 2022 at coursera.org Ian Harris course

Basics of Go language. Topics include data types, protocols, formats, and writing code that incorporates RFCs and JSON.

Practice in programming Algorithms and Data Structures

Oct 2021 at self-taught

Based on material from Carnegie Mellon 15-121 and Stanford CS106B. The topics include the analysis of algorithmic complexity, linked lists, variable-size arrays, stacks, queues, hash tables, universal hashing, perfect hashing, associative arrays, sets, caches, and Bloom filters. The topics cover the implementation and analysis of these data structures and algorithms, including their strengths and weaknesses, as well as different methods for dealing with collisions and errors.

DevOps Internship

Aug 2021 at slurm.io

2 months of deep dive into GIT, Docker, Kubernetes and Gitlab CI/CD.

Clear Code

Jul 2021 at self-taught

Developing a good coding style, dased on "Code Complete" by Steve McConnell and "Clean Code" by Robert C. Martin

Learning Programming Through Solving Algorithmic Challenges with Python (Similar to Codewars and More)

Dec 2020 - May 2021 at self-taught

Engaged in programming and creating test cases.