We’ve talked to Bastian Gruber, an experienced developer and CodeControl member, about his recent project of writing a book about Rust. He told us what makes this programming language special, what he wants to achieve with his book, how the writing process works and how he manages his time and different projects.
Bastian, can you tell us more about yourself? What’s your background? I’ve been a software developer for about 15 years now. I studied computer science, and I went on to work for start-ups and big and small companies. Then I went into the freelance track and joined the CodeControl community. For the past three years, I’ve been getting more and more into the Rust programming language. I also started a Rust meetup in Berlin, and I’ve been blogging about it. Then a publisher - Manning - approached me and asked me if I wanted to do a book with them.
What’s special about Rust? I think it’s an exciting new language, a systems programming language. This means it should replace lower level languages, but it has the features of a higher level language. My assumption is that this will help a lot of people reach into the low level - coding, game, design, all the things needed. This was previously not possible because people didn’t like C++ or didn’t like to learn it. I think Rust will enable more people to write performant software and even systems and applications.
__Do you think more people should learn Rust? __ Yes, I think they should. It will play a huge part in companies, it’s already part of Apple, Facebook, Google and Microsoft, and also smaller companies. With Rust knowledge, you might be able to have more job openings in the future, and get a bigger salary. It’s a nice language to get into now. You can get a few years ahead of the rest, and you might be a senior Rust developer in a few years.
How would you recommend people to learn about Rust? By buying my book, of course! No, seriously, I would choose a project I want to do for myself. Like fetching the housing market prices for the city I live in every few days and create a database. And I would learn the language to build this application. You need to have a reason, you can’t just learn it from a book. But if you already have a bit of experience, my book is a good next step. It’s helpful for people who have between six months and one or two years of experience with Rust.
What makes your book different from other books? I think it doesn’t want to be smart. I read a lot of books, and most of the time, the authors want to show that they are smart, that they know stuff. But it’s not always the right thing to do in this context. The publisher and I even left out a whole chapter, about 30 pages and two months of work, because that’s not what this book is about. I think it’s very much to the point and pragmatic, it hits a right balance.
How long did it take you to finish the book? I’m currently finishing chapter eight, and I have three more chapters left, but you can pre-buy it and pre-read the book. I’ve been writing it now for more than a year, one and a half years, maybe. Now I took time off to actually finish the book. So probably all together, it’s going to be two years back to back.
What’s the most challenging part of writing it? All the topics I’m writing about I already know by heart. So it’s sometimes hard to get myself to write those five pages, because it’s boring for me to do this again, because I did this five, six years ago. And now I have to spell it out again, because the book is geared towards an entry level. It can be hard to find the right balance between the knowledge I want to share and the capabilities of the audience, to make sure I’m always aiming at the right level. So it’s sometimes hard to find the time and motivation because I also have two kids at home.
Can you walk us through the writing process? For example, do you work with editors? Manning has a model where an author has an editor or coach who checks in, asks questions, and goes through the first version of the text. And then there’s a second editor after a chapter is done, who is more technical. She understands the content, so she is questioning some aspects. And then the people who pre-buy the book can leave comments in a forum. That way you get the developers who are super keen about the book.
What’s your plan with this book, after it’s done? I can never write a book again. It’s fun, but it’s hard. I really like that it’s out there, and I hope that people can find joy, and it helps them to onboard. I don’t want to have a bad feeling when I give it to a friend or a colleague. And I want to be sure that the time is well spent.
How many people have pre-bought the book so far? Currently, I think 1,200 or 1,300 people, which is good. I hope once it’s done, maybe I can reach 5,000 people. The Rust community is fairly small in comparison to other communities, but it’s growing. When I’m interviewing with companies for freelance jobs, I still see that Go and Node.js are still the number one. Rust has sort of an image problem where people think it’s not good for web services, which I hope my book can partly solve.
How do you manage your time? I’m on paternity leave, I took the year off just to be at home with my family. But I also figured I needed time to get the book done, because I can’t have a job, family, and the book. Now I force myself to write three, four hours each day. Which sometimes works, and sometimes not. I get up, I get my kids ready for daycare. And then once they’re out of the house, I try to write maybe from ten to one or two. And sometimes I also write in the afternoon.
How do you overcome writer’s block? I try to get excited by something. I find spark, I read books, but not programming books. Just the idea of something which sparks my enthusiasm. From the beginning, I tried to lower my expectations by a lot. I don’t have to write the best book in the world. And it will never be the best book in the world. So I just tried to lower my expectations and say, ”Let’s just have it done and move on”. And then I just try to find the spark again, and the day-to-day joy. Since it’s a programming book, I try to find a little application or even like a code example I can code and this sometimes sparks a little joy. Probably just like a guitar player finds a solo or a one-minute piece. It brings so much joy that it’s fires up the whole thing.
Do you use any time management or project management tools? I bought the book Getting Things Done about 15 years ago, and I use elements of the method. I always keep my mailbox empty. If an email is in my inbox for longer than three days, either I answer it now or I delete it. Because it’s just not worth my attention then. And I use a to-do list, where I create a project for each task that takes longer than five minutes, for example.
Last question: How do you think the Future of Work will look like? I can see this blockchain thinking of having loosely structured organizations. Where you can just contribute and get a token or the money without being part of a company, basically freelance style. It’s much more flexible, and I feel it’s easier to organize around skills. Have an open market, instead of the safety of a company. This is a trend I can imagine growing.