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.
The author says the purpose of this book was to answer "what daddy does at work" so in that regard I don't think it's underwhelming. However, I can't help but think that adults (programmers) will enjoy this more than children. As a teaching book for programming it's quite underwhelming indeed!
I am a programmer but I have always been interested in the learning process and mentoring. So in recent year I have conducted some self-study on these topics. Now this is such an immense topic and I have surrendered to my ignorance on so many levels. But, from what I can tell, there is a lot of dogma that we trust blindly, a lot of great old ideas of course (Piaget, Dewey, etc) that have been a great influence but not enough (and simplifying an incredibly complex topic).
Some insights I've had that have made me realize how hard education is getting right (forgive the simplifying, but it needs to fit a HN comment)
* Children have many different ways of understanding and sense-making, but we have a very simplified/dogmatic view of how chilren learn.
* We seem to overemphasize practical activity at the expense of other ways of grasping meaning (e.g abstract thinking)
* We make false assumptions: "The absence of abstraction awarness or articulation of it is a sign that abstractions are not at work in their thinking"
* ...I could go on..
Barely scratching the surface I have realized how little I know. This is such an interesting topic and you can learn a lot studying the pioneers, Piaget, Montessori, etc. but always have a critical eye! More recent literature I can highly recommend the works of Kieran Egan.
Being an educator is incredibly rewarding but I think we as programmers need to be much more humble when approaching the teaching practice..
It is sort of funny the book is in the ABC style (presumably helping kids at the age they're trying to learn their ABCs) and then talks about things like garbage collection. Sort of disparate. Oh well, some portion of a kids books are for the parent too, and it's really sort of random what kids will take to. It's not like Brown Bear makes any sense. I bought a copy of this for my 15 mo old.
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.
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
(I work with children and am respected for my ability to teach them sophisticated ideas.)
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.
>published via Amazon CreateSpace (which Amazon seems to be phasing out).
I just published my second book through CreateSpace, any phasing-out would be news to me, but I'm very curious what you mean. My experience the second time around seemed basically identical to the first—what's getting phased out?
Since Amazon owns both CreateSpace and KDP, it does seem inevitable that they will eventually merge them under the KDP umbrella. Although there is no fixed timeline, the launch of KDP Paperback brings this one step closer. I like CreateSpace, so I hope it persists as long as possible.
https://kdp.amazon.com/en_US/help/topic/G201952960
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?
I didn't sell any directly from GoodReads (at least that I noticed), but received some very nice feedback from the giveaway winners after mailing them copies.
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.
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.
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.
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.
agreed. this seems to be more for adults. in fact since so much of it is about monetization it might have been wise to go ALL-IN on the adult concept and add some humor that would appeal entirely to adult programmers. could have a big seller!
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!
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.
I look at it as mainly improving the child's vocabulary with some very niche words that they probably wouldn't learn on their own. Then, some day, they'll run into that word in context and they'll be able to understand the greater context a little better.
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]".
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.
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.
Having studied how humans learn, both are important factors. Genetics determines the upper limit, and teaching and practice determines if you reach that limit.
But when it comes to teaching, it is important to teach both how to learn, as well as basic concepts to build upon. By teaching the child these words and concepts, they can then expand from there. They can get curious then use their training on "how to learn" to learn more about the topics presented.
To successfully teach a child, you have to do both.
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.
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...
>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.
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
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.
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.
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
> 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".)
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.
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?
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.
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.
Glad to hear you like the rhymes. Your right, some of the words are a advanced for a little kid. Many of them were just so I could tell my son "The Garbage Collector was too slow today"(I work in Java) or "I had to shave a yak today."
I like a couple of the rhymes, perhaps it's just me, but most of them don't scan properly. Mind you I find this is a common complaint for me, perhaps my rhythm is off.
Example: Debugging should have "to figure out just // what has gone wrong".
That said I doubt that's much of a bar to sales.
To me it's a novelty book "A Programming ABC" that people (probably non-programmers) would buy as a gift. The artwork is amazing IMO.
As a teaching resource it seems more like a pile of quirky chapter pages that would preceed in depth descriptions.
I wonder if the pages would work as merchandise, or just framed artwork.
If I knew about this a few years back, I probably would have bought it. On the fence now as my youngest is 5, and all the rest are past the picture-books stage.
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"
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.
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.
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.
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!
I remember seeing a similar book. I think this was it http://www.helloruby.com/ which seems to be more professional/educational, I think there even are some work-books?
I've been looking for a book like this since I had my first kid three years ago!
Thanks! We wrote the book after searching for a couple weeks for a book like it. I actually ended up writing a list of all the different programming books for babies and toddlers [1].
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.