• Coding
  • Beginner programming tutorials ??

Hey I wanna start programming but with a language that can make games and later programs .
First what's the best programming language ?? Is it C++ ??

And can you please give some beginner tutorials about it ( video ones if possible )

And finally I'm 14 so is it stupid if I start learning now ??
Hello Mack, first off welcome to LebGeeks :)

From your question I could understand that you're not very knowledgeable about programming (after all you're only 14), but that's okey. I like the fact that you're only 14 and already thinking of making good use of your time by learning how to program. I like your enthusiasm and for that I'll be glad to help you out. Please stick with it and do not give up when faced by difficulties. Always keep coming back for help here on the forums.

You can start by reading this thread first. Then after you decided on what language you want to go with, come back and ask for tutorials and references.

Oh and make sure to check the Forum Etiquette because double posting is not welcome over here. :)

Good luck!
Thanks for your reply :)
I wanna be like a game programmer and maybe later make programs or something.

I read that thread and searched around a little bit and found that most people recommended C++ or C so I'm gonna choose that language do you know any tutorials and starting programs to begin with ?? (for windows
Yes, big AAA game companies use C++ and god knows what other technologies to make their games. They usually have much different requirements and capabilities than what is available to you at the time. And when they were young, they probably started with something other than C++.

C++ is hard, and it will take you several months before you can create a window and display text on it.
XNA framework uses C# as the development language (which is common with the rest of the .Net framework). I recommend you start there, and I believe it will actually be fun. Additionally, you can spring into and out of XNA into the other platforms for practice (so that you can develop for Windows, to learn programming constructs or create silly stuff). Catch a 3dsmax copy from somewhere near you to have fun with 3D as well, in modelling mode. It will help you catch the 3D concepts that go into play while doing the programming, and to have some fun importing models and animating them.

Oh, but remember this, yes! the best programming language ever is C++. Am just exaggerating and trying to get beat up. You'll grow into it, or hopefully when you get to age to get a job, no one will be using C++ when there's a much better and newer blockbuster language that depends on reading your eye blinks to read your mind. (Unfortunately, people would still implement that in C++). Lost?

I updated my blog based on your question with more info about where I come from and so on. Hope you'll find it any use. mskafi.blogspot.com
Ok, first let me say BRAVO, I applaude the fact that some tweens are actually doing something useful in their free time like learning the basics of programming.

And no, 14 is actually the perfect age to learn how to code with typical programming languages such as C++ and Java. I teach children whose ages vary between 6 and 12 on how to program LEGO Mindstorm NXT 2.0 blocks where they learn the basics of robotics using easy to use and connect entity blocks. This is similar to the GUI blocks that NI Labview uses to generate a virtual system such as a cockpit.

However, I highly disagree about starting with C++, Java, and pretty much every other programming language proposed. These langauges require that you first learn about the programming environment (how to debug your program, how to compile it, how to check for errors and trace them...). Besides, there are no programming manuals that are targeted towards your age. What's the solution? MATLAB

Unlike every other langauge, Matlab has a nice "Command Window" where you can simply type each line of your program and view your result. You can actually learn the basics of programming because of easy to use plots where you can visualize what is happening in your code, whether it is a for loop or a while loop or whatever. Also, since Matlab is a powerful software package, you can develop practically a program to solve practically anything, from a financial balance sheet to a liscence plate tracker.

Furthermore, once you start programming with Matlab, you don't need to include the libraries that you need since when Matlab starts up, all libraries are automatically included. You don't need to memorize each and every function available since the help engine that comes with the software can directly tell you which function to use and how to use it. So while you first start with simple programs like plotting graphs, you can later on develop games using the GUI application, and track your progress visually. After you become confident enough with your programming skills, you can jump to C++ and Java quite easily because you have mastered the basics of programming.

I'm suggesting the language just because I like it, but because Boston University students have actually seen the difference between starting to learn programming with C and with Matlab. Dr. Storm Attaway has developed a book for such purposes called Matlab: A Practical Introduction to Programming and Problem Solving. I highly recommend it to learn the basics of programming, then you can switch to harder langauges like C++ and Java.

Don't hesitate to ask for help, just know that we are always here to help:)
I think there can be some merit to what mesa is saying. I remember learning a bit of MATLAB before C++, and the demos they provide are useful. However, for game programming, I still stand by the platform I suggested: XNA with C#. You may venture into MATLAB on the side for fun, it won't be hard, and you'll be able to just browse and read the demos, they're a delight.
Yes, I agree C, C++, C#, Java are not your ideal beginner's language. However there are two main flaws I find MATLAB has, as far as beginners are involved.

- MATLAB is a scientific language, and is naturally very limited. A big factor in teaching is to keep your students excited about programming. Drawing charts and solving equations are probably not their biggest dream.
- MATLAB costs over 1000$.

I till maintain that Python should be used as a language to introduce software programming. Here are its main advantages:
- Easy to read syntax. Students can focus on algorithms much more than language itself (unlike C or Java who get you lost in technicallities).
- Very powerful language language with a wide range of application: Web (Django), Scientific (SciPy), Desktop Applications (PyGTK), Math (NumPy), Image manipulation (PIL), and so much more.
- It has an shell (interpreter) just like MATLAB which makes it easier to approach.
- It's free.

It is also worth noting that MIT uses Python as their learning language.
There's also PyGame for Python Game programming.
Seriously though, don't you want to publish your first game on XNA Live Arcade (or whatever the indie developer channel is called)?

Download Microsoft XNA Game Development Studio, start learning how to control your graphics card, and start pushing out games. When you're done, we're all going to be jealous of you here.

