Web Based

Twitter @josh_cheek
Occupation Software Craftsperson


I love Ruby, but I think there must surely be something better.

I like static typing.

I code in a functional manner (no state, side-effects as high as possible in the invocation chain)

I like Java.

I love to program!

I think pairing is useful only for certain situations, like when working on something that you don't understand, or solving a difficult problem.

My favourite form of working with someone is not exactly pairing, but when we come together to work on the problem, break it into smaller pieces then each shoot off to do one, calling the other over as necessary, and then integrating often to build up this bigger solution. It winds up feeling like a dance to me. I've found that this allows us to tackle big difficult stories easily and quickly, and even though we're usually coding independently, it's highly collaborative.

If I get interrupted enough times, I will accomplish almost nothing that day.

I program because it is fun. I program in Ruby because it makes me happy and I know it very well. I love having the ability solve problems. I love small contained projects that I can do well. I love to experiment, explore, discover new ways to do things, and break into new programming domains.

I hate needless complexity (okay, I hate necessary complexity as well :P but at least it is tolerable).

I use a Mac but feel bad about it because Apple seems evil to me and I'm annoyed by how expensive it is. It just doesn't seem like there are any viable alternatives. I am probably wrong, but it's unclear how to become educated without a tremendous amount of effort.

I find it more satisfying to feel like I have put responsibilities in the correct objects and wired them together well than to solve a complex algorithm.

I consider myself an artist. Source code is my medium.

You may know me from: My pry video, or my gems Seeing Is Believing and Surrogate, or my free online classes Ruby Kickstart.


I will be teaching at the Turing school of software and design in Denver.

I have taught myself almost everything I know that is worth knowing (though often using resources that others put the effort into making), and it was very difficult for me, so I have a passion for education.

I think schools as they exist now are harmful to education.

I served four years in the Air Force, the VA paid for my college.

I have a math minor. When I got it, I felt that it was a big accomplishment. Now I feel that it illustrates the uselessness of school.

I think education and empowerment are the only ways to change the world. When people are empowered, that enables them to act, when they are educated, that enables them to succeed.

In my brain, I model knowledge as geometric objects and spatial locations and relationships. I have asked others about how they model knowledge, and tried to mimic their methods, but found that it was physically painful to me. When I am discussing something complicated, I must translate the words I am hearing into this model.

I disdain knowledge that I cannot play with. If it is not accessible enough that I can say "well what if I do this?" and go try it, then it is not something I want to waste my time on. This is why things like REPLs are so important. Labs in science courses could fulfill this need, except the students just follow directions, they don't formulate their own experiments, so they don't understand why they did what they did -- requiring them to summarize is not the same. I love the idea of the lab, but unfortunately it does not work... or at least, it didn't for me.


Honesty is one of the most important things to me. It is more important than getting things I want or impressing people. So if I find myself trying to hide something, I usually just say it.

My biggest accomplishment was realizing that wanting gods to exist doesn't necessitate gods. My second biggest accomplishment was creating a (kinda) recursive prime generator. These will probably always be my biggest accomplishments, because they represent moments where I rewired my brain and saw the world change in front of my eyes! I've had other big accomplishments, but they have been more drawn out and organic. These two happened over incredibly short periods of time where the world afterward was different than the world before.

I find the idea of abstraction utterly fascinating, and think it has an immense influence on everything in our universe.

While the implementation is nuanced, I call myself a vegetarian, because I dislike hurting animals, and it does an adequate job of conveying my dietary constraints.

I think Capitalism is useful in maybe 20% of cases, and harmful in the other 80%

I don't have any heros.

I think women are equal to men in almost every way (not implying that the inequalities are inferiorities), to the point that it is nearly always as ridiculous to categorize someone by gender as it is to categorize them by hair colour.

I expect the internet to completely and radically change all human life and culture. It will force obsolete ideas to die off, such as religion, sexism, racism, homophobia, xenophobia, and so on. We are becoming increasingly global such that ideas like these will have difficulty going unchallenged. Hopefully war will follow.

I flirt heavily with alcoholism.

I have been smoking for a decade.

I believe that health should be considered a fundamental right, and putting a price on it is extortion, so I support universal health care (more specifically, I support a two-tier system).

I don't think anything matters objectively, this is empowering as it means I can choose what matters to me. I have the power to select my own goals and my own desires and my own meaning in everything that I do.

I want to start a commune, because I like the idea that I am good at some things and others are good at other things, and together our skills and strengths can complement each other and allow us to do more, and do it better than we could do alone.

I distrust American medical professionals because their primary goal is money rather than health. I actively fear and avoid them.

I want to be treated with respect and trust. I want to be able to respect and trust others.

I change my behaviour to align with my beliefs. I change my beliefs to align with my conclusions. Occasionally it is quixotic, but it grants me an empowered resolve.

I love myself. I love my family. I love my friends. I love the people who hate me. I love everyone! Even you, reader, I love you!