Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
I run a software book club (eatonphil.com)
327 points by ingve on May 30, 2024 | hide | past | favorite | 84 comments


After COVID, I had an epiphany. Or maybe it was just caffeine deprivation. I thought, "Why not start a book club?"

Now, the first challenge was finding fellow enthusiasts among my software engineering colleagues, who seemed to communicate exclusively in binary. During our daily stand-up, I announced, "Who here likes books?" I was met with a silence so profound that I could hear the hum of the office air conditioner. Undeterred, I added, "There will be snacks."

This got their attention. After all, the way to a programmer's heart is through their stomach. By the end of the day, I had three tentative members: Jake, who only read sci-fi, Priya, who was into self-help books, and Alex, who claimed to enjoy "anything as long as it isn't too long."

For our first meeting, I chose a conference room and sent out an email titled "Book Club Kickoff - Bring Your Appetite!" I brought in a selection of snacks: chips, cookies, and, because I was feeling fancy, a cheese platter. The turnout was surprisingly good. Even people who hadn't signed up showed up, lured by the smell of free food.

We decided to read "The Hitchhiker's Guide to the Galaxy" by Douglas Adams, which seemed to be a safe middle ground between sci-fi and humor.


Delightful! But now I have to know, did it work? As in, did people actually read and discuss the book, and is the club still going?


This is the true question


It was clearly a cannibalistic trap. The book readers were the snack.


>> There will be snacks

Wise move. More people will come if they think you have punch and pie.


> Doing it at your company likely won't go well

This has been my experience. I led a book club at one of my jobs and it was poorly attended and those who did attend hadn't read the book.

My guess is that there is just a low percentage of people who meet all the criteria: 1) interested, 2) have the time to read the book, 3) have the commitment to read the book, and 4) social enough to attend the book club meeting.

I understand that many people are busy and may not have time to read the book or have a schedule conflict the day the book club meeting happens.

So unless your company is huge, you'll not have enough to keep a book club going. There also may be pressure to avoid using company communication tools to promote the club.


I ran a book club for 7 years when I worked at TriOptima. We were maybe 40 developers in total at the company, and around 10 would join when we picked a new book. Towards the end of one book, some people would always drop off, but there were still enough people to make it useful.

One of the key (unexpexted) benefits of it was how it facilitated discussions about SW development practices between the different teams at the company. The content was usually good for giving us new ideas to try etc, but the usefullness of the discussions surprised me.

I've written more about it here:

https://henrikwarne.com/2016/11/08/developer-book-club/


Thanks Henrik! Your blog post inspired me back then to start a book club at my company. It’s still running :-)


Great to hear!!


This has been my experience too. However, I found that changing the book club to “article club” where we all read one interesting technical article worked quite well. I have been running such a club with fortnightly meetings for over 3 years now.


Are you able to organize that on company time? Are you guys clocked in during your meetings?

I guess that wouldn't be unreasonable if the content is work related and certainly helps with attendance, but I'm not sure if that would fly within all corporations.


> Are you able to organize that on company time? Are you guys clocked in during your meetings?

I've approved or started (or both) this sort of thing on company time before, at more than one place.

For context, this was typically early stage R&D, and many/most of the employees had some academic background, though that ranged from "decades ago" to "we just hired you after a masters degree".

In this setting, it's a pretty natural continuation of the common "journal club" approach in academic research groups. It spreads the effort around, helps the team stay on top of new work, and generally improves professional development - if done well. It does take a bit of effort to keep fresh.


I think most technology companies should have that, and I've been promoting that workplaces.

The trick to make it sustainable is to make at 3-month calendar of covered papers from multiple sub-areas (e.g. data management to machine learning, new programming languages to compiler topics) and share that widely. Not every topic is relevant to everyone, so naturally each topics will only attract a subset of the crowd beyond a small number of open-minded champions, but that's okay.


(Not OP) We tried launching a book club at one of our previous companies, where we were told "no worries, take your time to read a chapter a week and take an hour to talk about it.

While in theory, everybody thought it's a good idea, not everyone had time to read it, and when it came down to it, everybody just preferred to work on their regular tasks. In the end, nobody wants to risk delaying a promised deadline because of a book club.

So it all fizzled out within a month...


>where we were told "no worries, take your time to read a chapter a week and take an hour to talk about it.

Maybe because I've been a reader my whole life, but I can't imagine getting value out of reading a chapter a week. It's rare for me to read less than 1 book per week. Even if it were a technical or educational book, one chapter at a time is a miserable way to read something.


