Live data from Hacker News

The Benjamin Franklin method for learning more from programming books

pathsensitive.com

51–60 of 105 posts

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

#51
I think a good learning trick that's an intermediate point between the two approaches he discusses (copying the sample code vs. closing the book and write the code yourself) is to write a different program based on what you can see in the sample code. That's how I learn tech myself--I already have some other project in mind, so I rarely sit down to build 'sample' apps with any sincerity. I try sample code to the extent needed to run it without errors, then integrate patterns from it into some other code I was meaning to write in the first place.

To use the Benjamin Franklin analogy, it would be like Franklin having the articles he was seeking to understand open before him, but adding new paragraphs in between the original text, or re-purposing the article into a speech.

This is a very common pedagogical approach of course--hence the cliche phrase 'left as an exercise for the reader.' The subtlety is that this is usually a hypothetical exercise on top of an already hypothetical problem, whereas if I have my own project in mind, I am far more motivated to figure things out.

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

#52

> Traditionally, there are two ways to study a page like this: > 1. Type out every line of code > 2. Copy+paste the code from their website, maybe play around and make small changes Um... wut? How about: 3. Read the code. Think. If you're reading programming books as practice, and think you're supposed to copy the code examples to learn, you're doing it wrong. If you need eval() to figure out what's going on, you nee…

Yeah, I've never typed any of the code examples of programming books.. I just read it to understand the concepts. Often I can go really fast when most of it is familiar, but when something catch my attention I work hard to decipher and understand it. if I can't, I'll re-read the chapter or search online.

As a side note, it would be great to have more programming books written like this. I.e. We assume you already know language X so here are the differences and why; focusing mainly on specific code examples and gotchas of the new language.

I would prefer semi-pseudocode:

    import { drawDragon } from 'drawing'
    

    function(screen) {
      screen.render(drawDragon.new('red'))
    }
By semi-pseudocode, I mean that I'm okay with not having the program in its full completeness with the less important part being abstracted away, but for the concepts that are being explained to be detailed, thorough and well documented.

As a fun exercise, one could take a big programming book and trim it down to a 1/10th (or more). There are so many useless sections. Most great devs are good at skipping through the bullshit.. why not just remove that part entirely!

Reason is probably monetary or politic. I.e. can sell to a larger audience by being more beginner friendly and/or need to have a certain amount of page and follow a template to be published.

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

#53
My technique: I read the book till I get stuck and start back at page one till I get stuck again. I'm a little stubborn I guess.

Different Program Books Make Different Goals. My favorite are that there is a higher point to be made. My favorite books of this type have been made by Matthias Felleisen.

Little Schemer helped me to understand the though process more than learning a specific language.

How to Design Programs was super dense but it took me through the process of actually designing programs in a logical manner.

http://www.ccs.neu.edu/home/matthias/HtDP2e/

My favorite domain specific book has been: Hands-On Programming with R. It also was more about here is a logical problem and this is a way to solve it. http://shop.oreilly.com/product/0636920028574.do

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

#54
This is a great technique to learning. I taught myself how to code after college and found doing my own version of this helpful. The only slight difference in the technique I used was I found it easier to learn when I had something I wanted to build in mind. This helped both in both direction, what to learn, as well as forcing me replicate code for my own use, like the Ben Franklin technique. Hope others find it useful too.

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

#56

Earlier quoted context omitted.

He just had a very Feynman-like way (or Feynman had a Franklin-like way) of seeing the world. He sees confirmation bias, the dangers of saying yes, the power of positive thinking, failure as a teaching tool, the power of a nebulous "them", habit chaining ... But my favorite quote/section is on his 13th virtue, humility. Frankling was told by a friend to stop being so proud, and so he introduced a habit of always bein…

He ruled up a book with virtues—the ones he wanted to improve in—down the side of the page, the days along the top, and drew black dots at the end of each day next to each virtue he'd lapsed in. And tried to have less black dots with every day. That was the most valuable thing I got from that book. I tried it once, decades ago.

That's actually super smart. I usually try to log my habits/daily things to do (write in journal, exercise, spend at least an hour reading a book etc.) but doing it for virtues sounds like a good idea. What did you get from doing it? Why'd you stop?

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

#58
post #10
post #7

Earlier quoted context omitted.

Gutenberg link, for the lazy http://www.gutenberg.org/ebooks/148

Standardebooks link for the lazy, and discerning: https://standardebooks.org/ebooks/benjamin-franklin/the-auto...

Wow, that site is incredible. Thanks for the tip!

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

#59
post #10
post #7

Earlier quoted context omitted.

Gutenberg link, for the lazy http://www.gutenberg.org/ebooks/148

Standardebooks link for the lazy, and discerning: https://standardebooks.org/ebooks/benjamin-franklin/the-auto...

That looks nice, but I wish there was an option to view it as simply formatted HTML too. There's something nice about just being able to click the link and have it there.

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

#60

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 advantage musicians practiced in reading sheet music have (assuming they're also practiced in the general play of their instrument) is that music falls into various scales and modes. Learning and practicing the scales and modes in different ways and patterns allows musicians to have a wide set of skills that can be quickly applied to most music.
Post reply on HN