How to get started with programming?

Instead of telling you how to start programming. Let me tell you how I started programming

My first computer

I got my first computer in my 9th grade. It had 3 gigs of ram which is three times of what the computers in my school’s lab had. I was kinda guilty about getting a computer with that much ram just to play games. So I decided to make ‘softwares’ with the computer and searched ‘How to make software’, the search results were overwhelming but the major key word seemed to be ‘Programming language’. So I searched ‘programming languages’. And this went on for more than a couple of hours. Finally I ended up with the result that ‘C is the best programming language ever made’.

It all started with C

I searched for the ‘best C books’ and ended up downloading Sam teach yourself C. The first program I ever wrote returned The area of the circle is followed by the area of the circle if I typed the radius which might seem like such a trivial program now. But back then it seemed so big to me. I showed that program to a lot of people and everybody thought I was some kind of a genius and one of them even asked “How do I believe that you did this?”. That question started everything for me. Doing something which they thought that I couldn’t have done seemed like such an achievement to me. I wanted to do stuff like this again and again.

So I completed reading that book . Solved all the programs in that book and then went back to the ‘best C books’ list. Downloaded The C Programming Language book. Read that in 3 months(which was such a huge achievement for me. Considering that it took me more than a month to read the first 30 pages of the first part of Harry potter).

This went on for two years. I read three more books on C. Solved the problems from those books. At this point I can so some basic problem solving.

Then came C++

Then I went to C++ which seemed like the next natural step to me. I thought that C++ only had Object oriented features added to C. So I read only the Object Oriented stuffs in C++. I didn’t know about STL back then. So I didn’t read about STL and I actually don’t know any STL till now. But the plus point is I ended up getting a good grip on object oriented programming since I exclusively read OOP stuffs during the time I spent on C++.

Obviously Java 😄

The first java book I read was Head First Java, which I believe can be a really good first programmer book for a beginner. In fact most of the Head First series can be read by a beginner(I guess).

I learnt basic language related concepts in the console. Then I moved on to JSP & Servlets(Head First JSP & Servlets). Worked on some small web application projects.

JavaScript 😍

By this point I was in college, probably in the 3rd year. I wanted to create some good looking web pages with interactions which moved me away from JSP.

I went on to learn HTML. Using only HTML I was able to make some good looking pages but the interactions were basically anchor tags that loaded a different page with absolutely no dynamic content which seems so embarrassing to admit now.

The first web site I created was ‘Why I love Rahul Dravid 😍’. Downloaded lots of Rahul Dravid photos. And just created a clone of his Wikipedia page. It was fun and I learnt some CSS along the way too.

I wanted some dynamic contents in my page, so I tried learning JavaScript. Googled for the ‘best js books’. Found about Eloquent JavaScript. Downloaded it. Read it. Loved it. No turning back !!

I know lot of people have an hatred towards JavaScript and I can see why. But personally I really love JavaScript. In the beginning I noticed a lot of ‘mysterious’ behaviors in js. “Why is this variable not undefined?”, “Why is the variable a contains ‘xyz’ when it should contain ‘abc’?”. But then I read JavaScript : The good parts. Got my mind-blown. It answered a lot of my questions. Now I look at JavaScript in a different way. I then read the You don’t know js series.

Currently I primarily use JavaScript with AngularJS in the front end & Java in the back end. So whatever I have learned on my way here is turning out to be really useful.

Practice, practice & some more practice!

I love practicing problems. I try to do a lot of competitive programming, which helped me with thinking about problems. I also try to spend a lot of time reading books and try solving the problems in those books. I am not trying to say that I am a genius guy who spends a lot of time programming. I am just a normal guy who happens to like programming. I actually do programming because I like it. Some people like Sports, Partying, etc I like programming so I do it.

Stuffs to take away

  • Most people will say that C is a really hard programming language to master. I agree. But for a beginner it can be a good language if you want to get serious about programming. Because you can learn a lot of important concepts real soon.
  • Object Oriented programming is everywhere. Since you already know C learning C++ won’t be too hard. Just learn the OOP related concepts and get a good grip on it. Also C++ is used in a lot of places. So It can be useful in the future. Don’t make the mistake I made, if you have the time, learn the Standard Template Library in C++ and do competitive programming with it. You’ll thank me later.
  • Java is inevitable. You’ll come across it eventually. So its better to learn it while you are a beginner because Java might seem annoying if you are coming from other languages like Python.
  • Now If you want to be a web developer you have to know JavaScript. Learn it. You’ll love it.
  • If you are thinking about becoming an Android developer. You already know Java. Learn Kotlin.
  • If you want to be a cool guy and do apps for IPhone. Learn Swift.

Some people might not agree with me telling you to learn all these languages. But this is what I did and it really helped me. You can learn any number of languages. It actually helps to get a different perspective on programming that you might get from a new programming language. Right now I’m learning Haskell to know Functional Programming better.

This is my first story in medium. Comments are appreciated