
A Hacker Writes a Children's Book - arthurjj
http://arthur-johnston.com/hacker_writes_a_childrens_book/
======
a-nikolaev
To me the books looks quite underwhelming. It seems focused too much on the
superficial aspects of programming, like jargon a software engineer may
mention occasionally at home. It may look fun and appealing to their adult
parent. But what can a child learn from it?

Maybe doing more with math (even if at 1+1=2 level), repetitive processes as
loops, idea of recursion, idea that a computer cannot compute more than one
can do with pencil and paper.. More _universal_ aspects of computation can be
really illuminating to kids, I think.

~~~
matthjensen
This critique underestimates the value of language and concrete diction for
learning concepts.

If a child learns the definition of key words, she'll carry the concepts they
represent with her forever. Once she know knows "map", "value", and "key", she
will own the concepts, Map, Value, and Key.

Definitions give a child the opportunity to learn -- and a parent the
opportunity to teach -- valuable concepts that will enrich her world.

~~~
eevilspock
No, I don't think it underestimates at all. Saying they should learn more
fundamental concepts first doesn't mean don't stretch them. For example, seed
the ideas of physics early (mass, energy, gravity), because those are things
that actually exist around them and for which you can reinforce by pointing
them out. But "map" and "key" and "garbage collection"? Those are far too
specific, certainly not fundamental, and have no real world analog that is
meaningful for them.

