Resources for Beginning Programmers
posted by clara Feb 23, 2010 @ 5:34 PM • 6 comments
in computer science for teens getting started hackety hack interactive fiction lisp programming project euler ruby scheme text adventure games why's poignant guide to ruby
In almost all areas of STEM, there’s a good chance that you’ll need to learn a little coding at some point to crunch your fruit fly data or make your robot go. Even if it’s not totally necessary for your projects, it’s often good to know some programming anyway — it’ll give you an advantage in your lab or office, it’s a great skill that can get you plenty of jobs on its own, and more importantly, it’s fun to learn and do.
Think you might want to learn programming, but don’t know where to start? Here are some great, (mostly) free, and fun resources that will have you coding like a pro in no time:
First, you’ll need to pick a language to learn. There are a LOT of options, and everyone will have a different opinion about what’s best for a beginner. The good news: for the most part, you can totally ignore that! It doesn’t really matter what language you pick first. Just stick with it for a few months until you’re able to write a couple of simple programs that do something interesting; then, when you start to learn a second language, it will be much easier. (Try “translating” some of the programs you wrote in the first language into the second.) Once you’ve learned to do the same things in two different languages, you’ll probably find that it becomes simple to pick up a new language whenever you need it for a job or project.
Here I’ll suggest Ruby and LISP, two of my favorite languages. Ruby was designed to be fun to program, and is a good language for creating little scripts to do things on your computer, or, later, writing complex web applications. LISP (which stands for “List Processing”) is an old-school language with simple syntax that’s a good basis for really digging into the ideas behind programming. It comes in a few different dialects, but don’t worry, the differences are minor!
(For those who aren’t new to programming: what resources helped you when you got started, and what resources did you wish you had? Share in the comments!)