By using this site, you agree to our Privacy Policy and our Terms of Use. Close

Any language should do really. Programming is more about the concepts than the syntax. Once you learn a style of programming in one language, you can pretty much do it in any. After you learn a few languages it only takes a day or two to learn the syntax of another one. 

I started with python, as that was taught at my university (Carnegie Mellon Unversity.) You can see all of the course content here, and if you are motivated you probably could even learn from the content. Just click a semester and the "schedule" tab. There are written and video tutorials. The nice thing about python is that you don't get bogged down with syntax errors as it is quite forgiven, and fixing syntax errors is quite boring when you are first starting out. That is why it is good for beginners. 

There are tons of free courses online to learn from as well. I recommend udacity. 

https://www.udacity.com/course/programming-foundations-with-python--ud036

Anyway, you should start with basic iterative stuff, learning what data types, loops, variables, functions, etc are; learning basic data structures: lists, sets, etc. Then learn object-oriented programming. Once you learn object-oriented programming what you can do really opens up. I'd recommend switching to a C-based language at that point, Java or C# are good options for beginners. Java is especially useful since it is used in most industry, but you can use for C# for game-engines like Unity. After you are comfortable with the basics of object-oriented programming you can learn recursion (and the basics of functional programming) and slightly more advance data structures (linked list vs. array list; hashsets; trees; graphs; etc.) 

And at the end of the day it is all about practice, practice, practice. The more you program the better you'll be at it. Think of unique projects that you'll like to create, and hack at solving them for a few hours per day. Do you want to make an android app? Well download android studio and make your app. Do you want to make a webpage? Learn CSS/HTML and a Javascript interface, make your webpage. A database? Learn SQL (it takes a week at most) and construct a mock database. A 2d or simple 3D game? Download a game library for Python, C# or C++; create some assets, etc. The best way to learn for many people is to just make something, and google until it is made. Although you'll need the basics down first (at the very least object-oriented programming.)