Welcome to the monthly series Meet The Champion
.
Last month we spoke to Walt Mankowski, the winner of July 2020.
Today we are talking to Cheok-Yin Fung, the winner of August 2020 of The Weekly Challenge
. I hope you are going to enjoy the interview.
Mohammad: Tell us about your technical background?
Cheok-Yin: I formally learnt programming when I was in high school Form 4 (equiv Grade 10). At that time I learnt Pascal. The year after our first public exam [1], I did a bit competitive programming but stopped it for concentrating on Physics competitions. During university, I did no programming. Only until the recent years, I picked up a bit C++. Self-taught is not easy; learning alone is dull and easy to lose focus, in addition.
After joining The Weekly Challenge, learning Perl has been one of my main focus every week.
[1] In my years, there were two public exams for high school students (“HKCEE” and “HKAL”) in Hong Kong. Now the system has changed and reduces to just one public exam (“HKDSE”).
Mohammad: How/When did you start using Perl?
Cheok-Yin: I heard of Perl, Python and Ruby at the same time, around 2002~2003. Python had not yet dominated the public attention. However, at that time, LOGO was my only computer programming language. Ooooops… I borrowed Learning Perl
from the public library but, as I can recall, I did not do much except Hello World
. I didn’t know how to set up the program path in Microsoft Windows. I had no one to ask. Fast forward (over 10 years). I knew I need a scripting language when I was doing an introductory online course on algorithms through C++ – for handy generation of test cases or pipeline operations. Fast forward. Actually I start to grasp and heavily used Perl after joining The Weekly Challenge
.
Mohammad: How did you come to know about The Weekly Challenge
?
Cheok-Yin: Oh… Forgotten.
Mohammad: What do you like the most about The Weekly Challenge
?
Cheok-Yin: Errrrr… Facing questions asking for “the xxx-est”, I often give an ambiguous answer.
Now I come to like tackling all the tasks. Maybe programmers are like Pianists or Athletes; intensive and regular practice is a must. The styles of practice ranged from simple movements to specific preparation of a public performance. Two tasks per week are light-weighted. (Though I stucked easily, always want to take time to learn the official debugger, or, read the Perl Best Practices
and books akin in order to improve my efficiency.) If both tasks are easy for a participant, s/he can run an extra mile by investigating variations, writing a detailed blog, exploring algorithm analysis or writing it in languages apart from Perl/Raku. If one of the tasks is heavy, or say, difficult, that is the real challenge and real fun.
I also like reading the reviews of Perl solutions.
Team members are friendly.
Mohammad: How much time you dedicate every week to The Weekly Challenge
?
Cheok-Yin: This question has made me realise what The Weekly Challenge
means to me.
I treat it as a Learning Course
. I have squeezed my spare time as much as possible for coding the tasks and recording what I have learnt.
Mohammad: Do you checkout others solutions and who is your favourite?
Cheok-Yin: Of course yes. For ease and better understanding, I tend to read the blogs first. Laurent Rosenfeld, Roger Bell_West and E. Choroba are my favourites. It seems that Ryan Thompson is busy but I liked his previous blog posts as well.
Mohammad: What do you suggest someone just started The Weekly Challenge
?
Cheok-Yin: If you are a beginner and just start to learn Perl, be brave to submit a workable code on time! (…Will I get complains from the reviewers…?) By regular practice, you will learn more skills or optimization techniques, be able to avoid some syntax errors, and be familiar with some common modules (e.g. List::Util
, List::MoreUtils
, Data::Dumper
etc.). When you look back after a few months, you will see your growth
.
The Weekly Challenge sparks my interest in serious study on Perl and perish my coding skills in general (from naming conventions to algorithmic concerns).
Mohammad: Anything else you would to like share with us?
Cheok-Yin: I wish there were some CPAN modules on contract bridge, but my Perl skill is not at the level of coding up a CPAN module yet. Some programmers have written modules for Poker. XDDD
I also concern what Perl7 will bring to the community of programmers (not only Perl programmers or Raku programmers!).
Learning
has been mentioned many times above. There are more than one ways to learn a programming language. Competitive programming is a way but it can be too stressful. Reading books is a way but it can be too lonely. Having the weekly challenges gets the balance.
That brings the end of the conversation with Cheok-Yin Fung. Please do let us know your view. We will come back next month with another champion.