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.
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.
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.
- 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