Hacker News new | past | comments | ask | show | jobs | submit login

I'm sorry, I hate "recipe style" Git articles.

Understanding reset and checkout is not hard if you understand the underlying data model. If you don't understand te data model, it's all black magic.

Interestingly, I feel the same way about actual recipe books for cooking. It's one thing to keep around as a reference. But if you don't know what a bay leaf tastes like and what it does to a dish, you won't learn anything from someone telling you to use it in a particular recipe.




I don't understand this fad that programmers should know only first principles, and shun checklists in favor of deriving everything from scratch every time.

I know how my car works but I still pull out the service manual when I need to change an air filter. Nothing under the hood is 'black magic' but seeing the procedure written out saves me a ton of time.

And: git commands are hard, even if you understand the underlying data model. (I've only been using it for 8 or 9 years. Maybe I'm just too dumb?) Understanding the data model won't help me remember that the "--amend" flag is how I edit the commit message (though I could probably build it myself from reset + commit, if I really wanted to), or what folder I should put global pre-commit hooks in.


I don't understand this fad that programmers should know only first principles, and shun checklists in favor of deriving everything from scratch every time. I know how my car works but I still pull out the service manual when I need to change an air filter. Nothing under the hood is 'black magic' but seeing the procedure written out saves me a ton of time.

The problem is that the explanations of the commands are wrong.

Reset does not undo a commit. It moves HEAD and updates the work tree. I have no problem with cheat sheets and quick references. Memorizing the commandline interface is not important. Use a cheat sheet. Handwaving over what the commands you are running actually do is asking for trouble.

Edit:

I was witness to a similar debate on IRC the other day. Someone insisted but you can't learn Python without understanding the underlying data model of strings in C. IMO that is ridiculous because the abstraction in Python is close to airtight; you just about never need to think about the implementation of strings when using strings.

Git, on the other hand, frequently exposes implementation details to the user. Casual users are likely to run into edge cases that don't understand. You basically can't resolve rebase conflicts effectively if you don't know what "ours" and "theirs" means. The man pages are indecipherable if you don't know what blobs and trees are. You don't need to teach people that stuff on day one, when they first learn about pull, add, commit, etc. But you had better teach them soon. I see no reason why a discussion of rebase couldn't at least casually explain how it's implemented: "check out base branch, cherry-pick commits from rebased branch", is that so hard? If they don't understand what a common ancestor is, how are they expected to know when to use --onto?


I would love to read a cooking book which talked about the effect of ingredients and process. Anybody know if one exists?

edit: well this one looks interesting https://www.amazon.com/Ingredient-Unveiling-Essential-Elemen...


I'll strongly second the Cook's Illustrated recommendation. If you want to know the reasons behind the recipes, there's no better place to start. I've used things I've learned from their articles many, many times to help with other recipes.

And here's some books that spend at least as much time talking about how to cook as they do giving lists of ingredients.

_The Zuni Cafe Cookbook_ by Judy Rodgers

_Cooking by Hand_ by Paul Bertolli

The French Laundry book by Thomas Keller is worth a read.

If you're into charcuterie, someone else mentioned Michael Ruhlman; his book _Charcuterie_ with chef Bryan Polcyn is excellent. _The River Cottage Meat Cookbook_ is also good.

If you want to go deep into ingredients, _The Elements of Taste_ by Gray Kunz and Peter Kaminsky (and _The Flavor Bible_ by Karen Page and Andrew Dornenberg (I haven't personally read that one all the way through, though)).

And you can always just pick up a culinary school textbook.


The Flavor Bible is more of an ingredient reference. It's also very Western- and Northern- (as in the hemisphere) centric.


I have a few I can personally recommend:

- How to Cook Everything by Mark Bittman (also How to Cook Everything Vegetarian)

- Ratio by Michael Ruhlman

- The Food Lab by J. Kenji Lopez-Alt

- Salt, Fat, Acid, Heat by Samin Nosrat


I can also vouch for Ratio, and in general any book by Ruhlman I've read has been excellent (give Egg a go)


Have a look at 'On Food and Cooking', Harold McGee. It isn't a cookbook, but McGee talks extensively about ingredients, process, and their interactions.


Take a look at Chef John’s recipes on YouTube. He knows his stuff, and he makes sure to explain the thought behind the process. It’s illuminating and entertaining.

https://youtube.com/user/foodwishes


I found such a thing in a textbook belonging to a friend's mother who went to some kind of household school in the 70s or so. It was a revelation.

When I later wrote some teaching material, I realized that there are two bad kinds of educational texts: Cookbooks and math textbooks. One is a simplistic series of steps without explanation, the other is a facts dump with no motivation, context or intuition.

Getting back to git, its documentation manages to combine the disadvantages of both styles: it is a disjointed cookbook where steps are explained in confusing technical terms that only make sense if you already know the theory, which isn't coherently explained.


Cook's Illustrated magazine doesn't get so far as explaining the chemistry, but they do document the lengthy trial, error and tuning process to get their recipes right, as well as what decisions they made and why.



Nathan Myhrvold

Edit: And many others too




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: