Technophobe Turned Coder

If you are new to coding, or even considering it, you may be able to relate to my experience. Happy reading.

For whatever reason, I’ve decided to subject myself to facing certain fears in life. In this case, overcoming my anxiety-driven chest-compressing crippling vexation of technology. And what better way to do that than to learn a little coding.

Up until this last year, had you asked me to code something (or just troubleshoot an issue with your computer), I would have likely started foaming at the mouth, convulsing, and breaking out in cd-sized hives before giving it a go.

To say computers are out of my wheelhouse is an understatement.

Totally Green

Since I’m notably north of 30, it’s a little embarrassing to admit I’m not in the know on a lot of things. I don’t play Pokemon Go, my daily makeup routine isn’t Insta-glam, and while I use a computer daily — up until a few years ago I knew very little about the inner workings in general.

The guts

How did I get by in this tech-obsessed world you may wonder?

While I had been computer literate enough to function day-to-day, I had been more the type to date or befriend my tech support than to be my own tech support. But I realized it was high time I learned.

So began my journey of Googling every little problem I encountered and overcoming a couple BSoD episodes solo. Thanks randomly buggy Windows update!

Then a couple of months ago, I accepted that I was also going to have to make a change in my skill-set. While I’ve been in research and data management for over a decade now, I hadn’t really embraced the full potential of the tools available to me.

Again, I’d be on the slow track with tech because of the sheer intimidation factor. That, and I’m one of those people who invariably has a tech problem, seeks out assistance, and as soon as tech support is within eye-line of my computer, it suddenly begins to function as it is supposed to.

I think my computer gets some perverse pleasure in toying with me.

While hesitant, I too had fallen prey to the siren song of the everyone should learn to code initiative. Seeing the betterment in automating a few mundane tasks, I started to do a little research.

There are so many articles, massive online open courses (MOOCs), YouTube tutorials, and books.

I was literally overwhelmed with where to start? Initially, I did the thing you are not supposed to do and spread myself extremely thin. I reviewed vast amounts of ecourseware (MIT, EdX, Udemy, Code Academy, Code School, etc…) and books, all touting to have me tech-zen in 15-minutes or within a day tops, depending on the topic.

Sidebar — While some of these books make excellent reference material, unless you have some preexisting knowledge of things like HTML, CSS, JS, C, PHP, etc., they are not going to have you coding your own website by the hour’s end.

You have to crawl before you can walk. And sometimes you are going to trip and land on your face when you do.

Unsure of my best first step, and figuring I needed to get this ship into the water already, I signed up for a computer science course on EdX.

This one caught my eye primarily because it was free (as many MOOCs are) and the course description detailed the following:

“This course covers concepts of abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development along with the familiarity in a number of languages, including C, PHP, and JavaScript plus SQL, CSS, and HTML.

I was primarily drawn in by SQL as it applied to my current job; everything else was Greek to me. After I invested about a month of my time, having had an opportunity to pull and review the materials necessary for the course, I realized the bulk of the computer programming course leaned heavily in C, the supposed Latin of coding languages.

I wasn’t particularly interested in using C but as a newbie I just assumed it was the natural progression of a programmer. They had all cut their teeth on C programming and I would be no different. In order to be a good programmer/developer I was going to have to learn it.

Before you message me, telling me what a silly notion that was, remember I was super-green and phobic. I’d also neglected to make my co-workers (most of them programmers) aware of my educational pursuits primarily because I dislike the feeling of ignorance. Backwards, right? These were the key people who could have steered me in the right direction, yet out of nothing more than silly pride I wanted to figure it all out myself.

I’ve been adulting it for a long time now and assumed I could handle things solo.

Not Everyone is a Coding-Savant

While I understood the general principles and structure, and managed to create and code a few things in it, C was possibly one of the worst languages for me to use.

There were several nights of rants and tears, but I was determined to finish what I started, no matter how much I vehemently hated the class.

Disclaimer: in retrospect, the class itself wasn’t bad, it was just a bad fit for me. Everyone learns differently, and while the resources were good, I felt I needed a little more hand-holding and guidance than what was being provided.

While struggling through my primary lessons, I experimented with various other languages. Basically, I was throwing darts at anything that looked remotely appealing — spreading myself even thinner and frustrating myself further.

