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.