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.