Welcome to the monthly series “Meet The Champion”.
Last month we spoke to Alicia Bielsa, the winner of March 2020.
Today we are talking to Luca Ferrari, the winner of April 2020 of “Perl Weekly Challenge”. I hope you are going to enjoy the interview.
Mohammad: Tell us about your technical background?
Luca: I was interested in computers since the Commodore 64 era, but at that time I was six years old and therefore my computer skills were limited to loading and playing games. Besides this, I had a quite classical trip in computer science: during the high schools I learnt the C, then at university I met Unix and Open Source, learnt some more C and start building my own tools.
After my Master degree, I gained a PhD in Computer Science and after that I was a lecturer for the local university. I clashed with my tutors, and I collabrated then as Adjunct Professor at the University of Nipissing. Teaching has always being an interesting job to me, and I also had classes in the local high schools.
I regularly participated at conferences and local events, both as a speaker and a participant. Unluckily, today, due to both personal duties and all my eye diseases, this participation has ben shrinked, but I try to show up at as much events as I can. My daily job is as a Software Developer for the local government.
I love the Perl culture, and another system I’m passionate about is PostgreSQL. I have to say I do also PotgreSQL professional training and courses, and I have also written a book about it: PostgreSQL 11 Server Side Programming Quick Start Guide. In the book, I show also how PostgreSQL does support embedded Perl very well.
Being involved in Computer Science has been my only one job topic so far. An interesting point about my career is that almost everything that is allowing to do my job today I had to learn by myself: Java, PHP, Perl and PostgreSQL. The latter twos, Perl and PostgreSQL, are my favurite technologies, but the former ones are those that mainly pays my bills.
Mohammad: How/When did you start using Perl/Raku?
Luca: My ex girlfriend was searching for a Christmas gift, it was year 2001 if I remember right. I suggested her to buy me a computer book to improve my skills, and she came back with the Camel Book (
Programming Perl). This is a very nerd-like way of learning Perl! However, I began studying the language, and find it useful for many little gadgets here and there, but at the time I was still an university studens, so my gadgets were almost to my own use.
When I got a real job as a System Administrator, I re-discovered Perl and had the opportunity to see how easy it was for Perl to automate things. I often tell the story about how my boss, one day, asked me to do a moneky-job that was supposed to take the whole day. I wrote a Perl script and did the job in less than an hour, spending the rest of the day studying more about Perl!
Unluckily, I’ve never been able to make Perl my first job language, and even today I’m allowed to use it but not for “real” projects, I mean it is not the language of choice for our activities. When, in 2015, Perl 6 (now Raku) was released, I was waiting for it and so I started studying it. Then a couple of years ago I find that a very rapid way to learn the language was thru its extensive documentation, so I started to push back also some changes to the documentation depending on what was not clear to me or what I had “explored” in the language. Today the most time I spend in Raku is during the great Perl Weekly Challenge, while I still have Perl in production even if for smaller projects.
Mohammad: How did you come to know about “Perl Weekly Challenge”?
Luca: I don’t remember exactly, but I saw a blog post somewhere that linked to the challenge. I thought it was (and it is) a good way to learn more about the language so I started contributing and quite rapidly I got addicted to the point that one pleasure, on Monday morning, is to receive a new challenge!
Mohammad: What do you like the most about “Perl Weekly Challenge”?
Luca: It is short, sweet and allows you to learn and improve your skills. Often you can solve the challenges with a “brute force” way, but the real value is trying to solve every challenge with a smooth and Perl-ish way. Another thing I like, especially in this COVID-19 dramatic time, is that the Perl Weekly Challenge allows my mind to stay focused and give me the pleasure of learning; in other words it keeps me busy.
There is also another thing I like to point out: projects like these allow other people, often other professionals, to have a look at your skills and wills. This is very important in an opened mindset and transparent culture. When someone asks me about my Raku skills, I don’t have to make she trust me about what I tell her, I can simply point her to some of my solutions within the Perl Weekly Challenge. If the solutions are clever, I can gain a beer or a job; if the solutions are too poorly written, we can still be friend without wasting each other’s time.
Mohammad: How much time you dedicate every week to “Perl Weekly Challenge”?
Luca: Not so much as I would, but I have also to do a lot of other stuff during the week! Usually I end to solve the puzzles in one or two days, then I shortly blog about my solutions and commit the whole pull request. As you can imagine, you can greatly improve your solutions spending more time on it, and often new ways to solve the same problems arise in my mind just a couple of minutes after I’ve submitted my solutions, but the point, at least in my opinion, is not in providing the best solution, rather in thinking about a few elegant solutions.
I have to say that I only pushes Raku solutions: since I can use Perl, even if as a marginal language, in production I don’t care at giving a try in such a language and I prefer to spend my available time in learning Raku.
Mohammad: Do you checkout others solutions and who is your favourite?
Luca: I tend to have a look at past solutions committed by others, that often result in much more better and short code. You see: the point again is not in trying to be the best, rather to learn from the best! I don’t have a fixed lists of favourite authors, even if I have to say Arne Sommer and Ryan J Thompson often do a very good job at codying and explaining their solutions. However, I peek ideas from pretty much everyone that submits solutions.
Mohammad: What do you suggest someone just started the weekly challenge?
Luca: Take this experience not as a competition, rather a way to learn and improve. Beside this, I think the challenge is very well organized and simple enough to join, so do join! The only thing you risk is to learn something new! And again, this can also serve as a portfolio for you, so don’t be afraid if your solutions are not good on the first try: they will become good if you keep learning and people will see your progresses too.
Mohammad: Anything else you would to like share with us?
Luca: I love the Perl culture and community, even if sometime the languages are too smart compared to my brain. I tend to stay up to date reading blog posts, articles and books, not only related to Perl languages. I listen also to a lot of talks about conferences and user groups, because they provide me a lot of hints about future directions and the next subject to study.
There are a lot of other things, but I don’t think they can be written here, so in the case you are curious allow me to redirect to my blog and website: https://fluca1978.github.io.
That brings the end of the conversation with Luca Ferrari. Please do let us know your view. We will come back next month with another champion.