If you're a relatively senior engineer, any reasonable company will want you to be doing knowledge sharing (or outright mentoring - which this isn't, but it falls vaguely enough in the same bucket that you can usually get positive attention for it.)

(In a previous startup, we had cross-department tech talks, partly because we had some really specialized problems, so it was useful for, say, releng to hear about what the ML team thought was interesting, and vice versa, just for generally improving communication and reducing friction. We even threw in an occasional "lightning talk" session, which was popular, though it was as much for getting people comfortable giving talks so they could level up to bigger ones.)


Not OP, but I have worked at a few companies that would't mind, as long as the articles are relevant to your work. You could even sell it as a way to enrich everyone's expertise because of the deeper technical discussion.


Yeah. The company has a general culture of enabling learning, so this fits right in. The company also does a wider book club that focuses on more non-technical topics.


Interested to hear more about this. What works well? What didn't?


We tried different models. One book every two months, one or more chapters of a book every month (thus finishing a whole book over a few months), and one article/video (generally requiring an hour of reading/watching time) every two weeks. My thoughts below are based on experience of those three models.

1. Reading a whole book every one or two months works well when everyone has a regular reading habit. Without that people realize that they need to read a whole book in a few days before the meeting. That either led to poor quality discussions or people showing up without reading. 2. Reading book chapters every month was less demanding but the frequency of meetings was still too low for people to build reading into their routines. 3. At two weeks the frequency was high enough that it became a routine for the engineers. 4. We also reminded everyone one day before to read the article. Even if they had forgotten to read till then it is easy to find and hour in the day to read up. 5. If the reminder was too far in advance (say 3 days before) then people ignored the reminder.


Sounds fun. How do you get your list of articles?


It’s crowdsourced. People add to the list things they find interesting and would like discussed more widely. We also have round robin turns setup to decide who picks the next article to read from the pool.


My experience as well. I tried it a couple of times more than 10 years ago, one is covering Nancy Lynch's Distributed Algorithms, and one is Maurice Herlihy's The Art of Multiprocessor Programming. We finished about 1/4 of each of the books before running out of momentum. People simply lost interest as the content became increasingly challenging. We talked about the reasons, and the overwhelming feedback was that people lost interest because they failed to see what they learned could be applied to the job in short term, so it looked to them that the effort of learning the hard stuff wouldn't pay off.


And 5) get something out of reading software books.

Not sure what it is, but in general software books just don't do much for me.

Only one I truly liked and got a lot out of was Physically Based Rendering[1]. It had a great blend of explaining the concepts but also showing how to implement them, and for me the literal programming style worked very well in this case.

But apart from that I struggle with getting something out of software books. Not fiction though, I read tons of sci-fi (especially hard) in my 20s.

[1]: https://www.pbrt.org/


We did a book club at my previous company. We voted on the first book, Despair by Nabokov. The interesting thing is that the ones who voted on this book didn't end up reading it. The ones who did read that book had voted on something else and, at least in my case, forced themselves to read Despair.

My guess is that a lot of those people who voted on Despair and proposed it were trying to show off how smart and educated they were but those type of people don't actually follow through because it's work.


In the book club I run, we voted on books for a few years. I kept hoping the non-attending voters would choose the right books to bring them to a meeting, but the choices sometimes felt aspirational like that -- people voted for a heavy title but still didn't attend, and it was irritating to be reading dull books chosen by someone else.

So we switched to making selections in person at a session; if you can't come, you can submit suggestions, but the people who actually bother to show up make the final choices. We choose a monthly book for a whole year at a time, so we just do an hour-long discussion in December and pick 11 titles. In a monthly group you could probably do it in 10 minutes after the regular discussion.

Also, as the organizer feel free to put your thumb on the scale: pick 3 books you'd personally like to read, and ask them to choose one. You may want to be completely democratic about it, but people often appreciate someone else reading reviews and limiting the choices (avoiding the paradox of choice).


We just started doing this and it was awesome to start but slowly I could tell people started becoming disinterested. We are contemplating another round which I think will be the deciding factor.


We ran a journal club at work, and it worked ok. The commitment boundary is significantly lower, and you can learn a lot from e.g. USENIX papers.


A fellow book club host here! I too have run two book clubs over Jitsi and IRC. The first one was for Introduction to Analytic Number Theory (Apostol, 1976) and the second one was for Mastering Emacs (Petersen, 2022).

Here are the meeting logs and some statistics: https://susam.net/cc/log.html

Here are some posts and content pertaining to these book clubs: https://susam.net/tag/meetup.html

Quite similar to the original post (OP), we also had about 5-8 regular participants in our meetups. However, ours were virtual rather than in-person. Given that the author of the OP mentions 5-8 consistent attendees at in-person meetups, it's quite impressive!


