“Frequently” Asked Questions
I’m not actually internet-famous enough to get many questions, so “frequently” only means something like “at least twice”. My ask.fm is also always open. Probably.
Anyway, yay content!
- What does “betaveros” mean?
Not much. I made it up in fourth grade. Clearly, there's a Greek letter that corresponds to my initial; less clearly, I think there was supposed to be a hint of ancient Greek mathematician names in the suffix, along the lines of Pythagoras. I no longer have any idea where the rest of the letters came from.
- How did you prepare for math competitions?
Mostly I just did problems, sometimes rouletting the AoPS fora by randomly indexing into whichever forum I wanted to work in via URL hack (this was before the new AoPS, though, so I don't know if this is still easy or possible), more often picking random contests. Occasionally I read a book on geometric transformations because I sucked at geometry.
- Why did you stop participating in the [IMO after 2012 | IOI after 2014] even though you were still eligible?
The short answer for both is that I wanted to learn and try too many things other than olympiads, and I thought this learning and experimentation was more important than getting more medals from the same competition. The long answer is in a 5,000-word blog post draft that has existed since 2013 but is still not done, so, stay tuned? Or if you really want to read it, poke me to motivate me to post it sooner.
- How do I get better at math competitions? etc.
This is a different question I actually have little expertise in; I'm a fickle participant in the math contest scene and know little about how anybody other than myself trained. I one-hundred-percent defer to Evan's FAQ list on it.
- How do I start learning how to program? What programming language should I use?
I usually recommend people start with Python, which I think is both a friendly beginner's language and a good language overall — you can go very far with it. I also weakly send people to Codecademy, which (last time I checked) includes a Python tutorial; I can't vouch for how Codecademy is pedadogically designed as much, but I think immediate feedback of some sort is helpful, and hey, it does Python.
However, if you are learning how to program for programming competitions, you effectively have only one choice, C++. I'm not too sure what resources I would recommend for learning C++ for this purpose yet.
A counterpoint: Some folks argue that you should start with a more low-level language like C so that you understand deeply how computers work, before moving on to more high-level languages like Python. (A low-level language places fewer abstractions between your code and the computer. If you program in a lower-level language, you will usually need to spend more effort expressing what you want code to do, but your code will translate more directly into machine code, and will tend to run faster, use less memory, and so on.) I think Evan Miller's “You Can't Dig Upwards” makes this case well. I agree that, if you want to understand computers and the performance or memory usage of your programs deeply, it's important to learn C eventually. Having said that, I still suggest you learn Python first unless (1) you're sure you'll want to study programming over the long term and (2) you're okay with needing to spend more time/effort before you can make something that works.
- How do you practice for programming competitions? / Where can I practice competitive programming?
When I was practicing by myself, I spent most of my time on Codeforces, because (1) it has a pretty nice UI, (2) it accepts a wide range of languages, and (3) it usually both has written solutions (“editorials”) and lets you look at others' code solutions if you get stuck on a problem. Other online judges abound; I have some good memories of Sphere Online Judge. I think Google Code Jam problems are also pretty cool.
- How do I start learning how to do programming competitions?
If you're starting completely from scratch, I think the USACO Training Program might be a good place to start. It forces you to do everything sequentially, though, so it might be too slow if you have a little background already. If you're not, I think you can just look at problems from the places listed in the previous question. There are usually ways to quickly gauge the difficulty of problems (number of solves, position in round, etc.) or sort all problems by difficulty. Google Code Jam in particular lists some easy problems among their Past Problems, and (as of time of writing, 2016-04-10) seems to be developing a Tutorials section.
- Can you solve [math/CS problem] for me?
Probably not. It has to be some combination of interesting (so I feel like solving it), easy to solve (so I can solve it before getting distracted), and easy to explain (so I can type up an explanation for you before getting distracted). Still, I don't mind getting requests. I get a lot of spam already.
- How do I get into MIT?
Seriously, though, I'm pretty powerless to answer this question — just because I got in doesn't mean I know what things I did helped me get in and what things didn't, or how much of those things were necessary. You'd be better off listening to somebody who actually works for admissions. I really like the essay by Chris Peterson that tells you to apply sideways.
- What's up with your left eye?
My original left eye was removed when I was 1½ years old because a tumor, more specifically retinoblastoma, was growing on it. I cannot see through the thing currently there; it is purely aesthetic, so I can pass for a normal person. Surprisingly, I don't miss it much and often forget that I have half the vision of a normal person. (In practice I still have ≈75% of a normal field of vision, just with worse things like depth perception.)