Live data from Hacker News

The Benjamin Franklin method for learning more from programming books

pathsensitive.com

91–100 of 105 posts

Re: The Benjamin Franklin method for learning more from programming books

#91
post #80

Earlier quoted context omitted.

Q. Who are the great programmers, with inimitable or at least unmistakable and unique styles? Is there such a thing, as happens with music improvisers, composers, artists, writers?

I find that "great programming" is less about the style of the code itself. That part is craftsmanship, which beginners do poorly, but once you learn it, you've learned it. Expert coders may have differing styles, but it mostly just looks like "good style". Like how two expert carpenters might make slightly different style of chairs, and you can tell that both are made really well, but neither style is distinctive en…

So, less emphasis "neat/readable organization symbols in a particular file" (though it's still important) and more emphasis "neatly organized abstractions enabling broad application"?

I often find folks who prefer langs like C, or at least have a lot of experience with it, are better at that than Ruby/JS/Python folks who haven't used much else.

Re: The Benjamin Franklin method for learning more from programming books

#92
Perhaps, instead of reading Programming books, people should master the core tenets of programming first such as OO from such books as "clean code", "Code complete".

That will make it easier for readers to understand and retain information from programming books?

Re: The Benjamin Franklin method for learning more from programming books

#93
post #76

He doesn't really mention that the reason chess players and musicians can take more with each glance at a position/page is that they see in chunks, not individual elements - that comes from learning the patterns, e.g. in chess "short-castled white king with pawn on h3", in music "C7 chord with melody on the 7th" etc. It's just like adding more layers to a neural network, each layer building things from the elements o…

Learning to improvise jazz seems different to Franklin's method, in that you don't listen to a jazz great's solo, put it aside and later try to reconstruct it; you have to play it exactly, writing it out if necessary, and play it over and over until it starts to become intuitive; until the muscles learn it. I think that this Franklin method is basically how I learned. Jazz solos are not generally random; they are bas…

>not generally random

not generally? "not random", surely. And even if humans try to play randomly they couldn't.

>based on particular chords

Whether the notes used in a section are from the set of all 12, or a particular subset, is nearly, dare I say, orthogonal to the level of randomness. And even playing not based on particular chords can be highly random-sounding or not at all.

I didn't understand your last sentence at all; at least, what do you mean, likewise? Or the first half really.

Re: The Benjamin Franklin method for learning more from programming books

#94
post #80

Earlier quoted context omitted.

Q. Who are the great programmers, with inimitable or at least unmistakable and unique styles? Is there such a thing, as happens with music improvisers, composers, artists, writers?

I find that "great programming" is less about the style of the code itself. That part is craftsmanship, which beginners do poorly, but once you learn it, you've learned it. Expert coders may have differing styles, but it mostly just looks like "good style". Like how two expert carpenters might make slightly different style of chairs, and you can tell that both are made really well, but neither style is distinctive en…

Thank you, yeah, that sounds right; it's more like design than like art.

Also, in pg's essay Great Hackers he says that no-one knows who the best programmers are; you have to work with them to know just how good they are.

http://www.paulgraham.com/gh.html

Re: The Benjamin Franklin method for learning more from programming books

#95
I don't find the complete code examples to be that bad. Yes, if you just copy and paste and maybe tinker a bit you will miss a lot. If you type them in blindly like a secretary typing a dictation you will miss a lot.

But if you type them in, and study each line as you go, not proceeding until you understand what that line is doing and why it's there, a working example can be very helpful.

Re: The Benjamin Franklin method for learning more from programming books

#96

Earlier quoted context omitted.

Well, in jazz, you have your own individual style, people hire you because they like it. Sure, in different settings you adapt, but you still sound like yourself. It's the same with classical soloists. The ones that are famous, are famous because they don't sound like anyone else. Just a lot like themselves. Same with singers (rock, jazz, classical) - all well-known singers are very recognisable, and a lot of them ha…

Following the same style guide as your coworkers isn't the same as writing code exactly the same way your coworkers do. I suggest following the style of a bandleader works in the same way. Individuals still have a voice - think of all the great players who made a name in various Big Band orchestras - but the style is still unmistakably that of the band and not exclusively the individual. Unless you're Melkor or somet…

Sure, sure. We should differentiate the styles of the individual players, and the style of the group; two different things. I found it depressing, that suggestion earlier in the thread that one's style is always totally suppressed by the team you're on. Maybe I misunderstood; maybe that's stretching the analogy too far.

Although... when I was about 20 I went to see a fellow musician in their day job, programming in a company, finance/accounting-type stuff. It seemed so totally depressing I decided I never wanted to do programming professionally.

I guess there is the average, rank-and-file performer in the arts, like a 3rd violin in an orchestra, or player in a musical show, singer in a choir, (or my friend) where individuality is not required, just professionalism. That's like craft[0]. And then the music-as-art thing, like classical soloists, jazz groups, singers where the important thing is to sound like yourself (and to sound good!)

[0] I'm thinking craft in the sense Collingwood uses it in Principles of Art - craft (as opposed to art) is when you know beforehand exactly what final result you're aiming for and what steps to follow to get there.

Re: The Benjamin Franklin method for learning more from programming books

#97

He doesn't really mention that the reason chess players and musicians can take more with each glance at a position/page is that they see in chunks, not individual elements - that comes from learning the patterns, e.g. in chess "short-castled white king with pawn on h3", in music "C7 chord with melody on the 7th" etc. It's just like adding more layers to a neural network, each layer building things from the elements o…

Another Q:

It's been said about many things that they can't be taught, only learnt. (e.g. Botvinnik—founder of the "Russian school of chess"—said it about chess, I say it about jazz, Oakeshott's Rationality in Politics is about that)

Is that true of programming also?

Maybe that's what the article's saying—you have to learn for yourself. Well, there are typically a lot of Exercises in maths books because that's how you learn that stuff, by seeing for yourself, working things out, not from just being told it.

Re: The Benjamin Franklin method for learning more from programming books

#98

I've been reading the Norton Edition of Franklin's autobiography and some of the excerpts in the back of the book are pretty amazing. A lot of them pretty vicious European responses to Franklin's approaches, especially his list of virtues. For instance D.H. Lawrence: http://xroads.virginia.edu/~hyper/lawrence/dhlch02.htm

Hehe thanks, that was fun. Well, Lawrence ranted similarly about everyone, with enough truth to make you think for a moment he might be totally right. He got his schtick from his wife Frieda, who'd gotten it from a love affair with the Austrian psychologist Otto Gross, a "champion of an early form of anti-psychiatry and sexual liberation", "proto-feminist and neo-pagan" etc.

Re: The Benjamin Franklin method for learning more from programming books

#99
post #76

Earlier quoted context omitted.

Learning to improvise jazz seems different to Franklin's method, in that you don't listen to a jazz great's solo, put it aside and later try to reconstruct it; you have to play it exactly, writing it out if necessary, and play it over and over until it starts to become intuitive; until the muscles learn it. I think that this Franklin method is basically how I learned. Jazz solos are not generally random; they are bas…

>not generally random not generally? "not random", surely. And even if humans try to play randomly they couldn't. >based on particular chords Whether the notes used in a section are from the set of all 12, or a particular subset, is nearly, dare I say, orthogonal to the level of randomness. And even playing not based on particular chords can be highly random-sounding or not at all. I didn't understand your last sente…

I did not mean "random" in a literal mathematical sense. If I have absolutely no idea (or purposefully ignore) what the chord progression of a tune is, I could just start playing notes. It might sound good, it might not. It might sound dissonant in a pleasing way. But that playing would not be based on a theoretical understanding of the chord progression; it would be, in some sense, random -- unplanned, escaping traditional theoretical analysis.

You could play any note on any chord, and it might be what you intended. Let's say the chord is C major. You could play a C, for the root. Or G, for the 5th. Or Db, for a flat 9. Or F#, for a sharp 11. Indeed, any of the 12 notes would be fair game, and you could name what they are from a music theory standpoint.

Trying to bring this back around to the Franklin method of learning: what one might do here is listen to a jazz solo, and first transcribe (or obtain a copy of) the chord progression. Instead of trying to copy the solo itself, you can hear that the soloist often played motifs emphasizing the dominant 9th and 11th over minor chords, and the major 7th and major 6th over major chords. You could then make up your own solo with the same emphasis. It would not be the exact same solo, but it would (or could) have a similar sonic color to it.

Re: The Benjamin Franklin method for learning more from programming books

#100

One thing I haven't seen mentioned in the article or the comments is that the Franklin Method is just deliberate practice applied to writing.

It's not clear what you mean "just deliberate practice".

He was imitating a style he liked, trying to acquire to ability to write like that. Using the method in programming seems different, in that it's not the particular writer's unique style you're trying to acquire, but other things.

Post reply on HN