Archive for the ‘practice’ Category

Learn to Type – Day 4

Thursday, July 15th, 2010

I had a day off work today, so i’ve only just come to do my 5-minute test just now. 88wpm, hands covered, not so good as yesterday, but i am really tired at the end of a lovely exciting day.

I think i’ll go do a few powertyping exercises, followed by a few rounds of typeracer. In the meantime, enjoy this video that Enrique made: it’s me and Tom playing typeracer yesterday lunchtime!

Type Racers from Enrique Comba Riepenhausen

I scored 102 words per minute, at 100% accuracy!!

Learn to Type – Day 3

Wednesday, July 14th, 2010

Wow, my 5-minute baseline test this morning was much better than the previous two days: 91 words per minute, hands covered. I got to the end of the story of the Foolish Frogs, and had to start again at the beginning!

Corey has encouraged us to set a goal for the end of the week. I will make it my goal to get to 100wpm on the 5-minute test. I feel that this should easily be possible by going at the speed that i am currently doing, but removing all the mistakes. This morning i managed the first minute without a single mistake, but the mistakes started to creep in after that. On my typeracer games i have noticed that a mistake costs a significant amount of time. It’s more effective to go a bit slower and think more, rather than rush ahead and make a mistake.

In my practice time I am continuing to learn to touch type numbers and symbols. I’ve found it very satisfying, just a single run through a lesson on PowerTyping.com is enough to set it into my head where a few more symbol characters are. The real test comes when i’m programming: can i find the parentheses when i need them? Curly braces? Where is that hash key? Do i need the shift key or the alt key, and can i find it without looking?

I didn’t do many rounds of typeracer yesterday, so i want to do a few more today. My fastest yet has been 109wpm but i’d like to push that up to 120wpm. Two words a second, consistently … that would be so awesome!

There have been some interesting conversations just lately about whether or not you have to touch type to be an effective programmer. Of course, you don’t, and i think we would be unwise to apply the sort of value judgements that imply any sort of eliteness or inferiority between those who touch type and those who don’t. The key word here is effectiveness. I recognise that many people are able to program very effectively without touch typing.

However, i believe there is always opportunity to get better at what we do. The questions to ask yourself are whether you feel you could be more effective at typing, and do you want to learn? With the tools we currently have, i believe the keyboard is the best interface between our brain and the computer, so it makes sense to use it to the best of our ability.

Oh my gosh, Frances has just made the most amazing double espresso EVER!! <3

Learn to Type – Day 2

Tuesday, July 13th, 2010

Ahh, yesterday was good. I did some exercises on powertyping.com particularly the numbers and symbols, which is what i’m especially trying to practise this week.

I was delighted last night when i managed to complete one round of typeracer at 99 words per minute with 100% accuracy! That is something for me to be very proud of! Now if i can just get to that accuracy and speed consistently, i will be very happy!

This morning i’ve done my hands-covered 5-minute test at FreeTypingGame.net and scored 76 words per minute, slightly slower than yesterday’s 78. I made more mistakes, particularly with quotation marks and exclamation marks.

Other resources we have discovered:
TypingWeb.com – typing lessons that save your progress. (only Qwerty)
aTypeTrainer4Mac – a Mac program to download and use offline.

Learn to Type Correctly Week

Monday, July 12th, 2010

The week has begun! Developers all around the world are making a conscientious effort to learn to type faster, more accurately, more effectively.

This is thanks to Corey Haines proposing a Learn To Type Week! Today we have been given our first instructions for Day 1: do a 1-minute, 3-minute or 5-minute exercise from FreeTypingGame.net with your hands covered over so you can’t peek.

I did the 5-minute test, writing the story of the Elves and the Shoemaker. I made a few mistakes, but i felt quite a smooth rhythm. I got 78 words per minute. That’s not too bad; it’s a nice baseline, something to build upon. In some of my typeracer games i’ve sometimes been getting to 100+ words per minute, so i’d love to be able to get there comfortably and consistently.

One thing i’m really trying to focus on this week is the number keys and symbols. I can touch type letters (on Dvorak keyboard layout) but when it comes to symbols i always have to look. I also need to learn once and for all to use both shift keys and not always to go to the shift key on the left.

Have a good week everybody! :)

760th day at Eden

Friday, July 9th, 2010

We have a new intern at Eden. Tom Crayford studies Software Engineering at Sheffield University and is doing a 2½ month internship with us, with the possibility of becoming an apprentice at the end of it.

In the style of Tom’s two recent blog posts, First day at Eden and Second day at Eden i thought i might also write about my day, since it was a particularly satisfying one. It just so happens to be two years and a month (760 days) since i joined Eden!

Straight after this morning’s stand-up meeting, I had a quick debrief of a meeting we had with a potential new client yesterday evening. Then i helped Todd to write an email. We draft our emails on Google Wave these days, which is often fun. Four of us were editing the email at once, which means we quickly get to something we’re all happy with before sending it.

I went out for a walk with Frances to pay in some cheques and buy some Friday Treats for everyone!

At lunch time some of us had several rounds of TypeRacer in preparation for Learn To Type Correctly Week next week! I think it’s incredible how so many people have got enthusiastic about learning to type well after Corey Haines announced it. If you don’t believe me, check the twitter hashtag, #learn2typewk!

Something quite unusual happened after lunch. We had a message from Richard Knoll at Mercia Cycling Club in trouble and needing help because the site was not responding. Richard had found us on Google after searching for Ruby on Rails. I agreed to look at it with Tom for an hour and see if we could figure out what was wrong. We determined that rubygems and Radiant had been upgraded on the server and we needed to tweak a few configuration files. With help from Chris and Spencer, the site was back within the hour! Chris then helped me to raise an invoice for an hour’s work.

