Data Structures and Algorithms? What?

Okay, so for the last couple of weeks, I've been attempting to prep myself for interviews by reading through as many tutorials as I can and viewing videos.

How I Got Into Programming

I started programming when I was in the 7th grade.  I was a youngster who didn't like the neighborhood because there was too much trouble.  I started staying inside to avoid it.  I was sent to school across town to a better school district with well-groomed kids and they exposed me to hobbies I had never heard of from the kids in my neighborhood.

You can imagine the culture shock.

It was like that for about 3.5 years.  In that time, I was introduced to a trading card game, and being the curious lad I was, I made sure I researched each card I was lucky enough to obtain (my family didn't have much money, so I saved every penny of my lunch money to get what I wanted; that ended up being a few dollars by the end of the school week).  Eventually, the research led me to Pojo.com, a site in which an IRC applet was embedded.  In chat rooms, I'd see "[scripting]" next to users' nicknames and I questioned it a few times before someone finally told me what it meant.  At the time, it meant that the person was using the mIRC chat client and was busy coding tiny mIRC scripts that could enhance their chatting experience.  Of course, I found the idea of modifying my text and macroing painfully tantalizing and I had to get my hands on the skill.

Summer came.  I had become a scripting machine after coding small mods and customizing my own client.  I eventually developed my own version of Snake using another Snake script I had downloaded.  It was terribly written, but it worked for the most part.  That summer, I had also scripted what I called "Mortal Kombat: Deadly Alliance Script," based on the hit Gamecube, PS2 and Xbox game (new at the time).  I crafted it slowly, keeping my Gamecube on, back and forth from the computer den to my room, pausing and copying moves and stats for each character, coding it into my script.   The script was just about complete in mid-August.  I had players testing it -- friends I had made to replace the kids in the neighborhood.

Sadly, that was when Blackout '03 happened.  I'll never forget that hot afternoon.

I was playing Runescape when the power outage hit us.  My computer shut down.  I didn't know what was going on and I was more angry that it shut down while I was in the middle of conversing in the colorful 2-D town that was Lumbridge at the time.

Fast-forward to the return of our power.  Being the prolific young programmer I was, I couldn't contain my excitement.  I ran to my computer, pushed the deteriorating, once-off-white, yellow power button, and waiting for that savior of a Windows 98SE welcome screen to show up.  The anticipation of the Windows start-up sound alone had me in a state of euphoria that hasn't been matched to this day.  Man, writing that last sentence took me back, even.

To my disappointment, I was welcomed with nothing but a vacuum-like DOS screen with a list of missing files.

I couldn't help but cry after fiendishly restarting the godforsaken system at least 10 times in hopes that I'd hit the system recovery jackpot.

No luck.  Sadly, I was at a point in my life where fixing my PC--despite how advance my familiarity with the technology was with respect to that of my parents'--meant using the Windows reinstallation disk to run a clean install.   It was also a point where I didn't save anything to disks.

Where My Head Is

I'm trying to get through this data structures book.  I have to say that it's tough.  Turns out that college doesn't teach you anything but how to take exams and get by time constraints.   Luckily, software dev was a hobby of mine before entering, right?  I guess.  I mean, it did make doing homework much easier for me than it was 99% of my peers.  The problem with that is that I found myself bored and didn't really care for code because it had become something that was tied to school.  I hate school.  It's the worst thing that's ever happened to me.

Anyway, I'm scrambling, trying to get some projects up on GitHub to show people I can code and stuff like that, and I figured something out about my background in my intensifying pursuit: I don't have structured ideas of many concepts I've gone over as a hobbyist.  I never learned to think in a pragmatic fashion.  Naturally, this is a big problem considering I'm supposed to know how to point out stuff like when to use a heap sort over a bubble sort, why one over the other, when to use a red-black tree structure to represent data, etc...  It's like I'm back to the drawing board.  So while my friends think I'm some guru because I can improvise as I help them with their classes, I'm truly incompetent.  It's like I never started programming as a kid.  It's like I started programming a few weeks ago.

It's disheartening.  No one will believe that I need help.  Doesn't matter though!  Excuse the emo tone there.  I'm still going to battle through these textbooks over the next few weeks.  I even purchased index cards and a notebook just for my preparation.  I'm going to make something really cool at the end of all of this and I know I'll make an impact somewhere.  I just need the chance.

I was never one to feel sorry for myself and I was always my toughest teacher.  This is and will be no different.  I can't fail if I keep doing.  What has always set me apart from my peers is that I never put more confidence in dreaming than I do practicality.  That's not to say that I never dreamt big -- I'm the same guy who was serious about being the first man to go to Jupiter, taping dozens of universe-related notes on my room wall, glancing at them each change I got.  But I always kept in mind that there has to be some point where I need to test my assumptions and staying away from the urge to dwell on an idea for too long.  I can honestly say that the only problem with my mentality has been that I have a tendency to start something, fall short, feel afraid of failing, then aborting my stride.  I've gone Full Metal Jacket on that side of me in the last year though.

But "we'll see what happens," as I always say.

 

By the way: I've purchased GregThompsonJr.com!

Greg

Software Engineer

Subscribe to GregBlogs