Hacker News new | ask | show | jobs
by yangez 4473 days ago
> Programming, like writing, painting, and music, is chiefly a creative endeavor not a technical one. Practice... will not make you a substantially better programmer. It will just make you more efficient with your tools.

Show me a world-class writer who doesn't obsess about his writing with every waking moment.

Show me a master painter who doesn't paint every single chance she gets.

And show me a music prodigy who hasn't slogged through 15 years of mind-numbing practice every single day.

Only then will I believe that these artists are just getting more "efficient with their tools".

In creative fields, it's even more important that you put in a huge volume of work. That's the only way to connect the dots and create something truly unique.

14 comments

Consistency my friend. Murakami's routine which involves him running for the first half to the day, then write and then chill with sexy-time Jazz music at time at night and turning in,

http://dailyroutines.typepad.com/daily_routines/2007/07/haru...

I could give you more examples of writers, Joyce Carol Oates , Michael Crichton but same thing basically. Also note that Murakami didn't start writing until 29 and loafed around at the public library chill in' and reading' and at Japanese jazz cafes. As far as I'm concerned, I'm a prodigy and workaholic at 27 for starting so early.

Also in regards to music, others can comment as I'm not an expert. But I've wasted 2 years of my life doodling around scales, ear training and music theory focusing on speed, dexterity and memorization, attempting to learn how to improvise like the greats. That I never taken the time to listen to the groove of the great pieces, sounds wonky but I decided that if I never can become a good musician, at least I could slow down and learn to enjoy the music as opposed to the idea. And I enjoy listening and playing much more now and don't give two-shits about how my solo's sound and just keep playing. And in the small moments of self-delusion inspired by bluesy turns, my own playing gives my deluded mind a self-congratulatory chill to the spine.

And in regards to programming, let's be real. CRUD or iOS apps are not going to change the world. We are like the capitalist work-bees, shoveling digital snow around like escorts shoveling sensual snow. If we are really secure enough to want to dive into our craft, then learn Linux kernel, compilers, advanced algorithms and contribute to the bottom of the stack for a change instead of fluffing snow at the top.

Everything you said was golden, until the last paragraph.

<sarcasm> Picasso really should have stopped faffing about with his silly brushes and gone to work in a canvas factory instead. The world really didn't need another bloody painter. </sarcasm>

I agree.

However, most guitarists get paid to provide pleasant background music at weddings. Making money writing and playing Purple Haze is a (boom-and-bust, drug-induced) outlier. Master artists aren't employees of Paint-o-Corp who get paid salary in exchange for the rights to their creative output (even if it's side-projects).

If we want a sustainable population of healthy, balanced engineers, we need to adjust our expectations for the typical coder.

"we need to adjust our expectations for the typical coder"

Minimum 5 years experience in Rust, Go and ClojureScript.

Roald Dahl is a great example of a prolific author who would write perhaps 4 hours a day and would spend the rest of his time drinking, relaxing, and tending to his farm. As far as I know, a casual pace like that is pretty common among writers - though maybe not to that extreme.

Slogging through 15 years of practice every day is a technical endeavor. If you need to learn how to do something or to master a technical skill, then yes, volume of work will get you there. Code is a tool that is used to create, and I think the quote you selected just serves to underline the difference between learning how to be an effective engineer vs learning how to become an effective technician.

Edit: constant practice is definitely important, but relentlessly working is not.

>And show me a music prodigy who hasn't slogged through 15 years of mind-numbing practice every single day.

Can you really be called a prodigy if you've been practicing every day for 15 years?

I agree that you must put in time to get better, but I think the difference with programming is that more hours does not necessarily result in getting better. Actually, now that I think about it, maybe that's no different than the examples you provided. If you practice violin 14 hours a day, will you really be better than you would if you practiced 8 hours a day and spent the other 6 doing other things?

When programmers get beyond a critical daily/weekly threshold, putting in more hours hurts more than it helps. The brain gets tired of solving problems, and when that happens, pushing yourself further is not the answer. The answer is to do something else, especially something involving physical activity, to allow your brain time to recover.

