This page is an assortment of odds and ends that I happen to like. Perhaps you’ll find something you like too.

Teaching

Learnable Programming – I love pretty much everything on Bret Victor’s website. However this essay changed how I thought about teaching. Many things in this section inspired or were inspired by this essay.

Mindstorms by Seymour Papert – After being bullied by the above essay into reading this book, I found it really compelling. If you go into this book thinking that it’s about teaching kids to code, you’ll be in for a surprise. This book is advocating a complete overhaul of the way we teach everything. Anyone who wants to be in the conversation about education needs to read it.

Snap! – Snap is a visual programming language/environment. While it is designed around teaching programming, it’s got a lot of powerful ideas that I hope to see more people use. It’s probably the closest thing I’ve seen to a fulfillment of the Learnable Programming article above.

Choc – Fullstack.io put out this awesome framework for building online code editors that allow developers to visualize the flow of their program. I’ve used it in class pretty successfully.

jsDares – For my first lesson of the winter semester, I walked my students through the first half of these tutorials. The jsDares IDE is very similar to Choc, although the project itself is a bit bigger in scope. It involves learning through completing challenges (or “Dares”) and earning points based on accuracy and efficiency.

My ideal teaching tool – This would combine the generality of Choc, the stability of the jsDares IDE and Snap!’s ability to visually compose functionality. If no one else makes this, my eventual goal is to do so.

Learning

CGPGrey – Complicated things explained quickly and clearly by a guy with great enunciation. I want to make videos like this.

CrashCourse – All the series’ on here are fantastic. However, the World/US History ones derverve special recognition. John Green’s fair and even-handed approach (particularly when discussing events in the past half century) gave me a new perspective on a lot of historical stuff.

Learn You A Haskell For Great Good by Miran Lipovača – I may never use Haskell in a job, but I still think every programmer should read this book eventually. The book sucks you in with an easy first half before clubbing you over the head with Type Classes, Functors and Monads. But if you can stick through it to the end, you’ll come out a wiser human being. In the end, Haskell is just plain hard, and this book is the best attempt I’ve seen at making it approachable.

Udacity – I highly recommend the Web Development, Intro to Parallel Programming and Artificial Intelligence courses. Web Development in particular took me from 0 to 60 in terms of my knowledge about how the web works.

Code School – If you’re looking for an introduction to the “trendy” topics in programming, these guys have you covered. Their courses on HTML/CSS and Javascript topics are awesome.

Khan Academy – I don’t use this site much personally, but it’s where I direct anyone who is looking for a fun introduction to programming. Khan’s team have studied the most common pitfalls that beginners face are designing tools and environments to address them.

Programming Tools

Light Table – This is a mind-bendingly amazing IDE. It’s built with Live Coding in mind, but has a number of other properties that make it extremely extensible. It still has a ways to go before it reaches Sublime Text levels of usability and library support, but keep an eye on this thing—it’s going to be huge.

Ungit – Seriously, this should be the official git GUI. It’s cross platform, easy to use, and free (as in both birds and beer). By visualizing my commit tree and showing me what different actions would look like before performing them, this thing taught me more about git than any online tutorial.

Theatre

There is a dearth of well-maintained Theatre resources on the internet. If you find any, please let me know.

Thai

Thai for Beginners by Benjawan Poomsan Becker – This was my first Thai book. It’s packed full of good vocab and can keep a diligent learner occupied for months. However, it is rather skimpy when it comes to grammar (the Intermediate book is as well) which led me to buy:

Thai Reference Grammar by James Higby – This book can’t be swallowed one chapter at a time like Becker’s, but it’s a great resource to have when you want to say things like “I used to go to the movies often, but now I don’t go unless my friends come with me”.

Thai-Language.com – This website is phenomenal. I wish I could put it in my pocket and take it with me everywhere. Oh wait:

Thai-English Dictionary for iOS – I’ve never wanted to dtaeng ngaan an app before this. This thing is a dictionary, it speaks words out loud, it has all the common transcription systems, it doesn’t require the internet, and it has categories full of words and phrases you can browse while riding the BTS. And it’s free. เวา.

Music

Hype Machine – I realize I’m nearly 10 years late to the party, but I don’t care. This site is like being hooked up to an IV full of Fanta.