Lots of things have happened ever since I began my computer journey. I have learned a lot and have experimented a lot and I am still doing that.
Since I am really bad at remembering things, I wanted to create some kind of document to keep track of what I have done up until now and where I currently stand. I am not trying to write my own life story here, but I do want to mark down the important steps of my ongoing journey. The goal is to keep this as a big list where each point corresponds to a milestone or something worth mentioning.
This list is a WIP and is going to keep evolving as I discover and learn new things.
The purpose is to try and retrace my computer science journey. I will try to keep it small.
Timeline:
- Before 2013:
- Love drawing manga and want to make a living as a manga artist
- Participate in drawing contests and got a reasonable spot
- Real computer noob though
- Do not even know how to set a slideshow background on Windows
- Do not know the art of Googling stuff
- Playing Minecraft and started experimenting with its Redstone
- Created my own forum website using a forum builder tool
- 2014:
- Started going to high school
- Joined the weeb club to discuss manga, anime and other japanese stuff
- Heard about the computer club and decided to give it a try
- Computer club only had four-five people but it was so fun, lots of things to learn
- Stopped going to the weeb club and went to the computer club instead (still a big weeb to this day tho)
- Became a tad better at Minecraft's Redstone through watching tutorials and experimenting (Thank you Aypierre!)
- Discovered command blocks in Minecraft. First time "programming"
- Started feeling like a Minecraft H4X0R and began making Youtube tutorials about how to use command blocks and redstone for mortals
- Failed to make something work in one of the tutorial videos
- Spent 10 minutes trying to fix it but did not succeed
- Uploaded the full video with no edit on YT (just 10 minutes of me struggling and failing)
- Stopped the tutorial series after this miserable failure
- But still continued playing with command blocks and redstone
- 2015:
- Started big command block projects and created many One Command Creations (it was a big thing back in the old days)
- Discovered AlgoBox during a Maths class
- First real experience with a programming language
- Spent entire time just programming maths stuff on Algobox
- Algobox was not enough to quench my thirst for knowledge
- I needed MORE
- Ended up finding free online courses and started learning C and C++
- At this point, I was using most of my free time just programming in C/C++
- Thank you Mathieu Nebra
- 2016:
- Still playing Minecraft and doing even more stupid stuff with command blocks
- Became decent at C and started learning HTML and CSS
- First time hearing about cryptography in an advanced maths course
- Ended up learning a lot about cryptography systems and pseudorandomness
- Created own custom algorithm based on the Vigenère cipher
- Algorithm used a random cipher making the message look different each time (despite same content and same key)
- I felt like a true champ for implementing my own cryptography system (timeskip: years later, I realized how bad it was)
- 2017:
- Started going to university to learn programming on a daily basis
- Still doing nonsense on Minecraft
- Started doing even more C
- Used SFML to make the Ultimate Space shooter game for the school's game jam (huge success)
- Started learning about PHP, JavaScript and JQuery
- 2018:
- Started learning about C#
- Dabbled with WPF and similar stuff
- Game jam week arrived and my group and I tried to make a rogue like in Unity
- We spent too much time on the room generation algorithm and could not make it work
- In the end, the game was a failure (BIG DISAPPOINTMENT)
- Started a recursive-only course and got very confused
- Started learning about Java
- Experimented with Symfony and Laravel
- 2019:
- Did some image processing with Python and CV2 (basics of AI stuff)
- Did a full VBA internship and for some reason, ended up remaking Excel inside Excel (project was fun but VBA sucks)
- Spent some time trying to fix the room generation algorithm from last year
- In the end, the algorithm was working well 99% of the time
- Started software engineering curriculum
- First time using Linux, dual boot install of Ubuntu 18 and Windows 10
- Did even more C programming
- Implement various interesting algorithms in C (compression, allocators, etc.)
- Started learning a lot about hardware (ARM assembly, Boolean algebra, logic gates, ALU...)
- Realizes Linux is way better for programming than Windows
- Briefly learned about Angular but dropped very quickly
- 2020:
- Failed the hardware course
- Implemented an existing card game in Discord (Node.Js)
- Spent entire summer holidays re-learning full hardware course from scratch
- Had a lot of fun playing with hardware components
- Used Minecraft's redstone to train hardware skills
- Reached pick greatness after making my own simple CPU from scratch reusing all the previous components and gates I had built myself
- Retook the hardware course exam, piece of cake after two months of grinding ARM assembly and hardware
- Realized Linux is better than Windows even for casual stuff but gotta keep Windows for gaming
- Started learning about Graph theory (Dijkstra the GOAT) and complexity classes (THE BIG O)
- Started learning about Operations research and earned one milk medal for solving bonus problems (still wearing it to this day)
- A lot of functional programming (looking at you OCaml)
- Creating a compiler for a made-up language in OCaml
- Feeling more confident using recursive-only programming
- Create own custom shell from scratch (coded in C)
- 2021:
- Discovered the best programming languages of all times: Brainfuck
- Had fun creating a very basic Brainfuck compiler in C
- Started learning about esotheric programming languages
- At this point, I am almost only using Linux but I still have Windows for gaming
- Did an internship using Java Spring framework
- Started learning Vue.js on a daily basis
- Bought a Raspberry Pi to host some projects (mainly Discord bots and other scripts)
- Converted the card game Discord bot into a Web Backend using WebSocket communications
- Created the Frontend in Vue.js and hosted the whole thing on my Raspberry Pi
- 2022:
- Reinstalled Linux on HDD for more storage but now it is slow
- Still using Linux but the Windows OS is faster
- Started using Vim for quick edits in the terminal (not my main code editor though)
- Used JHipster for a big school project and glad I am not using it anymore
- Learned a tiny bit about NixOS and got confused a lot, but would like to give it another chance someday
- Learned more about security and realized home-made cryptography algorithm made in 2016 violates Kerckhoffs's principle
- In the end, this home-made cryptography algorithm made years ago was pretty bad and very easy to break (what a shock!)
- Started caring about privacy after discovering Privacy Tools
- Began to gradually switch to only using open-source and privacy-friendly software
- Got bored of waiting for Ubuntu to start up and eventually moved back to using Windows full time
- Started working as a FullStack .NET developer
- Stuck on Windows but using Linux daily via WSL
- Participated in the 2022 edition of the Advent of Code (DNF)
- Chat GPT came out, this is madness
- 2023:
- AI is starting to be everywhere
- Using Perplexity AI on a daily basis (no need for account and provides sources)
- Using Windows everyday and left Ubuntu install in the dust (doing Linux on WSL instead)
- Still becoming increasingly infuriated at Windows
- First time installing a custom ROM onto my smartphone: GrapheneOS
- Only using FLOSS apps on my main profile
- Started using Vim and NeoVim as main code editor
- Learned about Dvorak (not the music composer) and its place in the keyboard layout history through this awesome zine
- Tried it for fun (it was hard but overall a much nicer typing experience)
- Dropped it after just two-three days and came back to AZERTY (I will definitely try Dvorak again in the future)
- Installed Pop!_OS on an old PC and realized it was faster than my current PC running Windows 10
- At this point, my Windows frustration was nearing its peak
- Bought a NAS + picked a backup strategy (3-2-1 rule)
- Moved Ubuntu files to Windows and deleted the partition on my PC
- Hesitated on what to do for a few weeks...
- Fuck Windows, time to single boot Arch Linux (best decision of the year)
- Installed it from Scratch by following the ArchWiki and some Youtube tutorials
- Using X.Org as display server and awesomewm as window manager
- Started learning EVEN MORE about Linux (window managers, graphical environments, distros, mounting drives, sound servers, etc.)
- Participated in the 2023 edition of the Advent of Code (DNF this year either but got further)
- Finally got my dual monitor setup working after spending weeks trying things with my Nvidia card and finally decided to use it as my primary GPU (thank you Arch Wiki)
- 2024:
- As this new year's biggest resolution, I decided to pick up Rust again and learn/experiment with it on a daily basis
- Discovered the wonderful world of ergonomic keyboards and their open source firmware
- Switched to QWERTY US layout after having used AZERTY all my life (some characters heavily used when programming are easier to input)
- Started using the ergonomic Sofle keyboard
- Began fiddling with QMK firmware and its C API to customize my Sofle keyboard (no longer using VIA)
- Bought a Steam Deck and put Nix on it to be able to install many packages and use it as a secondary development machine
- Discovered how powerful fzf is and started tweaking some of my scripts to make use of it
- Got serious about my NeoVim config and remade it from scratch by following ThePrimeagen's config and kickstart
- Started playing Minecraft again (1.20.6 - 1.21) after a solid year of absence
- Spent time learning about the new datapack system and new commands
- Used Python and OpenCV to make a script that allows me to fish in Minecraft while AFK
- Started playing around with datapacks
- Started reading Hacker's Delight by Henry S. Warren
The purpose is to try and retrace my computer science journey. I will try to keep it small.
I really tried...