How do you get to Carnegie Hall? Practice, practice, practice!

Posted on Posted in Engineering, Insights and Research

Written by George Boyle
Lead Android Developer


That’s what they say; the implication being that if you want to get somewhere worthwhile you need a remarkable level of persistence. That may be true, but I say it’s not quite as simple as that. If you don’t adequately reflect on yourself and your motivations, you can easily get lost on the way.

 There’s a saying that’s generally attributed to a golfer, though there seems to be a debate as to its origins, or even to which golfer said it. In one version of the anecdote, Gary Player was accused of being lucky after holeing three bunker shots in a row, to which he replied:

“Well, the harder I practice the luckier I get”.

Wise words indeed! But I have never found it to be simply the case that a larger quantity of practice equates to better performance. For me, practice is a process filled with spikes and dips; barriers, plateaus and breakthroughs. And sometimes those breakthroughs can completely change the complexion of the thing you are practising. In that case, it helps to step back from time to time and re-evaluate to make sure you’re focusing on the right things. My own example of this pertains to the game of Sudoku, which I began playing pretty regularly about three months ago.

The Game

Sudoku is conceptually very simple. For the uninitiated, it consists of a 9×9 grid of cells and the object is to fill each row, column and 3×3 sub-grid with the digits from 1 to 9, each of which by necessity can only occur once in that row, column and sub-grid. The level of difficulty is determined by how many and which cells are already filled in. The idea, and one of its main appeals, is that you can find the answer by logic alone — in other words, you don’t try a number and continue until you get stuck, and then go back (though admittedly, I have in the past been forced to resort to that). Also, for any puzzle there is one, and only one, correct solution.

Up until recently I would only play Sudoku very occasionally, mostly in situations of alleviating boredom, like long-haul flights. What started the most recent encounter was when I was visiting a good friend of mine, and he had a particularly horrible specimen partially completed. He and I sat in his living room, with a movie playing in the background while both of us stared piercingly and unwaveringly at his laptop, willing it to present an epiphany that would lead to the solution, but it never came. Every so often, one of us would think we had cracked it, but as soon as we tried to articulate the logic and explain the case, it fell apart. The challenge of it was both infuriating and irresistible. I was hooked, and shortly afterwards I installed the Sudoku Free app, so I could engage the torture at my convenience.

After being initially baited by the challenge, I played for the enjoyment, and to pass the time. The hook that kept me coming back over a longer period was incredibly simple: a leaderboard of my own top ten times, that would appear automatically as soon as the puzzle was completed. This naturally lead to setting simple and achievable time-based goals like: get all the top 10 under 5:00; get the top 3 under 4:30; get the top time under 4:00. The constant progression made for quite an addictive experience, and I would say that this definitely caused me to play more than I would have otherwise.

The easy versions of the game can be solved using a couple of very simple techniques, that all involve looking at the numbers and using a process of elimination to find the cell. The logic runs along the lines of: “In this sub-grid, 9 must be on the bottom row because the top and middle rows already have a 9 in the sub-grids on either side; and 9 must be in the right-hand column because the other two columns on the bottom row are already filled in; therefore 9 goes in the bottom right cell”.

Game Changers

For anything beyond the easy puzzles, the opportunity to use the logic described above is rare. To progress to the stage of being able to tackle them, we need to learn and develop some more advanced techniques.

Pencil marks are used to keep track of what the candidate values are for each square. You can reason about these pencil marks independently of the large numbers. Also note that when the number 9 is selected, all squares that have 9 as a pencil mark are highlighted as well. This allows reasoning based on the visual pattern independent even of the pencil marks themselves.

The basis for most of these is the use of “pencil marks”, an allusion to the pen-and-paper version of the game. How it works is that, for each cell, we mark all the possible values for that cell in a small size with a pencil, to keep track of them. The game then becomes about reasoning away the pencil marks in each cell until one remains, which must be the correct number. This causes a natural division of playing the game into two stages: the “Add” stage, where we fill in the pencil marks; and the “Remove” stage, where we use reason to whittle down the pencil marks enough that we can fill in the big numbers.

The next game changer came as a response to hitting a plateau in the existing technique. I had got to a point where my entire top ten were around the six or seven minute mark, but it was getting harder and harder to get on the board. So I decided to try a new technique. The Sudoku Free app gives a nice visual cue where, when a number is selected, it will highlight all cells that have a pencil mark with that number. Because of that it’s possible during the “Remove” stage to make some inferences on that basis without looking at the pencil marks at all. There was a period of time where I was trying to develop the technique that my times and consistency disimproved dramatically, leading to hours of frustration, and I questioned whether it was ever going to work. Eventually it did, and within about an hour I beat the entire top ten by over a minute.

