Live data from Hacker News

How to write a programming book

aquicarattino.com

31–40 of 71 posts

Re: How to write a programming book

#31
post #11

Generally speaking, books as a format make no sense. I have seen the financial records for number of popular tech book authors — and numbers related to them having published, for example: products, services, consulting & speaker fees, etc. If the author is trying, they make way more money from the numbers related to them publishing than the book sales. If you like writing long form tech guides, do yourself and your a…

I love buying pre-releas books from Prag Prog (which isn't exactly the same but similar to what you described). Especially since things change so fast, if you have to wait for a finalized, published version of the book, it's usually outdated by the time it even hits the shelves (not entirely of course, but parts of it). If the author(s) publish pre-releases frequently, it can be a fantastic reference.

Preselling good, since sending cash is a lot better signal of interest than handing over email, SMS, etc.

That said, you would need to have a quantifiable definition of done and likely be a good idea to account for absolute failure in case something comes up an “done” is never accomplished. Until it is “done” likely be good idea to escrow the funds, but then you run into issue like paying taxes, transaction fees, etc.

Re: How to write a programming book

#32
post #4
post #3

Earlier quoted context omitted.

> Would it be possible to display text without enabling JS? No, because then how would it set up pullquotes like "If you don't set a baseline somewhere, you risk starting a book that grows backward" that you can tweet at the push of a button? (Is that really a thing? I guess it must be somewhere, but it's new to me on a (I guess) programmer's blog.)

You can't actually send a tweet at the push of a button (unless you're connected with twitter oauth with the right permissions), but what you can do (and that button does) is opens the tweet composer pre-filled with the quote, ready for you to then just hit "Tweet"

I used to do that on my blog. Example: http://beza1e1.tuxen.de/team_building.html

Stopped doing it as I got negative feedback about it being annoying. I never tracked how many tweets I get out of it though. So if you aim for popularity (unlike me) it might still be worth it.

It was one of the big reasons I used RestructuredText as markup language for my static website generator. It is extensible enough to make these tweet-blocks with just:

    .. tweetable :: Psychological Safety is THE core factor for Great Teams says Google

Re: How to write a programming book

#33
post #29
post #11

Generally speaking, books as a format make no sense. I have seen the financial records for number of popular tech book authors — and numbers related to them having published, for example: products, services, consulting & speaker fees, etc. If the author is trying, they make way more money from the numbers related to them publishing than the book sales. If you like writing long form tech guides, do yourself and your a…

If you go for free and online anyways, then you can pursue more interesting formats like Quantum Country [0]. It seems to include a spaced repetition mechanism. I have yet to try it though. [0] https://quantum.country/

Love the idea of a book based on spaces repetition, but wish they had a better way to get a sense of what you’re getting yourself into, since as far as I am able to tell there’s no:

- estimate of reading time - level of knowledge - way to link deeper content

Re: How to write a programming book

#34
post #31

Earlier quoted context omitted.

I love buying pre-releas books from Prag Prog (which isn't exactly the same but similar to what you described). Especially since things change so fast, if you have to wait for a finalized, published version of the book, it's usually outdated by the time it even hits the shelves (not entirely of course, but parts of it). If the author(s) publish pre-releases frequently, it can be a fantastic reference.

Preselling good, since sending cash is a lot better signal of interest than handing over email, SMS, etc. That said, you would need to have a quantifiable definition of done and likely be a good idea to account for absolute failure in case something comes up an “done” is never accomplished. Until it is “done” likely be good idea to escrow the funds, but then you run into issue like paying taxes, transaction fees, etc…

Agreed, escrowing is a great idea. In the case of the books I bought they were by very prominent people so I had high confidence they would be completed. For less-known authors tho, you make a great point.

Re: How to write a programming book

#35
post #10

What pains me about programming books is that due to the market pressure the balance is skewed extremely in the direction of beginner material and there is precious little material for advanced users. If you look at other branches of knowledge, say electronics, there is couple of books for beginners and then massive selection of highly specialized books for experts. I get that part of this is due to multitude of lang…

What advanced material are you looking for?

A lot of research papers can be found online for free. What problem are you trying to solve that you feel would be helped by advanced material not found in research papers and/or computer science textbooks?

For me, the problems I've encountered that I thought were problems of lack of advanced learning material, have turned out to be problems of absence of tooling, libraries, frameworks and the will to create them.

In my particular case - I became an iOS developer and found out we're still paying people 100k+ to manually create trivial phone apps that fetch trivial database queries via json and display them in rather trivial ways on screens.

You wouldn't believe the number of people working on any given banking app that lets you display your past transactions and transfer money in-between accounts - it's basically a folder/file viewer with pre-defined file types and a couple of pre-defined actions for each. We've had folders, files and transactions to ensure correctness for decades! People are still re-creating these features!

Why do we have separate banking apps that do the exact same thing and why does displaying text fetched from a database and letting you modify it in the most trivial way, a job that pays 100k+ while producing bug ridden code?

There is no book to solve this problem and I believe most of the people employed in software development are churning out or maintaining this type of code. As a result, the market for advanced techniques in computer science is incredibly tiny - if you removed the idiotic whiteboard waterboarding techniques, academia and R&D at big corporations, you'd find out that there is maybe a few thousand people world-wide who are genuinely interested in putting advanced computer science to use.

I'd say this hypothesis explains why we don't have any actual progress in the field, just more javascript frameworks (simplifying, of course ) :) It doesn't explain very well what those billions of dollars in R&D at big corps are accomplishing besides removing ports from laptops and coming up with new keyboard mechanisms that fail when dust falls on them (lol) - maybe we're one day away from a quantum computer that changes everything? I have my doubts :)