It’s interesting that we can do anything from a fast restore of an unresponsive website, to projects that take several months from start to finish, requiring two or three pairs of developers working at a time.

Tom and i continued to pair together for the rest of the afternoon. We were able to add value to a project to help a charity in Cambodia. I always learn something whenever i pair with someone. Tom is no exception and i very much enjoyed pairing together today. We all have things we can teach each other.

Tonight i think i might learn a bit from the Ruby Kōans, possibly study a bit of SICP, and definitely see who gets evicted from Big Brother!

Design Patterns study group

Sunday, January 17th, 2010

A new thing at Eden is we have started a study group and we are currently studying the Gang of Four Design Patterns book. I’ve read this before but i’ve not studied it. I guess i got an overview and thought to myself, “Well, i know where to look if i ever want to look up a pattern …” – Have i ever looked up a pattern since? No! ;)

So i’m really glad to be studying it this time and really getting to know the patterns properly so that i can use them readily whenever appropriate. It’s good to have the opportunity to discuss one pattern at a time in a group. Here’s a photo from the first study group last week:

Design Patterns Study Group

As part of my studying, i am implementing examples of the patterns in Ruby. Last week i coded the Factory Method example. It’s funny how i can skim over the code in the book and convince myself that i understand it, but coming to implement it for myself in a different language was a challenge. One that i thoroughly enjoyed, i have to say! :) I’m happy to say that i now fully understand the factory method!

I’ve also been writing tests to ensure the code works as i expect. This has been useful because i’ve learned about Test::Unit which was previously unknown to me. When i joined Eden i learned RSpec and Cucumber (or story_runner or whatever it was called back then). Other than that i’d never tested Ruby before.

This week i have been implementing sorting algorithms as strategies. I wasn’t too impressed with the code examples in the book for the Strategy pattern, largely because they left out all the code that actually differs between the strategies! So i decided to make up my own example. It has been good to refresh my memory on sorting algorithms at the same time as clarifying how the Strategy pattern works.

You can follow along with my workings on sermoa/ruby_design_patterns.

Playing with Scheme

Tuesday, December 15th, 2009

Recently I have been playing around with the Scheme language and I must confess that I have fallen for it so far.

While I was reading The Little Schemer and starting to study at the SICP I was getting increasingly uneasy. I could not find a way to test (unit test) my code!

If you know me, you know that I am a big promoter of TDD, specially Test First. Having to deal suddenly with the fact that I would not be able to test, not even after the implementation was giving me the creeps. I felt cold sweat running down my very essence and I was about to stop playing with Scheme.

So I started looking around, and found out the Dean Wampler was using some rather nice testing constructs in his SICP Solutions on github. Investigating further I found out that he was using PLT-Scheme instead of MIT-Scheme which is the dialect I am using; so I kept on looking.

My search was soon over when I came across test-manager a neat testing framework written by Alexey Radul from, you guessed right, the MIT.

To share my happyness I will just show a sample of how testing will look like when you use test-manager:

(load "test-manager/load.scm")
(in-test-group fun-with-scheme
  (define-test (add-returns-two)
    "1+1=2"
    (assert-= (add 1 1) 2 "What happened?")))
(define (add a b) (+ a b))
(run-registered-tests)

The output of the test will look like so:

;Loading "run-test.scm"... 
;  Loading "lib/test-manager/load.scm"... 
;    Loading "portability.scm"... 
;      Loading "mitscheme-conditions.scm"... done
;      Initialized "rgxcmp.so"
;      Initialized "chrsyn.so"
;      Initialized "regexp.so"
;      Initialized "rexp.so"
;    ... done
;    Loading "ordered-map.scm"... done
;    Loading "assertions.scm"... done
;    Loading "test-runner.scm"... done
;    Loading "test-group.scm"... done
;    Loading "testing.scm"... done
;  ... done
;  Loading "test.scm"... done
.
 
1 tests, 0 failures, 0 errors.

For now the next steps will be to create some automation in the process (I like tools like autotest in Ruby) so that I can just type on and learn more about Scheme as I go!

Practice makes perfect

Wednesday, October 21st, 2009

I have recently been struck with the idea of practising coding skills. It makes so much sense. In this video, Corey Haines talks about the necessity of practice, and likens it to learning a guitar. You don’t just play a song right through first time, and then move on to another. You need to spend time practising the chords, and changing between them.

Road Thoughts – Practice from Corey Haines on Vimeo

In the same way, as programmers we need to sharpen our skills by doing little practices (sometimes called katas from the Japanese word 型 meaning ‘form’) and repeating them over and over until we get them just right. The skills we learn during practice will be ready to use when we need them in a real project.

The atmosphere at Eden has changed recently as people are taking it upon themselves to learn new skills and practise katas. Suddenly we’re all looking at each other and thinking “I don’t want to be left behind!”. Just as Uncle Bob said yesterday:

You raise the level of professionalism in your company by raising yourself. Refuse to stay where everyone else is.

- @unclebobmartin

That said, i still find it very hard to motivate myself into actually doing some practising! There’s always so much ELSE to do, right?! I love the idea, but i need a bit of a push getting started. I need a mentor to guide me.

I have forked coreyhaines / practice_game_of_life on github and got as far as running the cucumber specs. At the moment i’m not really sure what to do next but i’m mulling it over and will hopefully make a start on coding something this week. I’ll probably completely mess it up a few times and have to start again, but hey, i’ll learn a lot from it! That’s the whole point of practising, isn’t it!

I will update here to let you know how i get on! :)