At this point, it’s worth remembering the goal that is driving and motivating my continued playing of the game — and that is improving the condition of the leaderboard. With that in mind it’s obvious that, if at some point in the game I know that the time isn’t going to make the leaderboard, then there’s no sense in continuing. Even within the same level of difficulty, there are some games that will just “fall out” nicely based on the techniques I use, but others will take more work. Inevitably it’s the former ones that will end up on the leaderboard, and the latter won’t. I found that I could often make that determination pretty soon after the “Add” stage. So the new game is a very different type of numbers game, where improvement comes by quickly abandoning games that aren’t going to turn out in a good time, and instead exposing myself to a higher number of games so that I’ll get through more of the ones that will just “fall out”.

Now this really is a seismic shift in the very essence of the game. To me, this reality makes the game is a bit less “pure”. In some ways, I regard it almost like cheating, even though no rules are being broken. I think what it comes down to is that the personal attributes that are tested at this level are totally different to those when I started playing. Back then, each game was a test of logic and reasoning; now it’s about persistence, concentration, and physical considerations (Yes, I’m serious!..these days, I need at least a few games to warm up my fingers before I can get anywhere near the leaderboard, and there’s no point in playing at all in a cold room!). It’s effectively a performance, one that requires getting psyched up for in order to smoothly complete the puzzle without physical or mental stuttering. That is fine in and of itself, but I guess you could say it’s not what I signed up for.


So the question arises: why I am still playing? Well, the truth is that I play a lot less often now than I used to. I think the reason is that the reward of getting on the leaderboard these days is inadequate compensation for the increasing effort. I believe it’s certainly true that the more you are made to work for something, the more you will value it, and there’s no doubt that when I do get a time on the leaderboard now, the satisfaction is large. But it takes such a long time of playing to get there now that it’s not worth it from an enjoyment perspective. The game was originally meant to be fun, but instead it is becoming a bit of a chore. In truth, the only thing keeping me at it now is a small amount of habit and a larger amount of stubbornness. So where do I go from here? The way I see it, I have a few options:

1. Go pro

Yes, there is such a thing! I could decide to take this seriously and dedicate more and more time to practice, learning and developing new techniques…somehow, I don’t think I have the stomach for that!

2. Stop playing

If the game isn’t providing enough enjoyment and instead is getting more and more frustrating, then deleting the app and not playing again is an easy way to solve that problem.

3. Revisit the goal of the game

I believe what lead to this issue in the first place is that the goal of getting on the leaderboard is too simplistic. It is a cold metric that doesn’t take account of the fact that the game should be fun above all things, certainly when it’s being played as a pastime. Playing without regard to the time releases the burden of having to hurry, and particularly awkward puzzles can be attacked instead of being abandoned.

And this is the crucial point, in my opinion. By allowing myself to be hooked by the cheap thrill of seeing my time on the board, I lost the part of the game that gave me the most value…the satisfaction of getting to the bottom of a tricky puzzle.

The lesson I take from this is the importance of setting aside time every so often to reflect and to identify the motivations for persisting at a particular practice. Is it being done for the right reasons, or is judgement being impaired by compulsion, or some goal set in the past that may be misguided or no longer relevant? Are you afraid to turn away from something that’s not doing you any good because of the amount of time and effort you’ve already invested in it? It’s easy to be bound by past decisions and old habits.

The same principle pervades at work too. On an individual level, I occasionally get an urge from somewhere to revamp my development practices. On a higher level as a development team, we have on one or two occasions in the past got stuck in situations that caused us to be ineffective for a time, like a feature that didn’t quite work as we originally intended. It is tempting to blindly stick to the original plan in the hope that it will come out as intended. But the problem can manifest as a general malaise, where everyone in the team loses some of the lust for the task. It has taken some brave and dramatic decisions to identify what’s going on and shake things up, even abandoning a feature we might have been fond of at the outset. But every single time, acting has turned out to be the right thing to do, and it clears the way for the next stage of progression. I think we have been good at that in the past, and always try to do it better.

When advances come at a rapid rate, it’s easy to stay engaged and interested. But ultimately, continued improvement comes not only from throwing more time at a problem, but from practising right as well as practising hard. And in my experience, a waning enthusiasm is a good indicator that it’s time to step back and make some changes. Until then, keep practising!

Thanks for reading. If you’ve enjoyed this post, please recommend and share it! I would love to hear your thoughts so please leave me a comment in the box below.

George Boyle,
Lead Android Developer @Soundwave


Leave a Reply

Your email address will not be published. Required fields are marked *