That number theory book looks like something I'd really enjoy reading. I assume you must have enjoyed the experience, but I'm curious how easy it is for everyone to move at the same pace on such a technical topic, where everyone might have a different background?

Do you feel like the pace is ever an issue with technical book clubs, or is it actually just fine?


Most members of the analytic number theory book club were computer programmers in one form or another. A few among them had very strong background in mathematics, especially in elementary number theory and complex analysis. But nobody had any prior knowledge of analytic number theory.

The pace was not an issue for me because we used to go really slow. We read every line of the book together, ensuring we understood each argument before moving to the next one. As the meeting host, I came prepared for the meetings and spent a lot of time illustrating proofs with additional details, perspectives, and examples (see https://offbeat.cc/iant/boards/ for notes).

This approach suited me well, as I need time to digest new mathematical concepts and form intuition around them. I hope it worked for others, but we didn't survey participants, so I can't say for sure.

Sometimes we picked some exercise problems, solved them, and walked through the solutions during the meetings. But most exercises were done offline by the participants in their own time.

I have written a lot more about the learning experience here: https://susam.net/one-hundred-meetings.html


A book club for Introduction to Analytic Number Theory and How to Use Emacs. I guess I'm not as nerdy as I once thought!


Sometimes I lead book clubs that are purposefully short and low commitment. Especially for a book I know well I will pick a subset of chapters, (machete order, if you will) and run through them. I like to think it makes people curious enough to seek more on their own and my anecdata supports that.

Related, I have had mixed experiences with work book clubs. I generally like them as an outlet for my socialization needs.

Sometimes you get people seeking "brownie points" and they don't really participate.

Sometimes you get the contrarian who thinks they know better than the author and does not debate the topic(s) in good faith.

Sometimes you get eager people and have great discussion.

All that said, I think book clubs are very useful and valuable and generally have zero issue getting the time allotted at work for folks across org boundaries to participate.


It must be a company culture thing. I've run book clubs on AI, C++, Code Complete, Timeseries Analysis, and research articles at my company with consistency attendance of 10-15 developers. I even had rotating facilitators and light homeworks where attendees did a decent job.

However, the company's support is very important. Fortunately, my employer pays for the books and they even have a person charged with supporting book clubs, including ordering books for you and create a Confluence template for notetaking and attendance tracking.


I'm envious of your success. I'm convinced that reading dense technical books is crucial to developing yourself over time, but I have a hard time reading technical books alone. The few times I've been in a book club they started out great, but fizzled out in a couple of months. Maybe I'll look into it again.


This is unrelated to the book club topic, but have you considered reading dense technical books as audio books? I often do this and I find that I absorb them maybe 50% as well as if I sit down and read them, but that I read 500% more. As a result, I can re-read them a few times and still come out ahead.

(rather than actually getting an audio book version, I'll typically get the epub and use a third-party reader with a read-aloud feature. I mention this because audio books are often not available, and because first-party readers typically won't allow you to read books aloud specifically because they to upsell you on the audiobook)


I do listen to audio books, but I don't like them for technical books. Screen readers usually do a poor job of handling code and diagrams that are crucial for understanding something. I like talks and lectures though, but with those I suffer from a similar issue to reading alone.


> Screen readers usually do a poor job of handling code and diagrams that are crucial for understanding something.

That's fair. This is definitely the main reason why my comprehension is lower and I have no solution for it.


what reader do you use?


I currently use this one for iOS which handles both epub and pdf pretty well: https://apps.apple.com/us/app/voice-aloud-reader/id144687636...

I've switched a few times, and anything on an Apple platform will typically just use the speech synthesis APIs and have the same set of voices available: https://developer.apple.com/documentation/avfoundation/speec...


thanks!


Perfect. Great summary.

Yes and: our study group use(d) approval voting to choose the next topic(s). With both suggestions and voting open to any one.

After closing nominations and before voting, we briefly chatted about each suggestion. No more than 15min, usually a lot less.

Topics (books, papers, libraries, whatever) were added to the queue, ordered by interest (votes).

The organizer calls another "election" as needed. To refill the queue, or if interest wanes, or if a book proves to be a stinker, or...


Maybe there should be a software applications club. Choose a different piece of software to discuss each time and what's everyone's experience/pain-points with it and sharing tips/tricks/ideas about it.


Those comments are nice to read. I tried, but my coworkers are too "young" or from other generation, I guess. The response [about simply buying a book] was "Oh, another person said it wasn't needed [to buy a book about that] since it will always be behind newer versions coming"...


A bunch of the people in my groups have been college students fwiw. It's been a complete mix of young people and experienced people. Doing it over the internet helps you cast the wide net. When you do it with only your direct friends or coworkers it can be much tougher, or hit or miss.


Any Bay Area in-person ones anyone here would recommend?


I'd love to attend one in the bay. Seems like a prime crowd to target for this.

Please let me know if you find any. Happy to help start one too.


I'm in SF but I'd be willing to meet in SJ for a book club. Email me at julian@excelsitor.com if you want to help start this. Replying to others who said yes too.


I don't think there is one since no one has responded yet. So you should start one.


I’m also interested!


I'm in SF but I'd be willing to meet in SJ for a book club. Email me at julian@excelsitor.com if you want to participate.


same!


I'm in SF but I'd be willing to meet in SJ for a book club. Email me at julian@excelsitor.com if you want to participate.


+1


I'm in SF but I'd be willing to meet in SJ for a book club. Email me at julian@excelsitor.com if you want to participate.


Interested


I'm in SF but I'd be willing to meet in SJ for a book club. Email me at julian@excelsitor.com if you want to participate.


interested!


I'm in SF but I'd be willing to meet in SJ for a book club. Email me at julian@excelsitor.com if you want to participate.


Here's the page about his current book club. There's a Google Form link to sign up, which hopefully I'm not too late for since I just filled it out!

https://eatonphil.com/2024-understanding-software-dynamics.h...


Yes I'll keep adding people until at least this weekend when the first chapter discussion starts.


Ha, from the title I assumed the group would try out a different piece of software every month (new database, library, programming language etc) and come back to discuss it as a group. Honestly that sounds more fun.


ooh, you could probably do one of these solely on organizer apps (a friend once joked about a subscription-based organizer service where what you got from the subscription was an entirely new app every other month or so :-)


Hi,

Just curious what the frequency of meetings you found to be most effective, weekly, bi-weekly etc?

Thanks


Just finished attending a weekly book club (Fundamentals of Software Architecture by Mark Richards and Neal Ford -- great book for mid and senior developers, as well as new architects).

2 chapters weekly worked well because the chapters were short, and were mostly brief overviews that discussed the pros and cons. (Also we had a ton of experience in the room, so that helped guide the discussion.)

If the chapters were dense I would have longer gaps between meetings to allow people more time to read and reflect.


In person I did biweekly (fortnightly) and that seemed like a fair frequency. Virtually though there's a new discussion started every week.


Hello! Happy to take questions.


What are your software book recommendations in general?

I often find that the material in the classics (programmatic programmer, mythical man-month, etc.) are so ubiquitous that I don't get much from actually reading them.


My only recommendation is Designing Data Intensive Applications.

I agree with you that most recommended books are so-so.


What was your process for starting the book club and gathering the first group of people to gather?


Mostly just posting on Twitter I think. LinkedIn, Discord, and my mailing list to a lesser degree.


I'd love to see examples of the actual groups as well as the "Intro email"?

Thanks! Really good read.


> the "Intro email"

Basically a condensed version of this blog post. :)


