Image for post
Image for post
Photo by Max Nelson on Unsplash

I’ve recently had my whole ability as a programmer called into question. What has caused this personal crisis? trying to learn one of the most baffling languages around.

Clojure is a world away from languages like JavaScript, Java or C#. Firstly because it’s a completely functional language. Secondly, because the syntax is well, weird.

To get an idea of what I’m on about. Let's have a look at this simple function to find anagrams.

If you are reading this as someone who already knows Clojure or another LISP dialect. You will probably know exactly what this does, but I hope those who have not done any Clojure or LISP before will agree that this is a little confusing. …

Image for post
Image for post
Photo by Emanuela Meli on Unsplash

Lambda village is the sort of place where nothing happens. In Fact, so little happens there that, Ada, the elder of the village, spends more time managing her pumpkin patch than she does worrying about town affairs.

Of course, why would anything happen in Lambda village, set on the great Alonzo plain, it’s a long way from the rest of the Programming Kingdom.

At the end of the plain, there sits the Imperative Volcano. The Imperative Volcano is the sort of place where the best days are overcast. On the worst days, great thunderstorms strike the volcano. …

Image for post
Image for post
Photo by Djim Loic on Unsplash

Somewhere in an office far far away.

I’m starting work on my new ticket :) All I have left to do is to estimate how long it will take.

Why?

*Rolls Eyes* Isn’t it obvious! the business needs certainty around how long the ticket will take.

And you think an estimate will give it that certainty?

Well yes, I mean not a complete certainty. Some projects like HealthCare.gov, Universal Credit and NHS Connecting for Health estimates were wrong.

When is it right?

Err. sometimes.

Can you name a time?

No.

So we have something that is regularly wrong, and we’re using it to give the business certainty.

Fine! Fine! Fine! They’re not perfect they are ‘Fast and dirty’

That just sounds like another word for wrong…

Fine, they are a ‘finger in the wind’.

Oh come on, everyone knows they aren’t perfect.

Do they?

Yes, everyone is aware. There are all sorts of things that go wrong. Nobody expects estimates to be perfect. That is what the word estimate means.

Have you ever bought anything off amazon?

Yes.

Image for post
Image for post
Photo by Hello I'm Nik on Unsplash

And when you order does it give you a delivery estimate?

Yes.

And when the order takes longer than the estimate, what do you do?

Complain.

Oh. It’s just an estimate, everyone knows that there are all sorts of things that can go wrong. …

Image for post
Image for post
Photo by John-Mark Smith on Unsplash

Like most people, I have a hard time understanding Functional Programming. Following the same path as many others. I spent hours scratching my head watching youtube, reading blogs and attending talks. All in aid off a finding better understanding.

But, In a surprise twist. The thing that joined all the confusing dots together was not an oracle of our craft, Nor was it hours of study. Instead, it was something that, as a Mancunian¹, I do a lot.

Make Tea

Before you think I’ve gone nuts, let me ask you a question.

How do you make a cup of tea?

Well making a cup of tea has a few steps. To start with, Lets put some water in a kettle. …

Image for post
Image for post
Photo by JESHOOTS.COM on Unsplash

I’d like to introduce you to someone, His name is Frank.

Image for post
Image for post

Frank is a developer. He lives in a fictional land that’s a lot like the one you live in. Frank works for a company that’s a lot like yours, in the team like the one you work in.

Frank understands is that knowledge on development teams looks like this:

Image for post
Image for post

He knows a bit about the system he works on. There are some things about it that only he knows. Others know things that he doesn’t. No one person knows everything- even a majority of things.

So Frank would like to do two things…

Recently while browsing Twitter I stumbled on this tweet by Kent Beck:

Given the huge positive impact two of Kent Beck’s other creations: Extreme Programming and Test Driven Development, have had on my career. I was keen to learn more about TCR and give it a try. A day later I was excited to report back to Twitter with my findings.

Maybe a little too excited:

Cringe aside, Having played with TCR for a week or so more. I’m ready to retro my experiences with TCR.

So What is TCR?

TCR Stands for Test && Commit || Revert. I’m not going to go into to much detail on it here. Those looking for a detailed introduction might want to get it straight from the horses mouth. …

Image for post
Image for post
“selective focus photography foosball table” by Bruno Aguirre on Unsplash

At Compare The Market we use a range of great high-quality dev tools. I feel completely spoiled by the set of tools placed at my fingertips. Even still, one of these tools towers above the rest.

It’s the tool that leads to the greatest returns on productivity, better than my top of the line MacBook pro; better than my heavily customised editor; better even than my badassified shell

And here it is:

Image for post
Image for post

That’s it, I’ve not uploaded the wrong photo. The best dev tool that I can recommend is a foosball table.

Before you write me off as mad hear me out. Below are three reasons why a Foosball table really is the best dev tool that money can…

And what I did about it.

Image for post
Image for post
Photo by Sean Patrick Murphy on Unsplash

Back at university the jobs world seemed like a very different place.

As somebody with no work experience, when looking for my first programming job:

  • I felt anxious about the Idea of getting a job.
  • I struggled to communicate a convincing message in interviews.
  • I lived in a world where finding a job was an ‘If’.

5 years later. The world is very different. I feel confident in the workplace, I have an awesome gameplan for interviews. If I decided to make a career move I would feel confident that I would find a good Job in a reasonable timeframe.

This is of course down to 1000 different small learnings and actions. But there is one realisation that towers above all others. …

Image for post
Image for post
Cast of can’t pay?’s faces after reading your code — from DCBL twitter https://twitter.com/DCBL_UK

If you watch daytime TV in the UK, Then you might have seen Can’t pay? we’ll take it away or Can’t pay? as it’s affectionately known by it’s fans.

Can’t Pay? follows a group of High Court Enforcement Officers (Called sheriffs in the states) as they enforce High Court writs — judgements by the High Court that one person owes some other person money.

As the shows title so elegantly puts it — If you can’t pay we’ll take it away — In other words if you don’t pay the money that the High Court demands of you then the agents can remove goods of a value high enough to cover the debt. …

A conversation about comments.

Image for post
Image for post
“Close-up of a person's hands on the keyboard of a MacBook” by Glenn Carstens-Peters on Unsplash

What is a comment?

A comment is a line in your source code file that can be read by developers but is ignored by compilers and interpreters.

What’s the point of that?

Code is often hard to understand. Adding descriptive text allows developers to explain their code to those who will maintain the code afterwards.

Need proof? Take the uncommented code below:

This block of code does several things. The result is that it is difficult for programmers to easily understand what it does.

Now consider the same code with comments.

Doesn’t this seem so much easier to understand than before the comments were added? This is because a comments describe what the code is doing. …

About

Sam Fare

Senior Software Engineer at booking.com. Also do tweeting: https://twitter.com/SamuelFare

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store