I was exposed to programming a couple of times in my life before I decided to dive in headfirst. The first was in high school at a summertime Code Clinic in C++ at UCLA. I remember the students who were helping to run it telling my parents that I would be good at it, but didn’t really learn anything exciting so that was that. The next time was in my CS5 class at Harvey Mudd College where my final project was to build a Connect Four Game in Java. I stayed up super late finishing this one, and I really enjoyed it, but didn’t really catch the bug.
The moment that I realized that I could really do it for a living was much later. Let me back up a little bit before that so you have some context. In the late summer of 2013, I began working at a company called AcoustaGrip that manufactures accessories for the string family of instruments. When I got there, the website was in need of quite a few updates and we were about to come out with a new line of products for which we needed to add pricing and information to add them to our online store.
The site was built in WordPress, so I picked up every tutorial I could find about how to work with the WordPress CMS. After a while, it became apparent that there were quite a few limitations to what you were able to do in the WordPress visual editor in terms of configuring things as simple as the spacing between elements. To get around those limitations, I began teaching myself some HTML. I remember I found a pretty outdated tutorial that was really exciting to me. I showed it to a friend of mine and he recommended I check out Codecademy. I signed up right away and got totally addicted to watching those progress bars advance, slowly but surely, as I leveled up my skills.
Being part of Codecademy Labs in the beginning of 2015 was what really turned me onto the path I’m on today. Knowing that there was a wealth of information out there for beginners available for free was very exciting to me. When I got into that 12 week course, I was still working full time and playing in 3 bands, needless to say I was overwhelmed. I spent most of my time coding and working on side projects to apply what I’d learned. But all of that is the long way of getting to the moment that I knew that I could be a programmer: I asked a lot of questions and my tutors didn’t always know the answers. No, they didn’t know all of the answers, but they knew where to look and they were confident in their ability to figure it out.
When I realized that these people were, in fact, humans that happened to have a lot of patience and a very well honed practice of Google-fu, I knew that I could be a programmer. If I know anything about myself for certain, it’s that I have the ability to grow over time through the application of disciplined practice towards developing a long term skill. Personal growth has always been an obsession of mine and I’ve been an avid reader for the past 15 years. I think the combination of patience and a voracious desire for consuming written words is a good one for a programmer to have.
Developing a Programming Mindset
Programming is Hard. This country has a huge demand for programmers and not enough qualified people to meet it. It’s a big problem. The Booming Coding Boot-camp industry is an obvious attempt to solve this problem by filling the gap in terms of preparing people with the basic knowledge they need to become software developers. The other aspect of the gap is the emotional journey that one needs to take to become a programmer. There are so many different ways to solve the problems that software developers face on a daily basis that the idea of reading a book and learning the right way to do software development just doesn’t work.
One of the biggest barriers to entry into Programming is all of the popular culture stereotypes about hackers. You know, the socially awkward genius who sits down at a keyboard, types 100 words a minute, hacks into giant systems, steals information, does massive damage and leaves no trace — all without breaking a sweat. In fact, software development as it is currently practiced is an intensely collaborative endeavor, one where the constant iteration on ideas within one company has lead to some truly astounding innovations that have been immensely valuable to the larger community of software developers. Thanks to Facebook, we have React. Thanks to Google, we have AngularJS. Thanks to Twitter, we have Bootstrap.
Programmers spend 90% reading and consuming code, whether they wrote it or somebody else did, a programmers job has much more to do with understanding code and learning how to reuse it than it does writing new code. In fact, the best programmers are often the lazy ones. Now let me clarify this, because I sometimes have to remind myself of this: being someone who wants to dig in and solve every problem that comes up can sometimes be much less efficient (especially if it’s a habit) than being someone who has learned to interject the thought: “I wonder if somebody else has already had this problem and come up with a really awesome solution to it.” Then the problem becomes “How would I describe this problem and reason about it? And what does Google have to say?” rather than “How do I solve this problem?”.
Simply put, programming is creative problem solving. It’s not easy, it involves a lot of technical skills and forces you to develop a method of coping with frustration and really examining your own thought process. Becoming a Programmer is a truly transformative experience–not one to be taken lightly. If you happen to be someone who loves a challenge, loves to make connections between ideas and actions, and is insanely obsessed with learning everything about the thing that you love, becoming a programmer might just be the most rewarding thing you ever decide to do. If you think that the way that technology is developing so quickly and changing the way the world works is really exciting, becoming a programmer is one of the best ways to get a front row seat.