You are visiting: Hackcraft_'s profile!
I am a software developer, and I code a lot of random stuff.
I'm pretty good at:
- Git operations
- Java
- JavaScript (Vue, React, Astro and Client Side)
- Python
- SQL
I'm fairly good at:
- Rust
- Lua
- Arduino C
I'm trying to learn:
- C
- Go
- Networking
I started my programming journey with scratch. After using it for around a year, I found its design a bit limiting, so I tried to learn JavaScript. I thought the best way to learn is to see one of my projects translated into JS, so I used leopard.js to convert a scratch program into JavaScript. When I first looked at the generated code, I found that it's surprisingly easy to understand and closely mimics my scratch code. Then, as we all do, I watched and followed a bunch of tutorials.
At this point, I used atom as my code editor, as it was open-source and lightweight, perfect for my old MacBook.
I learned about frontend development added HTML and CSS to my knowledge. Then, to further my understanding, I went into backend development with node.js and vite. It was then that I learned vue and react.
That was around 2018 and VSCode was becoming more popular. Atom still was suiting my needs, but VSCode promised a better plugin ecosystem, and more compatiblity with other programming languages.
To learn more programming languages, I tried Java. I found it much more verbose but even more powerful than JS. As one of my first Java projects, I made RPGkit.
I started writing in Java with VSCode, but then I stumbled upon the "greatest Java IDE," Jetbrains' Intellij Idea. Compared to VSCode, it offered much better autocompletion, Java debugging and static error checking.
During the same time that I was learning Java, I also dug into the world of Python. I thought it was much more simple than Java, but I realised that bigger projects with python was much more cumbersome than in Java, due to the indent-scoping and dynamic typing.
I did Java, web dev and Python for around three years, before a catastrophic event occurred. The full suite of Jetbrains' development tools is written in Java, and they had updated their bundled JRE version beyond 21.0.2. This would seem fine at first glance, but on MacOS with SIP (Apple's protective features) disabled, which I had to do because I needed to run some low level apps, the JVM crashes constantly. Unable to use my preferred IDE, I had to find another tool to write code in. That was around the same time that I heard about neovim. I've always wanted to try it out, but I was too scared of the sheer number of keybinds that I'd have to remember. However, unable to use my IDE gave me the final push. I tried neovim, and configured it use NvChad. For something that ran in the terminal, I never expected it to be so good. Syntax highlighting, autocompletion, error checking, and the vast plugin system as well as the ease of creating plugins astonished me. It turned me from being completely dependent on GUIs, and trying to find GUI apps that can perform the same actions as command-line tools, to being able to be at ease with zsh commands and actively replacing my toolchain from GUI to CLI.