Learning path: first draft

Mariel | Sep 16, 2022

Today I started the second Java Programming course that the University of Helsinki offers as MOOC. I had such a good impression from the first part of the course that I decided to go for the next one. However, this made me think of the next steps in my learning path.

Learning topics

Despite having been working in technology for more than 7 years now, I started on my coding path in early 2019. I was more familiar with IT stuff such as protocols, firewalls, networks and general troubleshooting. In these 3+ years I realized that coding is an ongoing learning process, if the aim is to stay up to date with the latest trends and technologies available.

Now that I have landed on a much more technical role than before, and of course more challenging, I have to be more organized on my spare time and what I dedicate energy to. I came up with the following list of items to work on for the next 6 - 12 months.

Java

After finishing the first MOOC, I decided to take a short break of a week before starting the second part of the course. The second part is the last MOOC offered by UH and to be straightforward, I do not want these skills to go to oblivion after completing it. Gladly, my current job requires me to always think Java and keeps me focused on it.

I saw that the second course covers much more advanced topics, yet the course aim is to introduce concepts. I finally bought a book for covering topics in a deeper way and to start with typical frameworks used in real solutions.

Web development

This year I also took a short course on web development offered by LaunchX, and sadly (or happily?) I only got interested in one part of the course: Backend using NodeJS. To make the story short, I found that part to be the most comprehensive and hands-on than the rest of the course. This left me with several deficiencies on the front-end side that I want to fix as I still want to develop my small site to test experimental optimization applications for out-of-the-blue problems.

This being said, I have decided to take another course on web development and go further than easy tutorials. I had two runner-ups: The Odin Project (TOP) and freeCodeCamp. After looking thoroughly at the contents, exercises and reviews, the winner is TOP.

Linux

This is an ongoing learning “mission”. I have already started it now that I have my development environment running on Ubuntu MATE. I am developing most of my time on my Linux machine rather than on my Windows machine 🤓 Yet, there are things I want to learn and improve:

  1. Bash scripting
  2. Terminal
  3. Learning more about Vim keyboard shortcuts

For the first two items, I am still deciding whether it makes sense to follow a book or to find a course. For Vim, I found a few Youtube videos. However, I am not a fan of videos for programming, unless it’s for a specific thing and not a hand-holding session. I started playing with Vim this year and it’s definitely something that is worth learning.

Docker

Oh yes, containers. This is such a needed one. I played with containers briefly on the CReDo project. We used Podman and it was quite easy to use, but I want to really understand how to build a container from scratch (not just to take someone else’s script). Since this is a topic that I will touch base on in a while, I haven’t really looked for appropriate resources to learn Docker. As soon as I progress on my learning path, I’ll get onto it.

Data Structures and Algorithms

This is definitely a so neglected and pending assignment since forever. I did a bit of algorithms on my MSc, yet it was almost nothing as the MSc was too hectic and fast. For this one, I have found a Udemy course and I think a textbook will work fine for me. Still deciding which one though…

Python

Python and I met in 2020. We had a great ride together, from an MSc to a government project. I still think that it’s a great language for beginners and even for prototyping, but not for large programs. Funny enough, the more I learn from other languages, the more saudade of Python I feel 🤪 Nonetheless, whenever I make the time to go back to Python, I want to dedicate my time on the following items:

  1. Pytest
  2. OOP, for real
  3. Decorators
  4. Queues, stacks

Final thoughts

I could keep writing more about things I want to learn. Yet, as I learned when I started my first job in technology, this is an endurance race and it is not meant to be run. Better to take continuous baby steps and progress on this ongoing path. For sure, I will have to work on organizing my time in a smart way, but that’s a topic for another day.