I've been working in tech for a while now. When I look back, it seems unreal. Back in 2014 while I was still in college, if someone told me that I'd be employed, I'd be overjoyed — that's how screwed 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? A nightmare, learning about pointers, malloc and stuff. 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 web development was taking over the world by storm; people had already begun to explore and see what it had to offer. We had Web Programming as a subject 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 —
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
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. One does not simply learn to code'. 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. Which is allright, but it can take a while before you finally begin to develop applications. Web development, on the other hand, probably has the lowest barrier to entry.
That being said, I still think you should pick it as your first language.
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 enjoy the process in architecting data models in MongoDB and PostgreSQL, writing RESTful APIs in NodeJS and Golang, using ReactJS for the client, to even starting open source projects.
- Every language has it's pitfalls, so does this one. JS is very easy to pick up, but it is pretty hard 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.