If you really really want to impart to them the concept of software, then do
that! The phrase "garbage collection" is not important. The idea of a program
and that it makes the stuff they see happen on the screen is what is key.
@partycoder has the right idea:
[https://news.ycombinator.com/item?id=15881930](https://news.ycombinator.com/item?id=15881930)

(I work with children and am respected for my ability to teach them
sophisticated ideas.)

------
neovive
Great book and write-up. I self-published a children's book about two years
ago and experienced the same challenges. I had many previously written
manuscripts and decided to publish one at the urging of my kids. I used the
editing and design packages offered by our illustrator and published via
Amazon CreateSpace (which Amazon seems to be phasing out).

The final book was very nice. However, business-wise, it's not a good
investment. It's a good thing I didn't go into the process with any major
ambitions. I haven't checked in a while, but I earn a little less than $1 per
sale through Amazon (due to fees and printing costs). Most sales were from
friends and family and little else. I tried the Amazon promotions, giveaways
on GoodReads, etc. It's very hard to sell as a self-published author, unless
you already have a huge following.

The book is still a very nice keepsake and it's nice to give away copies to
schools and get positive feedback.

~~~
arthurjj
It's nice to hear someone else had a similar experience marketing their book.
I didn't try GoodReads giveaway, did you see any increase in sales from it?

Also care to link to the book?

~~~
stuaxo
This looks good, I could imagine buying one for my daughter, though we in the
UK and this is in US English.

I'm guessing internationalised versions are not in the future - apart from
"Behavior" are there many other US spellings in it ?

It took me quite a while to realise the picture of the cover was a link to
Amazon, but maybe that is just me.

~~~
arthurjj
You can buy in the UK from
[https://www.amazon.co.uk/dp/1548489778/](https://www.amazon.co.uk/dp/1548489778/)

Thanks for letting me know that it was confusing that the picture was a link.
I updated the page with a more obvious amazon.com and amazon.co.uk link.

I don't think there are too many US only spellings. Behaviour was the only one
my (English) mother commented on...

------
kaitai
This was a great write-up about the author's experience. I, too, have self-
published a niche book -- a coloring book with patterns from modern math,
starting with Penrose tilings and then heading through totally symmetric self-
complementary plane partitions, domino tilings of Aztec diamonds, fully packed
loop diagrams, and alternating strand diagrams. Just fun stuff related mostly
to statistical mechanics that I see my math friends working with.

I learned some Adobe inDesign to lay it out myself, generated all the images
myself with Python, Sage, Tikz, or just drew them in Inkscape. Then I had it
printed at a local print shop. That means there was an initial investment, but
once I set the right price I could make a (small) profit by just selling them
all. The per-price cost when printing 100 is substantially lower than
individual copies.

Another difference for me: I have some connections to the local art scene and
was able to sell at several art crawls. I think people found it a refreshing
counterpoint to the rest of the art -- something nerdy for the nerdy folks,
something they could get for a niece who is excited about math or a cousin who
is a math teacher.

Marketing is still the hardest thing, for me as for this author. Facebook
word-of-mouth has been the best.

------
partycoder
How do you get a kid to understand something as abstract as an algorithm or a
programming paradigm?

My approach is to start from something they are familiar with, like cooking.
You have the ingredients (input), a sequence of ordered steps (algorithm) and
the output (the expected result of the recipe).

What if you fry potatoes before you peel them? what if you omitted mentioning
that potatoes had to be peeled? what if you use carrots instead of potatoes?
what if potatoes are expired? does the potato shape or size matter for your
recipe?... and you can continue from there.

That takes you as far as understanding that some instructions cannot be
rearranged, that some attributes of the ingredient are important while some
others aren't (leading to generalized recipes that accept more ingredient
types), that there is a proper level of detail and verbosity, that there are
validations that are required for your ingredients, that are best practices to
be followed (e.g: washing your hands and your ingredients), etc.

Then, maybe the kid doesn't like cooking. You can try something else, like
constructing a house for the dog, etc. Finally, you may want to try an
electronics kit like Snap Circuits. I highly recommend it.

This approach in my opinion much better than starting from something like type
inheritance and composition, or what a keyboard is... the reason being, the
kid can build an intuition around it, experiment with it and even teach it to
other kids. Most importantly, this knowledge can be applied directly into
programming.

The key however, is to _emphasize_ the concepts that can be translated into
programming, otherwise it's just going to be wasted opportunities.

------
air7
Programming (IMHO) is the art of explaining things 100% explicitly. I have no
idea how to convey that concept to children in an artist way, but I feel it's
not through Garbage Collection, Inheritance and Source Control. This seems
like a cool holiday gift for adult programmers but for kids, I think it
doesn't really touch the core idea.

(Just my 2c)

~~~
falsedan
I'd write a story about a kid who found a incredible machine which did exactly
what she asked it to (even when it made no sense). And because I think it's an
important thing to teach, I'd show that, as the kid tries easy and hard tasks,
she gets better at doing them.

Children are sophisticated learners, and are quite able to understand
metaphors & use analogous reasoning to understand new concepts.

------
maddyboo
I like the concept, but I'm not a fan of the execution. To be blunt, it comes
off as very half-assed. The pages shown in the blog post look like first- or
second-round drafts, not final revisions.

I'm sure this took a lot of work, and I applaud the authors for completing and
publishing the book. However, in my experience, a product will always take a
lot of work, but a good product will take a lot lot lot of work!

------
tw1010
Our culture has an awkward relationship between talent due to genetics and due
to hours and hours of practice. Props to the author for creating this. But
part of me feels like this book is slightly too heavily skewed in the
direction of thinking that genetics is more in control of talent rather than
practice. Why do I say this? Because it seems to believe that there aren't
implicit ways of improving brain capability through the use of, for instance,
mathematics. By teaching the child what it is you want them to know directly,
instead of concentrating the attention on, for instance, developing their
imagination (without the constraints of having to anchor it in programming),
you're essentially placing a vote on the belief that the child won't be able
to pick this stuff up easily once you've built their brain up.

~~~
peacetreefrog
I think you're projecting. The simpler explanation is what he says, "although
[Amazon has] thousands of books explaining how a construction site works, and
hundreds of books explaining how farms work, they did not have any books that
explained what I did [as a programmer]".

~~~
tw1010
That may be his intention. But an author is not in full control over how a
reader will interpret his work. And there is no doubt that a lot of people
will read this work as if it is a tool for teaching their child coding, rather
than as a way to teach them about what it is they do all day.

~~~
peacetreefrog
Maybe it's a mix of both. I think it's a huge stretch to say the author or
this book is weighing in on nature vs nurture and genetics vs practice debates
though.

------
falsedan
If I read it in a bookshop, I'd put it back next to the copies of _Go the F@ck
To Sleep_ / _The Ladybird Book of the Mid-Life Crisis_. My wife buys lots of
children's books, and the art, writing, and topic wouldn't appeal to her.

while it's more focussed on using computers to help children learn, I'd
recommend _Mindstorms_ by Seymore Papert[0] as a great resource for learning
more about how to combine children, technology, and education.

0: [https://mindstorms.media.mit.edu/](https://mindstorms.media.mit.edu/)

------
emurph55
Seems like it is getting harder and harder to promote original content on the
web without being considered spam. I think product-hunt might be a useful tool
in promoting something like this but I do not know if it is the right place
either...

~~~
arthurjj
>Seems like it is getting harder and harder to promote original content on the
web without being considered spam

That's a pretty good summation of my experience marketing. I don't know if
there is a solution to it though...

I forgot to mention it in the article, but I actually did look into
ProductHunt. To keep spam out they have some criteria that you as a user have
to meet before submitting something. I had only every been a lurker there so I
did not qualify.

~~~
emurph55
i think the basic criteria is to have a twitter account and engage on the site
for three days. might be worth giving it another shot or asking someone to
post it for you

------
fab1an
It sounds like Producthunt + Kickstarter could have possibly helped a lot
here.

Incidentally, this post may prove to be another great channel - imagine this
wasn't a post-mortem, but a pre-Kickstarter update on the process & journey of
working on the book...of course, making the HN front page these days requires
quite a bit of luck.

~~~
arthurjj
Kickstarter definitely would have been a better way to launch. Especially
since the funding goal to get a book illustrated would be less than $2k on the
conservative side. If I were doing it again I would probably use KickStarter.

Making the front page of HN was unexpected. I'll have to update the post once
I see how much it improves sales.

------
keyboardhitter
Great work and thanks for sharing the process! simplifying complex things into
concepts that are digestible by young people is a challenge, and really makes
me consider how I came to understand these concepts.

Though some may say simpler is needed, it's not that I entirely disagree but I
think of the situation of "being young and not 'getting' it" from another
angle.

When i was young, if I didn't understand something 100% I sought the answer
elsewhere (including more challenging sources or by hands on action). Well...
i still do that. I've gotten better at recognizing how to navigate new things
of course.

But throughout my life a lot of concepts have and continue to be abstract to
me (I am self taught, no college degree) - I don't often need to know the
formal description of something to, eventually, connect the dots. (I am sure
I'm not alone on that front but won't claim I know how common it is. I am
writing this comment casually but any sources on learning and development
methods would be appreciated.)

Regardless, my point is, I think these technical concepts could be very useful
even if "imperfect", to plant the seeds of ideas and maybe kick start further
curiosity. it'd be telling if kids looked back on this book or ones like it
and began "correcting" the limericks, or suggesting alternatives like in this
thread lol

~~~
arthurjj
Thanks. That's a much more complete and nuanced explanation of what I wanted
from the book for my kid.

Even if he just knows that the word "Queuing" is about ordering things it
gives him the vocabulary to look up a better explanation.

------
sogen
FYI my first impression: The cover makes it seem like programming is bad (the
black cloud above)

~~~
astrodust
That's just a typical entity diagram, so we're preparing kids for the real
world.

~~~
sogen
LOL, made me choke :D

------
egypturnash
> So the things that I did wrong.

> Started Marketing too late. I probably should have either started with a
> Kickstarter, pre-announced the book, or found a publisher. Book marketing is
> competitive enough that I needed a better plan than I had.

I've done three Kickstarters for comic books. "When your Kickstarter is
running" is not the time to build your fan base.

My method was to post pages online for free as I drew them. Once I had enough
to be worth publishing in a book, it was time for a Kickstarter for a modest
print run. I typically met my goals within the first week, if not in the first
weekend, because I'd slowly built my following while drawing the book, instead
of once it was all done.

This works well for me, and for a whole ton of other independent comics
creators. It would probably work better for someone making an abecdeclarium
than for someone making a lengthy, difficult graphic novel about a lesbian
robot with Philip K. Dick problems; a short verse with a cute drawing about a
nerdy subject is exactly the kind of thing that people love to hit the 'share'
button on without prompting.

You do have to be cool with a lot of people seeing your work without ever
giving you a single cent for this to work. Just think of it as something like
the Red Hat model, where you contribute to the Linux kernel for the benefit of
everyone who uses it, and get paid by a far smaller number of users to support
it. :)

\----

(Of course "get my story about putting together a Programmer ABCs to read to
your kids on the front page of Hacker News" ain't a bad piece of promotion
either, given how many people are saying "ooh I just ordered it for a kid in
my life".)

~~~
arthurjj
I think the idea of posting each page online as it was finished would have
worked great. Even without a Kickstarter.

If I do another children's book I'm definitely using this tactic. Thanks!

------
grawprog
I like his rhymes if I had kids I'd buy his book. Some of them seem maybe a
little much for the age group, even with the pictures. I don't know if things
like a garbage collector really conveys much useful information to someone
that young. But I guess it would depend on the kid. Still a cool idea for a
kid's book though.

~~~
eevilspock
I don't know the real reason why the book didn't succeed, but that content
didn't help. You're trying to impress young kids with concepts that don't and
can't have any meaning for them at their stage of development. Dr. Seuss books
have social and even political topics that are presented in a way that they
can grasp. Three and four years-olds are developing concepts of fairness, so
Seuss books stretch them and do so in an appealing way. But hash maps and
inheritance?

~~~
peterwwillis
Not to pile on, but I agree about the complicated words. But you could
introduce some of them if done in the right way.

I went back and looked at the pictures without the words, and it's actually
easier to just see what's going on. A couple of the ideas are simple enough
that one picture can give you the idea. But others, like yak shaving and
garbage collecting, would need a story line and multiple pictures/pages.

You could make an entire series out of these books! There are many great
childrens' series, and you can study them to see how they present stories,
what kind of themes they touch on, how the characters interact. If it were me
writing them, I would parody every great children's book series with each
programmer book. A bernstein bears book, a clifford book, a fraggle rock book,
a Dr Seuss book, a Curious George book, etc. Each book could parody a famous
series, but tell a story to explain a programming concept. You can do much
simpler ones for teaching ABC's but it will best as simple concepts that can
be grasped with a picture.

~~~
astura
Yak shaving must be SV slang or something because I've been doing this nearly
two decades and I literally never heard that term before... and the
rhyme/picture was not helpful in teaching me what yak shaving is.

However, when I Googled the term I understood it.

A reader may learn a few software terms but I don't think this book would
teach anyone, child or adult, a fundamental understanding of programming;
which is what I would look for in a children's book. It also significantly
narrows your market to only people who already know how to program.

~~~
peterwwillis
Yak shaving is from the late 90's. It's part of the the jargon file so it's
more of a FOSS term.

~~~
nerpderp83
What color is your Yak shed?

------
westurner
The rhymes and illustrations look great! Is there a board book edition?

Other great STEM and computers books for kids:

"A is for Array"

"Lift-the-Flap Computers and Coding"

"Computational Fairy Tales"

"Hello Ruby: Adventures in Coding"

"Python for Kids: A Playful Introduction To Programming"

"Lauren Ipsum: A Story About Computer Science and Other Improbable Things"

"Rosie Revere, Engineer"

"Ada Byron Lovelace and the Thinking Machine"

"HTML for Babies: Volume 1 of Web Design for Babies"

"What Do You Do With a Problem?"

"What Do You Do With an Idea?"

"ABCs of Mathematics", "The Pythagorean Theorem for Babies", "Non-Euclidian
Geometry for Babies", "Introductory Calculus for Infants", "ABCs of Physics",
"Statistical Physics for Babies", "Netwonian Physics for Babies", "Optical
Physics for Babies", "General Relativity for Babies", "Quantum Physics for
Babies", "Quantum Information for Babies", "Quantum Entanglement for Babies"

"ELI5": "Explain like I'm five"

Someone should really make a list of these.

------
phirschybar
Thanks for sharing this.

I learned to program when I was very young. One thing sticks out to me about
the strategy of the first person I learned from. He explained to me just how
complicated our actions, as humans, really are. Want to make a PB&J Sandwich?
Think about how many micro-steps are involved in that process! Everything from
small wrist movements to understanding how to navigate the refrigerator define
such an everyday, common task. He then described how we can transpose those
types of actions and objects to programs. This quickly led to an understanding
of concepts like conditionals and loops for repetitive tasks.

I think that approach is well-suited for children learning to program. Avoid
jargon, start with fundamental concepts, connect the concepts to experiences
the child understands.

I hope to see more attempts at children's books which stroke the curiosity of
the budding programmer.

------
guy98238710
Why give children a book about programming when you can let them write
programs instead? Every kindergartner can program a storyline in ScratchJr
before they can learn how to read.

I am speaking as a dad who went through this. Books are much better for
learning to read and learning to like reading, because good books for kids are
just fun.

------
qwerty456127
Hackers should really be writing more books for kinds. Not only about
programming but about "life, the universe and everything" too - I wish there
were an introduction into understanding myself, life, the society and other
stuff written by a likely-minded person available to read when I was a kid.

------
jedberg
Based solely on the pictures in the article, I just bought a copy of this
book. It will arrive Monday. If I like it, I plan to buy at least two more as
gifts.

I've been looking for a book like this since I had my first kid three years
ago!

~~~
a-saleh
I remember seeing a similar book. I think this was it
[http://www.helloruby.com/](http://www.helloruby.com/) which seems to be more
professional/educational, I think there even are some work-books?

~~~
Pfhreak
Hello Ruby is beloved by my daughter, and yes, teaches the concepts without
ever really mentioning computers in much depth.

------
BFatts
That's awesome! Thanks for sharing this.

------
loranbriggs
I have this book, it's a great way to introduce programming early.

------
dmourati
I bought it straight away.

~~~
arthurjj
Thanks! Hope you like it.

~~~
dmourati
Looks advanced for my 22 month old. Still, I like to keep him challenged. If
he learns anything now it will be a bonus.

------
notsgnik
i love it!

------
badrobot101
take my money

