Back to those moments when my brother and I battled for one joystick to play Super Mario and struggling in each stage, shooting ducks, dragons and rescuing the princess, my princess. It was a massive game at that moment, a humble plumber with a few mushrooms up his sleeve, single-handedly ruled the world full of colorful characters and hidden secrets. This shaped the very essence of my childhood, and stunted my social growth for a good five or ten years. Yes, now I’ve finally discovered a life outside of video games and related paraphernalia. I am sure, though, that Super Mario Bros., and yes, Duck Hunt, led many people on the road to irreversible social damage, and many of those people will die insignificant bums while sitting at their couch. Others of us will remember these great classics while sitting in a desk at a large corporation, whether as middle management or a CEO. I hate telling the story of how I learned to program.
I started programming for the same reason as many others, compulsory QBasic course in textbook. However, this led me to think of some game making ideas on my computer. My father set me up with QBasic and of course, some of my neighbor’s recommendations like VitualCop and DeltaForce. I started by copying a relatively short program out that described a Snake game. It was around 30 lines of code, but it had more going on than I could easily understand. IF statements seemed natural enough, but the FOR loop syntax was tricky to copy correctly. I was able to get it working, however, and found that I understood enough to try my own ideas. As I was learning QBasic, something made me to use computer more and more. Well, saying honestly, it was QBasic in front of my dad and Delta Force the other time. Moreover talking about the experience with QBasic, it taught me that for any given program of sufficient complexity, you only need to understand the concept and the creation will be your construction. As you see, that made me an achiever in class and a better programmer. I would have called myself a better programmer that moment but that sounded something more like dancing to Justin Bieber’s song alone in a room. 

You’ve heard it before: the smart kid who learned to program before they could walk properly and goes to make a site that makes them a dotcom millionaire. These geeks-who-discover-the-world stories of tech millionaire goes round and robin in our culture. But poor me, I got nothing to be inspired from them. On the surface, my story sounded quite different from those geeky-cheeky millionaires. Study science, maths and cross the iron gate with distinction. Every time that buzzed all over my room when I was trying to Photoshop and learning some hacking techniques through the world’s fastest tortoise-based DialUp connection provided by our only ISP. 
Soon as I graduated high school, I realized that everything I learned about programming in the five years after sixth grade could be learned by anyone with a dozen or so free weekends. When I hear someone casually brag that they have been coding since grade school, my eyebrows give a skeptical furrow instead of an impressed raise. The most valuable thing that I learned as a kid in programming was some creative thinking on some basic coding knowledge. It’s true to understand early that programming is very complex for kids. Unfortunately, many adults also have managed to convince themselves that programming is too difficult for adults who didn’t start learning as toddlers. Social media made a big impact on every student’s life in our college. The rise of web development also encouraged me to learn more. The best part of social media was the triumph of seeing the machine do something useful, even making the boring stuffs more fun. 
Before joining Computer Engineering course, my light bulb moment was staring at the room full of geeky programmers and imagining that there would be people who would pay me to do this programming thing- something that I really dreamed of. But there was a confusion, which begged the age old “chicken and egg” question: how does one get experience if one needs experience to get a job? Well, the answer to myself was yes, you don’t need experience to become a good programmer, you just need to get experience as you learn. 
Those expectations you have about being a programmer: Web development, hacking like you see in movies/TV where an IT girl hacks the system just by doing some ping command from her tab, Enter, BOOM!!, and the reality of your course which was boring, like chewing the same chewing-gum throughout the day. Taking C and C++ classes were painful at the mid seasons, wasn’t an impossible but cryptic skills to acquire. My experience with these programming languages over the last year or so has been invaluable. The power of HTML5/CSS3 tied me with a familiar bond because I was already in love with Web design. Simply, it was not enough to be a good programmer. Nobody is saying we don’t need styles. We still need to style things, but what bores me is that everything is global and open-source nowadays — even small rookie kids can tweak better than me using available bootstrapping tools. 
There are so many programming languages – from Python, Java, Ruby, PHP to every letter of the alphabet. So, which to choose and which one is relevant for me? I spent, basically, every waking moment learning to program, learning about Linux, and learning about computer science. I taught myself Python, I taught myself Django, I learned some functional and imperative programming, and became semi-decent at the Linux command line. It gave me some hope for being a good programmer but I was still undecided. There was the question: was X the one that made me a good programmer? I see my friends involved in many projects, working in different fields. Sometimes, the world feels very small when I chat with my old friends who are now interning at the best companies in the US, doing some programming jobs, and here I am, stuck in the same Hello world! Application, running on multiple programming languages, thinking yeah! I’m going to learn something great in this field. It was a great experience from past years as a computer geek who learned QBasic, C, C++, HTML, tinkered with Python, Ruby and more than 10 frameworks. 

Most of my relatives tell me that I’m a good programmer, an engineer who knows how to fix their computers, hack into their neighbor’s WiFi and add 3G settings in their smart phones. I have no idea if I’ll see my skills used through the end of my career, and I have no idea what I’d actually use the skills for, or find out the X that I’d been waiting for throughout my life. But what we must understand is we really need a hobby in our life, an experience that leads you to share everything you have learned and this seems as good as anything. It’s all about how you think. School might teach you a programming language, but what’s really coming along with all that syntax and detail is discovering, exploring, and exercising your ability to take abstract concepts and procedures and translate that into methodical, logical steps for a computer to act on. And, fundamentally, the objective of your life really is not finding the appropriate X. 
 Picture: During my Graduation from Kathmandu University

In my search for the X, I have learned many programming languages but my search still hasn’t come to an end. In trying to find the X, I can say that I have become a great learner, and, hence, a better programmer. I don’t know which is more important: finding the X or the path to finding it. But on my path to find the X, I have learned many things and gained many experiences. These experiences have been invaluable to me and have made me better. I wouldn’t trade them for anything. So, who knows? Maybe I can finally finish that dungeon adventure I started when I was 10, playing Super Mario with my brother.