Hello Wendell ( and the rest of the tek syndicate crew),
I am 15 and I really want to get into coding, but a lot of people have been telling me that I should just wait until I go to college. What are your thoughts on that? Also, what language would you reccomend? ( I am looking to make a few minor programs and possibly develop an idie game (for fun, because it will obviously suck) with a few friends that are also interested in coding.
I started making games at the age of 12 with a program called Game Maker. For me Game Maker was a great tool for getting into game design and developement. Soon after making a couple of games with Game Maker's D&D system I delved deeper so I could get more power out of the system and learned the GML scripting language. GML has a similar syntax to C so when I decided to finally study a real programming language(C/C++) I was able to understand it. You have to find a stepping stone and for me when I was young, Game Maker was that step.
Would I recommend you Game Maker now? Probably not seeing as it has totally changed from when I was younger (don't know if the layout is even the same). You are 15 so I am going to assume you know some algebra, right? If you can do basic algebra you can learn to program. What would I recommend for starting out? Go learn how to make a Hello World in C, then force yourself to write a C program every day. Learn the how a compiler works. Learn what a compiler does. How does a text file turn into an executable? These are things you should be researching and practicing. Ultimately what you need to have to learn how to code is determination.
Moved to inbox I feel like there will be some good input by the team.
My input is a complete disagreement with these people. They are just telling you to be lazy and not learn something you want to learn. They think that college is the only way to learn something worth while. Some of the best knowledge you can gain will be taught by yourself. Some of the smartest people are self taught and that is because of their strong passion.
I learned HTML and CSS at the age of 14 I am 19 now and I have worked for 2 marketing firms and am self employed right now while I have self contract with a marketing firm getting 20 hours a week. If you want to learn this you are more than capable to learn it right now.
Learning now means that you can save money or at least time when getting a degree because you will know a lot and at least be familiar enough with it to get a step ahead of everyone in there because I can gaurantee you that 90% of people in your classes have never coded in their life before. Plus you can learn at your own pace right now which is nice.
Just get onto the internet an find an open source project that fascinates you, and tell the dev community that you want to help and want to learn, and if they need help, they will get you sorted in no time. Maybe you'll start as a quality tester, and someone will learn you how to use software to test software, and file bug reports, and you'll see the link between the code and the bugs, and you'll do bug fix proposals, and someone will ask you to code something, and someone will show you how coding works. There is no better way to learn than through practice. A language is just a tool, the first is the hardest to learn, the second is easier, from the third on it's a walk in the park. And by the time you hit 18, you'll know what you want to do.
Programming is one of the most challenging things you can do in life(My opinion only) and also one of the most rewarding ones, first thing to say is never be afraid of any language, yes they will frighten you (i was/am very scared of failing) but that is just part of the process, personally I started with Lua for programming basics, but i would recommend Java, Java is easy to understand and learn (if programming was a game Java would be the easy mode in the beginning), and If possible I highly recommend (Lynda.com)'s courses on Java, but if you want something free either watch MIT's course on Introduction to Computer Science and programming, yes it could be hard but you will get a soild foundation and you can build from there, I also recommend the edx.org courses made by MIT and Harvard...when you get the foundation down then you can move on to programming languages such as C and C++ which require(in my opinion) some knowledge, as for books, I recommend:
1-Java How to program.(we use this at uni for reference).
2-Core Java Volume I & II. (great books)
3-Effective Java.(after you get the basics down read this)
4-C Primer plus by Stephen Prata.(for learning C, you can read this alone with the Core java books)
these books are awesome for anybody beginner or advance.
and one more thing, stick to a community like these one, because people here know what they are talking about and will help you.
I agree with the recommendations above. Also in between reading this literature think on tasks that you would solve by coding them (once you get your hello world program to work). This would help you understand and apply the theory when putting it into practice.
I remember my first coding exercise was to think on how to sort a list. I knew there were solutions for it but I force myself to reinvent it. I ended up doing it in bubble sort and helped me understand why the other sorting algorithms were better.
There are a lot of really good answers here. Read them. I don't have much to add. I would say that maybe Python is a good starter language, also. If you are serious, you are going to learn a lot of languages. There are some good 'intro to programming' classes out there (maybe take a look at MIT courseware). Def. do not bother to wait till college.
A different route might be to get Visual Studio from Microsoft. There is a free edition that is extremely powerful and you can be doing a lot of stuff right away. The microsoft tools warp your brain a bit and can be difficult to move away from later, but they have a lower learning curve. If you go this route, maybe try to use C#. It is a bit like Java, and a useful language. Visual Basic is a simpler syntax but not all that useful experientially in terms of learning other languages later. Read the wikipedia pages on these languages. understand that they are considered 'ada derived' and what that means. Understand that there are non-ada derived languages like Lisp but that is for after you have a lot of experience.
If Web is your thing, Python or PHP are not terrible languages to start with.Studio Visual Studio or posssibly Java are better desktop langauges. Java is the language of Android, so there is that. There are a lot of stuningly bad Java tutorials out there, though.
And one more important thing I forgot to mention is that you are trying to create a game and possibly be a game developer, and for that and basicly everything in life you need math and physics be sure to get your calculus and classical physics down along with linear algebra, for starters look at khan academey for basic stuff and to get your feet wet and then I highly recommend the Highlights of calculus course on MIT, and then 18.01, 18.02, 18.03 & 18.06...doing these courses in a complete and clean way will set you for life on your mathematics part, as for the physics there is no better way than to watch professor Lalter Lewin's lectures on MIT which are 8.01, 8.02 & 8.03 and that is basicly what you will need in life unless you are doing something to do quantum physics, which if you get to that level wont need any more advices. :)