My
friends think my mind is stuffed into a 4x4 box compiled purely of
smoothies and Japanese Sodas. While only partly true, if a room
contained such ingredients it would be a heavenly room, what most
people wouldn't guess about me from a first look is that I have an
ever growing curiosity for computers.
My
dad is a software guy, he's worked at Microsoft (7 years!), Visio,
Watchguard, Windemere Real Estate (CTO), and now he's the Chief
Technology Officer of a publishing company called RPI. When I first
became interested in programming, my father scooped up the words
dripping out of my mouth.“What's the first language I should
learn?”, I asked rather confidently, excited to start making games
(almost all kids want to program for this reason). We talked about
many different languages that would suit my craving for adventure.
“Hm.
Try C++,” he suggested, “You can get a book from the library.
Google it.”
And
so there I was, anxious to get busy. I asked my mother if she could
pick up a C++ learning guide from the library the next time she went
by while I was at school, she kindly agreed. Once I finished my
middle school homework, I grabbed the book, plopped it down in front
of our laundry room computer keyboard, and cracked it open. The first
thing I noticed about the book is that it was black and white, small
font, and the pictures were somewhat hard to see at times. The
wording was complicated, and I ended up skipping most of the
reasoning and diving straight into typing the code.
C++
is a compiled computer programming language, basically meaning that
it needs a compiler or 'packager' to make all the code do stuff. One
of the first things that the book tells you to do is to get an I.D.E.
or Integrated Development Environment that will compile/debug/run all
your sweet code for you. So that's the first thing I did. Once
Eclipse (my IDE) was installed, I went on to skimming the text and
copying the code into Eclipse. I fiddled around with the code and ran
it.
“Hello
World!”
This
program did nothing but output “Hello World” in the console
window. No flashy colors, no animation, not even a single function,
but tuna fish casseroles I was excited. I've coded my first program!
I began to dive deeper into the book until I created a text based
game purely off of 'if' statements.
First
of all, an 'if statement' is a conditional operator that essentially
executes a block of code according to if the statement that was
inputted is true. For example, if I were to create a variable named
'PatricksAge', were to set it equal to the integer '16', and then to
pass it through an if statement saying “if PatricksAge is equal to
16, do all this code,” then the code would be executed because I am
in fact 16.
With
this logic, I created a text based 'Choose Your Own Adventure' game
that consisted of screens bringing up scenarios and the player would
choose from an option A,B, or C and then according to their answer, a
certain new scenario would appear. It was extremely tedious creating
a game like this because with every new scenario came a
multiplicative of 3 new paths; I had to find a way to tie them all to
a reasonable amount of endings intelligently.
So
with this little knowledge, I became more curious about graphical
game design, for of course, the popular games have the best graphics.
In this transition between texts games and graphic revolved games, I
then sought out a new language that wouldn't be as tedious and boring
to read through, and then I found Java.
Java
is an object oriented programming language much like C++. It gave me
tools like Java Graphics to create cool game graphics with the
libraries that came with it. So with a little help from some YouTube
videos, I was creating GUI based games with JFrames (the graphical
user interface such as buttons, text fields, and radio buttons). I
also made my first little adventure game, although much like my
previous projects, it was never finished. I was beginning to become
more and more interested with Java games and the possibilities.
I
don't remember specific dates or even reasons why I started
programming Android apps for mobile, it became sort of a desire after
seeing how popular mobile devices such as the iPhone and Android OS
based phones were popping into the hands of my peers. My dad (the
tech guy) also influenced me on transitioning more to mobile and web,
so thus I began.
Android
was and is great for me because it didn't require me to learn a whole
new language to start developing, the whole operating system is
written in Java! Again, my first pursuit was a series of YouTube
videos that taught me the basics of Android App Development. The guy
who made the series is brilliant (youtube.com/MyBringBack), he even
taught how to look up things on the API so if you needed reference
you could easily find something! I learned the basics, how to create
simple games, how to interact with data bases and I even started
teaching myself how to problem solve with app ideas, such as the app
I made called Cab Grabber.
Cab
Grabber is an Android application designed to catch the eye of a taxi
driver when the city is bustling with activity. The objective for the
pedestrian who downloads and installs the app to their device is to
press the 'Grab That Cab!' button and hold up their phone to alert a
cab quickly. The phone plays a obnoxious animation that strobes black
and yellow with an exponential rate until it pauses and then repeats.
The goal of the animation was to create an inconsistency with all of
the blinking lights of traffic, remedial stop signs and lights, and
to catch the attention of a taxi who's on the lookout. I've received
reviews saying that the application works wonderfully and has saved
the hassle of waving down a cab.
Mobile
application development is extremely fun and has many real life
applications. Because most people have a phone now days, why not
create an app that will solve an annoying issue and speed up your
productivity? That's my goal behind most of my apps now, and I'm
looking forward to the new real problem solving ideas that I can jump
upon.
Computer
programming, web development, and application development for mobile
environments are incredibly creative endeavors that will test the
mind, force learning curves, and break the bleakness of remedial
tasks. There's always a new problem, there's always a new way of
fixing it, and that's what I'm interested in finding.
No comments:
Post a Comment