Growing Past the Plateaus

I’m fascinated by the process of learning. Since the end of my college days in the Eighties, I’ve taught myself a number of things, and I’ve learned a bit about the process. I’m especially intrigued by the process of plateau followed by progress, slowly climbing a ladder of comprehension as I dive deeper into a subject.

It was easy to see that process as I was learning to play the bass guitar over the last six years. When I first bought a bass, I already understood music theory. I knew how the notes I was playing (or trying to play) fit into a song’s overall harmony and I understood the function of rhythm. But that knowledge was a far cry from playing a favorite bass line without missing a beat or a note. I’ve come a long way from those first painful-sounding notes. I’m no virtuoso today, but I can hold my own. And I love it.

The process hasn’t been quick. Over the years, I’ve hit many plateaus. These are times when I would continue to practice, but not seem to improve. Frustrating. And sometimes I’d give up for a couple of days. Then, when I picked up the bass again, I discovered that I’d been able to move on. I could nail the passages that were too difficult to master only a few days earlier. Progress after the plateau. 

And it’s always the same. I’m working now to master my coding skills with Javascript. I’ve been coding as a hobby for nearly forty years, starting with BASIC when I first got a Timex-Sinclair 1000 in 1982. Since then, I’ve learned a number of languages to some degree or another, including Pascal, Visual Basic, Java, C#, and Javascript. My current focus is Javascript, and once again, I’m seeing the plateaus and the progress.

My most recent plateau involved incorporating modules into the code for my Eclipse Phase website. I had been creating a new script file for each system I wanted to incorporate. It’s a practice I’d learned with other languages, and I find it a lot easier to manage multiple, shorter script files than one enormous file. One function, creating random names from a database of hundreds of possibilities in more than twenty languages resulted in a very large script file. Including the random name function, and everything else, into one script file, just felt overwhelming. Even with bookmarks, finding the code I wanted to work on was a daunting thought. But, Javascript doesn’t necessarily work well with so many script files. 

What to do? My solution seemed to lie in using modules. In Javascript, modules are script files that can share their functions and variables with other scripts. Okay, I thought, that’s what I want. I can separate out my random names code simply share the randomName() function with the other scripts that need it. What I didn’t know was that modules impose ‘strict mode’ on the code. 

Javascript CodeIt’s important to note that learning on your own means you can’t just raise your hand to get an answer to a question. I’m relying on a few books and a lot of google-foo to get the answers I want. It’s often a pain. I can ask Google anything I want, but Google only responds with what it thinks the answer to my actual question might be. So when I modularized my code, it took me a couple of days to figure out that ‘strict mode’ didn’t like some of the ways I was doing things. And after all the work I’d done to get the site working, I felt deeply frustrated. Functions that had worked before now showed up as ‘undefined’ and buttons necessary for the site no longer worked. 

So, I had to learn another way to achieve my goals. When I couldn’t find an answer, I posted a question on Stack Overflow. Within a few hours, I had my answer. I had no idea that using onclick in HTML was considered bad form! But now, instead of onclick’s, I started using .addEventListener. Hurdle overcome,  I’m moving ahead with my project and anticipating the next challenge. Bring it on, Javascript, bring it on.

Learning Feeds the Mind

I love learning new things because learning feeds the mind.

Growing up, my brother played the trumpet and after college, he learned to play the guitar. I was always intimidated by musical instruments. I was never musically inclined, but inspired by my musician friends,  I wanted to learn. I discovered MIDI, bought a keyboard and plugged it into a computer. All I could do was plink the keys, but once it was hooked up to a software sequencer, I learned enough musical theory that I could create music. Some of my work is right here on this site.  In 2014, I started learning to play the bass guitar. Over the years, my little Hofner has been a joy.

The Glory of Rome

The Glory of Rome

In the Nineties, I became fascinated by ancient Roman history. I spent long hours reading everything I could find about the rise and fall of the Roman Republic. I learned about the history and intricate nature of that brutal society, its odd quirky traditions, its hardcore military, and the particularly vicious political system that makes modern American politics pale in comparison. That inspired me to create an online game, The Glory of Rome, which gave players an opportunity to lead a Roman noble house during the last century of the Republic.

The Glory of Rome

The Glory of Rome

I was an early adopter of the internet. I originally was an AOL subscriber, and when they started allowing users to create web pages, I was all in. Building a page back then was a clunky, ugly affair. But I learned what I needed to know to do what I wanted to do. Over the last 25 years, I’ve built quite a few sites, always learning what I didn’t know to do it passably well. I picked up bits and pieces of the developing HTML spec and the newer technologies of CSS, Javascript, and various extensions like JQuery.

Now, I’m taking that to a new level. And it’s a good thing that I like to learn. The first thing I recognized as I approached this new endeavor is that the field has exploded with new technologies and options. It’s overwhelming, and the more I dig into it, the more there is to know. I’m focusing on improving my skills with the three core technologies: HTML, CSS, and Javascript. Every day brings new opportunities to learn. And my understanding of what I’m doing with the code is growing.

 

JavaScript Code Snippet

I learn best by doing, and with that in mind, I’m building a new web app. The goal of the site is to provide inspiration to players of a science-fiction roleplaying game. The exterior challenge is to create a dynamic and interesting narrative tidbits to prompt users’ imaginations. The interior challenge is to figure out how to deliver that to the users. The HTML must be well structured, the CSS must create a modern visual ambiance that supports the theme, and the Javascript must be crisp and efficient.

I love learning new things because learning feeds the mind. I want to be a professional coder. I don’t know why lies ahead, only that I’ve got work to do to reach that goal. Bring it on.