In 1999, Smash Mouth was topping the charts. Me? I was a 13-year old script kiddie. If you’ve never heard the term script kiddie before, here’s the formal definition:

“A person who uses existing computer scripts or code to hack into computers, lacking the expertise to write their own.”

I, like many current developers, got into programming in the golden age of script kiddies. This is when becoming a power user of AOL Instant Messenger involved running some codes written by other developers.

I have no shame in announcing that my online alias, DropKickKenny, was an AOL Instant Messenger God. Using basic HTML, I was able to put images in my profile. Using other basic HTML, I was able to make text scroll across the screen in what was known as a marquee element. Using even more basic HTML, I was able to make text blink.

Whenever I used one of these advanced, undocumented features of AOL Instant Messenger, my friends would say something like:

“Woah, that’s really cool. How can I do that too?”

And it felt really cool.

I was the only one in my circle who had the ability to add images to my AOL Instant Messenger Profile.

I felt like I was on to something, so I began to take the next step in my coding journey, which involved crafting the perfect Angelfire website. At the time, Angelfire and GeoCities were the go-to hosting solutions for personal websites.

It was difficult to position elements on the page. But I eventually learned how to use HTML tables to position elements in the way that I wanted. But I wanted to push the boundaries even more, so I tried to learn the more complicated aspects of HTML. I scoured the net for the coolest animated gifs, “under-construction signs”, and everything else that you would expect from the website built by a 13 year-old kid.

My friends complimented my website. They loved my page that talked about why “Chumba Wumba is the Best Band Ever.” And my dungeon master liked that my Dungeons and Dragon’s character’s info was on the site too.

And it felt really cool.

But my website had ads. And I felt that the ads that were being displayed on my Angelfire website were taking away from its legitimacy. I was a 13 year-old kid without a credit card or a bank account, so paying for a premium hosting wasn’t an option. I had to get creative.

After doing some research, I found there were companies that would allow me to get my hosting for free without ads. The site itself was called envy.nu (sadly they seem to have taken the amazing service down). I migrated my site to envy.nu and updated my AIM profile for people who clicked the link.

I learned a bit about web hosting. And when my friends asked me:

“Why don’t you use Angelfire, like me?”

I had a solid response:

“It’s important for me that my site doesn’t have any ads on it.”

And it felt really cool.

I lacked any sense of programming knowledge, but I jumped right into the fray and installed Visual Basic 6. I decided right then and there that I was going to write a computer program. I had no idea how variables worked. But I worked around it by dragging label elements outside the visible screen to store information that could change over time. If you tried to write programs in VB6 without knowing how to program, you probably did the same thing.

I showed my Dad my program. He thought my program was “neat.”

And it felt really cool.

Programming and computers were a fun way for me to goof off. And I had a feeling of accomplishment when I figured stuff out.

A few years later, I stole a book from my Dad’s office on Borland’s Turbo C. Not only did this book get into the conceptual thinking behind programming, it also included a bonus CD-ROM with the Borland Turbo C compiler. At the time, this was pretty cool.

During this time, I was working a part-time job bagging groceries at a supermarket after school. Sometimes, during lunch breaks, other employees would play a gambling card game called 2 Card Guts, which is essentially a version of poker. Knowing that this was a very simple game in theory, I cautiously played in the first few games.

I soon realized that my new coding superpowers allowed me to simulate the hands in a game of Guts. Over the weekend, I wrote a pretty awesome program in C. It generated a table that gave the percentage chance of each hand to be the best hand in the game, given X number of opponents. It accomplished this by running hundreds of thousands of simulations.

I quickly realized that everyone in my supermarket card game was playing in a suboptimal way.

They were taking a far too conservative approach. In fact, they were playing in an egregiously conservative way, if my table was correct. I decided to put my analysis to use and test it out during our next card game.

To provide full context, Guts poker is a high risk / high reward game. In games where the ante is $1 (like the game that I played), the winning hand could net $50. But if you lost, you might have to pay $50 to the pot.

Let’s remember, I was just a kid making 7 bucks-an-hour bagging groceries. $50 was a lot of money at this time.

So I memorized as much as possible about the tables from my computer program, particularly around the hands where there was a 50% chance of winning.

The next time we played Guts on our lunch break, I started playing the game in an optimal way. I prepared myself to be ok with a net loss of $100. At that price point, I could consider my effort a worthy experiment, but one not worth continuing.

Well, my bet paid off. That day, I made $350. I only lost one big hand (costing me about 70 bucks) but had far more wins. I gained the reputation of being a reckless and lucky player. Only I knew that I wasn’t being reckless or lucky…just calculated. Soon enough, my coworkers stopped playing Guts with me.

And it felt really cool.

As a 13-17 kid hacker, it was really easy to celebrate the small wins. Every small victory made me feel incredibly accomplished.

Blinking text in my AIM profile? Super cool. A cool personal website without ads that impressed my dungeon master? Also super cool. Programming was fun. I wasn’t setting out to be the best in the world. I just wanted to use technology to get a small edge over people who didn’t spend the time or energy to do it themselves.

Fast-forward a decade and a half, and I now have more context on technology and life in general. I’ve continued to program, work through more and more challenges, and build a ton of features and applications.

I would never have arrived at where I’m at if I hadn’t started tinkering around with my AIM profile in the first place and celebrated the small wins. I’ve realized that learning to program is a long journey and one that is different for everyone. But if you start, continue to tinker and test things out, and appreciate the moments in which things work, you’ll find it a lot easier to keep pushing forward.

You might even become a programming all-star.

And Then The Morning Comes, and you’ll look back at everything you’ve done and realize all the progress you’ve made along the way. If you keep on pushing forward, soon enough you can become unstoppable at programming.

The problem that most people run into is this:

When you’re learning to code, it can sometimes feel like an endless marathon of thinking:

“I need to learn this stuff.”

Then you learn the stuff, and you realize that there’s more stuff to learn. This cycle can feel quite daunting.

Never forget to celebrate the small wins.

When you ship a new feature or write a complex algorithm, take a moment and give yourself a chance to feel good about what you’ve accomplished.

Often, appreciating the amazing things that you’re doing in the present is the best way to fuel your growth for the future.

Ready to start coding? We’re giving away the first 2 weeks our online software engineering program for free. Sign up here: free intro course.