Hayden: Hey Bruce! Thank you so much for taking the time to speak with me about your work at Groxio & all things Elixir! You’re obviously quite well-known in the community but for the sake of new members, could you give a brief introduction to yourself & your work?
Bruce: I am a serial entrepreneur and author from Chattanooga, Tn. In the distant past, I've been active in the Java and Ruby communities as an author and conference speaker, and am currently involved in the Elixir community. I write books, organize conferences, and until recently, was the editor of the Elixir line of books at the Pragmatic Bookshelf. Books by me you might have encountered are Seven languages in Seven Weeks, Programming Phoenix, Adopting elixir, and Programming Phoenix LiveView. Now I have my own training company called Groxio.
Grox.io
Hayden: As someone that has been writing tech-related books for 20+ years now, what would you say is the key to creating informative content? Have there been any major challenges you’ve faced along the way?
Bruce: I write my best content when I am deeply invested in it. I also work to establish a personal connection with my readers, and that cuts against the grain in technical writing circles. Personal connections open learning channels.
Hayden: Your book ‘Seven Languages in Seven Weeks’ comes highly recommended, the reviews on Amazon are complimentary whilst also commenting that it’s no easy ride!
You chose Ruby, Haskell, Erlang, Prolog, Scala, Clojure & Io, what led you to choose those languages over others that were also popular at the time? Did you ever doubt your choices?
Bruce: That book was intended to tell a story at a particular time, and it does a good job of that. It showed a logical progression of object oriented languages to functional languages, and then introduced two successful functional languages with vastly different takes on the way the world works. The choices were deliberate. Not all were successful languages, but all of them tell an interesting story, and that's what I wanted to do.
Hayden: You’ve previously recommended that devs should try to learn one new language every year, which new languages are you hoping to explore next?
Bruce: Gleam is interesting. I would like to learn OCaml, and could take a second spin through Haskell at some point to get more familiar with it. I would also love to spend more time with Pony because it's so radically different from what I am used to.
Hayden: Do you feel there are any drawbacks to always looking for the next Ruby/Elixir etc..? If so, would you have any disclaimer advice from your experience
Bruce: I look for languages that solve my problems first and pay the bills second. I also look for languages that spark curiosity and joy. If my readers do the same, they will do just fine.
Hayden: Both yourself & Maggie are doing some great work at Groxio, I’ve been listening to some of your testimonials from students, it really seems like they’ve grown in confidence & they could offer specific instances in which they had changed their mindset during the training. From your experience, are there any common trends with the issues that Elixir Newbies are facing? Do you have any recommendations to help them through?
Bruce: The trends in Elixir are in many ways the same as the trends with other growing languages. It seems companies are catching up to the idea that leverage matters. When you can do more with less, it enables so much. Teams get smaller, management and infrastructure are reduced. Some problems are also easier to solve with functional languages and concurrent ones, so Elixir provides many of the advantages businesses seek today.
There's another trend too. Programming talent is getting harder to find, so you're going to have to pay fair market value for that increased leverage Elixir provides. Higher end Elixir developers are finding a white hot market. On the other hand, new programmers must prove their competence, sometimes before they even find work. Grox.io is well positioned because our users can build experience with professional classes, and get experience with the difficult programming abstractions before working their way into the programming market.
Companies are also embracing training because it's cost effective. If you could build capacity by making your existing team more efficient, why wouldn't you?
Hayden: Do you feel companies are becoming more receptive to candidates from Bootcamps/training rather than production experience?
Bruce: I do. Companies want demonstrated success, and they want value. When the market is this hot, those goals oppose one another. And look. We have to adapt as an industry. A language with no beginners is a dying language.
We also need to get better at teaching young Elixir developers. That's what Grox.io is investing in first and foremost.
Hayden: I know a large portion of the community is very excited about LiveView at the moment & I can see that you offer specific training courses on it. What do you feel is different about LiveView that makes it so appealing for Elixir Devs now?
Bruce: First, let me preface this with saying that I have not been involved in LiveView's development at all. I deal only with adoption. I do see a few advantages through my work with students, though. LiveView has three big things going for it. First, it's tightly aligned with Elixir and its goals. It fully embraces Elixir's OTP and its way of problem solving. Second, LiveView relieves the user of much of the burden of building distributed apps with so much JavaScript and custom communications with the server. This allows much smaller teams with thinner skill sets to attack major interactive web apps because the most important distributed interfaces are managed by the framework automatically. Finally, LiveView places a developer's mind firmly on the server, allowing better workflow and focus.
Hayden: What else is exciting you in the Elixir landscape right now?
Bruce: I love seeing what's happening with Nerves, LiveBoook, and Nx. You can already find Groxio modules for each of these topics.
Hayden: There’s an ongoing discussion about the necessity of learning Erlang/OTP to work professionally with Elixir, as someone that had a good grasp of Erlang before discovering Elixir, do you feel it’s crucial? What would your recommendations be for someone just starting out with OTP?
Bruce: Abstractions trump functions and features. Find a good instructor, course, book, or video series. Learning OTP abstractions is easier with metaphors and help. Groxio teaches a good OTP course, but a lot of other people do too. The Clarks at Pragmatic Studio are some of the best teachers in the community.
Also, think in terms of reduce. Elixir is all reduce.
Hayden: What would your essential reading list be (including your own work, of course!) for an Elixir Newbie?
Bruce: Saša Jurić's book called Elixir in Action is excellent. It's a must read for new Elixir developers. Sophie DeBenedetto and I are working on Programming Phoenix LiveView. That book provides a good overview of design in Elixir. James E Gray II and I wrote a book called Designing Elixir Systems with OTP provides a good overview of how to go about designing Elixir. If you're looking for smaller reads, the two Nerves books at the Pragmatic Bookshelf are fun examples of hardware projects you can build.
There are also lots of good online resources. The Elixir and Phoenix teams have done a great job with documentation including getting-started guides.
Hayden: I’ll wrap up with our common question, what would your advice be to your ‘Elixir beginner self’?
Bruce: Ask questions. Stay joyful and curious. Be kind. Leave the language in a better place to you found it.
Hayden: Thank you so much for taking the time to collaborate with me on this, it’s greatly appreciated & I’m sure the community will really benefit from your advice.
Bruce: My pleasure.
Links:
Buy Seven Languages in Seven Weeks:
https://pragprog.com/titles/btlang/seven-languages-in-seven-weeks/
Visit Groxio Grox.io