Post

Who am I? Past learnings and experience

Hello world! My name is Cássio Ferreira Milc(zareck)! I’m a backend software developer. I’m 18 years old at the time this post was published. I decided to create this blog to expose my knowledge and experiences, state about my current works, what I’m learning right now as well some histories and poor opinions about tech-related subjects.

The start

I earned a PC very early with maybe the age of 6-7. But my journey with computers maybe started at 11 when I took a computer maintenance course. I always liked math, at primary school I won an honor mention in a math olympiad. But I started programming at 14 years old when I began to learn python.

Python was my first language where I really made a lot of things. I’ve learned about OOP, used frameworks like pygame to develop games, and Kivy to develop apps for mobile. I really liked games at this epoch. I also learned how to use Git. As a math enthusiast I spend some time doing low-level graphics with C and OpenGL, learning linear algebra to do matrix operations. I could make a sphere with diffuse lights rotating.

With 15 years I developed a game from scratch, I’ve tried to write it using LibGDX and Kotlin but I ended up using C#. This game had more than 600 lines of code and a really messed up codebase. I’m not gonna lie. But it was a begin. I used JSON serialization to save the game state. After the deployment of it on Play Store I lost the backup and I couldn’t have the last version of it. Unfortunately it’s not there anymore. It was called Magic Pirate.

After that I switched to Rust because somehow low-level, fast and compiled languages were an addiction for me. At this epoch I even made a bootloader from scratch following a book I don’t remember the name using Assembly. It worked and displayed some VGA texts. In this adventure I ended up learning a lot of fundamental things about memory, like stack, heap, pointers, allocation…

In 2021 I was also pushing myself to use Arch Linux. It was painful at the beginning but my laptop was needing it as it barely had 4gb of RAM. I learned about grep, pipe, echo, std redirection, ps, systemd… and also about network and sockets and I was loving it! I’ve made a few programs in C that could communicate through sockets. But I saw early that I wouldn’t get a job in Rust. It wasn’t liked by companies, so I started to do Flutter development (I never liked frontend). I made some simple things but quickly I changed to Go lang.

Diving Deep into Go

I started learning Go lang making it tour at the beginning of 2022. I migrated to Node and made some small applications using Express with MySQL and a bit of unit tests using Jest because I was scared of people saying it was impossible to get your first job with Go. But I came back very early again and in 2022 I was learning Docker and having some fun doing personal projects developed in Go using Fiber and PostgreSQL running on different containers.

My progress so far

  • Experimented different languages, both interpreted and compiled.
  • Understanding of OO paradigms, small and simple algorithms.
  • Manage time to make a project and how to integrate different components.
  • JSON serialization.
  • Bit of knowledge on game development and graphics development.
  • Git, basic linux tools, memory (stack, heap).
  • Network: sockets, communication between different applications on different devices in low-level.
  • A bit about SQL databases, server-side development.
  • More deep understanding of how Go works.
  • Linear algebra?
  • A bit about software design.

This is who I am. Since 14 pushing myself to learn things especially software-related, even in complex subjects, getting more desire to learn it. But I’m still a beginner. About these programming languages I just spent a little time on each one, now my objective is to specialize on backend, focus on one language (probably Go) and study deeply its runtime, threads management, tools, ecosystem, etc. In general, I have a lot of things to learn in this software world. My aim is to be proficient in backend development and use my hobby and passion professionally. Thanks for reading. Have a great day!

Resources

I’ll let here some self-projects from my old account. Ignore commits name and bad code design I was very young.

  • https://github.com/CassioFerreira2/Rust-MIDI-IO- (Besides the name I just wrote an ascii Renderer, my idea was a terminal that could display sound as graphical movements)
  • https://github.com/CassioFerreira2/saturnProject (I used OpenGL with Linear Algebra to try to create a solar system simulation) I had more project but unfortonately either I didnt used Github, or I didnt finish it or I just started a commit and leaved the project
This post is licensed under CC BY 4.0 by the author.