So you want to learn a new programming language?
[[Yes]]
[[No]]How do you feel about typing?
[[I'm comfortable typing->text]]
[[I'd rather drag-and-drop->dragAndDrop]]Do you want to be able to make sites like this? Or maybe interactive fiction stories?
[[Yes!->Twine]]
[[No, I want to make games or something else->making]]
[[No. I'm not sure what I want to make, I just want to learn something.->learn]]Have you programmed in Scratch?
[[No->Scratch]]
[[Yes, and I love it->Why new?]]
[[Yes, but I'd like something more advanced->Snap]]
[[Yes, but I want a "real" language->Snap]] <a href="https://scratch.mit.edu/">Scratch</a> is a great choice for learning to program! You can make animations, games, artwork, and all types of interactive programs.Why are you looking for a new language?
[[I'm not allowed to use Scratch->Snap]]
[[I want to try something different->BlocksCAD]]
[[I'm not sure]]
<a href="http://snap.berkeley.edu/snapsource/snap.html">Snap!</a> is like Scratch but adds many more blocks and more ways to make new blocks. You can learn more with this <a href="http://bjc.edc.org/bjc-r/course/bjc4nyc_2015-2016.html">online high school and college course</a>.Twine is a tool for making interactive fiction, text-based games, and interactive flow charts.
You can use it <a href="http://twinery.org/2/#stories">online</a>, read the <a href="http://twine2.neocities.org/">documentation</a>, and try out some more <a href="http://www.felipefemur.com/felipe-femur-original-story/">sample</a> <a href="http://philome.la/inurashii/xenobabysitter/play">projects</a>.Are you willing to spend a lot of time learning and setting up before being able to make a game?
[[Yes->allGames]]
[[I'd rather not->easyGames]]<a href="https://processing.org/">Processing</a> makes it easy to program download games and other graphical programs.<a href="https://www.python.org/">Python</a> is great language to <a href="https://www.codecademy.com/learn/learn-python">learn</a>, especially if you want to write math programs.What do you want to make?
[[Games->games]]
[[Artwork and animations->ProcessingKA]]
[[3D designs->OpenScad]]
[[Programs to help with math->Python]]<a href="https://www.khanacademy.org/computing/computer-programming/programming">Processing on Khan Academy</a> is a great starting point for programming to create art, animations, and games. You can jump right in with a variety of tutorials and easily available documentation.You can write programs that generate 3D designs with <a href="http://www.openscad.org/">OpenScad</a>.Have you programmed with a text-based language before?
[[No->Newbie]]
[[Yes->Advanced]]Do you want to learn something practical or something beautiful?
[[Practical]]
[[Beautiful->Scheme]]<a href="https://unity3d.com/">Unity</a> is a powerful engine for making 3D games.Which practical purpose?
[[online programs->JavaScript]]
[[downloadable programs->downloads]]
[[mathematics->Python]]Which is more beautiful?
[[Elegance->Scheme]]
[[Humor->Lolcode]] JavaScript is the language of choice for making web applications. You can learn it with <a href="https://www.codecademy.com/learn/introduction-to-javascript">a course</a>, <a href="http://www.crunchzilla.com/">a friendly intro</a>, or <a href="http://www.jsdares.com/">some challenges</a>.<a href="https://www.codecademy.com/learn/learn-java">Java</a> is a very popular programming language.Are you willing to spend a lot of time learning and setting up before being able to make a program?
[[Yes->Java]]
[[I'd rather get started quickly->Processing]]What kind of games do you want to make?
[[text-based games->Twine]]
[[2D online games->ProcessingKA]]
[[2D stand-alone games->Processing]]
[[3D games->Unity]]
[[Minecraft Mods->Java]]What kind of games do you want to make?
[[text-based games->Twine]]
[[2D online games->ProcessingKA]]
[[2D stand-alone games->Processing]]Scheme is a beautiful programming language. It is often used in introductory college <a href="http://www.htdp.org/2003-09-26/Book/curriculum.html">courses</a>. You can use it <a href="http://www.wescheme.org/">online</a> or <a href="http://download.racket-lang.org/">download</a> it.Try out <a href="http://lolcode.codeschool.com/levels/1/challenges/1">LOLCODE
<img src="http://www.vivaboo.com/wp-content/uploads/2011/05/geek-cats-lol-pussy-kitten-kitty-puss-300x226.jpg"></a>Then why are you here?
[[My parent or teacher sent me here->forced]]
[[Maybe I want to learn a programming language, but I'm not sure->maybe]]
[[I don't know->maybe]]It's too bad that you don't want to learn to program. Programming can be a lot of fun. You can make artwork, interactive stories, and video games with it.
[[OK, I'll give it a try->Yes]]
[[I really just want to play games->Lightbot]]Well, let's figure out which programming language you would want to learn if you wanted to learn one.
[[OK->Yes]]Very well. Try out the game <a href="http://lightbot.com/flash.html">Lightbot</a>. You can even tell your parent or teacher that it's teaching you programming.Do you prefer words or pictures?
[[Words->Twine]]
[[Pictures->ProcessingKA]] <a href="https://www.blockscad3d.com/">BlocksCAD</a> will let you use blocks to create 3D models.So stick with [[Scratch]]. It has a lot of possibility.