I was growing increasingly consumed with self-doubt and was very discouraged. To make matters worse, the group forums for the class were full of people boasting about how they would breeze through their challenges with the same effort it takes to compose a grocery list whereas I would spend hours, in some cases days, crafting the same algorithm. If you are that lucky tech-savant, in the future, please don’t do that thing where you say something like, “Wow, it took you 2 days to figure it out [what took me 20 minutes] … ”. You come off sounding like a smug tool.

I digress, something had to change in my tech journey, else this ship was going to crash and burn.

Having my ego bruised around the edges, I nearly abandoned my coding experiment altogether. I was working full-time and when I could get through a lesson, which alone took hours to read and watch everything before even starting the assignment, I would struggle trying to piece it together. I’m sure others can relate when I say I started to wonder if I was just too stupid to learn code.

My first week studying code via EdX

One random day, a co-worker (programmer) noticed I was learning about do-while loops and clued into the fact I was studying coding. Brilliant deduced, given the picture from my FB (above).

He recommended Free Code Camp, having used it himself to round out his skill set with front end development. My programmer friend was looking to become more T-shaped at work. Note: Up to this point I’d still been a little fuzzy on what front end, middle, back end development and full stack was. All I saw was a blur of coding languages and assumed programmers had to know them all.

In the end, I realized my biggest hurdle was simply finding a good start-point. I had desperately needed a well-laid-out lesson plan that outlined what I should study in hopes of being successful in whatever area of development I ultimately chose. Instead, I just tried to study too many things at once without really knowing what they were about.

Free Code Camp was an excellent start-point. Their course modules have provided wonderful tools to build from. Thus far, the most valuable lesson I have learned from this experience is to research, research, research. While FCC points you in the right direction, it is still up to you to take the steps necessary to learn how to go about furthering your coding knowledge. While the EdX course would have required the same, FCC presented the material a little differently and in a more cohesive laid-out plan that worked — at least for me.

When you dance with the devil, the devil doesn’t change, the devil changes you.

Now I’m not saying coding is the devil, but to someone new and a hint phobic, it might as well be. I found the analogy to be true, just the same. Once I started dancing (attempting to code my first few projects) and having several “Aha” moments, I immediately wanted to learn more, do more, create more. Hence why I likely went a little too far too fast, and nearly burnt out. Now I focus on building good foundations with my languages before moving along to the next one; though it is so tempting when you hear about things like Sass, bourbon, and bitters — oh my.

Often times, when I solve something I’ve been attempting to un-puzzle for a few hours or days, I burst out in diabolical laughter, or I practically leap from my chair to do a little dance, or I announce it to everyone in the house and force them to “Come see what I did!” like I’m a kid who just finished my masterpiece of macaroni and glue.

The perfectionist in me loves and hates it …

There are moments I feel like a complete moron, a poser, and impostor. Yeah, it’s defeatist, but it’s true. And we all suck at something until we learn how to do it, right? But we all want to be like Neo and have the knowledge jacked into our brains as quickly as possible, not stumble along for months or years laboring to hone our skill with a handful of languages.

Learning to code will make you humble, at least for some of us. The problem-solving is not what I dislike. It’s the embarrassment I feel because I assume others are “getting it” faster than I am. It is having to acquiesce and utter the phrase, “I don’t know what that is” or “I’ll have to do some research and figure out how that works.”

I’m still very green. The perfectionist in me wants to code and code well — code clean, beautiful lines, and know how the ballet of pre-processors and libraries work. But I get that I have to crawl before I can walk, and I labor each day at whenever I can fit in.

There is just so much to learn (so many little tricks, so many tutorials, so may resources). At times I doubt my ability to absorb it all. One moment when I think I’ve got something solved, I realize my way is sloppy and might look like crap when I go to view it on different browsers and/or devices. And yet even I have gotten offers for website work — primarily from acquaintances who want a few static pages, or help fixing what they have. I take on these tasks because it is an excellent way to problem solve and learn. Even now I can recognize where I went awry on earlier projects and have since gone back to “fix” or improve them.

Alongside the occasional project that comes my way, I am taking three different developer-related courses on Udemy and I’m still plugging away at my FCC coursework. I’m taking three because each one offers a little something different (filling in the gaps the other might fail to cover), each instructor teaches with their own spin, and each offer a host of different resources (like free web hosting for a year or a few bootstrap templates).

My FCC is on pause at the moment though as I’m building (donating) a site to a local group that is due at the end of this month, and I still have my day job. But once it’s done, I’ll be picking up where I left off.

Ideally, I’m hoping to finish out my Front End Web development certification with FCC by the end of this year, or before next summer. I would have hoped for earlier, but I am an adult with adult responsibilities, a full-time job, and a website to build here and there.

