As someone learning Elixir, I want to take a moment to appreciate a trend I’ve noticed in many Elixir books—they often focus on production-grade code, and that’s something I deeply value.
Some of the standout examples for me include Elixir in Action, Elixir Patterns, and Network Programming in Elixir/Erlang, Metaprogramming Elixir. These books don’t stop at just explaining the concepts. They go a step further to show how things are actually done in real systems. They teach you not just how to make something work—but how to make it work well, in a way that scales, handles failure, and respects the Elixir way.
This is in stark contrast to some books I’ve read in other languages where the examples are overly simplistic, and any advanced or “real world” technique is either glossed over or introduced with a disclaimer: *“don’t do this in production.”*Years ago, I read an Erlang book where the author would go through a topic and then say, “This is how we actually do it in production,” and include a little trick or hard-earned lesson. That stuck with me.
I don’t want to learn toy examples that I’ll later have to unlearn or relearn in a more robust way. I want to build muscle memory for writing quality code from the beginning—even if it’s harder. So to the authors who take the time to teach real-world practices from the start: thank you. And to future authors: please keep raising the bar.
Does anyone else feel this way about technical books—preferring production-focused teaching over purely pedagogical examples?
Besides some great books, then there is an additional appreciation you get when you see all the non-production grade code running in production. And your immediate thought might be: how did this even work?
I think “production-quality” examples can be helpful for picking up tips and tricks.
However, when learning to program it’s very important to understand that just studying code will not teach you how to write good code. Programming is a strange art-form which requires a tight feedback loop over a long period of time to master. This is also why CS education is often subpar: students don’t spend enough time in one codebase to learn when they’re doing things which are unmaintainable. What is and is not maintainable requires practice to understand and cannot be learned just by reading or by producing quick one-off projects and moving on.
In the limit this leads inexperienced engineers to spend their time trying to emulate systems they understand to be “production quality” without understanding why, so you get insane microservice sprawl and other such problems.
Still, books which use real examples can be quite helpful as long as they’re accompanied by practice! I do think there is still some room for pedagogy, though.
Another thing I think a lot of “junior” engineers probably don’t realize: you can just read other people’s code. There’s tons of it on the internet! Reading code is very hard, but if you come across a project you really want to understand it can be very rewarding to piece it together. It just takes time.
Yeah, my comment was more to the point of what is production grade code.
The statement is in itself opinionated and non descriptive. It is in my opinion an oxymoron since any code buggy or not in production becomes production grade.
Your take is by far more valuable then a buzz word.
100% agree @kodepett - we’re so lucky to have so many quality books.
Big shout out to our friends the @PragmaticBookshelf and Manning for all the Elixir books they’ve published too. They’ve helped validate Elixir as a serious language and have played an important role in its adoption - at PragProg alone there are now over 30 Elixir books!