I'm from India. I am a X Grade Student and have keen interest in programming.My friends learn java in their computer class, but mine is full of stupid things like 'How to use MS Office\MS Windows' etc.(I'm in a different school)

I've found that java and C# have some similarities(or maybe that C# is copied from java).

I plan to develop Windows programs in future. I have some programming experience in vb.net. But I've not actually gone into the depth of learning vb.net as I've heard from most programmers that it s not good and all.

I am really confused of what should I do, my options are as follows:

Start learning Python from MIT's Open Course then move on to C#.

Start learning C# from Microsoft s website for the basics and then move on to a more advance tutorial form websites such as http://tutorialspoint.com .

As I'm just a High school student I think I don't need to start off with C or C++, I'll do that when I go to collage. But for me programming is fun, I love doing it. I've even made some small programs with vb.net.

Start with Python. There are tons of threads about this. Python is modern and not a stepping stone but a full fledged language in its own right. C# tends to relegate you to the Windows world, a very minor one for programmers. Java is huge, but almost exclusively in enterprise shops. Python is the broadest language today and by far the best starting point.

Be sure to download the free version of PyCharm from JetBrains too. The best Python tool on the market and it is available for free!!

Start with Python. There are tons of threads about this. Python is modern and not a stepping stone but a full fledged language in its own right. C# tends to relegate you to the Windows world, a very minor one for programmers. Java is huge, but almost exclusively in enterprise shops. Python is the broadest language today and by far the best starting point.

Be sure to download the free version of PyCharm from JetBrains too. The best Python tool on the market and it is available for free!!

That being said, don't feel like you have to shy away from VB.Net just because programmers tend to talk bad about it. VB is also a great starting language, and is used throughout most small businesses as well as all of Microsoft Office. It's a very good tool to have in your programming kit. :-)

There is one other really important thing to mention here, and that is make sure that you learn "proper" programming form regardless of what language you choose.

One thing that I've noticed is that those who learn programming on their own, rather than through a formal education like college, is that they don't force themselves to code in a neat an organized fashion. It's very important, especially if you are working with other programmers! College will hopefully drill it in to your coding habits, but it's not needed as long as you can build the habits yourself.

That being said, don't feel like you have to shy away from VB.Net just because programmers tend to talk bad about it. VB is also a great starting language, and is used throughout most small businesses as well as all of Microsoft Office. It's a very good tool to have in your programming kit. :-)

To be clear, VBA, not VB.NET is used in Office apps. Related, but not the same. VB.NET can easily be avoided for an entire career. I've proposed before that by knowing it, you take time away from more valuable languages (of which there are more than anyone has time to ever learn) and you set yourself up to do programming in bad environments, like the SMB. The SMB hire a tiny number of programmers, probably under 1% or even .1% of the industry and generally pay at the bottom of the scale.

There are more than enough people covering VB.NET and the need for it shrinks every year. VB.NET has been a horrible career move since the 1990s and has gotten worse every year. Sure, if you know it, there are some options for you out there. But if you know something else, there are more options for you. Think of using VB as lost opportunities elsewhere.

In the UK, programming seems to be the one branch of IT where a Degree is required (most of the time) however I have seen exceptions, usually within the game industry where they require a portfolio of projects as evidence of competence.

There is one other really important thing to mention here, and that is make sure that you learn "proper" programming form regardless of what language you choose.

I'd say that this is really important; discipline in programming will stand you in very good stead. There are far too many people out there that think they are some sort of programming genius, but in reality do some very poor work.

In addition, you need to understand the security aspects should never be added on at the end; these things have to be built into the software at the beginning.

It's quite important to be able to understand the concept of requirements engineering; far too many programmers ignore this and as a result, what they deliver is not what the customer wants. Doing that won't get you paid and it might even get you fired.

To be honest, starting off with C/C+﻿+﻿ is probably a good idea because a) it's probably the most difficult, ubiquitous high level language to master, b) it helps you understand how computers operate at a fundamental level since you have to manage the memory and do your own addressing, c) it sets you up for Linux/Unix/Embedded programming careers

Either way, there's a zillion of these questions on spiceworks so it's probably best to just do a search.

In the UK, programming seems to be the one branch of IT where a Degree is required (most of the time) however I have seen exceptions, usually within the game industry where they require a portfolio of projects as evidence of competence.

That might be true over there. Over here (US) it is the least true. Programmers have portfolios that IT folks do not giving them an extreme degree of advantage over pretty much any other field.

Find a language you want to start on - Python is great. Get a book on the basics and do all the projects in it, then start on an ambitious project for yourself and get it done! If you don't know something, learn how to refine your searches to get what you need - if Google ever went down, development work would probably be at a standstill lol.

Find local meetups, hackathons, programming competitions, etc. Don't be shy about not knowing enough - you will always find someone that knows less than you and you will always find people who know more than you that are willing to help. Programmers are a (mostly) very friendly group!

If you are still having trouble, enroll in some affordable classes at a community college and see if they have an associates program you can take full or part time.

Start with Python. There are tons of threads about this. Python is modern and not a stepping stone but a full fledged language in its own right. C# tends to relegate you to the Windows world, a very minor one for programmers. Java is huge, but almost exclusively in enterprise shops. Python is the broadest language today and by far the best starting point.

Be sure to download the free version of PyCharm from JetBrains too. The best Python tool on the market and it is available for free!!

Hey I know that Python is good but what about Java, should I look into it too.

Hey I know that Python is good but what about Java, should I look into it too.

Java is not a bad language, once you are a full time developer it is a great language to have under your belt. It is the most use language for enterprise development (it also has the most trained developers.)

But learning "lots" of languages now isn't going to help. You need to learn one and learn it well. Python is the by far the best language for learning. Java is great, but it is full of stuff that makes it hard to learn programming and forces you into paradigms that are overly complex for learning and will teach you things that might hold you back.

I would not look into other languages. Lots of time and effort has gone into determining that Python is "the" language for learning to program today, replacing Perl in the late 1990s and early 2000s. All other options have major caveats.

I like Ryan6724's comment about the books. I started out learning coding on the fly between PLC ladder logic, Excel VBA, and a little bit of C+﻿+﻿. I was just grasping at straws and Googling until I started reading texts on programming languages and began to learn how they actually worked. I then started going to school and became more proficient at problem solving and some common issues that arise.

I suggest learning things like data structures, program execution, how functions work, etc and focus on syntax and language specifics last. If you know what you want to do, learning how to do it in a language (generally learning syntax) makes it easy to swap between languages.

I would have to agree with Scott - if you have never done any programming, start with Python. The primary benefits of Python are ease of use and extensive, easy to use libraries. This means you can easily jump right in and start coding without having to worry about too much setup. Python will also force you to learn how to properly indent your code and track what objects your variables are - two very important properties for proper code documentation. In addition there are a lot of great online resources for learning Python online, such as http://www.learnpython.org/ (you can do all your coding and validation in the browser!)﻿ You should also check out PEP 8, the Python coding standards - https://www.python.org/dev/peps/pep-0008/﻿

Java is a great language, but I would only recommend starting with Java if you have previous programming experience. If you still feel you want to do more research before selecting a starting language, you could start here: http://rosettacode.org/ Keep in mind though that a lot of the algorithms on this site have been compiled to libraries for ease of use already.