Languages
Legend
Attack
Represents general proficiency in the programming language. This includes core syntax, data structures, algorithms, and libraries. A higher "Attack" skill means being able to write effective, clean code and solve complex problems with ease in that language.
Defense
Reflects expertise in writing robust, well-tested code. It includes knowledge of the testing frameworks, best practices for unit testing, integration testing, and edge case handling. Strong "Defense" means being able to prevent bugs and ensure the code's reliability and stability.
Speed
Measures how efficiently and quickly a programmer can write and debug code in the language. High "Speed" means reduced time spent on learning or looking up language features and faster iteration, leading to rapid development.
Range
Represents the breadth of knowledge in the ecosystem surrounding the language. This includes deployment practices, familiarity with different development environments (local, cloud, CI/CD), and the ability to integrate with external tools and services. A high "Range" skill implies versatility in working with the language across various platforms and systems.
Charisma
Symbolizes the programmer's understanding of the language's design patterns, architectural principles, and coding standards. Strong "Charisma" leads to writing elegant, maintainable, and scalable code that adheres to best practices, making it easier for teams to collaborate and extend.
*Disclaimer* The summaries for these skills were generated by ChatGPT. I thought it would be fun to think about programming skills in terms of RPG stats, I just wanted some help with fleshing out the idea.-
HTML
I've been using HTML since the MySpace days. I've always loved how accessible it is as a language. If you have a text editor and a browser, you have an IDE and a run time!
-
CSS
Much like HTML, I've been using CSS in some form since the MySpace days. I love using CSS, but I'm still growing my confidence in design. I can recreate almost any design in CSS, but building up my own unique design is challenging.
-
Javascript
Javascript is unfortunately my favorite language. I feel at home in this language, even with all of its quirks. I've been using this language frequently since the beginning of my software development career, inside and outside of work. If I have a quick problem I need to solve, I'll turn to javascript first. I won't hesitate to open dev tools and write a quick script or move to node.js if I need something more permanent.
-
Typescript
When I initially learned about Typescript, I wasn't super interested in learning it. At the time I believed I could move faster in Javascript because I didn't have to worry about types. Eventually I learned I was wrong. Having types available allows me to move faster thanks to IntelliSense tools, and more importantly it helps others move faster. These days when I do web development for work, I always use Typescript.
-
GLSL
I started writing shaders after I learned about 3D web technologies. Shaders have helped find a deeper connection between math and art, and GLSL shaders eventually led me to making shaders in Blender.
-
HLSL
I wrote a few HLSL shaders for a game I built in Unity. Thankfully I was able to transfer a lot of my shader knowledge from GLSL for this. I'd like to learn more about HLSL though and branch into making shaders for VRChat at some point.
-
WGSL
WebGPU seems to have its own shading language. It's my goal to learn this new shading language in 2025.
-
C#
I've used C# a few times in my career. I've used it in Unity and in backend development. Basically it feels like Java sponsored by Microsoft.
-
C++
I've only used C++ a handful of times. It's interesting to me since many game engines and low level graphics programs were originally written with C++. Personally I always have low level anxiety when using C++ or C since I know it's very easy to accidentally the whole memory.
-
C
A long time ago I used to use C for writing automation scripts in a performance testing tool. I've also used C to write an app for a pebble smart watch. Other than that, I avoid it these days because I'm worried about the numerous footguns in the language.
-
Java
Java was the primary language I used in college, and was what I used early in my programming career. I've also used Java to build Minecraft plugins and mods. Ever since Oracle took over, I've been trying to avoid using Java. Sometimes it feels like knowing Java is cursed. I feel like Java is becoming this era's Cobol.
-
Python
Python has always been around during my programming career. I've had to dip my toes into it a few times, but once machine learning applications became popular, I had to take a deeper plunge. Much like Javascript, Python does not have a strong type system. This is a gift and a curse.
-
SQL
This is actually covering several variants of SQL. I've been using SQL in some form since college. It can be super satisfying to craft a query to get the exact data you need. These days I don't get to use it much though, most backends I touch use some kind of ORM that keeps people away from writing queries from scratch. This is for the best, for security reasons.
-
Lua
I first learned about Lua during college, but didn't start using it until several years later. My first experiences with Lua were in Minecraft computer mods (Computer Craft and Open Computers). I love how small and easy to learn Lua is. I also got to use Lua more later in my career when we worked on Roblox projects. The Roblox world I helped build is one of my favorite accomplishments.
-
Elixir
I used Elixir briefly in my career as a backend language. I really loved the functional programming approach that Elixir uses. I wouldn't be opposed to working on an Elixir based project again, but I also wouldn't choose to start an Elixir project for myself.
-
Kotlin
I used Kotlin briefly on a team that was looking to use something like Java with less boilerplate code. Unfortunately I didn't really have any reason to learn more about the language outside of that context.
-
Lisp
I've learned a little bit of Lisp in my free time. I think the way that it's structured as a language is interesting. I like to challenge myself to learn languages that are different than the ones in the C tree of languages.
-
Haskell
I learned Haskell while learning about functional programming. I think it really helped me to approach programming with a different mindset than I used previously. I wouldn't say that I'm good at it, but it definitely left an impact on the way I program today.
-
BrainFuck
I love this wacky little language. It's fascinating to me that one can program in a language with only 8 symbols. There are technically other esolangs with fewer symbols, but I like that this one is a power of two. I'm obsessed with the idea of building a Minecraft redstone computer some day that runs brainfuck programs.
-
Assembly
I've dipped my toes into a few Assembly languages. I think x86 is the only useable one I've learned. The rest of the Assembly like languages I've learned are fantasy langauges, like the language in TIS-100. I believe it's important to have some knowledge of low level programming, it makes me very thankful for the languages we have today.
-
WebAssembly
Most of my knowledge of WebAssembly is because of my knowledge of web programming in general. People generally don't write Web Assembly by hand. These days if wanted to write a program that runs fast inside of a browser, I'd probably use GLSL or WebGPU rather than WebAssembly.
-
Bend
Bend's ability to run programs in a massively parallel fashion is really valuable to me. I know the language is still in development, but if it can uphold it's performance promise then I will definitely continue learning it.
-
Visual Basic
Visual Basic was my first programming language in college. I'd consider it to be the first language I really learned. Even though VB is weird in many unique ways, it was really easy to learn and run with. Ultimately this language inspired me to pursue the career I have today. Surprisingly it did pop up again later in my career as UI testing language, which was very surprising to me.
-
Dark Basic
Dark Basic was the first language I had direct contact with. Some time during junior high school, my mom was able to get a CD with Dark Basic on it. There were a couple of sample games that I could look at the code for and a tutorial that was maybe 8 pages for the whole language. I had a lot of fun tweaking the variables in the games and trying to understand how things worked, but I never really learned how to use this language. It would be fun and nostalgic to go back and learn this language some day.
-
Bash
I've been using Bash in some for ever since college. I don't script with it super frequently, but having some knowledge of it comes in handy at work.
-
Awk
I've only used AWK a couple of times. I wish I knew more about it because I think it could come in handy when I need to quickly process text data.
-
Rust
I only know about Rust because it's popular in the industry. I've used it a few times, but not enough to feel confident in using the language. I really ought to learn this language to help fill my gap in lower level programming knowledge.
-
Go
I only know about Go because it's been used on a couple of work projects. Most of my interaction with this language is me reading other people's programs to try to understand how data flows through their service.
-
Futhark
Futhark is similar to bend in that it promises to compile to parallel code. At the time that I started learning it, I had a lot of difficulty in getting it to run locally, so I ultimately moved on to other projects. I'm still interested in picking it up (and bend) in the future because I think being able to make code that runs massively parallel is super important.
-
AngelScript
I found this language one day while on Hacker News. I'd already been learning about 3D modeling and found that I could 3D model with code in this language. I used it quite a bit at the time to help me generate 3D models. These days I'd probably use geometry nodes in Blender if I want to procedurally 3D model something.
-
PHP
I first learned PHP in college and then promptly learned about SQL injection after thinking it was neat feature of my search field. I've used PHP a few times in my career, but I actively avoid it if I can. I think keeping front end and back end code so close together is a minefield best avoided.
-
LSL
I used Linden Scripting Language for a little while during high school when I played Second Life. I have vivid memories of going to a particle system museum and learning how to build and control particle systems using LSL.