Well, so starting with Computer Science becomes really tough, especially because no one knows where to. It happened with me a lot! I really wanted to study programming after JEE, but I didn't know where to. But I will tell you guys so that you don 't have trouble.
First things first, you can't rely on books to learn CS. You need to have access to the internet and online resources. Books are good for the theoretical parts(Data Structures and Algorithms, Discrete Math, theoretical CS, Cryptography, etc. I will tell you about these later on). So, you just need an internet connection to study.
So, as I mentioned in an earlier post, C++ is a good start. It's a good language with various applications, its still in use, and its accepted in almost all programming contests. Python is another good language for beginners, but its easy and has got its demerits as a first language(you will find it tough to move to C++ if you know Python as your first language, whereas learning Python after C++ is trivial). I'll tell you a step by step approach to learn programming.
1. Find a course on C++.
I personally recommend
Bucky's C++ tutorials. They are easy to understand and to the point. If you watch and practice 2-3 videos every day, then you can easily finish it in 1 month. MAke sure you implement everything taught either on Ideone or on your Computer's IDE. The first video in this series explains how to install and use it. Follow the instructions well, I don't think there would be any issue. Don't move to the next video without understanding and practicing the previous one on your own.
There are many other courses on Coursera, Udemy, MITOCW, etc. but they are of some other languages. If you find a good one on C++ then its good. You can try it.. But I did this one(this is a pretty informal course, but I feel that formal courses should be done after you are done with the having the basics of one language on your tips. There are many places where you can practice questions. First be clear with all the basic functionalities and learn them by heart.
Another great website is
www.learncpp.com. Its like a complete package.
2. Have a revision tool
After completing the above tutorial, you might wanna have a good revision tool. It can be a book, a website, an app, etc. I personally find books useful. Books have questions in them, and theory too. Reading a book will really tell you much more than what you can learn from an online tutorial. I guess you can start with this very famous book called
Let us C++. I never used it, but I think it must be good. It will prove very beneficial after you have done Bucky's tutorials. This is not a very good book according to many people, but it will surely help you get the basics easily.
Also, there is this app called Sololearn, which is useful if you want to catch up the syntax of any language.
3. Get a practice source
There are tonnes of websites out there which contain questions for practice. A good one is
SPOJ. I have linked the basic problems section. Solve them in the order of decreasing number of users(click on the users tab to arrange in decreasing number of users order). This can be done while reading the book(step 2). After you are thorough with it, you can move to the classical section and again arrange and solve. These are really nice problems and they are very useful for developing good coding skills. However, many of these problems involve the use of basic Data structures and some Algorithms(sorting, BFS, DFS, etc.), I'll be blogging about it later, for now, the basic problems are a good start.
There are many other sites like CodeChef, HackerRank, CodeForces, HackerEarth, etc. I personally find HackerRank good, but SPOJ is the best, because it requires thinking about the problem from scratch without any precoded stuff.
4. Learn how to use the internet to solve your problems
There a lot of resources online. Learn to google well. USe few keywords. When you see a compilation error, google it out(paste the exception type on search bar). You will definitely find a solution on StackOverflow. Similarly, if you can't solve say problem ID 3458, then google SPOJ 3458. Most probably you'll get an answer. This is a very important tip for aspiring programmers. I have started this recently, I think every one must know it from the start.
I personally feel this is a good strategy to learn how to programme, for the absolute beginner. After this, you should go for studying Data Structures and Algorithms, which I will post soon(once I am done with it :p)
Thanks and all the best!!! Feedback is welcome in comments, and do tell your friends about the CS section of the blog.
Also see-
Getting Started with Computer Science- Part 1.