Switching of techstacks from C# & .NET Framework to PHP & WordPress marked one of the most significant, scary and in a weird way rewarding transitions in my development career. Both languages and frameworks have their unique strengths and challenges as well as their own quirks. Adapting to a new language and framework was taking a step out of my comfort zone and to be honest it was a mix of struggling, imposter syndrome and figuring things out on the fly.. but actually slowly building up real experience and knowledge.
TL;DR
I started with C# & .NET and loved the strict typing and compiler safety. Later I switched to PHP & WordPress, which was chaotic at first but taught me adaptability, plugin development, >and working with ecosystems like WooCommerce and LearnDash.
Learning C# & .NET: My first steps in programming
The starting point
C# was the first programming language I learned through a very short course of about 4 months, as much as programming was intimidating for me I tried several times to self learn a bit of code but always gave up and failed miserably I immediately fell in love with C# through that course and more specifically through the educator shout out to Mr. Marcel, who was teaching us. I remember vividly how engaging and passionate he was about programming and how he was like one of the people that could spend hours and hours talking about programming and you would just listen to him and be amazed by his knowledge and passion.
Frontend vs Backend development: going full stack
Though frontend development was I think still is? the cool stuff, I mean how cool is it to just type something and you immediately see something appear in the browser? that’s some kind of sorcery right there! and you can even style that? get out of here! Animations???? Whatttt????
But with all of that, I was more drawn to backend development and the logic behind it all I really liked the idea of actually tinkering with the “engine” that makes everything run. It was for me much cooler to see the simple math input console app running from Main() to Console.WriteLine()
But Anas, Javascript can also be an engine to tinker with?
Well, brace yourself…
… Personally, I still don’t find JavaScript as enjoyable for backend work.
Blasphemy.. typescript? But but Next.js.. Node.js..
Nope, still not convinced!
I mean look at this beauty and tell me you have ever seen anything remotely similar in Javascript:
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
The joy of strict typing & OOP
Anyway,
The strict typing and object-oriented nature of C# was a soul soother for me, it was so satisfying to see the compiler catch the many, many … many errors before they even made it to runtime. Don’t believe me? here’s a fun fact: One of my first projects in C# was Snail race console app, it’s a simple console app that simulates a snail between three snails. According to one of the developers in my first job, one of the reasons that got me hired is the way I enthusiastically explained the project I was so proud of that project and still am, even though it’s ugly.
PHP & WordPress - Learning to love & embrace the chaos .. the hard way!
Fast forward a few years, I was hired as a WordPress developer, it was something like:
We need you right now, we don’t have time to train you and we don’t have any other developers, you start tomorrow.
I was like, sure why not? I mean how hard can it be? It’s just another programming language right? Famous last words
Oh boy was I wrong.
<?php
echo "Hello World!";
?>
The shock of loose typing & interpreted languages
PHP felt like a completely different beast, the loose typing were a culture shock after years of compiler safety. I remember the first time I encountered a fatal error in PHP, I was like “What do you mean my code is wrong? didn’t you know that when you compiled it?” oh wait, are you even a compiled language? Turns out PHP is an interpreted language, which means that the code is executed line by line and errors are only caught at runtime. This was a hard pill to swallow for me, I was so used to the safety net of a compiler.
WordPress: Custom Post Types, Hooks, and Challenges
Yup, the behemoth! My first project in WordPress was to create a plugin that displays a custom map with markers, notes and data for each marker. I was excited to get started, and I thought: “Oh yeah, I know this cool frontend framework called AngularJs and I’m already familiar with Leaflet, this will be a piece of cake.” And at first, it was, but as I delved deeper into the project, I realized that WordPress has its own way of doing things. The custom post types, the metadata, the hooks, the filters, the actions, it was a lot to take in. I remember spending hours trying to figure out how to properly load the ginormous scripts and styles set I needed for AngularJS =D, only to realize that I had to use a specific function for it.
The chaos embracing phase
But with time and practice I actually started to get the hang of it. I taught myself to appreciate the flexibility and power of PHP.. I even started to enjoy the challenge of working within its constraints. After a while and bit by bit I began making challenges for myself building my own integrations and custom solutions on top of WordPress Core, plugins like LearnDash, WooCommerce, Paid Membership Pro, BuddyBoss/Press, custom and ready made themes and more.
Lessons from switching stacks
Looking back at that switch: it wasn’t just a language shift, it was a shift of mindset, a shift of approach, and a shift of perspective.
I know that a lot of developers / software engineers kinda look down on PHP and WordPress as if the stack is NOT “real” development or as if it’s just about adding plugins and themes and call it a day, I beg to differ, I mean outside having an extremely simple site with only text & images, any other use of WordPress requires some serious development skill.
The switch taught me to be more and more adaptable.. to actually embrace new ways of thinking and to appreciate the strengths and weaknesses of different technologies.
I strongly believe that any ecosystem ever existed has its own unique charm and weird quirks but exploring these charms and quirks is what makes a better developer and honestly what makes development fun at least for me.
Now on to the next adventure, whatever it may be!
What about you? Have you ever had to make such a switch between two completely different techstacks? Do you have a similar story or a comment you’d like to share with me? I would love to hear all about that!
No comments yet.
Note: I welcome all comments, including negative ones, but I reserve the right to moderate for spam, abuse, hate speech, and other inappropriate content. Disclaimer: Comments are moderated and may take some time to appear. I do not endorse the views expressed in comments. By submitting a comment, you agree to the privacy policy and consent to the handling of your data as described therein.