The topic of “lifelong learning” got me thinking, because for me as a software developer and a curious person, learning has simply been a part of everyday life since childhood. The question “What is the last thing you learned?” is therefore not so easy for me to answer, because I learn something new every day. Sometimes it’s a single aha moment, sometimes it’s many small things I pick up—but in fact, I learn every day. Consciously.
One thing I have learned over time is the realization that not everyone likes to learn. Thinking, reflecting, drawing conclusions—what is fun for one person is just exhausting for another. This became especially clear to me through something someone recently said to me: “It’s really terrible that in your job, you have to sit and think all day.” I feel exactly the opposite. By actively and consciously learning, you discover a new aspect of your work, the people in your personal environment, but also the world around you every day—and that’s just incredibly fascinating.
I am now 42 years old and have been a full-time software developer since January 2010. I have met all kinds of people. Some fail to further develop themselves and to keep up in their field. That is not only a shame, but sometimes even dangerous. For example, if you don’t stay up to date when it comes to software security. Admittedly, keeping up in a professional environment that constantly accelerates is not easy. You really have to consider carefully which areas you want and need to stay current in.
Inhalt
ToggleThe right focus
I am interested in many things, but since we all only have 24 hours in a day, we need to separate the important from the unimportant—and sometimes even the important from the even more important. In my case—from a professional perspective—this means I have to carefully consider which technologies and frameworks I spend my time on.
In 2011, I started using the Symfony framework. It’s great for developing web applications and online portals. It has a solid database layer called Doctrine, is excellently object-oriented in its structure, and is continuously being developed further. Those are good prerequisites for a solid software foundation.
In 2014, I came into contact with the Zend Framework (now Laminas) when my employer built their own framework on top of it. About a year ago, Laravel was added to the mix.
However, since both Laravel and Zend have too many rough edges for my taste (with Laravel/Eloquent, for example, I miss a sensible database model where I can see at a glance which properties a database table has), I have always remained loyal to Symfony.
Accordingly, I have mainly focused—here we are at the topic of “focus”—on further developing my skills in Symfony. As a result, I now develop much more dynamic web applications than I did a few years ago (keywords: SymfonyUX and TwigComponents). Since I have focused on Symfony, I can develop web applications, backends, and APIs with Symfony in a short amount of time that run stably. True to the motto: If you want to dig a well, don’t dig many small holes, dig only one—and dig it deep!
The key to this is to focus on just a few topics and deliberately improve your skills in those areas.
If you want to dig a well, don't dig many small holes, dig only one - and dig it deep!
My credo - but not my own
Being open to new things
Those who don't move with the times are moved by the times.
unknown author
Sometimes, you may need to change your own attitude. Make a conscious decision to open yourself to new perspectives and new approaches.
Two years ago, I started working with a friend who didn’t use my favorite programming language, PHP, at all. Angular, TypeScript, Node.JS, Express web servers—those were the new buzzwords. Last year, Laravel, Eloquent, and TailwindCSS were added through another project. … and I had to get used to it first. The key was: I wanted to be open to new things. I wanted to see what these frameworks and programming languages could do and if I wanted to use them for my other projects in the future. And what can I say? You can warm up to some things, but not to others.
You can still chase me away with Laravel and Eloquent, but I have grown to love Angular, TailwindCSS, and Visual Studio Code. For my client Locktec GmbH’s new locker configurator, I chose Angular and Tailwind entirely (I’ll share the link to the new configurator after its rollout this autumn).
Small steps in the right direction are also progress.
Some people may think that progress has to be big and visible to be worthwhile. However, it is often the many small things that, taken together, move us forward.
Here’s an example from PHP development: In PHP, you sometimes want to check whether a certain key exists in an array. If it does, you want to continue working with the corresponding array value. If not, for example, you might want to use a default value. Until a few years ago, you had to do it this way:
if (isset($myArray['myKey']) {
$myValue = $myArray['myKey'];
} else {
$myValue = "Nicht gesetzt";
}
That was a lot of typing for little result. For some time now (since PHP 7), there has been the null coalescing operator ?? (please don’t ask me how to pronounce it), which significantly reduces the amount of typing:
$myValue = $myArray['myKey'] ?? "Nicht gesetzt";
It doesn’t take much effort to remember this operator (??), but if you use it several times a day, over the course of a year it adds up to several hours of work time.
Small things you learn can sometimes add up to make a big difference. A similar conclusion can be found in the book Atomic Habits. I’ll be sure to give the book a read soon. A 1% improvement per day doesn’t lead to a 365% improvement per year, but about 3500%. This effect is all too easily underestimated.
What did I learn last?
That was, after all, the actual question of the blog parade. Warning, technical jargon: In the past month, I learned how to build Symfony projects in a more component-based way (similar to Angular) and less template-based. This saves me significant development time, as the individual parts of the web applications are much more reusable.
Among the things I have learned in the past months are, for example:
- How to combine Symfony and Angular
- How to integrate Angular into WordPress plugins, for example to develop dynamic assistants for the backend
- How to use multiple root tags in Angular
- How important pingbacks are for bloggers
- How to export cash register transactions (e.g., for restaurants) in the DSFIN format
I will probably create a separate article on one or another of these points and publish it here—if I haven’t already done so.