beanz Magazine

Coding Schools

HackNY.org on Flickr

Learn more than a language. Learn skills you need to use the language. Options to suit the way you learn best.

There are lots of places to learn software programming. The question is less, “Where can you learn a programming language?” and more, “What skills do you need to learn?”

Clearly you need to learn a programming language to be a software programmer. But you also should learn a few skills to make your knowledge work. For example, many programmers need to learn Github to manage their programming workflow.

You also might need to learn structured query language, SQL, a language to manage data in relational databases (or NoSQL languages like MongoDB to work with non-relational databases). Regular expressions can make it easier to find data using code. And lots of programmers use a command line interface (CLI) to work with servers as part of their programming.

This article reviews a number of coding schools to learn languages and related technologies like Github. Below this article are dozens of links where you can explore and learn more.

Perhaps the neatest part about these resources? Age doesn’t matter. A motivated eight year old or a parent (or teacher) with time, interest, and perseverance can learn with these tools.

Coding Game

Several online schools teach programming by playing games. You learn a bit of code, practice, in some cases earn points, and slowly extend your learning. Coding Game provides a wide range of games, as well as contests and coding matches between students.

Similar online schools to check out are checkio and CodeWars. The CodeWars site is unusual because members create katas, short lessons, to highlight solutions to common problems they’ve faced as programmers. There’s also fun games like Erase All Kittens where you save kittens by typing and learning HTML and CSS, as well as Run Marco!, the Foos, and Tynker.

Perhaps the most unusual way to learn game programming is Handmade Hero. It’s a collection of 200 plus videos that document the real life process of creating a game. There are lots of details you might only learn on the job or by watching over someone’s shoulder as with these videos.

Learn Python the Hard Way

Zed Shaw, a programmer and writer, created this amazingly thorough online book with videos to take you step by step through learning Python, a good first language to learn because of its simple syntax and power. There is a book version for $29.95 which also is a great way to support this resource.

The Learn the Hard Way series includes detailed tutorials for Ruby, C, SQL, regular expressions (regex), and command line interface (CLI) software. SQL, regex, and CLI are key skills all programmers need to master to become professionals. Each course assumes you have no prior knowledge of the language or its details, which is extremely helpful for beginners.

Code School

This online school includes both free and courses available by paing a monthly fee. Their free courses include the usual suspects — Ruby, JavaScript, Angular — but also SQL, Git, Google Drive, and a few other interesting technologies. The paid courses are organized into paths to provide deeper learning for each language.

CodeHS, Codecademy, and a number of other online schools also provide interactive and/or lecture courses to learn a variety of programming languages. Some of these schools also provide tutors for personal help solving problems as you learn.

Lynda.com

In addition to interactive courses provided by Codecademy, Lynda.com provides detailed video tutorials with downloadable materials to teach programming languages. Each course runs about an hour and is taught by an expert recruited by Lynda.com. Courses include free videos, to let you see whether the material interests you, and are available with a monthly fee. The fee also allows you to use any of their courses on thousands of topics.

Similar video-based training services you might consider are Pluralsight, Skillshare, and Treehouse.

Fire Tech Camp

Hands on in person training is another way to learn programming. Fire Tech camp, based in the United Kingdom, offers weekend and after school events and courses in Java, Arduino, and other topics, as well as summer camps. The main benefit of a teacher, of course, is the ability to ask questions as you master a subject.

Hands on in person training is offered almost everywhere. Look up local programming summer camps, ask at your local library, schools, and colleges for possible courses. Explore after school programs like Coder Dojo. Also look for hackathons which can give you a chance to practice your skills while having fun solving often interesting problems.

Below you’ll find links to all the services mentioned in this article plus related information, for example, Github courses.

Learn More

CodingGame

https://www.codingame.com/start

checkio

https://www.checkio.org/

CodeWars

http://www.codewars.com/

Learn Python the Hard Way

http://learnpythonthehardway.org/
http://learnpythonthehardway.org/book/

Learn Ruby the Hard Way