Re: How to write a programming book

#36
post #10

What pains me about programming books is that due to the market pressure the balance is skewed extremely in the direction of beginner material and there is precious little material for advanced users. If you look at other branches of knowledge, say electronics, there is couple of books for beginners and then massive selection of highly specialized books for experts. I get that part of this is due to multitude of lang…

What advanced material are you looking for? A lot of research papers can be found online for free. What problem are you trying to solve that you feel would be helped by advanced material not found in research papers and/or computer science textbooks? For me, the problems I've encountered that I thought were problems of lack of advanced learning material, have turned out to be problems of absence of tooling, libraries…

I suspect that, in many cases, books are most useful for people starting out because they don't know what they don't know and don't know what they really should know. Once you're more experienced, you probably care about deep dives in specific areas that may not even be of much general interest and may be very recent. And those are probably less amenable to books.

Re: How to write a programming book

#38
post #5

One thing that is constantly left out of books is challenging problems with solutions for the user to cement the new ideas they’ve learned in actual examples. It’s very easy to read along and nod your head but it’s very hard (at least for me) to incorporate my new skills without memorable hands on examples.

Gee, write a program using what you just learnt and see if it works. You want someone to tell you what program to write?! I assume it's a book for kids, or a school textbook, when I see exercises like that. I don't understand the demand that books not only tell you things, but tell you how to learn everything in them too. Apologies, I really tried to make this not sound condescending!

The expert you're learning from probably has a better idea than you do of what programs you should write given (a) your presumed knowledge level and (b) what programs would help you learn the fastest and/or the most relevant features. Including good exercises is an extension of the purpose of the book itself.

Re: How to write a programming book

#39
post #10

What pains me about programming books is that due to the market pressure the balance is skewed extremely in the direction of beginner material and there is precious little material for advanced users. If you look at other branches of knowledge, say electronics, there is couple of books for beginners and then massive selection of highly specialized books for experts. I get that part of this is due to multitude of lang…

What advanced material are you looking for? A lot of research papers can be found online for free. What problem are you trying to solve that you feel would be helped by advanced material not found in research papers and/or computer science textbooks? For me, the problems I've encountered that I thought were problems of lack of advanced learning material, have turned out to be problems of absence of tooling, libraries…

> you'd find out that there is maybe a few thousand people world-wide who are genuinely interested in putting advanced computer science to use.

Nah, there are lots of people writing big complex programs with big complex architecture. Architecting programs isn't an "advanced compsci topic", but there are lots and lots of books that don't really talk much about it. Instead they show you how to use your programming language's (or framerwork's, database's, etc.) primitives in a basic way. That's pretty much the things you could just look up in a reference manual. Then you figure out the hard stuff yourself.

They tell me how to hold this bundle of hammer and nails, but I need to figure out how to design a skyscraper with them..

Re: How to write a programming book

#40
post #10

What pains me about programming books is that due to the market pressure the balance is skewed extremely in the direction of beginner material and there is precious little material for advanced users. If you look at other branches of knowledge, say electronics, there is couple of books for beginners and then massive selection of highly specialized books for experts. I get that part of this is due to multitude of lang…

Another thing that bothers me is that most intermediary books on a topic tend to start with a good chunk of beginner stuff. For example, many game programming books will cover a ton of beginner material at the start, same with graphics books or books on a particular programming language. I shudder to think of how much duplicated content that I will never read because I'm no longer a beginner is sitting in my bookshel…

This is why I look for gems like Professional Javascript for Web Developers[0][1]. (I can't speak to the latest version, I think I read the 3rd edition from 2012.)

It's a book about Javascript that assumes you've written software in other languages before. I believe the book uses Java/C#, Python, and maybe a couple other languages as reference points.

It describes language behavior and constructs that may be new to you, and details where the familiar may differ from what you'd expect. For instance, the section on `var` and how function scoping (and hoisting) differ from block scoping was quite detailed, but I don't remember it spending a lot of time on what it meant to declare a variable or why scoping rules matter.

If the book had a beginner focus I might have seen the section on declaring variables, skimmed to see the `var` keyword, and skipped the rest. Then I'd have written a bunch of code that would bite me later, because why would you ever assume function scoping when coming from another language?

It's unfortunate that it's so difficult to find books with either an intermediate to advanced focus, or a focus on switching languages, as I think both are sorely needed in the current programming ecosystem.

[0]: https://www.wiley.com/en-us/Professional+JavaScript+for+Web+...

[1]: https://www.amazon.com/Professional-JavaScript-Developers-Ma...

Post reply on HN