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.
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.
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.
>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.
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.
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.
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.
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).
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.
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.
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.
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.
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 :-)
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.
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.
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.
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.
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.
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.
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.