If It Sounds Right

One of My GuitarsWhen I first starting learning guitar, before I had a teacher and was just using books and videos to learn on my own, I worried whether I was learning good technique. I admit to obsessing a little bit about the shape of my grip, the arch of my fingers, whether I was fretting cleanly enough or not. I suppose I was carrying over assumptions I had from other skills into the pursuit of the new one. When writing software, there are definitely more and less correct ways of putting a program together. A lot is bound up in language and tool choice, often in terms of certain idioms that both affect correctness but also readability of source code.

A couple of months along, I decided I would benefit from a teacher. I didn’t really reflect on this choice but thinking back, I suppose it was motivated in equal parts by the desire to want to progress a bit faster than I was on my own and by that worrying over proper technique. One piece of advice I kept encountering was to make sure that whatever I was practicing, I should make sure I was doing so correctly. After a little searching, I found a local teacher with stellar online reviews.

My guitar teacher is great. He seems to have an intuitive grasp of when I need to refine something in my practice or am ready to stretch out and tackle something new. At first he took a little while to understand my tastes and interests. Some of that was no doubt do to how much those tastes have been changing and growing in the last year or so. Lately he has been supplementing more structured skill work with learning songs I enjoy, showing both the applications of the techniques I am learning and rewarding my efforts with playing real songs as opposed to simpler studies.

I expected from the start that my teacher would pay close attention to my technique and correct minute imperfections. This is how I learned Tai Chi, with an eye towards correctness, one that progressively looked deeper and deeper into form and movement. Brewing has involved close attention to key variables in the process, ensuring good control as well as exercising good taste. Why would guitar be any different?

A few months into my guitar lessons, we finally discussed my expectations, briefly. I had already started to realize on my own that there was something different in approaching guitar so really we just confirmed a certain truism that is common among musicians: if it sounds right, it is right.Basically, my teacher just confirmed this notion and we got back to the business of producing right sounding notes.

For most guitarists, certainly at my level of just gaining some basic fluency, the result usually far more important than the way it was produced. Guitar reinforces that because it is such a flexible instrument. The same note can be sounded on several strings. Chords can be constructed and varied in an infinite number of ways. Realizing this, I understand that training of the ear and using judgement takes priority over particular technique.

How can we draw a parallel with programming? Certainly when creating software for regular people, there is definitely a sense of what seems right trumping hard and fast engineering precepts. If someone sitting down at an app cannot figure out how to make best use of it, like a muddled or disharmonious tune, then it has failed. I suppose even the compiler could be thought of as enforcing a similar, if more rigorous, critical evaluation. Witness single line programming, underhanded and obfuscated contests that play with the plasticity arising from language rules and semantics while still producing something that can by some definition be deemed “right.”

What role, then do the volumes of text on correct theory and practice, for coding and guitar both, serve if ultimately the prime criteria admits so much variation?

If you are working with others, either to make some software or some music together, than a better understanding of your craft is invaluable. If you want to advance beyond a certain level of competence, as well, and tackle the greatest challenges, and hence feel the most keen depths of accomplishment, likewise you’ll need to cultivate an expertise beyond just a reasonably critical ear or eye.

Technical skill is a large part of the vernacular of a pursuit. To talk about challenges in programming, it helps to have clear and accurate terms and phrases. I have certainly struggled with some subtle aspect of a bit of code, for instance figuring out the right data structure, or kind of code to hole some information, that makes working with data simple, clear and effective in terms of code complexity and efficiency. When I don’t stop and really listen closely to someone trying to help me, I end up spending more time, struggling harder, than when I recall my fundamentals of computer science and theory. In either case, I usually get there, improving or fixing my program, but when I leverage the full depth of my technical mastery, I get there sooner and with much less stress.

I am only just learning music theory but see a strong parallel. Most times when I am learning a piece of music with my teacher, I have to trust the music as written and his recommendations of where I can vary from it. As I have been reading about scales, intervals and the basics of chord construction, I am now able to think back and understand my teacher’s guidance. I can easily foresee a day where my grasp of theory lets me interpret and improvise much more easily than I can now. Knowing the theory increases my appreciation even if I have to rely on trust more than a skill, or lack thereof, to reverse engineer a piece or part of a piece and really, rationally understand why it works.

The sound of a song, or the user apparent function of a program, is still important but truly understanding the hows of producing a result both deepens the ultimate appreciation and allows for even more nuanced play in both cases. The interplay between correctness and playing to ear yields a far more interesting result than hidebound adherence to trade craft. Strict formalism is sterile. Grit yields joy. In a song, that’s a catchy lick or memorable chorus. In code, it is a program that delights, that allows you to do something or something more easily while to the source code reader reveals a fun-loving and inspired mind.

Keep on Walking

8286401024_e0441285ef_oI woke up late this morning, at least late for a weekend. Despite sleeping in, my mind and limbs felt heavy. I skipped my usual habit of making myself breakfast from scratch, instead throwing something frozen in the microwave. Out the window, the neighborhood was gray, wet from overnight rain. I felt unmotivated to keep at another, more recent habit, of taking brisk walks on as many days as I can. I will be traveling this coming week, I knew I should get out of the house to walk when I have the time and space so I feel less bad if I have to skip a day later on.

(Photo by Derek Adkins. Used under a CC-BY-SA 2.0 license.)

The sun broke out for a moment a little later in the morning, painting the houses across the street in warm, liquid gold. That sight was all the invitation I needed. Once I started moving, it was easier to keep moving. I have mapped out a few different routes, of various lengths. I can choose based on the time and my motivation on any given day. Better yet, the routes overlap. I can make a decision in the moment, to head home sooner or to push myself, to get my heart rate up a bit more, for a bit longer.

Today I chose to take my longest walk yet. I am proud of myself. A parade of chill and drab lawns and homes didn’t dissuade me. Having the choice of a quicker loop counter intuitively invited me to choose the longer loop. In the home stretch I contemplated that decision for a bit, how just putting myself in a situation to make smaller, more active choices lead me to a better outcome.

Just like I shared in another recent post, I broke my problem into smaller pieces. More than that, mulling over those pieces while in the midst of them helped me make a connection. I realized at least one reason this idea works, for my anyway. I made a connection between a powerful idea and putting it into actual practice. I had an experience I will try to keep in mind as I contemplate larger projects, whether they are writing or coding. I will try to find parallel experiences that bolster this perspective of a series of simple choices.

As a budding musician, I have been thinking about a phenomenon that I realize is similar. I am best able to play a song without sheet music correctly when I don’t think about the whole song. Rather, the playing flows best when I am just anticipating the next change. I had very similar thoughts the last time I was actively studying Tai Chi. Dozens of poses are daunting all together but when in the midst of doing them, just remembering the movement to the next pose is all it takes to get through to the end.

I have been returning to reading technical books, as part of my renewed focus on coding. I have worked through more than a few short exercises and tutorials. I can bring a greater awareness and intention to these efforts. I can choose both short, attainable chunks for each time I sit down to chip away at refreshing an old skill or tackling a new one. Better yet, I can give myself some possible next steps, an invite I will just as likely accept to continue working for a little while longer, with more energy and focus.

Ironically, I had a topic on my writing list for I don’t remember how long, on the loss of motivation. Today by holding to the thoughts that occurred to me while out walking, I was able to present myself with another easier step. I have some more ideas in my notes for this topic. I took the first step by putting my butt in the chair to share some fresh experiences and thoughts. I will no doubt feel less inertia to overcome when I return to this topic, to talk more about what causes loss of motivation and other ideas for restoring it.