DEV Community

Koen Verburg
Koen Verburg

Posted on • Originally published at koenverburg.dev

Here Is My List of Technologies I'm Learning in 2021

This year I want to set a list of topics that I want to learn for this year.
At the end of the year, I will reflect on how much of the lists I have achieved.


1. Functional Programming

A simple gist of Functional Programming is all about functions for immutable variables. In contrast to Object-Oriented languages, which are more about a fixed set of functions and modifying or adding new variables.

A year ago I had my first go at it when I worked with Elixir but now that I don't use it anymore, it has faded a bit. And because Functional Programming has always intrigued me. I want to pick it up again.

In this year I will experiment with the concept of Functional Programming, what it is and what makes it functional? And how do Functional Programming Languages like Elixir and Haskell use these practices?

I will go back to Elixir to learn Functional Programming, but also I want to use these practices in other languages like TypeScript, C#, and Go. Because I use those on a daily basis.

2. Golang

Golang is created by Google and it's getting more and more adoption by large companies and Open-Source Software Projects. Think about Docker and Kubernetes which are quite popular for what they are, but they are also written in Go.

A few months ago Github Released their Profile Readme's and a Hypetrain started, Everyone was creating and polishing their Profile Readme's.

I looked around and saw there were a few people that create an auto-generating readme based on a cron schedule. I wanted that as well and started to think about which language to use for this. I could write it Python or NodeJS but I wanted something completely new, So I settled for Go.

Since then I have written small CLI programs in Go. But I'm still scratching the surface of the language but during this year I will write most of my APIs, Web Scrappers, and CLI tools in Go.

3. Docker

Docker is a set of tools for developing, running, and shipping your applications.

It allows for a simple Command Line Interface. And it separates your application runtime from the infrastructure it is running on.

I'm familiar with Docker and have run my personal website on Docker in production for a long time. Because I also want to educate other people on Docker I have to dive into it a bit deeper. Besides that, I also want to learn about networking, routing, and load balancing.

During this year I'm going to write Go programs and run those in Docker. What those programs will be, I don't know yet. Maybe a Slackbot or a simple website using Go.

4. Terraform

Terraform is an open-source Infrastructure As Code tool that allows for managing the cloud by defining it as readable configuration files.

What I like about Terraform is that you just specify your cloud provider and you are ready to create and document your Infrastructure as code. With the documentation nearby you can scaffold your Infrastructure pretty fast.

That this time I have used Terraform for only one project at work and personal prototypes. But the exposure I got was enough for me to know that this is a great tool for me to use.

During this year I want to set up more projects in the cloud with Terraform, think about VM's, AKS resources, and full DTAP-Streets with traditional App Services in Azure.

5. Kubernetes

Kubernetes is a container orchestration system to manage, scale and deploy your applications.

Kubernetes is still a new topic for me and I'm still scratching the surface on what I can do with it. But I think this is the future of managing your apps in the cloud.

I want to make sure that every project I deliver will be reliable and can handle any load the visitors can throw at it during Black Friday or other campaigns.

I'm currently running a k3s cluster on a set of Raspberry Pis at home. I'm documenting my progress in this repository. (small disclaimer: I'm merely documenting it for myself do not expect documentation grade reading materials at this point in time)

During this year I will setup k8s from scratch on VM's and later I want to look at what AKS (Azure Kubernetes Service) brings to the table.


That's the list, thank you for reading! What are you learning this year?

Be sure to follow me on Medium, Instagram, and Twitter where you can follow along with the process.

Links of the topics I talked about

Top comments (8)

Collapse
 
arvindsridharan profile image
arvindsridharan

How do you manage to remember the programming syntax

Collapse
 
koenverburg profile image
Koen Verburg

It's more about how a language does certain things, When you learn a new language it's first exploring how the syntax looks, and then it's just a matter of building projects and learn the language as you go along.

Collapse
 
koenverburg profile image
Koen Verburg

And what @faraazahmad says you don't have to remember it, you can always google certain bits of the syntax that you may no use on a day-to-day basis.

Collapse
 
faraazahmad profile image
Syed Faraaz Ahmad

You don't have to remember all syntax all the time.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

Docker and Docker-compose aren't that hard; but once I see k8s, I am a goner...

Collapse
 
koenverburg profile image
Koen Verburg

K8s is indeed a large topic, but in a year you can slowly learn a large topic ;)

Collapse
 
fimicode profile image
De Coder 💻

I think this is pretty cool, but I'm new here would love to learn stuffs from you...

Collapse
 
im6h profile image
Vu

Good, I'm learning Functional Programming and Go Lang.