I remember going through a Developers forum and reading about a young new developer who claims that he learned Java Script by reading a popular Java Script book. He also said that after 30 days, he totally understood how to program Java Script.

Of course, there were lot’s of comments from many developers debunking his statement, because they themselves understood the hours of trial and error coding it took to become fairly proficient in writing Java Script.

But then again maybe this young man had an extremely bright mind and good grasp the concept of this language by reading a book.
But for me, I am a hands on learner. I need to get my hands dirty and manually do the coding in an editor. And because of mistakes, sometimes I must redo a portion of the script over and over again.
Basically, it is constant repetition, over and over till you get it right.

This is the same principle I used way back when I was into rock bands and learned to play guitar by practicing daily, for months.
Later, I got involved with jazz and some classical styles, in which I had to learn to finger pick with all my fingers and thumb. Once again I spent countless hours practicing and practicing until I could roll my fingers smoothly without even thinking about it. This constant routine built my finger, hand coordination, and to some extent my muscle memory.

I carried on this concept into my web development endeavors.
In learning the basics of HTML and CSS, I spent hours reverse engineering a static template (HTML and CSS) back around the year 2000. Through trial and error, I’d move the sidebar from the right to the left, added layout blocks with Divs instead of tables, changed the top horizontal menu to a vertical menu, and on and on. It came to point where I could envision the CSS change in my mind before I coded it in the editor. See my post on reverse engineering.

In learning Java Script, I had to start from the very basics.
I watched videos on arrays, but I had to actually hand code various types of arrays to grasp the concept. I then moved on to
functions, then objects, Loops, and so forth. I spent time in each area until I could code different variations of each part of the language.

I used the old laborious method of coding in the editor than viewing the results in the browser, refreshing the browser after each edit.
Today, students have tools like:

  • Repl.it – Powerful and simple online compiler, IDE, interpreter, and REPL. Code, compile and run code in 30+ programming languages. including JavaScript, Python, …
  • Plunker – Fully-featured, customizable syntax editor, and Live previewing of code changes.

to practice their coding.

In this high-tech world today, people want results now, they want the fastest way to get to their goal. From my experience, whether it’s playing the guitar or troubleshooting an error in a huge code base, I noticed that the most effortless and efficient individual was the one who had many “repetitions” in their particular field of expertise.

Books, videos, tutorials, lectures, can show you the very basics. But it’s the little things, the tricks, the tips, the hacks that make things work.

You can’t practice experience, only by troubleshooting or encountering difficulties can you gain this experience through time.
When I was playing bass some time ago, it was common for the leader to start singing in a different key than what the music sheet displayed. So all the musicians had to quickly change the key on the spot and continue as though everything was planned. Little did the audience now we were all stressing out, but knowing the fingerboard, I just adjusted the position of my hand into the new key.

In troubleshooting web issues, I once came across a very talented and sharp developer who had just begun his first job as overseeing the school’s website. In trying to setup a table using CSS, he spent hours trying to get the table to render correctly. Since I had helped him in past in setting up the website, he called me to see if I could help. I thought about his problem, and asked him to try using:

 table {
    table-layout: fixed;

Instead of the default code:

 table {
    table-layout: auto;

I didn’t know if this would fix his problem, but it seemed like something similar I had experienced in the past. In looking over my notes, I remember finding this fix on the internet. To our amazement, this solution worked.

Experience has nothing to do with age, if a developer started learning code at 16, he or she would really have gained lots of work knowledge by the time they were 25. Now compare this to someone who decided to learn to code at age 30. In this case, the younger developer would have much more experience, because the younger person had the Repetitions.

Keep Coding
Gerald Watanabe

Share This