Oh, and did you hear? XNA SDK allows you to publish for the Xbox, Windows and the Windows Phone 7 (in addition to the not-so-popular Zune HD).
You're right about the cost of Matlab (it's biggest flaw), but you can download a trial version here. As for being limited, I beg to differ. Many "fun" applications can be conducted, but usually university professors use plots and equations to illustrate their plots.

I don't know much about Python, so I can't be a judge. It might be bettter to start with than Matlab, I will check it out :)
I don't know about programing but I suggest you download a DVD, because they are very useful in terms of learning stuff, I once downloaded a Lynda dvd to learn photoshop and I have became very good at it (that was about 2 years ago) I'm 15 btw.
Guys chill, don't argue about what language is better than the other. Just stay away from languages that will distract you with its strict syntax (such as C/C++). Go for Python like rahmu has suggested, or even go with Ruby. I've heard a LOT of good things about it and the Ruby On Rails framework. Personally, I would recommend Ruby because there's a great course about it on Lynda.com. But of course, there are plenty of other resources online for almost any language you choose.
First thanks everyone for your help

I will start with Matlab or python now because as you said it's easier then go to C++ and java ...

Just one more thing:
Since I have brevet this year I won't have a lot of free time, should I wait for summer or a holiday to start or is it ok if I start now ?? I mean will I be distracted or anything :P ??
@Mack: you should check these sites out:
http://msdn.microsoft.com/en-us/aa937791.aspx
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&displaylang=en
http://www.microsoft.com/express/Downloads/#2010-Visual-CS

Please keep in mind that mesa is a computer and communication engineer, rahmu & kassem work in web applications and desktop applications. So I am your best bet for the best language and environment that will suite you for developing games. That is: C# and XNA. I hope you'll follow this advice, and that others will support me in it.
If you want to get your hands a little wet first, start with C# in Windows Apps or Console Apps to get a feel of the language before diving with two unknown subjects (games and programming). It's counter productive if you know you'll end up with a type safe environment (game development is type safe) and start with a non-type safe language (like Python). MATLAB should only be used to expand your horizon, and not for your main tool of choice.
Ok here's why I suggested Ruby or Python and not a language of the .NET language: The .NET framework is literally seductive! Once you see what you can do with all the controls and tools available inside Visual Studio you'll get carried away and lose focus away from "programming". You'll be doing more of "learning the VS platform" rather than "learning how to program". But, if Mack could have the discipline to stick with Console Applications in order to get started and actually learn programming and problem solving first, then yeah there's nothing that should prevent him from choosing C#. I absolutely love this language, my favorite so far! Now in order to learn C# I strongly recommend this video training course from AppDev.
Mack wroteFirst thanks everyone for your help

Just one more thing:
Since I have brevet this year I won't have a lot of free time, should I wait for summer or a holiday to start or is it ok if I start now ?? I mean will I be distracted or anything :P ??
Yes. Once you get stuck you can never come back.
It's not studying and having your head in a book memorizing everything, you'll be amazed how time passes by without realizing that it has.

Check out this little dude : http://www.youtube.com/watch?v=RMaDI_fAcek he's awesome and he's your age =]

I say start now and play around with HTML for it not to disturb your studies
here, you can start right now, no Ide's no compilers,it's very easy and it's even taught in some schools:

http://www.w3schools.com/html/html_intro.asp
http://www.w3schools.com/html/tryit.asp?filename=tryhtml_intro
Hey Mack,

Here's a really good Python tutorial for beginners. It is great because it considers that you really don't know anything about programming and take you from the start.

It is also very Game oriented. It is designed to teach Games.

From the book:

The first few games we'll create together in this book will probably seem simple compared to the games you've played on the Xbox, Playstation, or Wii. They don't have fancy graphics or music but that's because they're meant to teach you the basics. They're purposely simple so that we can focus on learning to program. Games don't have to be complicated to be fun. Hangman, Tic Tac Toe, and making secret codes are simple to program but are also fun.

It is actually a book that is available freely online and as a PDF for downloading.
Finally it teaches the newest version of Python which is Python3. There isn't a lot of good tutorials yet because the new version was just released.

Invent your Own Computer Games in Python
Learning how to program will distract you from your utmost priority. Study now, there's time to learn later on.
arithma wrotePlease keep in mind that mesa is a computer and communication engineer
No Skafi, I'm a biomedical engineer (yes, there's a difference)
arithma wroteSo I am your best bet for the best language and environment that will suite you for developing games. That is: C# and XNA
To develop games, yes... To start learning how to program, no.
rahmu wroteHey Mack,

Here's a really good Python tutorial for beginners. It is great because it considers that you really don't know anything about programming and take you from the start.

It is also very Game oriented. It is designed to teach Games.

From the book:

The first few games we'll create together in this book will probably seem simple compared to the games you've played on the Xbox, Playstation, or Wii. They don't have fancy graphics or music but that's because they're meant to teach you the basics. They're purposely simple so that we can focus on learning to program. Games don't have to be complicated to be fun. Hangman, Tic Tac Toe, and making secret codes are simple to program but are also fun.

It is actually a book that is available freely online and as a PDF for downloading.
Finally it teaches the newest version of Python which is Python3. There isn't a lot of good tutorials yet because the new version was just released.

Invent your Own Computer Games in Python
Yes, now that's a good tutorial!! You can start Mack in the summer with Matlab to learn just the basics of programming and learn Python along.

For now, focus on your studies. There's plenty of time in the summer (I heard you'll be doing the official exams in mid June :s)