You're not dumb, the prerequisites are bullshit
markozivanovic.com
markozivanovic.com
Your next task after learning 100 basic words in English should probably not be Shakespeare.
So sometimes it is the book. (this happened because it went through like 23 editions and edition 20 was a 'modern rewrite' which killed it. The reputation and praise was gained from the older editions).
I agree that every chapter should start by connecting the material to past knowledge, and briefly reviewing some of the prerequisites, but then surely the author should get to the new stuff after that?
Perhaps your estimate of 20% doesn't include the repetition and worked examples? In general when a new concept X, I try to explain it at least three times, once informally, with terminology and definitions, with formulas, and with extra explanations. In my mind all these repetitions count as "new stuff," since they cover the material at different depth and bring new dimension to the concept.
Perhaps you could give some examples of the 20% new max sweet spot? I'd much appreciate.
I like this approach better, because most math books have some easy introductionary chapters and then it gets harder and harder, because the authors assume that they laid out the basics in the first chapters. The authors might be right technically, but it's very hard for the readers to go through a chapter that is 100% new material.
In "Seven Sketches in Compositionality" they try to somewhat reset the difficulty for each chapter by starting again with introduction and motivation for each chapter separately. This makes it much easier for me to get into the material of each chapter and to read the whole book.
People have spent decades trying to solve difficult problems in mathematics and science. A big reason they didn't get frustrated and give up after 4 minutes was largely because they didn't expect it to be a 2 minute problem.
...Like the kind you might get from a misleading Who This Book Is For section?
Maybe it's school, kids are used to knowledge being drip-fed in a pedagogical fashion, which I guess is fine, but it's also far away from how learning happens outside of school. In the real world, it's normal to encounter problems that aren't trivial.
True, but not always. Just as often, such parts are terribly written for one or the reason. It's possible that particular section of text is the least favorite of the author so they rush through it. Another possibility is that the author gets tired by the time that section rolls around and just goes thru the motions. Or that the author plain doesn't think a certain section is important enough to expound on it carefully. Yet another possibility is that the author is not universally well-versed in the subject they are writing about: they know some parts better than others.
Since we're at it, I hate the fact that books have started being sold like apples by weight and based on the amount of pages, so that it's like I feel during the past few years I've had insanely long books repeating the same shit over and over with authors without any capability to express a concept directly and just walking around a point with low expression skills. I think writing a book right now has become more of a PR exercise for people, rather than something being done by people who have actually learned how to write
Sometimes I just find myself in the middle of a page talking with a book, thinking "Wtf mate you just fcking said that, can you just get to the fcking point already?"
People really don't understand the value of a good editor.
As far as prerequisites, I'm not sure I'd ascribe a mercenary (thus, malicious) intent. I think that experts have a hard time understanding non-experts. I make that error all the time.
In some things (like Swift programming), I'm pretty much an expert. There's definitely aspects of the language and standard library that I still need to learn, but, for the most part, it's something that I eat, sleep, and breathe. I do stuff by habit, without thinking, that would have many people new to the language, scratching their heads.
I try to write something that everyone understands who has a minimal relevant background (i.e. everyone who would be interested in reading the post) but include links to deeper materials or kernel source code so that everyone can learn from it.
Here's an example with an article I wrote on Linux shebangs: https://natanyellin.com/posts/shebang-python-bad-interpreter...
Would love to hear constructive criticism on how I can improve!
What's a kernal? What's a symlink? What's hex? What's a hex-editor?
i_end = strnchr(bprm->buf, sizeof(bprm->buf), '\n');
What's `->buf`, `strnchr(bprm`, `sizeof(brmp`, ? Why does `\n';` have a `;` ?FYI: I know the answers to all these questions but the idea that this article isnt for a "restricted few who have the right prior knowledge" is bizarre. It reads almost like a satire... this would be a classic case of an article where a vast amount of prior knowledge is presumed.
Who knows what a kernal is that doesnt know how to debug `/usr/local/bin/python^M` ? Some, but a vanishingly small highly priorly knowledable group.
That said, I'm not claiming that you don't need any pre-requisites. Obviously this article is aimed at people who use bash or else they wouldn't be having an issue with the shebang!
There is a huge audience who knows what a kernel is (in theory) and writes shell scripts, but doesn't know how shebangs work and has never actually looked at kernel code.
My point isn't that you don't need prerequisites, rather that I think there is room for writing at a certain level while also giving people hooks to learn more.
Anyway, I do appreciate the feedback. Thank you.
Your approach works well for fairly short/simple concepts (although even in your article, there's a lot of assumed knowledge), but it gets harder the longer or more deep the content becomes.
As for the posted article, I never had this problem. I suspect the author just bought badly written books; there are many of those, unfortunately.
What does this even mean it the case of the article?
The minimal relevant background is that you know how to copy a Python script with an \r to a Linux machine.
This includes Python developers, for which this article is written.
But it also includes non-Python developers.
In fact, this even includes everyone who wants to run a Python script on a Linux machine. Administrators, but even regular users without much technical knowledge.
So, our reader persona is the average Linux user.
If I look at that article from the perspective of this persona, at least 80% of it doesn't help me at all.
The article should start with the fix, and not redirect the reader to the end of the article.
Books are not individualized, so it's a very difficult ask to publishers and writers to write something in that section that perfectly applies to you.
Realistically a student will spend a semester reading the book while also following instructions about the content of the book, and they still have difficulties. That is the amount of work you have to do if you have the correct prerequisites. So likely you just have unrealistic expectations how fast you'd be able to read a technical book covering a field you aren't used to.
To be fair Axler’s linear algebra book states it’s for a second semester course in linear algebra but many math people recommend it as a first exposure to the subject to someone that doesn’t know any linear algebra anyway. Technically the only prerequisite is an exposure to proofs and mathematical thinking.
But the book doesn’t like determinants and isn’t focused on computing things around matrices and is instead focused on finite dimensional vector spaces and so on.
To someone that doesn’t even know what a matrix is but have seen some basic proofs it’d be hard for them to pick up and understand Axler in its fullest depth despite the prerequisites just being “math maturity”. Axler assumes you know a lot more than he writes, or assumes you’ll figure it quickly.
Same can be said for Rudin’s basic analysis book. Technically anyone can pick it up and go through it with minimum pre-reqs. But without a tutor or someone to answer questions most beginners would get stuck somewhere.
Also it’s a thing these books don’t tend to include any solutions so without someone checking your work or a proof assistant then most beginners wouldn’t have a clue if their proofs are valid or contain a subtle mistake or would think they’re valid but be incorrect.
E.g. "this book is for 2nd semester linalg, if you're not at that level yet or <whatever> we recommend <book X which can be assumed a baseline by this one>"
TBH I've started interpreting the maturity part at code for solid experience with proofs and abstraction.
I'm not sure exactly why they do it, it's possible that there just forgot how it is to be a beginner.
His books are introductory in the context of mathematics courses. They are not introductory in applied mathematical sciences contexts.
There I would suggest, e.g., Boyd and Vandenberghe’s Introduction to Applied Linear Algebra [1], Meyer’s Matrix Analysis and Applied Linear Algebra [2], Golub and Van Loan’s Matrix Computations [3] etc.
> But the book doesn’t like determinants and isn’t focused on computing things around matrices [...].
This is purposeful.
I don’t think I can edit my comment anymore, but I am more than happy to improve future suggestions if you have any recommendations.
Opposite is often true for math textbooks. The authors of such texts overhedge unnecessarily, imo.
Open a textbook on, say, differential geometry. The prerequisite are: at least one course of real analysis, facility with linear algebra, knowledge of general topology, some familiarity with complex analysis, bla bla bla. If you are anything like me, upon learning about these prereqs you run off to learn all the ins and outs of nets and filters in topology and end up having studied and finished a textbook on functional analysis. When in reality all that was required for profitable reading of the original textbook on diff. geometry was ability to multiply two matrices together and not up and run in fear when coming across a phrase like "...by compactness argument".
https://pages.gseis.ucla.edu/faculty/agre/how-to-help.html
Kathy Sierra also talks about deliberate practice as working at the "edge of your circle of competency", which can be hard to gauge when working with new topics or material (is this statistical method just a variation on a theme I know well or underpinned by several topics I know nothing about)
As someone who is:
* a sought out expert in a few things
* very sympathetic to "the noob" and learning anxiety
* a "noob" himself in most things
I find that reducing anxiety is more important than the actual material. Prerequisites lists by definition increase anxiety. Much better to simply give a "refresher" of examples of the "circle of competency" you're targeting, and let the reader decide if it's their "edge" or not.
I fondly remember my first day at IT school.
We went into the PC room and everyone should do some basic research on the C programming language. We didn't even had to program anything.
And a guy sat next to me on the PC and asked me how to switch it on. Then he asked how he even would find, let alone use a search engine.
Math and programming books are prone to such issues.
Especially math books assume, you still know everything you learned in school.
The best explanations do not use field jargon and that is the reason why they are so rare.
If your beginners book uses field jargon without laymans explanations directly beside it, it is simply a bad beginners book. Bonus-points if you use field jargon from other fields not even related to the topic of the book.
I reviewed a bunch of technical books from a big publisher, and they were overwhelmingly bad.
Some of the authors have written like 8 books about AWS or K8s and still their books didn't reflect that they gained any experience in writing.
But yeah, it's obviously a good career move to write a book. If you're a published author for 5 K8s books, you have to have some skills, right?
Hold your hand with all concepts it offers, but also supply you with chapters and exercises that challenge you.
If you fail to implement an example, there should be obvious places you can go back to and read about it again.
Having attended many a conference and spoken to many an author, the deep bit of maths in their publication without any understanding is most often the bit you later find they copy and pasted.
Everyone is an idiot at something.
Obviously, everyone has parts of their life they could improve.
But in the past the world expected you to change things that, in fact, were perfectly fine.
We are now in the readjustment phase, what did society want from us that was actually bad and what was good?