Why I’m Making C# My Main Language

Growing up, I dabbled in a handful of programming languages: C++ from modifying video game source code on the PS3 and Xbox 360, Java from modding Minecraft, C# from messing around with game design in Unity3D, and Python from a few introductory courses in college. Despite all that exposure, I was never actually fluent in any of them.

Eventually I dropped out of my CS program — I didn’t want to grind through all the extra math — and moved into IT instead, where I could get more hands-on with hardware and system configuration. Now I’ve decided it’s time to man up, get disciplined, and actually focus on learning a few languages properly.

I’ve recently gotten into bug bounty hunting, web app testing, and pen-testing, and that’s made one thing clear: fundamentals matter more than ever in the age of AI. I can’t just “vibe” my way through everything — that’s how you get hacked. Fundamentals also feed creativity. I’ve gotten good enough at spotting AI-generated work that I can usually tell which websites have been touched by it and which haven’t. It’s wild how fast the world has shifted — learning itself feels faster than ever.

I know I still have a big knowledge gap in algorithms and data structures, since I’m mostly self-taught. That gap is compounded by dyslexia — reading dense textbooks and academic explanations has always been a slower, more frustrating process for me than it is for a lot of people, which pushed me toward hands-on tinkering over formal study in the first place. For a long time, “learning to code” for me meant Googling, browsing Quora or Stack Overflow, and copy-pasting code while hoping it worked. That’s how I did most of my coding when I was younger. Now, with AI, I can have an LLM break down code and explain it to me like I’m five, which has given me a much better foundation — it reformats information into something that actually clicks for how my brain processes it, instead of forcing me through a wall of text. As a result, I have more projects in flight than ever, since LLMs have accelerated both my productivity and my learning curve.

Why C#

I’ve decided to make C# my primary language, since it checks every box I’m looking for:

  1. Abstracts away cross-platform compilation
  2. Fast — with Native AOT compilation it gets close to Go-level performance
  3. Syntax similar to C/C++, which I’m already familiar with
  4. Usable for both backend and frontend work
  5. Usable for game development in Unity3D
  6. In my own research, LLMs tend to write noticeably better C# than most other languages — this multilingual benchmark writeup backs that up, with C# landing well ahead of Python and Go

C# is my main language going forward, but it’s not the only one I’m putting time into. I also plan on getting deeper into Python and C/C++, since both still show up constantly in security tooling and low-level work that C# doesn’t always cover.

What I’m building

Right now I’m juggling a handful of projects, all accelerated by LLMs — a few worth naming:

  • A locally hosted “hackbot” running a local model — basically my own version of XBOW
  • An FPS game in Unity3D
  • Custom cybersecurity tooling
  • My own LLM tooling and system infrastructure, built to “vibe hack” with more clarity and control

Along the way, I’m also leveling up as a software engineer, not just a hacker. I’m finally using Git properly, instead of my old-school method of version control: duplicating folders by hand. Back when I was younger, that meant manually copying folders to manage my Xbox and Xbox 360 hacks and mods — those were usually stored and shipped as a single file rather than a decompiled application, so folder duplication was basically the only versioning system that made sense at the time.

Beyond Git, I’m also learning how to write test suites and think about testing across different operating systems, and I’m digging into system design — how to structure and separate components properly.

A good example is the harness I’m building now. It’s split into three separate pieces: a WebUI, decoupled from the LLM harness itself (so I can debug and update each independently), and an API endpoint that lets my OpenClaw assistant ping the harness and pivot the local agent to a new target on the fly.

Looking forward

Going forward, my main goal is getting fluent in C#. Learning the fundamentals matters more than ever, because someone still has to verify and validate what these LLMs are outputting. Just YOLO-ing software and websites into production is how you end up with vulnerabilities and a mountain of tech debt.

Beyond that, I’m planning to go deeper into the technical side of LLMs and AI, and I’ll soon be building my own model using Intel Arc GPUs as my compute stack. That’ll be its own blog post — stay tuned!