Exposing my ignorance

I have been encouraging my apprentice Rohit to blog about ignorance. It’s great to talk about what you know, and what you can do well, but for people to really trust you it’s important also to be honest about what you don’t know yet, and what you’re looking to learn.

As software crafters learning is part of what we do. There is always more to learn; it never stops. Personally i really enjoy learning. I love the feeling of new information going in and being absorbed.

Since i asked Ro to blog about exposing ignorance, i thought i should do the same. It’s good to start with a review of where you are now.

Where i am now

It’s fair to say my strongest language is Ruby. I’ve been programming in Ruby for about 5 years, i’ve seen my style grow and change a lot. I feel very confident in domain modelling and object orientation using Ruby.

I’m pretty confident with behaviour driven development for Ruby, using Cucumber and Rspec. I know a lot about Rails and a fair amount about Sinatra. I am comfortable using MySQL, PostgreSQL and MongoDB.

Exposing my ignorance

My biggest weakness at the moment is in having only one strong language. And here is where i expose my ignorance. I know a bit about a few other languages, but i’m not where i want to be. I feel embarrassed when people talk about Java, Haskell, Scala, Io, and i am unable to contribute due to my lack of knowledge.

Confronting my ignorance

Since thinking about this blog post, i have already begun confronting my ignorance: my first step was to contact Joel Gascoigne who develops Buffer – a simple tool for scheduling tweets. I wanted an easier way to use Buffer on my phone, so i offered to make an Android app. I saw this as a pet project to get me learning a bit more about Android development in Java.

The app is open source; you can check it out on github.com/bufferapp/Android. A simple working version is now available in the Android Market: Buffer for Android.

We have a few ideas for moving the app forward, but for now i’m happy that we’ve got something out there that works, and it has given me the confidence to develop more Android apps.

My next tactic will be to study the book Seven Languages in Seven Weeks: A pragmatic guide to learning programming languages, by Bruce A. Tate. This is an intensive study of Ruby, Io, Prolog, Scala, Erlang, Clojure and Haskell. By learning how to solve a non-trivial problem in each of these languages, we learn the unique strengths and weaknesses of each language.

I’m looking for other people to study along with me, so if you’re interested, let me know!

Once i’ve studied those seven languages, i want to learn some Python. I’ve been hearing a lot about Python lately, and it seems like a language i really want to know. I already have the book Learning Python by Mark Lutz and i look forward to getting to that.

So that’s me: i have listed my strengths, exposed my ignorance and outlined how i am confronting it to improve myself and learn more. What about you?

Advertisements

2 comments on “Exposing my ignorance

  1. I really enjoyed this post aimee, and of course very happy to have you building our awesome Android app! :)

    I think this is such a great point. It’s very interesting how much respect and support you can get just by saying “I don’t know what I’m doing”. I’ve tried blogging a few times before, but I don’t think I’ve had as much success in as short a space a time as I did when I started my “NewToRuby” blog last year. Whilst I’m not blogging there anymore, it quickly attracted 200 subscribers and I still have 100 after months of not writing, and I think it is all down to “Exposing my ignorance”. I got 10-15 comments for every post, and I think it was largely due to most posts being along the lines of “I don’t know what I’m doing, but this is what I’ve done”.

    On a related note, after thinking about the various options for Buffer for iPhone/iPad (I have been so lucky to have many many people offering to help or even build the whole app) I’ve decided that I want to stretch myself and learn Objective-C and native iOS development, and I made a start a couple of days ago. Due to the lack of a “Share to” menu on iPhone, I envisage that the first version will have to be more substantial than the first version of Buffer for Android has been. The good part about this is that I’m going to make a start on the Buffer API soon, and we can start to make plans for Buffer for Android version 2 :)

    Keep up the great work aimee!

    • Thanks so much Joel! i’m planning to blog a lot about what i’m learning in the 7 weeks.

      Really happy to hear you’re working on a buffer API and an iPhone version! Very exciting! :D

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s