1 Jun 2023

From typed to scripting languages

My developer path over the years.

My first job was in C/C++. A year long journey. Failing miserably at everything and being humbled everyday. Toxicity was never an issue but the feeling of pressure was introduced in a healthy way.
During that and around that time I heavily learned some Open GL to try and become a game developer. 
It was during that time when I discovered the first scripting language - Lua. It felt like magic and there was no javascript equivalent integration inside apps at the time (2008). I learned how to interact with it in C++ using provided stack interface.
The first configuration methodology I learned and had to abandon just to start the next paying job.
It required iOs development in Objective-c, which I learned on company premises in about two weeks. Although it was a weird one, it introduced me to how garbage collected languages really work (at least autorelease concept). It expanded my horizons a bit but...
The client decided that since I am able to pick up languages on demand, so I also had to learn some Java for Android. 
Was I abused in that regard? Maybe. Did it open the possibilities for me? YES!
You see, when the skills you have make you unique, you get a level of respect and viewed more pressious for the company. That's when the better money appears. When does it appear? In my case after 6 years of grinding and not really progressing as a specialist. A quick to write and rewrite an app in another language programmer is not worth crap. Here is why.

You learn to adapt to something existing more rather than create some domain logic from scratch. I was really surprised that at the age of 28 and 8 years of language hopping for work would render me worthless at thinking of a project structure on my own.
At that time I had to switch to Javascript project too. This is when I encountered my first PR checks and realized my code was trash... always. And I was lucky the new team was willing to explain and tolerate a lot.
In short it was another humbling experience of being directed on how to write extra simple functional code and most importantly how to communicate my concerns better.

That was the mentor guidance I needed which never happened before. And by people younger than me.
My own desire to tweak things and learn new stuff was not beneficial as it resulted in me not caring about team members and my future self much. 
Reading unprofessional code I made was always a nightmare and I wish it wasn't a case still. But at least now my code is good and simple enough to be refactored and repurposed fast, unlocks fast prototyping for my current employer.

That being said, with constant flashy tech emerging on a horizon it is tempting to switch languages like crazy and dive into their philosophy for no reason only to end thirst for new shiny things.
Trying out Rust, Go, python etc was fun. But I am back at creating small games in typescript for my self. Improving slowly, structuring, applying practices, thinking if it would be a pain for someone else to contribute, and playing with code without even a dream of releasing anything. Which programming is all about I guess, pure unconditional love.
The choice of TypeScript might seem odd, but it is something I use for work everyday. And it is one of the most portable languages ever. Although it's type system is full of lies I can attempt writing something type safe. As for being slow for games...
I am developing my game on my own. So I don't plan on releasing 3d AAA titles. It's all 2d for me and very simple, so this slowness is fast enough to enjoy whatever I might create for a browser.
Soooo Not doing homework for someone else (another company) anymore in my free time. Only what I find interesting.
For that reason also I started a YouTube channel https://youtube.com/@alexandersemionov5790?feature=share8

Here I am trying to write game related tech like AI decision strategies and my own scripting language :) sharing ideas and failures I encounter. Even the boring stuff for you is and will be a part of unraveling the vision I have or might have in the future.

That's it.

I hope my mumbling was at least somehow interesting and I was able to share my passion for tech somehow.

No comments:

Post a Comment

Custom software development

You receive a new task to start a brand new project. Your eyes light up. You're epic software developer.  And you finally have the oppor...