If you’re into Ruby community the chances that you haven’t yet heard about Steve Klabnik are pretty low. An active Rails contributor, instructor with Jumpstart Lab and a nomad of his own kind came to wroclove.rb to talk about ‘ OO Design and the history of philosophy’. I’ve cached him for a quick chat just before he has hit the stage with the speech.
If you’re into Ruby community the chances that you haven’t yet heard about Steve Klabnik are pretty low. An active Rails contributor, instructor with Jumpstart Lab and a nomad of his own kind came to wroclove.rb to talk about ‘ OO Design and the history of philosophy’. I’ve cached him for a quick chat just before he has hit the stage with the speech. Read on about challenges of teaching people to code, advantages of attending conferences and hints on making your code look pretty.
Current Location: Los Angeles, USA Current Workplace: Jumpstart Lab
How would you explain to your grandparents what you do for a living?
Usually I say ‘I make the Internet work’. Or ‘I make computers work’. Or sometimes if my computers are broken, whenever I feel bad on what’s going on whenever I’d have a hard day, I’d say ” I’m the reason why nothing works”. It’s always one or the other.
The stereotype of programmer having most of interactions with a computer/machine is still strong but with your frequency of attending different confs you show it can be quite the opposite. What keeps you involved in attending Ruby events?
I really like people and I like to travel a lot and those two things tight together. I get tired, and it’s nice to sleep, but definitely I like to be around a lot more than not. The Internet allows us to have friends all around the world and it’s nice to be able to meet people in person - sombody I know from Twitter for example.
You are definitely a conference goer. Do you have a favourite spot?
I think my favourite so far was a Nordic Ruby in Stockholm - which is sort of a Japanese spa for 2 days. I also really really liked the Heroku Conference called Waza I was just at.
Toolset is important - what kind of tools do you use?
Github is really indispensable for doing open-source project management and that’s the way I talk to people I’m working with.
As for actual coding I use VIM and Iterm2 most of the time.
What is the biggest challenge in getting people into programming?
I think the challenge is more about teaching beginners rather than getting them interested. When you explain stuff that feels very basic, it suddenly strikes you that still you need to make it even simpler because you forgot how much you’ve learned. It’s very easy to say “Oh let’s just MVC” and that sounds like a very plain explanation because you’ve already learned the concept. But when you don’t know what that is, you need to explain one level more. That may also help with getting people interested in programming because when you don’t do a good job of that, people start to think ‘Oh that is really hard”.
It would be a good idea to have more coding at school but I think it’s harder for schools to get quality teaches and that’s what really matters. In the States there’s been a lot of alternative programs that are popping up, like gSchool - something like an alternative college for programmers and I think those programs are really useful because of the good teachers. In my high school in programming classes my teacher was really really bad so I didn’t learn much.
So what made you start coding then?
Basicly I played computer games when I was a little kid. My grandma got a computer and there was a game called Adventure where you typed “go east” “attack the pirate” and I just could not stop, I really really liked it. I wanted to make my own games and that’s what made me stated.
Do you consider programming as an artistic medium?
I think that art is something that makes you to think about the way that the world works and programing can definitely be used towards those ends sometimes. We can change the world with programming. To a certain degree you can definitely tell what kind of person it is by looking at the code. With Ruby we all have very similar styles but if you break a wave of the official style then it gets more personal.
What are your tips for maintaining high code quality?
The biggest one is: always think about what you’re writing more. Not accepting your first solution is the best way. You almost always write something once, you get it working but then it looks terrible. So you can either commit it and say ‘it’s done’ or to say “ok, at least I have something that works - now how can I make it better than this”. There’s been a number of times where I’ve been on a team and some people worked on a project when somebody finally said ‘ok - it’s good, time to go’ but then other person was like ‘what if you’ve tried it like this ” and in the end the code got much much nicer . There’s also a lot of animated tools like the code climate for example - that can be much helpful for keeping the code quality. Sometimes I use Skype and pair. Because I’m travelling all the time it’s harder but almost always I get code reviews or similar pull requests rather that just pushing code ups.
How do you keep yourself motivated?
I’m really motivated by people finding my work useful. I started working on Rails because there was a lot of programmers using it. When I know tons and tons of people are relying on the code - that’s very motivating.
What qualities are most important for you in starting off a potential collaboration?
Usually I would want somebody who doesn’t think that they know everything. The ability to say ‘I don’t know. Let’s look that up” is usually a good indicator.
Skill set vs culture fit
The problem with culture fit is that you can encourage too much similar thinking and I like the diversity. I think the culture is important but at the same time I don’t think being a perfect fit is the right way to go about culture. I think sometimes you need a little bit of clash as well.
You’ve been pretty involved with Ruby community. What’s been the most amazing thing you encountered by participating in?
Being able to have friends all over the world and being able to say like “I’m in the town - does anyone have a couch I could sleep on” and then actually to find one. That’s probably the most amazing thing - how many friendships are made.
A project you are most proud about?
It’s not directly a project but I think teaching and being a paid teacher is one of the things I’m most proud of in general. Also my recent contributions to rails make me proud too.
The best programming advice you’ve ever got.
You don’t know everything.
Twitter is pretty much it, which I actually don’t like… I think Twitter as a company made a lot of poor decisions, but… as long as my friends are there, that’s definitely a place I’m most at.
Most loved apps
I just got a new phone a little while ago so I don’t have a ton of apps installed. But I have a fit beat and I really like it. It keeps tracking how many steps I walk and how many stairs I climb. Today.. 4400. Yesterday it was around 22000. It has an app integration so it knows when I go running ect. That’s probably my favourite at the moment.
The must-try-before-I-die thing
A bunch of different stuff! I’d like to go to all 7 continents. I still need Africa, Australia and Antarctica and I’ll be knocking all of them.