Member matthew99a from China is a young target at Topcoder. I took some time to ask him about his programming history so far.
gorbunov: How old were you when you wrote your first computer program? What was this program about?
matthew99a: When I was in 4th grade (I don’t remember exactly how old i was, maybe 10?), I copied a program about calculating the area of a circle. I was so noob that I even copied the comments.
gorbunov: When did you start to participate in programming competitions? Do you remember your very first competition?
matthew99a: When I was in 5th grade I participated in a programming contest for primary school students and got 4th (I don’t remember exactly but I think it was 4). In that contest I was using pascal language and I wrote a smartass solution that reads integers by using strings, which failed because strings in pascal are only 256-byte long.
gorbunov: Who was your first teacher in Informatics?
matthew99a: Zhou and Liu in Children’s Palace(青少年宫) were my first two teachers.
gorbunov: Do you currently study at a school or university? If so, what is the name of it?
matthew99a: I am a highschool student in Yali High School.
gorbunov: Do you have trainings in competitive programming organized by your school, or you are on your own? Do you have a coach?
matthew99a: Although I have a coach, Mr. Zhu, I am de facto on my own. Zhu doesn’t teach me any skills but instead helps me on something else like cheering me up before contests.
gorbunov: How much time do you spend on sharpening your competitive programming skills?
matthew99a: For most of my career, I spent nearly whole days on programming.
gorbunov: What is your favorite kind of task at programming competitions? What is the order of the amount of tasks you have programmed and passed systems test?
matthew99a: I like tasks that require keen insights, such as IOI2016, day 1, task 2. I like many Topcoder Hard problems. But in competitions, my favorite ones are often difficult, so instead I just solve tasks by difficulty order. Working on a tough task when you have already solved others is much less stressful than doing it in the beginning.
gorbunov: What do you do in case you get tired of solving programming tasks?
matthew99a: I am interested in studying languages, I mean like English, French, Spanish. Also, I go running every night. Of course I also enjoy videos games. When I am in school I like to spend time talking to or playing with my schoolmates.
gorbunov: What programming languages do you like the most and what you do not like at all?
matthew99a: I always code in C++ or C++11. So if you ask me which language I like to use the most, I’ll definitely say C++. More precisely, I prefer C++11 with O2 optimization. I can endure without C++11, but if O2 optimization isn’t on, I am kind of pissed off because STLs like vectors and sets are much slower.
C is the mother of all C-family languages. So if you ask me which language I think is the most valuable, I would say it’s C.
gorbunov: How long does it take for you to solve a task on paper, and how long do you write the code (what is the proportion)?
matthew99a: For easier problems, I don’t even spend any time on paper. For harder problems it may take me a few days.
However I think I am more of a paper expert instead of a coding one. I suck at coding badly. I spend a lot of time getting my code successfully compiled, and another large amount of time to pass all the samples. Oftentimes I fail on system tests. However, I have legerdemain at writing the code alone and arranging some kinds of code. Although many times I write faster in the expense of debugging longer.
gorbunov: Have you tried yourself as a problem writer?
matthew99a: Yes I do. I write many problems for the Universal Online Judge, which is a renowned Online Judge system in China of which I am an admin. I am sometimes very proud of problems I wrote. I would be glad if you need me to write a problem for Topcoder.
gorbunov: What do you like to do besides programming? Do you like to study?
matthew99a: I am interested in studying languages, I mean like English, French, Spanish. Although besides Chinese and English I am noob in other languages. I dream of one day I can be fluent in another language other than Chinese and English.
gorbunov: Speaking about future plans, how could you characterize working place of your dream? Would you like to become a coach in competitive programming?
matthew99a: I don’t have a clear idea yet. Maybe I’ll try to be a professor, if i have the chance. Maybe I’ll try to get an offer from famous companies like Google, Facebook. I never thought about being a coach.
gorbunov: What is the story behind your handle/nickname?
matthew99a: Matthew is my English name, which sounds similar to my Chinese name. 99 is short for 1999, the year I was born. If matthew99 is taken or for some reason not available, I’ll try to add an ‘a’ at the back of it.
gorbunov: Could you give some advice to novices in competitive programming?
matthew99a: Your level of skills don’t depend on how many tasks you’ve solved, instead how you’ve solved them. When you are solving a task, try to think alone first. If you really don’t have an idea, read the solution step by step. Try to solve as much a part of it alone as possible. And in retrospect, think on why you didn’t find the steps you missed.
Don’t try to copy others. Everybody has his/her own way of solving tasks.
gorbunov: Are there any rituals you do before taking part in the contests, or you are not superstitious?
gorbunov: What is your creative credo?
matthew99a: Think twice, code once.
Anatolijs Gorbunovs, gorbunov, is a software programmer from Latvia. During his school years, he was an amateur athlete with several Latvian Youth/Junior champion titles in long distance running. He graduated from University of Latvia and his hobbies include music, running, and programming competitions.
The post An Interview with Topcoder member matthew99a, Xiao Mao, from China appeared first on Topcoder.