Start a book circle
Tags: beginners, books, programming, productivity
Published: 2022-03-18 17:18:35

***- Why should I start a book circle?***

Have you ever read a programming book or an article that enlightened you and then found no one to talk to about it? What you are lacking is a forum to discuss what you've read. 

Even if you have experienced peers, they might not be well versed in the topic, resulting in a one-sided conversation. A book circle allows you and your peers to discuss these topics in a structured way. 

***- My team/manager won't set aside the time for it.***

A book circle can be a perfect opportunity to come together as a team and discuss ideas before trying them. There is no point in trying something if not everyone is convinced that it is worth trying.

People, in my experience, are more likely to try something if it comes from a source with authority, like an author from a well-regarded programming book.

***- Where do I start?***

All you need is one other person who wants to try. An excellent place to start looking is with your current team at work, or maybe you know some alumni who might be interested.

***- What should we read?***

If you (or your team) are struggling with something, in particular, you should start there. For example, [Clean Code](https://amzn.to/3uLSY8d) and [Refactoring](https://amzn.to/3LsVZ3b) are good candidates if code quality is lacking. [Test-Driven Development](https://amzn.to/3gJgQ3R) should generate interesting discussions if the team is not practicing TDD. [User Stories Applied](https://amzn.to/3Lxv7iu) if planning or story writing is problematic.

Avoid programming books about specific programming languages or frameworks. Syntax or features are usually not that interesting (but don't disregard programming books like [Seven Language in Seven Weeks](https://amzn.to/3J0ya11), an excellent resource for paradigm comparison).

Don't pick long and difficult programming books. Picking [The Art of Computer Programming](https://amzn.to/3pVrxpa) is probably a poor choice because of its complexity and length.

Remember, books are just opinions and interpretations of data. [You don&rsquo;t have to agree with the author](https://www.programmingbooks.dev/articles/book_is_wrong). Just try to understand them.

***- What do I need to prepare?***

Decide on a programming book to read. If you have people already signed up, do some research on what interests them and make an educated guess of what you think will work. Then check with the group if they want to read it.

Pick a day and time of the week and set aside at least 30 minutes or more for discussion. 

There will be times when not all can attend, and you need to decide what's most important, progress, or that everyone can participate.

Keep the reading pace consistent. For example, if you usually read 20 pages a session, don't expect participants to read much more than that for any week. 

Have an accessible resource that clearly states what pages to read for which dates.

***- What should my role be?***

You should act as a moderator and help facilitate discussions. Ask questions to people. If some people talk more than others, ask the people that don't speak that much and give them space.

***- What if we are people with mixed skill levels?***

Having different backgrounds will give different perspectives on a topic, which is good. Things that might be obvious to you are maybe not to others, and you can likely learn from their insights as well.

***- What if people don't like it?***

If some people don't like the book circle, ask them why and adjust accordingly. Book circles are more fun if people attend and are engaged in the discussions. The goal is to learn together and encourage each other.

***- That's it?***

As usual, there is no perfect formula, so you have to be a little agile about it and adapt to your members. So start your book circle, and let [me](https://twitter.com/cennydavidsson) know how it goes!