Ashwin Hariharan

Building software with #OpenSource • Exploring #AI •

How to Know if Programming is your Cup of Tea

Also published in my personal blog

I’ve been working in startups for two years now. When I look back, it seems unreal. Two years ago while I was still in college, if someone told me that I’d be employed, I’d be overjoyed — that’s how fucked up I was at academics.

In college I found most of the computer science subjects dry. I mean sure, few of them seemed interesting. But none of them were interesting enough to keep me occupied for very long. C? Oh my god, what a nightmare learning about pointers. Relational databases ? Boooring! Visual C? Yuck, all that code just to render some crappy looking house ? I can draw better! Java? Meh.

Can I just go watch Friends on my laptop ? That’s fun!

For the first three years in engineering, that’s pretty much how my feelings towards these subjects were. And as you may have guessed, my grades got screwed up, big time (However in my defense, I did enjoy subjects like Unix and Operating systems!).

But when you’re surrounded by people who are (A) Great at academics, OR (B) Programming Geeks, OR (C) Both A and B — it makes you think. Makes you worry. It makes you fear that you may never land a job, that even if you do — you’ll likely get one that sucks. I had no one else to blame but myself. As someone who was still figuring out on what to do, the world of programming not only intrigued, but also scared me. Where do I even begin? What do I do? Programming seems tough. Would I even enjoy it? If people keep saying that it’s easy, does that mean I’m just plain dumb ?

It was around this time when JavaScript was taking over the world by storm; people had already begun to explore and see what it had to offer. We had Web Programming in the final year of engineering, so I began to read HTML5, JS and CSS3. After lots of Googling and studying few examples from programming tutorials, very soon I could write a small program that did this —

This was easy enough to do — define classes in CSS3 for the sphere with position attributes and define transitions for them. Then use onclick event handlers in JavaScript to change the class-name of the sphere when you click one of the boxes, and voila- you got a nice sphere that moves where you tell it to!

And when I saw that little blue ball moving, this is how I felt —

  • This is so cool! It wasn’t nearly as complicated as I thought it would be!
  • The whole program took less than 20 lines of code
  • It certainly wasn’t boring as writing on some black screen using vi and seeing the outputs again on a black screen that they called the terminal when I wrote C or Perl code

I got hooked, and started to learn more and more. Very soon, I evolved from that simple program that moves a blue sphere, to writing my resume using HTML5, CSS3 and JavaScript —

impress.js is really impressive!

I knew back then that this was still pretty amateur stuff, but I didn’t care. For the first time, I knew that programming was indeed my cup of tea, and this wouldn’t have been possible if I didn’t write that first program in JavaScript.

Now there are many people who started out with C++ or Java, loved it, and still are writing software using that. But not all of us are like that. The post — ‘One does not simply learn to code’ makes so much sense. Many people give up without even testing the waters, and the ones that do — they quit later, because the water’s too deep for them. They eventually think that programming isn’t their cup of tea.

My first programming language was C. And JavaScript is a language which invokes strong reactions from the programming community — people either love it or hate it. But I think you should pick it as your first language.

JavaScript is not judgmental. It does not force you learn a dozen concepts before you can write your first Hello World program. You don’t even have to declare data types. You can execute JavaScript code on a terminal, or if you hate the terminal, you can use the developer console in a web browser, or you can embed it in an HTML page and see the output in the browser. It allows you to do both functional programming and object oriented programming.

I finally got a job at a startup as a Front End Developer. As it turns out, it acted as a sort of ‘gateway’ towards learning further programming concepts. Things that sounded boring before, sound very interesting to me now. Pretty soon I moved on from front-end to full stack — I started to love architecting Databases (No-SQL ones like Cassandra and MongoDB), writing RESTful APIs in NodeJS and Golang, using ReactJS for the client, to even starting an open source project on Github.

I do not intend to ‘promote’ JavaScript in this post — I’m well aware of it’s quirks. But we waste so much time — hours and days, or even months trying to figure out whether programming is meant for us, doing things that we don’t want to. We’d rather just quit and choose not to do it, because learning things can be a pain in the ass. At such times, having a tool or a method that takes minimal effort to use and that’s beginner-friendly can be very helpful. So before you begin to learn, keeping these points in mind will help you manage your expectations-

  • Every language has it’s pitfalls, so does this one. JS is very easy to pick up, but it takes a while to master; so don’t take it for granted thinking you’ll become some sort of ‘ninja’ or ‘rockstar’ within a week.
  • Understand that what you write in the beginning will mostly be considered ‘crap’ by other programmers. Don’t give up. It’s okay to write shitty code in the beginning when you learn. But if you discover that you like it, then it’s very essential that you don’t write shitty code.
  • Indentation matters a lot. It helps you avoid bugs, it also makes sure that your code doesn’t look like a sea of vomit when someone sees it.
“All-right. Where do I begin?”

I highly recommend starting from here — From Zero to Front-End Hero (Part 1). It’s very cool, I wish I had this tutorial when I began my journey.

This would be enough to help you get started. There are about a million things more to remember, but you wouldn’t need to know all of them — not in the beginning at least. What’s important to know is whether you would enjoy doing this for the foreseeable future — and the sooner you come to a realization, the better.

So, take a leap of faith. Who knows, maybe you might actually like it! And if you hone your craft and work diligently, you might just find yourself cast in the role of a lifetime.

Liked what you read? You should subscribe. I won’t waste your time.

You can read this article in my personal blog too!

Thank you for reading. In-case you’re a beginner and you’re interested in knowing how I wrote some of those programs, feel free to check out my repo on Github!

More by Ashwin Hariharan

Topics of interest

More Related Stories