--- Learning Perl in one day and the importance of building strong foundations --- I know this might seem to have nothing to do the subject at hand, but bear with me. In the last couple of months, there has been a new trend on software engineers building their own blog platforms instead of using existing ones like Medium or LinkedIn. This is one example of such. I am very satisfied that people are coming back with the old custom of building things from scratch. The reasoning for this throwback might be related to what I've seen in an X post recently, where someone talked about building a website during three different points in time across the last 20 years or so. The post described that, in the past, things used to be very simple: just put some plain HTML (https://developer.mozilla.org/en-US/docs/Web/HTML) files together, style it with CSS (https://developer.mozilla.org/en-US/docs/Web/CSS) and send it via FTP (https://en.wikipedia.org/wiki/File_Transfer_Protocol) to some host out there in the wild. In contrast, things nowadays seem a lot more complicated, jQuery (https://jquery.com/), React (https://react.dev/) and bloated javascript (https://developer.mozilla.org/en-US/docs/Web/JavaScript) libraries dominated the web. I wholeheartedly agree that things changed. While people tend to discard old technology deeming it to be legacy code, they forget that it used to be very powerful and could even do the job in a very efficient way in the majority of times. La Résistance of bringing back old technology might be what's keeping the web culture that we all once loved alive. Coming a bit back to the subject of blogs. One of my friends started one (https://henriquegodoy.com/blog) and seeing how fun it seemed to be, I decided to hop in on the trend as well. I had already posted an article on LinkedIn, so I had starting point material. While I could write blog posts by hand, my tingling developer senses made me want to build a tool to automate this process, and so yap (https://github.com/guilherme-n-l/yap) was born. I wanted to do a CLI (https://en.wikipedia.org/wiki/Command-line_interface) tool that would help me publish HTML without having to actually write any. Another seemingly unrelated fact is that I love learning new programming languages. It has been one of my passions since I started university and ever since then I'm becoming a huge PL nerd. With that in mind, I decided to learn a new language to materialize my new creation. After talking to my good ol' GPT friend on the best candidates for the job, I landed on an old language that used to be loved by the Internet community: Perl (https://www.perl.org/). After watching Theprimeagen (https://youtu.be/l6rRrDIBAaE?si=FoYCp79gv7XyzUKv) reacting to an article talking about how people don't use Perl anymore, I decided to give it a spin. I promise you this article isn't about Perl. The focus of today is to discuss about the fact that I could learn it in one day. I'm not an expert on programming nor do I have many years of experience (I swear I'm not gloating over my prowess either, I don't think I'm special), but I'm passionate about what I do and always strive to be better. I haven't fully dominated the whole language I'm speaking of, but I'm confident that if I kept it up for a week or so, I could get a pretty good grasp of it and develop bigger, more professional projects with it. In my humble opinion, It all falls down to the strong foundation in the world of software engineering and computer science that I have been building over these last years. I'm not talking about being an honor student nor about being addicted to learn new things, quoting the "I want to learn everything" meme people have been posting about, even though these help quite a bit. What I'm saying is that nowadays, with the verge of artificial intelligence, knowledge has been banalized: just ask away and the LLM (https://en.wikipedia.org/wiki/Large_language_model) and it will magically answer in the best understandable way possible. Learning is now something that people view as trivial and that way of thinking is limiting their true potential in becoming masters in their craft. Vibe coding (https://en.wikipedia.org/wiki/Vibe_coding) as a symptom of that. Newcomer developers think that because learning how to code is only a mean to an end, cutting corners becomes justified. That you should just do it without thinking twice about the consequences. I know that sometimes getting an idea to materialize itself without an ounce of effort is something that's very rewarding, but greatness isn't built that way, and these methods have drawbacks. I am a lawyer of learning in a court of law that failed justice. Productivity is always prioritized, companies want to max out their employees and people see it as the higher, the better. This makes everything today seem faster. While I do agree that seeking knowledge as an excuse to avoid work is something that people do (and I have seen that first-hand), what I'm defending here is that doing things faster can lead to cutting corners, and avoiding the problem with a duct-tape solutions will screw you up later. Learning is hard, and there is no optimal way of doing it, no pomodoro (https://en.wikipedia.org/wiki/Pomodoro_Technique) will optimize your brain and make knowledge stick long-term, and each person learns in a different way and pace. But, in contrast, is very easy to figure out when you are cheating yourself and avoiding the problem, using cheap shortcuts to getting things done. Do it the hard way, stress over the problem, understand the solution, build spectacular software and apply it. when that doesn't work, repeat using a different approach. I promise you that, in the future, this strong foundation you are building with the mistakes you are making now will solve the problem on its own. I rest my case.