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.