http://learnrubythehardway.org
http://learnrubythehardway.org/book/

Learn C the Hard Way

http://c.learncodethehardway.org/
http://c.learncodethehardway.org/book/

Learn Regex the Hard Way

http://regex.learncodethehardway.org
http://regex.learncodethehardway.org/book/

Learn SQL the Hard Way

http://sql.learncodethehardway.org/book/

Learn CLI (Command Line Crash Course)

http://cli.learncodethehardway.org/
http://cli.learncodethehardway.org/book/

Code School

https://www.codeschool.com
https://www.codeschool.com/free

Code HS

https://codehs.com/

Codecademy

http://codecademy.com

Lynda.com

http://www.lynda.com
http://www.lynda.com/Programming-Languages-training-tutorials/1467-0.html

Pluralsight

Search for the term ‘programming’ to find courses sorted by programming languages, game programming, functional programming, system programming, and so on. The also own Code School, linked above.
http://www.pluralsight.com/

Learneroo

https://www.learneroo.com/
https://www.learneroo.com/modules

Skillshare

https://www.skillshare.com/

Treehouse

https://teamtreehouse.com/

Handmade Hero

https://handmadehero.org/
https://www.youtube.com/user/handmadeheroarchive/videos?view=0&sort=dd&shelf_id=1

Dash

Learn HTML, CSS, and JavaScript, from General Assembly.
https://dash.generalassemb.ly/

Try Regex

http://tryregex.com/

RubyMonk

https://rubymonk.com/

SQLZoo Tutorial

http://sqlzoo.net/wiki/SQL_Tutorial

Resources to Learn Programming

https://www.learneroo.com/modules/12/nodes/96

How to Think Like a Computer Scientist

http://interactivepython.org/runestone/static/thinkcspy/index.html

Erase All Kittens

Hack into levels, written in HTML and CSS (the languages of websites), in order to complete the game.
https://eraseallkittens.com/

Erase All Kittens, the Foos, Tynker, and Run Marco!

Reviews of these four games which teach coding in a fun offbeat way.
https://www.kidscodecs.com/eak-the-foos-tynker-run-marco/

Try Git

A free course from Code School, this course teaches the basics of Git to manage files created as part of programming software applications.
https://www.codeschool.com/courses/try-git

Zed Shaw

Programmer and creator of the Learn the Hard Way series.
http://zedshaw.com/
https://en.wikipedia.org/wiki/Zed_Shaw





Also In The December 2015 Issue

The history of an egg shaped outdoor sculpture made of electronic parts in Palo Alto, California.

Use a software app to invent neat things by mixing SAM wireless blocks. No wires and no code needed.

How to Build a Computer

Building your own computer is a great way to not only save money, and get more processing power, but also to learn about the less obvious parts of software programming.

We might think robots are a modern invention. But al-Jazari created amazing automatons in the thirteenth century. Today we would call him a maker.

The Google Cardboard project is a fun way to experience virtual reality with your phone and software apps.

Sumobots smash into each other and can be a fun project to create. Free plans are online. Upload your plan to services which send you the parts.

How our all girls high school robotics team designed then built a robot to compete in FIRST competitions next year.

This key part of electronics projects turns out to be easy to understand. Learn about breadboards by building a simple LED project with a 9V battery.

Learn more than a language. Learn skills you need to use the language. Options to suit the way you learn best.

Use dice from a board game or toy store to create difficult to crack passwords and phrases that you can remember.

Learning how to make, track, and complete goals also helps with school projects and personal projects.

An essay from the 1990s explores how software can be built like a cathedral or in groups like a bazaar.

The Clojure programming language provides the simplicity of a Lisp programming language with the ability to run in the Java Virtual Machine (JVM).

Beyond Microsoft Windows and Mac OSX there are many Linux operating systems used by programmers daily and built as open source.

Interesting stories about computer science, software programming, and technology found online since the last issue of the magazine.

Links from the bottom of all the December 2015 articles, collected in one place for you to print, share, or bookmark.