I do have to thank the following for my progress: Quincy Larson (FCC, a given), seeing as he is the one who created the platform that got me going. DevTip’s Travis Neilson, Quentin Watt, and The Net Ninja. These others are just a few of the people I follow on YouTube who have awesome, informative tutorials. Travis (who works for Google now) + his friend Los are especially entertaining and Quentin and the Ninja both have dreamy accents.

Also, I’d like to thank the friend who recommended FCC to me (Chris Morgan). Had he not, I likely would have given up.

For the other unsure newbs out there, who like me have already been in other careers for a while, I recommend listening to the CodeNewbie podcast. The podcast is composed primarily of interviews with people who decided they wanted to go from one field of study or occupation to coding, and they offer advice and resources as well. In their archive, there is an interview with Quincy where he details how he went about creating FCC.

Between the two communities (FCC and CN), I found people akin to myself who had experienced the same doubt and struggle.

Therefore, as a productive member of the coding world, I’m going to impart some of the best (unsolicited) advice I can give:

  1. Get over your ego and be prepared to ask a lot of questions.
  2. Research.
  3. Outline what skills you’d like to learn or what kind of work you think you’d like to do. For example, programming in C is different than doing website design. There are oodles of programming languages, and the types of programming/developing jobs can vary by skill.
  4. Find related podcasts and YouTube videos. They provide additional resources that can be extremely helpful.
  5. Join coding forums and blog groups.
  6. Try meeting up with a group in your area (hang with people who code, even if you are not on “their” skill level). If this intimidates you, please reference back to item #1 on this list.
  7. Try a few freebie online courses to get your feet wet.
  8. Don’t get too hung up with your text/code editor starting off. Pick an editor— whether it’s brackets, Atom, Notepad++(or play with an online one like Codepen)— and just get to work. Over time you’ll find what works best for you — who has what plugins, etc., and there are dozens of helpful overviews of these editors on YouTube if you need help deciding.
  9. Many of the forums you join will be composed of your classmates so congratulate your fellow coders on a job well done, even if it seems it was so much easier for them than it was for you. You have no idea what their background is or what challenges they overcame.
  10. Further expounding on #9— Do not compare yourself or your work to other programmers/developers. Sure, look at other code and learn from it, open-source code is a wonderful resource, but don’t debase yourself because you didn’t just magically know how they went about building something in the first place. They had to learn it just as you did.
  11. Consider a longer-term course of study either with a bootcamp or other MOOCs to fill in some of the gaps in your learning. Trust me, there are thousands of classes out there marketed with various price points. You will start to feel like a professional e-class taker before you know it. But be sure to read the reviews or touch base with anyone who might have taken the course before paying for something, as not all bootcamps or classes are the same.
  12. Also consider learning about what GitHub is and how to use it. I’m still trying to figure that one out.
  13. Try taking challenges like #30DaysofCode or #100DaysofCode. It forces you to be accountable and code daily. There are also other sites that offer daily coding challenges, many similar to the lessons on FCC.
  14. Treat yourself for the little victories — you earned it.

I do not blindly advocate that everyone learn to code.

Afterthought Disclaimer: I’d be remiss if I didn’t note the following. I do not blindly advocate that everyone learn to code. It is definitely an acquired taste, one I’m still trying to assess if I am suitable for.

And for those people who say it is easy, sure, maybe it is/was for you. I’ve seen you [random tech-genius person] fly through lessons and humble-brag with compensatory narcissistic false modesty about your seemingly superhuman understanding and skill, blazing through a six-month course in a quarter of the time. However, you fail to note that you also have a preexisting background in computers/programming, are a math savant, are currently not working, you have no responsibilities in need of your attention, no kids, and someone else is paying all of your bills right now.

You [tech-genius person] set the bar rather high and make those of us who struggle with it in the beginning feel lesser, fueling our self-doubt because we assume we should be picking it up faster than we are when you say coding is easy.

The point of my diatribe here isn’t to evangelize coding like it’s the next generation of required literacy, nor am I trying to bash anyone who brags about their accomplishments. I just want those people who seem to get it with a Neo-like ability to have some perspective that for many of us it’s not that easy.

In closing, I simply wanted to share my experience so that others, who may be reluctant to learn something new, will consider giving it a chance. And I hope something I’ve said here is beneficial.

Best of luck!

Published in Techspiration + Ideas + Making It Happen.