This is going to be a long post, all about me! feel free to skip it! :)
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.
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?
I have spent the last 8 weeks working at a consulting, design and development company in London. I’ve had a fantastic time, felt very welcome and i know that together we did some amazing work.
While i was there i had the pleasure of getting to know Rohit Gogna, who is employed there as a Quality Assurance Tester. Straight away i knew that there was something different about Rohit. In fact i commented early on that i’d never known such an enthusiastic tester. The following quote shows how Ro thinks of testing:
Software Testing is not a job … it’s a passion that turns into a career.
Rohit is keen to create a community of testers in London. LondonTester.com is Ro’s initiative to help testers find jobs and share knowledge. Ro is very keen to improve, learn new techniques and share with other people. In short, perfect apprenticeship material.
I encouraged Ro a lot over the 8 weeks. We spoke about my other apprentices, and what apprenticing and mentoring mean. I encouraged Ro to seek mentors who can guide and channel this enthusiasm, because i can see so much potential, provided Ro receives the right support.
I did not offer myself as a mentor; i waited for Ro to ask me, something like the moment in Avatar when Jake has become one of the Na’vi people and may choose a partner. Jake wants Neytiri but says “she must also choose me”. Neytiri says, “She already has”. If you are an apprentice and want a mentor, you should be the one to ask. Chances are that person might already want to mentor you but is waiting to see if you ask for it!
I take mentoring very seriously, so i made sure Ro knew exactly what would be involved, and knew that it would be hard work and painful at times. Ro understood and was still keen, so we shook hands to begin the formal arrangement, and went to skype call my mentor Enrique to share the great news!
Initially, i want to get Ro learning and blogging about automated test tools, starting with Selenium. I also want Ro to have a second mentor: someone who is more knowledgeable about testing and mentor Ro on these things that i don’t know so well. We’ll get networking and meeting people to see if we can find someone just right.
So please, follow Ro on twitter: Testerpedia, and watch with me, with pride, as we see Ro’s full potential begin to emerge!