Blog: Hello, World Freezes Over
Adventures in C#, Part 1
As my next project for my coding journey, I've decided to pick up and focus on a new language and ecosystem entirely: new to me, at least. And that is C#, .NET, and all the rest of the Microsoft stuff. The job market in my area seems to favor C# and Java over most others, at least at the present time, so I figured I should dive in. Over the past handful of days, I've...
- Completed the Codecademy C# Beginner Course to familiarize myself with the language's quirks and syntax
- Worked with Oqtane, and created this website using that ecosystem
- Completed a simple tutorial for a Tile-Based game creation system called SadConsole
What I've noticed:
The C# I've been working with so far reminds me an awful lot of Java, in the (nearly) "everything is an object" style of development. The raw code I've worked with actually tends to remind me of developing Java for the Android platform using Android Studio. It seems like a very powerful, feature-rich language and I'm drawn to it more than I was learning and working with Java.
I love the concept of named parameters, which for those who may not be familiar can be explained thusly: the 'traditional' way of passing arguments would be positional, so something like
CreateEmployee(string name, string id, double hourly)
Would be called with:
CreateEmployee("Josh", "8675309", 18.50)
Whereas in C# you can optionally make it something like this
CreateEmployee(name = "Josh", hourly = 18.50, id = "8675309")
Now, this isn't new: and you can get a similar effect, sorta, in modern C++, and in other languages using data structures or even just inline comments... but it's nice to be supported natively, and I tend to like things that make code more explicit. Downside is it's also more verbose.
I also don't know how I feel about explicit out parameters, likely just something to get used to: in C++ passing things by reference to be 'filled' in by the function is something I used pretty often so it's not much different, but again, takes some getting used to.
The Biggie
LINQ. This is the big thing in C# that feels like it has potential to be a game-changer... but reading bits and pieces on the web, opinions on its usefulness range from OMG to GTFO. I haven't had much experience in it yet, but the idea of parsing through collections of data with SQL like syntax in code seems like it would prove hyper-useful in many contexts. It seems like it has to be slow (slower than a standard loop at least), though, and it scares me a bit because the syntax is a bit tricky for a language newcomer like me. I reckon I'm going to love it as I get used to it.
Anyway, so far the 'game' is hardly a game, you can move around and collect Vs, and run into Ms. But, I've dreamt of making a tile-based game in the vein of ZZT or Rogue since I was a wee-lad, and even made a proof of concept of doing such in QBasic back when I was a wee-lad, so I might keep plugging away as a way to continue to familiarize myself with the language and create something fun. Or I'll shelve it in a few days. Who knows. But so far dipping my toes into SadConsole has been a fun experience and I recommend checking it out for those who might be interested in such things.
So far, I'm loving my journey into C#, and I think my early decision is that I just might focus on it for the foreseeable future.
Share Your Feedback...
Website and all content ©2025 Jake Fitzenreider
Website powered by Oqtane