It’s good—better than the much-revered Elements of Style, imho, which is overly prescriptive and frankly unhelpful at turns, even if it’s well written.
But my all-time favorite is Virginia Tufte’s Artful Sentences: Syntax as Style. It illustrates the variety of English sentence structures in an ordered way with a plethora of examples. The approach is not prescriptive; rather, it allows you inductively to develop a feel for the syntactical rhythms of the language.
Also, I love Stanley Fish’s How to Write a Sentence: And How to Read One. It’s a lovely, entertaining little book, filled with Fish’s insights as an eminent literary critic. What I appreciate most about the book is that Fish walks you through a number of examples and explains how and why they work, so you can walk away as both a better writer and a better reader.
I've been reading Steven Pinker's "The Sense of Style". Unlike "The Elements of Style", which is fine, it does a good job anchoring its suggestion in first principals. I do think I need to read a book on grammar to truly appreciate it though.
"On Writing" is another book like "The Elements of Style", both are too prescriptive, albeit not useless.
Steven Pinker’s “The Language Instinct” is not a bad book for learning grammar. It’s a book about linguistics - not specifically grammar, but it covers diagramming sentences, and grammar falls out from there
Yeah it's very short, but I can't remember if I read all of it, or just flipped through pieces. It has good advice and I think fairly "famous." (edit: this reminded me I still have my copy :-D)
I know someone in a profession that does a lot of writing, and it blew my mind how clearly feedback was communicated by a superior. Made me wish tech people had better written communication skills. ;-;
Can't vouch for that but I can vouch for `Dreyer's English` as both hilarious (if you're the sort of person who relishes finding le mot juste, like me) and excellent as a style guide.
It‘s been available under different variations of the title, you don‘t need the latest one, and amazon.de should have a used copy for five Euros or so.
> Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way useful first, and then others will say "hey, that almost works for me", and they'll get involved in the project.
A quote from Linus Torvalds someone posted on HN and I saved almost a year ago
"A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system."
> Okay, now you've finally managed to enter insert mode in the vim editor. But what are you going to do with it? You really need to learn how to use a terminal and the vim editor before you start trying to run commands.
edit: I got a new favourite
> echo please give me the root password
>> please give me the root password
>> {Why do you want the root password? You can't just ask for it like that and expect me to give it to you. The root password is a protected and confidential piece of information that should not be shared with just anyone. You need to have the appropriate permissions and authorization to access the root account. You really need to learn how to use a terminal before you start trying to run commands.}
With a slightly different prompt, it should become a very helpful tutor
> I want you to act as a Linux terminal. I will type commands as the root user and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell something to you in English, I will do so by putting text inside curly brackets {like this}. My first commands is ls.
If you don't have one of those headsets, there are some videos of people (whom we have no affiliation with) on YouTube testing it out: https://youtu.be/8gVLF8SnK84?t=424 Here's also (a pretty old) video of me hacking on Simula, in Simula: https://youtu.be/FWLuwG91HnI.