Tangentially related but what did you think about the second half of database internals?


I thought the second half was better than the first half! Alex Petrov was in the reading group that time. Funnily, if I recall correctly, he felt the first half was better, in part, because he wrote it last with more experience.

It's a good book though.


Interesting, I put the book down at the second half because I felt it went from extremely strong to somewhat weak. If he wrote the first part last then it makes a lot more sense. Might pick it up again after this.

Completely worth it for the first part already tho.


Is there anything you did that, in hindsight, seemed a bit too heavy-handed?


I have been lucky in not needing to moderate basically anything. I thought I'd have to do some moderation.

So, luckily, no I don't think so.


Is there any way to look over past discussions on the books?


You got any in-person NYC clubs planned for this Summer?


I want to but I also got stressed out considering it because of other stuff ([0, 1]) going on. In the meantime you can come to NYC Systems [0] or the NYC Systems Coffee Club [1]!

There's also Eric Zhang's NYC paper reading group [2] that seems cool but I've never been to.

[0] https://nycsystems.xyz

[1] https://eatonphil.com/nyc-systems-coffee-club.html

[2] https://notes.ekzhang.com/events/nysrg


Oh nice, I'll check out nyc systems. Thanks!


I thought this would be about installing a piece of software each month and evaluating it together. Which sounds awesome. Maybe I should go start that.


>> And email is built around an inbox.

More so a traditional mailbox.

I wish read receipts never existed. It doesn’t make sense to know when I check my mailbox.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: