Skip to content

Latest commit

 

History

History
163 lines (155 loc) · 11.6 KB

File metadata and controls

163 lines (155 loc) · 11.6 KB

🚶 Computer Journey

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.

⏳ Timeline

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...