How I Learned to Code

If you are interested in transitioning into the web development field then you have probably read a few blogs about how to become a developer overnight. Let me tell you something; the time you spend trying to figure out how to find the smallest common multiple within a number range alone will take at least a few insomnious nights in front of the computer. It won't happen overnight, but it can happen over many sleepless nights (a little hyperbolic).

I was recently hired as a JavaScript Developer in sunny St. Pete Florida and I want to share with you how I learned (and how I'm still learning) to program. Before my current job I had no previous development experience and I was working a full-time job doing something completely different (I was an Instructional Designer).  I won't waste any time. I will give you my points upfront and if you want to read about it in more detail then feel free to scroll on down. So here goes:

// If the topic is interesting

if (topic === 'interesting') {

          learnAboutThat(topic);

          dedicateTimeLearningMoreAboutThat(topic);

          challengeYourselfInThat(topic);

          repeat();

}

// If the topic is not interesting

else {

          findATopicThatIsInteresting();

}

I approached learning code in the same way I approached learning the Euchee language and similar to what another fellow proposed is the best way to learn any language. I learned what interested me. If something interested me I would spend time learning about it and obviously when it's interesting to you, you will want to dedicate time to it, even if you don't realize that's what you are doing. As with any new endeavor, you will probably gravitate towards lessons that make you feel like you're 'painting with a twist.' Creating a project that was already made by someone else and learning a few things about programming along the way. As you skip along the path of My Interest Road you may want to continue learning about this topic. You may not. If not, take the first exit to your next interesting stop. If you are interested in it, then you are now ready to dedicate some time to it.

When I started learning to program I was also working full-time. I guess I should also divulge that I was single and had no kids, as far as I am aware of. Therefore, I had A LOT of time on my hands in the evenings. I spent that time dedicated to learning about programming and writing lines of code. And as I mentioned before because the topic interested me, I would spend a good 4 or 5 hours after work and not realize that it's 10 o'clock and I need get to bed. But I stayed with it and committed myself to learning every night and on weekends. It was hard, but not as mind numbing as it might have been if I was reading a programming book. I watched videos, practiced techniques, built projects, and found cool new tools that helped me improve my build process. The process was grueling, but I made it through because the topic was interesting enough that I wanted to carry it forward.

After you spend so much time learning there inevitably comes the point when you will be challenged. This is where the real learning actually happens because you are now asked to do something that requires original thought as well as a better understanding of the tool/language in question. For me, there came a point when 'painting with a twist' wasn't enough and I wanted to be challenged. Well, tutorials won't do that for you because they are intended to be your tutor, not your coach. I searched and searched and stumbled upon Free Code Camp. I liked FCC's format because the learning was well sequenced. Everything I learned before applied to what I learned next. This really helped me to grow as a developer. Each FCC challenge was unique and just right difficulty wise, making it exactly what I needed to take my skills to the next level.

I kept repeating this process. And to mention, I didn't just stick with learning JavaScript. I learned about Jade, Sass, Stylus, CoffeeScript, Gulp, Bower, Jekyll, Node, NPM, Ruby, Ruby on Rails, MEAN Stack, etc.; all because when I learned about one topic I would be introduced to another, then another, and so on. I carried those tools forward and used most of them in many of my projects. I found them to be interesting and helpful while also making the development process much more enjoyable. I am glad I did things this way because with the evolution of development growing at an exponential pace it helps to have a broad perspective on tools, techniques, and languages. 

There is no magic pill or Cinderella story about becoming a developer. It's hard work and requires time and dedication. The least you can do is spend time learning about something you enjoy. So all you need to do is pick a topic. If it interests you, learn more about. You may learn enough about it that a challenge arises. Take on that challenge and see how far you can take it. If it doesn't float your boat, blow up the raft and come back to shore to see what you can find with your metaphorical metal detector, a.k.a. Google. You never know, you may even be able to make a career of it.  

Leave a question or make a comment. I would love to hear what you think.