I’m a “self-taught” programmer. Walked into a store in SS3 and picked up the only programming language tutorials I could find—C++ videos. The next day I went back and bought Microsoft Visual Studio 2008. That was in 2013, and I’ve been coding C++ (off and on, admittedly) ever since.
Over the years I’ve grown familiar with the language, as well as general programming concepts, and I’ve picked up bits and pieces of other languages along the way, both formally and informally. C++ has remained my first love, though.
Unfortunately, due to certain factors (which I won’t bore you with), my progress in programming has been much slower than it should be. I’ve known of a lot of programming competitions —IEEEXtreme, IEEE madC, Imagine Cup and others —but I’ve painfully had to let them pass me by. Why? Because I know my skills are still severely limited. (Not totally my fault, though, as a self-taught programmer with zero funding and zero support.)
And then Google Hash Code came along. It looked inviting and within my reach, and so I mentally signed up. I had plans to begin practicing, but I haven’t been able to, unfortunately, mostly because of school work.
Now, it’s just about two weeks to go. Many of my classmates who showed excitement initially have backed out due to schoolwork and exams, like I predicted. But I refused to quit. Until now.
Yes, I’ve quit Hash Code, a few days to the event. Why? It’s not because of schoolwork. I’ve seen the past questions and their solutions, and I’ve evaluated my problem-solving skill in the light of these, and I know I’m below par. But that’s not all.
I’ve also seen that I can become better, much better. And I’ve decided to do that, without the pressure of Hash Code to make me mess it up. I’m still working on strategies to achieve this, but one thing I’ll be doing is taking a “self-taught” CS101 course (Introduction to Computer Science). It will cover data structures, control structures, algorithms, and all those cool, advanced CS stuff. I’ll source materials from various sites, including Udacity, MIT OpenCourseWare, and Coursera. I don’t know how long it’ll last. I’m not sure yet when I’ll begin; maybe sometime next week or after exams. I’ll be posting my progress and insights here. Feel free to join in. I’ll post more details about it later.
I’ll also get into the practice of teaching others. It’s a great way of improving your skill.
Seriously, I have this vision of the night of the event dawning and me just staring at my computer, not having the foggiest idea about how to begin solving. It’s a very real possibility. And I’d rather wait a year and compete when I have a real chance of winning than wasting useful time now.
I’ve said it once and I’ll say it again: Hash Code is about problem-solving, not coding. Go for it if you can.
And, yes, I did say “a real chance of winning”. Because I believe that if I can do this properly, I can compete in next year’s Hash Code. And win.