I would say that you should first learn C, as it is a procedural language. After that learn an OOP (object oriented programming) language (Java is the most commonly taught language in school nowadays). I prefer C++ because it is not limited to just one style, like Java is. Python is also a good and flexible option. Start with version 2.7 and after you finish it learn version 3.0.
When I started learning programming, I was in Class 7. I learned C first and then went on to learn C++. An advantage C++ has over other languages for a beginner is almost 100% backwards compatibilty with C, but then it does tend to be syntactically more complex once you get into the thick of things compared to many later languages like Python.
You're in class 8. So I would say that finish your HTML and CSS courses first. Then see what subject choices you have available in class 9. Choose anything the option related to computers. Make sure you keep your math score up also. Before class 9 begins and after your CSS and HTML courses, learn C. And chances are, in class 9 if your subject has any programming at all, it will all be in Java.
A sequence if you got confused.
1. Finish HTML & CSS.
2. Learn a procedural language, such as C.
3. Move to object-oriented programming, and learn any: C++, Java, Python, C# etc [lots of options: I like C++, Python and C#]. If school is teaching a language
stick to that language.
And in the meantime, keep brushing up your knowledge on computing.
And remember, nobody can be a "master" of a language right after finishing the course. You need to keep practicing and gaining experience. If your school has a student-run Fest or something, volunteer to design their webpage once you're in Class 11. But don't lose touch with any web-based languages you learn. Also learn PHP and XML, if you are interested in web development.
@OP: An 8 year old kid starting a new thread on TDF asking about programming languages. That's damn impressive. You've a very bright future.
Right now, target one area of Computer Science. Say, its Web Development (HTML/CSS/JavaScript/PHP) or Client Software Development (C/C++/Java/C#). I would recommend you to learn C Language & play with it for 1-2 years until you have a good grab on it. Believe me, these programming languages are very interesting to play with. Install Linux with Windows & do all the programming on Linux only. But do keep Windows also since Linux may be a little bit complicated when it comes to user friendliness. And like many members above have recommended studying Maths, I would strongly urge you to learn thoroughly Mathematics. But there are many areas within Mathematics. You need to study the portion of Mathematics that is applied in Computer Science which is "Discrete Mathematics". Study Discrete Mathematics in-depth after class 10th boards.
And above all, for the next 3 months, study & make a good understanding of the English Language because everything, everywhere is written & explained in English. So , if you know the meaning of the concepts in English then it's advantageous to grasp that concept quickly. You can skim over the Grammatical portions. Read an English newspaper (The Hindu, Times of India) daily & have a dictionary beside you.
TBH it is too early to target one area right now. He should try and gain experience in all kinds of fields and decide on a path in class 12-end preferably and if he can make up his mind earlier, then no earlier than beginning class 11 and
only if he has experience in a multitude of fields. So web development, basic programming, application development and backend programming are a few fields that he should have dabbed in when he makes a decision. If he cannot decide by the end of class 12, then the first year of college as a Computer Science and/or Engineering student should be the time to explore and take a decision.
The OS is also not a factor for a learner, really. Though segregating his work and play does help a lot. If you want linux, then I suggest running Xubuntu or Mint. Very user friendly.