Coding Tour – Stop One – React.js with Clare Sudbery at Thoughtworks

selfy

Thursday 19th October. Manchester, England. It’s raining.

I’m on my way to meet up with Clare Sudbery at the brand new Thoughtworks office. I’m nervous, really nervous. I’m about to pair program for two whole days for the first time in many, many years for the first stop on my Coding Tour[1]. Not only that, we are going to use a programming language I don’t know, running on an environment I’m not used to, using tools that I didn’t even know existed. Last night we had to change our original plan of action, because I got half way through installing ‘all the things’ on my Mac and had to stop because it refused point blank to go any further without my upgrading my OS, and I hadn’t backed up in (cough) almost a year[2]. Doh. Rookie error. The whole thing started to seem like a really, really silly idea.

Luckily Clare is a friend and I happen to know that she used to be a Maths teacher and she loves both tech and explaining complex things to others in almost equal measure. Plus she is as keen as I am to help get more women (back) into tech, and we both love a good experiment.

We start (Clare’s brilliant idea) by sharing what our aims, prior knowledge, and concerns are and using these to create some guidelines for how we are going to work together. I add an “insights’ wall so we can collect our thoughts in written form as we proceed.

 “Our aim…to have fun doing tech”

Our aims are quite different, apart from one – to have fun doing tech. Clare wants to know if she can help a woman to relearn tech skills, and how quickly. She also wants to explore whether she can learn and teach at the same time. I’m interested in how easy it is to return to tech after a long break, what skills I already have that will be useful and what skills I don’t have but will need. I also want to log how the experiment feels as we go along.

aims

 “Many of our concerns mirror each other”

It’s fascinating when we log our concerns, as many of them mirror each other. I’m concerned I might not know enough, Clare is concerned that SHE might not know enough. Clare is worried that she might get over-excited, so am I. Clare has a fear that she might go too fast and I truly don’t know if I’m still clever enough to do this kind of work post-kids and post-menopause. I’m concerned that I might be annoying; ask too many questions; not be great at turn-taking. Clare is nervous that she might be impatient.

concerns

This is a great foundation to lay some ground rules. We decide on the following:

  • We are allowed to get things wrong
  • All questions are OK
  • Be kind
  • It’s OK to ask: “Do we want to do this right now?”
  • Excitement is good.
  • It’s OK to take breaks

We chat a bit more before we kick off and realize that we will be learning together, which might make it easier or could make it harder. Also, that we are exploring and don’t really have a super firm goal (Clare had the great idea of starting on an app for menopausal women to diarize and track their symptoms and look for patterns, with a view to continuing the work we do at a hackathon later on, but there is no pressure to get anything finished). Both the learning and the lack of pressure make me less concerned that I might be a burden but I’m still crushingly nervous.

And we’re off…..

Holy crap there are a lot of things to set up. I already have a GIT account in preparation for the next stop (more about that in a future post), but we install Github desktop, ReactNative, nodejs, Atom, QUIK, mocha……..There is so much learning to be done and I find one of the biggest challenges is creating and maintaining a mental model of which does what and how they fit together.

We decide to do a reactJS tutorial together to get us started. I mostly drive and try to cut and paste only minimally as typing code and commands out in full definitely makes it ‘learnier’ (not a real word, but one we like). By lunch we have the start of a Tic Tac Toe game. I’m aware I have slowed things down considerably by asking a LOT of questions. Why would you push responsibility up the object stack? Why are we exposing that? Why are we coding the UI in the business logic layer? Why immutability? Why this convention? Why that one? Show me the code for that, and I’m such an OO purist. There’s lots of “yeuk! That’s so ugly! Hahaha”, “nooooo Javascript!!”. We laugh. Lots and there is so much to learn. We’re having heaps of fun.

“I’m worried I’m asking too many questions, Clare realizes she has got out of the habit of questioning things in depth”

At the end of the day we make time to add insights to the wall. I’m worried that Clare is bored and I am asking too many questions, Clare posts up that she is enjoying exploring things and having to really think about WHY. She realizes she has got out of the habit of questioning things in depth.

 Day 2. Still raining.

Yesterday we finished the tutorial and created an initial backlog of ideas for an app, so today we are ready to dive in. I have a couple of eureka moments and even dredge a few unix commands from my deepest memory that Clare doesn’t know. Her turn to be dogmatic: “mv? MOVE? But we’re renaming it, not MOVING it!”. More laughter.

We’re doing TDD now. I’m in my element. I’m using skills I forgot I had – seeing ways of slicing the work super thinly, writing tests in baby steps, getting them to pass. We are finding areas to explore together. We get to look things up on the internet – something that wasn’t much of an option when I was first a dev. What a luxury!

I have been asked to give an informal talk on Neurodiversity at lunchtime so we have a coding break. In retrospective, although I love raising awareness, this was pretty distracting and made for an exhausting second day. However, it is only while I was talking that I realize I have really liked side-by-side pairing today, because I don’t have the additional work of eye contact and decoding expressions and body language[3].

“I’m so lucky”

By the end of the day I’m so excited and enthused. I still love tech! I have learnt so much from working with Clare, not least that syntax…well, it’s just syntax and errors can be picked up by the editor or the debugger or by your pairing partner, or looked up. It’s learning new concepts that’s the tough part, especially when they fly in the face of what I knew before. Having a partner who is happy to break off to explain in depth why we now do things in a particular way has been priceless. I wish I could come back tomorrow and continue, but the journey home calls.

Clare has been amazing, even with a cold that had her almost losing her voice by the end of day 2. We retrospect and write our final insights before we call it a day and I rush to the train.

insights

[1] What the heck a coding tour is anyway.

[2] I realize this is very irresponsible and shall back up the second I get home. Maybe.

[3] I’m autistic and making eye contact whilst trying to think deeply is incredibly difficult and tiring for me.

Advertisements

6 Comments

  1. Love it! Glad you enjoyed the two days and learned lots (about yourself too) along the way 👍👍😁😁

    Cheers, Donna

    Sent from my iPhone

    >

  2. I’m a perimenopause woman working in tech in an office with several guys at least ten years younger than me. Your project is setting a fantastic example for those of us with long experience and lots of curiosity but less exposure to the flashy and new.

    I am so happy to be reading this. Really looking forward to the next installment.

  3. Hi Sal,
    Really glad you are writing this too. I briefly wrote a few dozen methods last year using Ruby (not Rails) to handle some of my business accounting work/bank account downloads… I got Christophe Thibaut to help me out and I learned and used TDD while doing it. It was thrilling and fun after so many years not coding. That’s as far as I’ve gone for now, but I would definitely do it again if the chance came up.
    Kudos and I look forward to more.
    Andrea

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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s