I believe that many programmers fundamentally do not understand this concept, thus they drive themselves crazy trying to push harder and harder. Yes, you may write more lines of code that way, but at what cost?

I love this[1] interview of Eubie Blake by Marian McPartland for many reasons, but the part where he describes how he at 93-years-old still does daily scales on the piano just goes to show the importance of persistent training in artistic endeavors. I'm a lazy bastard, but I'd only be fooling myself if lack of complete dedication to my craft didn't come at a price.

That said, I have no sympathy for a company that expects to hire a Yo-Yo Ma for the salary of an amateur band member.

[1] http://www.npr.org/2012/10/19/123385170/eubie-blake-on-piano...

I think there is a middle ground between the OP and your comment. I agree with you that the best way to get good at programming is to program. But I also agree with the OP that having other hobbies, interests and letting your mind work on different things will also help you. The ideal balance is some mix of side projects and hobbies.
What if there is just another dimension to this?

OP could be wired to be very productive if he doesn't have side projects and instead focuses on hobbies.

yangez's examples (parent of your comment) could be wired to only be very productive if they do nothing but become immersed in their work.

What if some of us can only thrive with imbalance by nature?

> Show me a world-class writer who doesn't obsess about his writing with every waking moment.

> Show me a master painter who doesn't paint every single chance she gets.

Well, there's Dante Gabriel Rosetti, who decided one day to give up painting and become a poet. While he is remembered more for his paintings than poetry, his poetry carries with it the essence and soul of his paintings as well as the imagery. He decided to paint with words. I don't think he obsessed about writing all the time. As he put it, though, "A sonnet is a moment's monument."[1]

This gets at what I think is an important point though. All of these creative endeavors require real-world knowledge. Hemmingway went out on adventures. For Tolkein, writing fiction was not his day job (teaching about medieval literature and linguistics, however, was). You can see their respective works that the live of the writer and the other obsessions beyond writing are what make the author.

Similarly with programming, yes, it is a technical endeavor and yes it is a creative one. However just like writing the great works of fiction, these don't come out of nothing. They require a context grounded in other knowledge and experience.

[1] http://web.ics.purdue.edu/~felluga/medievalism/areading.html Note that this was the introductory sonnet to "The House of Life" which chronicals Rosetti falling in love, getting married, coping with his wife's death, and finally finding solace in his religious worldview. The poem, despite its abstract nature is full of classical Greek imagery and something one could probably write volumes about. At the same time, it is an exposition on why he wrote poetry, and it provides the framework for fully understanding the hundred or so sonnets in The House of Life in that way. There are love sonnets, and sonnets which, as he puts it "in Charon's palm it pays the toll to Death" (i.e. allowing the dead and the living to begin to move on).

So your argument is that the primary difference between geniuses and the rest of schlubs is sheer volume of rote practice? I think you're confusing creativity with tool proficiency.
I don't think programming is that much like painting (more than any other craft), but I do think deliberate practice is at the heart of mastering any craft.

More than putting in a huge volume of work, you have to work hard and deliberately at improving every day. That doesn't take (and can't be sustained) for more than a few hours a day, and all other activity is nowhere near as important for development.

As some sort a of music prodigy according to certain people, I'd say you have a point. I've certainly put in a ridiculous amount of time in music "just for fun".

At the same time, to create something great you do have to stop practicing and go back to what you know best and what inspires you.

Hemmingway wrote for six hours every morning and then went fishing for the rest of the day: http://www.moodymuses.com/2009/02/lessons-from-ernest-heming...
you omitted a pretty key clause with those ellipses. in its entirety, the quote from the article is clearly targeted at api churn and similar things thrashing everyone's personal caches, not practicing programming in general.
>And show me a music prodigy who hasn't slogged through 15 years of mind-numbing practice every single day.

I think you'll find most music prodigies spend hours lost in playing beautiful music. Very different from mind-numbing.