8LS Logo
GitHub

Frameworks Come, Frameworks Go: My Journey Through the World of Programming

Background for Play button

I started “programming” at the age of 10. For me, programming is the act of writing code that tells a computer how to perform tasks. But like many, my journey into programming wasn’t the traditional path of learning languages like C or C++ right away. Instead, it began with something more playful—and perhaps slightly mischievous.

As a child, I was an avid gamer. I loved playing computer games, but I also loved winning. In some particularly difficult games, I found that by modifying certain game files, I could increase my virtual bank account or gain other in-game advantages. Now, you could call that cheating, but I see it as my first step into the world of programming! At that time, I didn’t know how to program in C or C++, but I was still able to change some configuration files that the games relied on. That was my first taste of how powerful modifying code could be, even if I didn’t fully understand it yet.

Early Experiences: From Configuration Files to My Own Software

As I grew older, I started experimenting more seriously with programming. I created my own software in the form of websites and small games, dabbling in languages like C and C++. However, I quickly learned an important lesson: I didn’t have to write everything from scratch. Just as I had modified game files to gain an advantage, I discovered there were tools and standard software available to simplify my life as a developer.

One of my earliest encounters with such tools was with WYSIWYG (What You See Is What You Get) editors. These editors allowed me to create websites without needing to write HTML or CSS by hand. Most of these editors did their job well, but they couldn’t keep up with the rapid development of the web. I got them for “free” as giveaways on CDs from the computer magazines my father read. The websites I created with tools like “NetObjects Fusion” were often clunky and lacked substance because, as a teenager, what did I really have to say?

The real game-changer for me was realizing that content generation didn’t have to be my responsibility. At 14, I set up a PHPBB2 bulletin board, a platform that allowed others to create the content. This online community for my classmates and friends became a place where we exchanged gossip, homework, and internet links. Setting up the bulletin board was surprisingly easy: I just had to upload a bunch of PHP files via FTP to my web server, set up a database (without really knowing anything about databases), and follow the installation process. I didn’t know PHP at the time, but that didn’t stop me from tweaking the PHP files that the forum software relied on. This experience taught me that you don’t need to be an expert in everything to make things work.

The Evolution of Tools and My Growth as a Developer

As I continued to explore the world of programming, I learned more languages and tools. I was particularly interested in game development, which led me to learn some C and C++. But even here, I found that there were tools like The Games Factory that allowed me to create games without diving too deeply into the code. These tools were the precursors to what we now call Low-Code & No-Code platforms.

However, my journey wasn’t always smooth. When I was in high school, I had to learn Delphi and later Python. I was disappointed because I wanted to become a game developer, but instead, I was learning languages that my teachers knew. However, this experience taught me an important lesson: no matter the language—whether it’s C, C++, PHP, Delphi, or Python—they all have similarities. Understanding the underlying principles of programming is more important than mastering a single language. This realization has been crucial in my career, allowing me to shift between frameworks, tools, and even management practices with ease.

The Pros and Cons of Different Technologies

As I gained more experience, I started to see the pros and cons of different technologies. For instance, while C++ was highly regarded in the gaming industry, learning Python enabled me to easily script solutions for daily life, automating almost anything. One particularly memorable example was when I was 16 and wanted to get on the guest list for famous Berlin clubs like Berghain and Watergate. I used Python to automate the process of entering lotteries hosted by nightlife blogs. All I had to do was sign up with an email address—or hundreds of them, automatically.

In college, I had to learn another programming language: Java. At the time, I couldn’t understand why so many big companies used it. Java seemed outdated to me, but corporate bureaucrats later explained that it was hard to find developers who programmed in Python, so they stuck with Java. This reasoning seemed flawed to me. The better reason to stick with corporate languages like Java and C# is that many third-party libraries and frameworks are developed for these mainstream languages. At that time, Java was supported by many high-tech middlewares and frameworks, especially in industry solutions, protocols, security middleware, and database technology.

But here’s something important I learned that some people never do: there are also libraries and frameworks developed in Python for the same reasons. Most data science frameworks are developed for Python, for instance. And when it comes to web development, neither Python nor Java is particularly significant. The winner here is JavaScript, paired with HTML and CSS. Although you can render pages on a Java or Python backend, JavaScript is the programming language of the web, supported by engines from Mozilla, Google, and Microsoft.

The Impermanence of Frameworks

The great thing about JavaScript is that you don’t need to be an expert in it. There are plenty of frameworks out there, and many developers become experts in the framework rather than the underlying language. However, a word of caution: frameworks come, and frameworks go. Whether it’s WinForms, jQuery, Angular, or ReactJS, all these frameworks eventually become outdated. If you focus too much on one framework without being open to new developments, you risk becoming obsolete along with it.

The conclusion? There is no one technology that fits every situation. And if you think you’ve found the holy grail, I’d love to hear from you.

The Role of Legacy Software

At some point in my career, I even had to learn COBOL, a language that’s been around since 1959. Was it necessary to use COBOL? Absolutely. Not because of a third-party dependency or because someone told me it was the way to go, but because migrating from COBOL to something modern would have been a never-ending story. The knowledge of the code had been lost over the years, as the original developers had long since retired. This is a big issue with legacy software—software so old that its creators are no longer around to support it.

I wrote one of my theses on refactoring legacy software. It’s a cumbersome process, and quite often, it’s better to start fresh with new software than to refactor the old one. But that’s not always an option for your customer, whether they’re external or internal. In such cases, you have to swallow the bitter pill and learn a bit of COBOL. Thankfully, it’s much easier to learn now with tools like ChatGPT at your disposal.

Lifelong Learning and Adaptability

Reflecting on my journey, I’ve come to realize that the key to success in programming is a combination of lifelong learning and adaptability. From modifying game files as a child to setting up bulletin boards, and from automating tasks with Python to grappling with COBOL, I’ve always sought to understand the technologies I’m working with, even if I’m not an expert in them. I’ve learned to appreciate the strengths and limitations of different programming languages and frameworks, and I’ve developed the ability to shift between them as needed.

If you’re looking for a framework generalist, a Python and NodeJS expert for your projects, or if you need help evaluating the next hype or technology, I’m here to help. You can book a consultation with me via the button below.