I know some of you out there are thinking why is this person moving from the beloved TypeScript and React to the dreaded and devilish C# platform. I get that C# and .NET have a lot...baggage I guess you could say. For those of you that are C# and .NET(dotnet) devs that are thinking "Well duh, the answer is because C# is an Enterprise level language." That is most definitely not the reason. TypeScript in my opinion and how I have been using the past three years has been just as much an enterprise level language as Java and C#. The reason is simple. Games.
A few years back, and when I say a few years I mean 6. Yeah that's right in 2015 (6 years ago) I started the adventure of a lifetime. I decided I was going to become a video game developer. I loved playing games. I had a huge amount of things that I wish I could have added to just about every game I was playing at the time how I would make this change or add this feature to better a game. But the one thing I didn't have was the knowledge or know how in order to get the job done.
I probably did what a lot of people in my shoes did and found the Unreal Engine and realized that they had just released UE 4 and you could start using it for free to learn how to build your own games using their engine. This was a dream come true. I had played several great looking games that ran on the Unreal Engine. Batman Arkham XYZ comes to mind as all of those are built using Unreal Engine. It was set. I was going to learn Unreal Engine. I had been in IT for a little bit at the time. I knew some network scripting and how to build a computer from scratch and all of that. How hard could it be. Plus I really wanted to do it. Like more than anything else in the world I wanted to become a game developer.
I bought a course on Udemy that was going to teach me how to create a few project games in UE4 and it was going to be great. By the way this was before the blueprint feature that you can use now in UE4. At this point you had to do everything from scratch using a programming language called C++. Uh oh. What is this C++?
I started down the road of this getting everything installed locally for development and was super excited. Had a nice computer and Visual Studio 2015 installed and ready to go. Got to the first video on C++ and immediately my head went WTF?! What is he talking about? I need to call this an int and open use something like a half ass smile with two eyes? What? ::>>? Huh? Then I started researching. Is C++ a good language to start with? Should I learn C++ as my first language? The answer to these questions from most developers was no. This is a great language. It's fast, handles all of your needs and then some. Makes really great game scripts. Etc. But the number one thing that every post and answer from friends and colleagues all said was it was hard and difficult to master without learning an easier language like Python.
I started to look more into Python since I was a junior Network Admin and was needing to learn how to automate several scripts for our network. I was able to pick up Python with ease. Had a blast with it. Even built a few games using the game engine PyGame. I actually teach a course on Udemy for beginners with Python who want to learn how to code by building games with Python. But I am not going into the details of that course here. But I still wasn't happy. I wasn't building actual things with Python just scripts that more than half of them weren't even being used. Really started to urk me the wrong way. So I tried it again.
I decided I had a few years of Python going for me now. Built a few games and a website or two. Let's see if I can figure out what this C++ language is and how I can create really awesome looking games with UE4. I was able to get into the language and understand it's idiosyncrasies. It's god awful syntax as well. I realized I didn't quite care for this language and how it looked. It wasn't that it was hard to understand now. No it was that the language itself was just butt ugly compared to the elegance that was Python. Python was a great looking language that forced you to do things its way and made you a bit better coder for it. But C++ and I were not going to get along with it's ugliness in play. So I again moved on.
Man did TypeScript and I hit it off. I really liked that it added what I had to do in C++ for UE4. Strongly typed variables. Things were starting to look pretty awesome. Started working on all kinds of projects for work and even ones outside of work. Really wanted to get better at TypeScript and building out applications. I started using it more and more. I incorporated TypeScript into all of my React projects. Started using it with GraphQL and Node as well. It was awesome. Then I decided to go back to games. But this time I decided to give Unity a shot. A language that was created by the same creator of TypeScript Anders Helsberg, helped to create C# and came back to Microsoft to help develop TypeScript as well.
Well Unity turned out to be a great game engine. C# is a great language to code in and look at. My time with TypeScript helped me grasp the concepts of C# way easier. And I even found out that I can use C# for more than just games. I can use .NET Core for cross platform applications and websites. And I can use Xamarin for mobile apps which is awesome because I was a heavy user of React Native for a long time as well. I am currently still a TypeScript developer by profession. But I am working on my own game in my off hours and weekend. I will definitely update the community on my game when I have more of it to reveal.