How I Learned to Code in 1 Year

Learn to code

Photo credit: Dmitry Baranovskiy

Learning to code is no joke. There’s so much to learn over and above any one programming language alone. Unit testing, version control, various frameworks and libraries, HTTP, regular expressions, various APIs, data structure (XML, JSON, etc.), and more. Though, I’m happy to admit that, after roughly one year of intense learning, it’s all finally clicking.

Those of you who had read my previous posts on learning to code know how this journey has seen its fair share of ups and downs. I’ve had to rewrite shitty code over and over as I improved, and I’ve spent dozens of hours googling things that should’ve been dead simple to do (e.g. using capturing groups in regular expressions).

The second half of this journey has seen an outburst of productivity – three completed apps. Two for my job (used internally), and one that I’ve open-sourced on GitHub.

While I’m far from the perfect web developer, I figured I’d share my journey from complete n00b to experienced enough to put together a functioning app. Those of you who are thinking of taking the plunge (or have already started learning) might find my journey as a helpful guide. So here we go, step by step:

1) Learning the Fundamentals

Like many, I started my journey on Codecademy. I’ve found it to be the easiest interface to learn on, and it’s significantly more interactive than coding books, or even videos. Here are the four courses I went through:

  • Web Fundamentals
  • JavaScript
  • jQuery
  • Python

Once I completed those four courses, I took’s JavaScript Essential Training course. I did this mostly because I had a account already and was in need of a solid refresher on everything I had learned about JavaScript. It was a great idea, and really helped solidify the concepts in my mind – especially as I started writing my first scripts.

After completing the Codecademy and Lynda courses, I understood enough about HTML, CSS, and JavaScript to start writing some code. However, I knew little to nothing about server-side code, which was still a huge barrier to me making something useful. I wondered, was there a way to write and launch apps without requiring a server-side backend? My hunt for a framework began…

Continue Reading…

After Ten Months of Coding: Re-thinking Online Dating

Back in February, I wrote a post describing the pains and pleasures of learning to code. When I wrote that post, I was a mere few months into the process.

Eight months after writing that post, I’m happy to announce that most of the frustration has faded away as I started getting a handle on my frameworks of choice (AngularJS, jQuery, AppEngine). Since then, I’ve tackled web development projects at work, and even took on a personal project.

The hardest part of this process was transitioning from beginner lessons to a project that actually meant something to me. I did this through a project I’ve  code-named Datebot. After ten months of learning to code through this project, I’m happy to announce it, in the hopes that it might benefit some others out there.


What the heck is a ‘Datebot’?

Well, I’m glad you asked. To be honest, a more appropriate name would be ‘Online Dating Helper’, but the name Datebot stuck early.

The pain point addressed by Datebot is tightly knit to sites like OKCupid or On one hand, online dating sites are showing promising results on the marriage/relationship front. On the other hand, the experience for individual users of these sites is still quite sub-optimal.

On sites such as, guys spend a significant amount of time reading profiles and drafting messages to women, many of which will never respond (in my experience, response rates range from 10% to 50%).

Unfortunately, because of the time and focus requirements for crafting a high quality message (not to mention the average response rates on these sites), many guys revert to spammy messages that they can copy and paste from profile to profile.

On the woman’s side, she’s bombarded with tons of messages from guys. Many are spammy, sleazy, or otherwise unappealing messages. As such, she spends a lot of time slogging through these low quality messages, in the hopes that a quality guy is sitting somewhere in her messages inbox.

Having used OKCupid myself during my time working in New York – not to mention hearing the many stories of friends who have used it – I saw how prevalent these pain points were.

Rather than reinvent online dating with another online dating app, I chose to develop Datebot as a companion to those using OKCupid. The goal of Datebot is to reduce these pain points for everyone.


How does it work?

It’s quite simple.

For guys, it helps you read a girls profile and lets you know ahead of time how many interests you have in common (we’re not talking about a silly Match % ranking here. I’m talking real, mutual interests, plain and simple). And if you choose to send her a message, Datebot can help you out there too by suggesting talking points based on your shared interests.

For girls, Datebot will come loaded with a database of sleazy, spammy phrases to watch out for, and will go about deleting messages for you if those phrases are contained within. That way, by the time you return to your inbox, it’s squeaky clean, containing only high quality messages from high quality people.

The vision:

Guys and girls using online dating should spend a majority of their time communicating with quality matches, rather than crafting messages to unresponsive people, or slogging through and overwhelming number of spammy messages from creepers. If successful, people using online dating websites will find quality relationships more quickly, contributing to a happier life.

Feel free to check it out on Github if you’re interested in contributing to the project. It’s in super early stages of development (only the guy version is ready right now, and only for OKCupid users), so it’s not quite ready for primetime. However, the Chrome extension is ready for use, if you want to check it out here:


What’s the takeaway from all of this nonsense?

When you experience a pain point in your life, don’t just sit around complaining about it. If a solution doesn’t exist, make one! Although I chose to solve this problem by flexing my coding muscles, there are usually many ways to go about solving a problem, many of which can leverage your natural strengths.

So go out there and start taking on those pain points in your life!