My journey from OOP to Functional Programming Part 1
Solomon Razaq
Founding Engineer at Linkup | Software Engineer at Kandua | Web3 Enthusiast
At the time of this writing, I am looking at a 3-part series on this article. Part 1 will cover my journey from OOP into a Javascript/TypeScript Environment, part 2 will be my interview at my current company and time officially working in the environment, and part 3 will be my move to another team where I work on the legacy system in hopes of making the codebase a better place to work in.
Before I start, a big shoutout to everyone in my Siemens PLM Software team. They made me realize the passion I have for what I do as well as the life skills I received. Another shoutout to the rest of my past and current teamies for their support through my various transitions.
As someone who has worked in C# for a better part of 4 years, javascript and its likes were not something I saw myself ever considering. The main reason for getting into C# was because it was the first language I learned and it was a semi-comfort zone for me. As C# evolved over time moving from .NET Framework to .NET Core and eventually merging the two into .NET I stuck around for the entire journey until .NET 6.
I left my previous company to jump into an environment that I was not familiar with at all. I had been seeing a huge hype around javascript on the internet and I wanted to understand what it was all about. Javascript was a bit of a stretch for me so I decided to take something that is a little closer to home - Angular. I got involved in a project using Angular 10. Thanks to Google, StackOverflow, and Maximilian Schwarzmüller I was about to begin my journey. Most of us bought this udemy course called Angular - The Complete Guide (2022 Edition). I started off by doing bug fixes and small changes just to get a feel for the language and get a bit more comfortable before I go Rambo (the best classic of all time) on a full-blown feature. I got through 15% of the above-mentioned udemy course but felt it was really stretching things out like I had no prior programming knowledge. This would be great for someone learning the ropes but I just wanted to know what Angular is trying to achieve and start becoming productive. I spent a great deal of time in the angular docs as well as every developer's BFF (StackOverflow). I ended up releasing full features without being remotely adept as I am in C# (Please don't ask me to write a test in Angular).
领英推荐
At this point, it was paramount for me to ??fall into the dark side?? (functional programming; also a big Alan Walker fan) so I decided it was time for me to fully embrace the environment and dive right in. There were two options here, I could be more proactive at working on side projects after work or find another job that aligned with what I envisioned as my next step as a developer. I settled for the latter and after lots of prepping (catching up on theory, trends, practicing Leetcode questions, etc) and some other kinks along the road, I decided it was finally time for me put myself out there. Short version, I went through a couple of recruitment companies, it was an egregious experience, and I decided to give Offerzen a try. FYI: I was impressed that I was tested on my knowledge and skills rather than the memory of algorithms and other DSA things (a story for another time). Anyways, I digress.
Kandua was the first company I applied to but I had no response after the first interview so I kept moving forward. During one of the other interviews, I had a take-home assignment that I could write in any javascript/typescript framework of my choice. At this point I realized, I have never used angular as the backend of my system and after some research, it was for good reason as well. That's when I stumbled upon another udemy course Angular & NodeJS - The MEAN Stack Guide [2022 Edition]. This course checked all the boxes for me, more specifically, the fact that it had Mongo DB in it. I was working on a side project with a friend and we decided to go with the MEAN stack. I would not say I was comfortable in angular yet, but we were both pushing production-ready code in angular and SQL was second nature to us. The only reasonable next step was to learn a NoSQL database and Mongo DB was the choice. None of my udemy courses ever saw fruition but this is the closest I got, which was 45%. At that point, I knew everything I needed to complete the take-home assignment and I completed it. Along the way, I got various other take-home assignments and they were all along the lines of C# backend + Angular frontend, javascript frontend + Angular frontend, or some variant of the mentioned.
Moving towards a conclusion to part 1 along with some spoilers for part 2, my interviewer at Kandua was on leave for a month and when he got back, the rest of the process was like clockwork and I learned NestJS along the way. That's as far as spoilers go :)