Starting Coding

Okay,so I'm a 13 year old kid who needs a new hobby badly. So I decided to try out coding,went to like through a few YouTube videos which suggested to c++ so I did. Wasted 1 hour on watching introductions about it and then all they showed me is what they asked you to program. No script just what to program.  Any suggestion what course I should do. (not paid ones) cause I have lazy ass parents that wouldn't buy me shit. 


No experience in coding.

At age 13 I would not look at C++ or C or C# or C+= (hehe). Instead I would be looking at stuff that can get you a secure job. The list I would say of programs to look at would be HTML, Javascript, Java, HTML/CSS, XML, PHP, Python, SQL, and Perl. As for courses I would say find online tutorials to find the language you find to really click with you and then just keep searching for more and more ways to get better at said language but I would say not to become a savant in said language.

I agree... JavaScript is probably the best place to start... I would check the web fundamentals on to get started.

The things you will learn from JavaScript can be applied in many areas of object oriented programming...

I recon web based stuff is the best way to go because it will work on so many devices!

If you want to stick with a language similar to C++ there is a place, and I don't recommend it often (but it gets basic programming concepts across), but TheNewBoston is ok for first starting, he goes through a lot of the basics.

Have you read the sticky yet?

If you are 13 and you are completely new to programming then I would strongly advise against learning any C language. It is extremely hard to understand the syntax and the concepts if you are brand new to the world of code. Instead I suggest you go with python or JavaScript. Those two have very clean and simple syntax but are very powerful. You can get tutorials for both on but I also suggest you find a more detailed tutorial for the actual concepts of programming in python or JavaScript.

I would suggest going through the Python and Web Fundamentals Codecademy course (: They make it really intuitive yet still challenging at times. Also the site has really good progress and achievement tracking system, making it fun to learn and compete with yourself or friends. I've been learning Python for 5 days and I'm already finishing a Zork style text-based adventure game.

I would go Python, its easy and strangely rewarding when you finish something so simple :)

I did web in college and found it okay, its one of the things that actually stuck there, once you understand where everything goes it becomes simple :)

All depends where you wish to go, Web? Scripting? etc etc :)

Have fun!

I would suggest you start with something practical, useful, and easy to learn.  It should be something that runs on multiple platforms, and has a rich and easy to use--and free--IDE (Integrated Development Environment, an application used to write, build, debug, test, and deploy your code), and will help remove some of the learning curve for learning additional languages.  The only one that really fits that bill is Java.  

I agree with what others have said.   At 13 with no programming experience, do not start with C or C++.  There are many a college freshman who even when knowing several languages will struggle when first learning C and C++.

Java's syntax is very similar to C and C++, they are probably about 85% similar, but Java has removed a lot of the syntax that confuses novice developers and causes many errors.  And after you learn Java well, learning C++ or C# will be easier and learning C will be mostly easier.  If you decide you like coding and want to make a career out of it, you will inevitably have to learn C++ or C.  Furthermore, Java will expose you to object oriented programming, something that is very important if you decide to major in Computer Science in college and/or get a job as a software developer.  The other reason why I suggest learning Java is that it is used everywhere.  Pretty much every major Silicon Valley web company uses Java for some or all of their backend server code (Google, LinkedIn, Facebook, and Twitter just to name a few).

I would not recommend starting with a scripting language like JavaScript (Java and JavaScript are not same thing at all) or Python.  The reason for this is that as a novice coder you will make a lot of mistakes.  There are no two ways around that. That is part of the learning process.  And you do not want to debug both syntactical and logic errors while learning a language and learning how to program all at the same time.  A scripting language like JavaScript and to a lesser degree Python will do just that throw everything at you at once.  It is better to start with a language that has more structure and will help you debug common novice mistakes.  After you learn Java fairly well, then tackle JavaScript.  It has syntax similar to Java, but is a vastly different language.  After you know both Java and JavaScript well, you will basically have the core skills to do most software development jobs.

If you want a tutorial to learn Java, I would suggest starting with Marty Hall’s Java tutorial.  He is the author of one of the more famous Java books, Core Servlets.  And he has a bunch of free Java, JavaScript, and Web technology tutorials on his web site: 

Before you begin, download one of the free IDEs to help with written code.  I suggest either NetBeans or Eclipse.  I think Netbeans in easier to use, plus it comes with support for other languages besides Java (C++/C, PHP, JavaScript, and HTML5) as part of the default installation.

I'm going to disagree with everyone here and say that, perhaps after a bit of Java to get you  a bit more familiar with how to program in general, you should begin to look into C/C++ (C first). The reason is simple: All programming languages hide certain details of how the computer works at a hardware level, but some do it more than others. If your interests lie at that level then C is the language you should be learning to program in.

However if you are looking to do web development then ignore everything I have just said. But java is still a good place to start as it is a general enough language that you will be able to move on to other ones quite quickly. 


There is an introductory programming course on coursera that might be the thing you are looking for, but I don't know when it runs again: 

For 1st. Don't learn C/C++ as 1st language. It's hard. And, when you don't know concepts how to code (that you can learn on academic lessons) you will just learn a lot of bad practices. Also when you will not have basic teoretical knowledge about mathematic and design patterns you will have a lot of problem when writting anything more complex. If you want write "hello world" and that all, then C will be just fine, otherwise go with another language. Also C/C++ don't have "all dancing, all singing" standard lib, so socket connections, db connections have to be done with use of external libs (well, sane way of doing them). And using them is kinda tricky. Many of them contain bug, and are written in way that only one person in whole world can understand what they are doing. 

I would also not go with Java. Many devs that I did encounter, that started with Java do one very bad thing: exception error reporting, or exception flow control. They are just throwing exceptions on right and left, never even considering about consequences. Also Java is kinda hard language to lern at 1st, thus it's stupidly easy language when you are jumping from another language. 

About that JavaScript. No. JS is a scripting language that doest not have a concept of class. That is bad for anyone that does not know how to code in OOP. Lear how to code, then go all jumping with languages. 

Don't learn Pearl. I love it. Really. Don't learn it. Most of the example that you will find in Internet will look just wrong. There is a saying that pearl code looks the same before and after AES encryption. That should say a lot.

I would go with either Python (cause it's nice) or Visual Basic (cause it's .NET). Python is cross platform, so it means that code written in python can be run on any system that can run python :). Basically: Unix, Windows, Mac, so all of them. It can be used as scripting language only, or you can compile it into binary form (or it was possible couple years a go). VB is compiled language, so no scripting. Both languages can use .NET platform. VB as native satandard lib, Python with some magic.

Also I would recommned to start writing code with text editor only. No IDE. You want to learn how to code, not how to use IDE. That is a huge difference. IDE will be good when you will know what is happening with your code.   

on the last point: But not notepad, as it's just painful to program in that. Use a programmer's text editor, like vi, sublime text, or emacs (if you're feeling really adventurous). It's the little things, like tabbed text editing in sublime (which is actually what I would recommend for a beginner) and syntax highlighting that make things that bit easier. 

I would go with sublime. Really good and amount of features and plugins is just huge. Even when you are feeling brave you can code you own plugin using Python. 

Do not use vi (or similiars) when you are new to coding (guys, he is 13, so display/edit states will just drive him crazy. It drives me crazy and I am twice of his age). Basically leave vi for old guys (or guys from operations, they are always feeling masochistic).