Spotlight: Noel Rappin (Author)

“Finding the Boundaries” Hero’s Journey
with Noel Rappin
@noelrappin

noel

Even when you’re ultimately right about what the future holds, the twists and turns along the way can hide some real surprises.

Take a trip with PragProg author Noel Rappin to discover how getting from point A to Z isn’t just about reaching a final destination, it’s about scenic overlooks, different modes of transportation, and having the right travel partners.

INTERVIEW

Listen to the complete audio interview here:

WIN!

We’re giving away one of Noel’s books to one lucky winner! Simply post a comment or a question in his ask me anything (AMA) below, and the Devtalk bot will randomly pick a winner at a time of the author’s choosing … then automatically update this thread with the results!


TRANSCRIPT (abridged)

For those who prefer to read rather than listen, following are highlights from the interview.

On becoming an author…

For many software developers, becoming an author is completely unexpected. First they experiment with reviews and short blog posts; later they graduate to documentation and tutorials. One day, to their complete surprise, they wake up and find that their first full-length book just went into print.

For Noel Rappin, it was the reverse: “If you’d asked me in high school what I was more likely to be doing, writing versus programming for a living, I would have thought writing in some fashion.” And, in fact, Noel’s path to professional writing did start in school — graduate school.

Noel’s graduate advisor was writing a textbook on Squeak/Smalltalk and asked Noel to write an introduction that covered “just enough Smalltalk so that the rest of the book makes more sense to readers who had never used Smalltalk.” And while Noel was writing that introduction, he was also being introduced to what would become a major facet of his career.

A few years later, Noel was hanging out on a Usenet group for Python, when an editor from O’Reilly dropped by to see if anyone could help out a little with a book on Jython. Noel knew both Java and Python and figured he could “make up the difference.”

The book, Jython Essentials, turned out to be a bit more work than Noel expected, but it did expose him to important lessons about technical writing that he carries with him to this day. It also made it easier to transition to his second book, WxPython in Action, and, later, the first book Noel ever wrote that was fully “driven by passion,” Rails Test Prescriptions.

Even though Noel considers himself a software developer first, looking out across the ten books he’s authored, it’s pretty easy to see how his prediction way back in high school wasn’t too far off the mark.

On challenges and rewards…

Even though Noel is a veteran writer with lots of experience and well-established practices, he still faces challenges and fears with each new book.

“The thing that’s always scared me the most,” explains Noel, “is not the thing that I’m going to say that’s a mistake. It’s the thing that I’m not even going to know to say, because I don’t know the community well enough … It’s the thing that I’m just gonna skip entirely, because I don’t have the experience necessarily, or I don’t have all the experience to know what the important things are.”

To get over this hurdle, Noel turns to a trusted group of friends and peers who provide input and a sanity check. Noel says they help him “decide what’s real and what’s hype.”

In fact, the whole reason that Cypress ended up in Modern Front-End Development for Rails is because that very group of people told Noel that Cypress was the way to go.

And while skipping over something important is something to watch out for, Noel says the opposite is also true. Finding the boundaries — figuring out what not to include in a book — is equally as important.

For Noel, that means being in touch with his readers.

Noel knows his audience is real-world programmers looking to solve real-world problems, so sometimes that means going with a more mainstream approach rather than “taking a flyer on something that [he] just thought was cool.” Other times it means trying to keep up with a shifting ecosystem, like JavaScript, because that’s what his readers will have to do.

It isn’t easy, but with a focus on the audience and a good support network to rely on, Noel says these are obstacles that any author can overcome.

On career and beyond…

Noel has written technical articles, he’s worked on textbooks and references, he’s published with multiple publishers, and he’s even self-published… “two to three years before that was really viable,” he says.

For Noel, software development and technical writing go hand in hand.

According to Noel, the two disciplines feed into each other: “As a technical writer, continuing to be a day-to-day coder is the input to that [writing] process, mentally. It’s how I connect to the kinds of problems that the people who are reading the book are going to be solving.”

In addition to helping people solve problems, Noel says another “great thing about writing a book is that just by having written it, people assume a lot of authority.” And that authority can lead to speaking engagements, job offers, and more.

Noel has been publishing with the Pragmatic Bookshelf for many years, and he’s developed a strong working relationship with his longtime editor, Katharine Dvorak. Simply put, Noel says, “she gets what [I’m] trying to do.”

Noel also continues returning to the Bookshelf, because he says that “Pragmatic is great if you want to work with smart people who want to help you put out a really, really good book.” And he notes that Pragmatic’s royalty payment structure is … “very advantageous.”

We know how much Noel’s work means to his readers and to us, and we look forward to seeing what topics Noel will cover in his next ten books.


Now that you know his story, complete your collection of Noel’s PragProg titles today! Don’t forget you can get 35% off with the coupon code devtalk.com!


Follow Noel:

Twitter, https://twitter.com/noelrap

Substack, https://noelrap.substack.com

Linkedin, Noel Rappin - Deerfield, Illinois, United States | Professional Profile | LinkedIn


YOUR TURN!

We’re now opening up the thread for your questions! Ask Noel anything! Please keep it clean and don’t forget by participating you automatically enter the competition to win one of Noel’s ebooks!

1 Like

Corresponding tweet for this thread:

https://twitter.com/dev_talk/status/1344295189557506049

Share link for this tweet.


Related portal:

2 Likes

Great interview Noel - what an amazing career you’ve had! :smiley: :+1:

The last thing you said about why it’s worth going with a publisher like PragProg has always been the reason I only buy professionally published books now - that you end up with a better book because of the professional editing and guidance (I think it can make the world of difference).

A few questions for you…

As someone who’s been involved with Rails for a while, where do you think it is heading or what we might see next?

We’ve also seen Ruby reach v3 recently, have you had much time to play with it? What do you like most about it? What do you think we might see in Ruby 4? :nerd_face:

1 Like

Hi Noel,

I’m looking forward to your next book on Tailwind CSS!

Do you have any thoughts on StimulusReflex?

2 Likes

I think the Hotwire release is a big step for the Rails ecosystem, it continues along one of Rails key design goals, which is to make common good practices as easy to do as possible and automate repetitive tasks. I kind of think they are going to continue to push forward on how to package client code, I don’t think they see Webpacker in its current form as the final answer. (The most surprising thing to me about the Hotwire release is that it has a zero-config asset pipeline option)

I haven’t gotten much of a chance to use Ruby 3 yet, I’m excited by the performance improvements, and not sold yet on the type system, I suspect the next few releases are going to deal with how the community comes to use types.

3 Likes

I’ve not done much with StimulusReflex. It seems like a reasonable way to automate some common Stimulus behaviors.

2 Likes

thanks! I’ve enjoyed reading your book, Modern Front-End Development for Rails. I’m excited to see the updates :grinning:

2 Likes

Thanks Noel! I would agree with most of what you said too, particularly about types.

Are you doing a book on Tailwind? If so I am sure that will be pretty popular! Also leads me to another question if you have time… where do you do the front end is going? Spotted anything exciting? What do you like about Tailwind? :blush:

1 Like

I really hope that the new edition of the book will include a bit of managing state eg. Adding concert tickets to a cart and seeing the increments in tickets bought using the new turbo stuff and stimulus. I think that’s the missing part in many books or tutorials. Thank you for everything you do Noel

2 Likes

Yes, assuming I get some time on it, a short book (75ish pages) on Tailwind will be going into beta the end of January.

As far as front end as a whole, I basically have no idea. Eventually somebody is going to have to figure out a way to make the JS ecosystem less complex, but I’ve been saying that for years, and it just keeps getting more complex, so who knows?

I was very skeptical about Tailwind until I used it on a project. What I like about it most is how easy it is to experiment with it and how relatively easy it is to predict the effects of a change relative to “normal” CSS on a large project. I also like the idea of depending on your code structure to manage CSS duplication, but I do think that raises the possibility of a team getting very tangled in long Tailwind strings that are duplicated mysteriously throughout the code.

2 Likes

Subject to change, but the current plan:

  • Initial Turbo example includes adding concerts to a list of favorites, updated elsewhere on the page, which is functionally similar to a shopping cart.

  • Later, when I introduce ActionCable, it’ll show how a change in tickets from the ticket page updates the schedule page

  • We’ll also do something on the Stimulus page with a complex filter that requires keeping some state in the HTML on the page

  • And the end of the book will take the page that is in React and redo it in Stimulus

I think that should cover what you need? Let me know if there’s something else. Can’t promise, but I do want the book to be useful.

Thanks!

4 Likes

Will there be an update of Rails 5 Test prescriptions for Rails 6 / Rails 7?

2 Likes

It’s really up to Pragmatic, not to me, but absent some very big change in the testing libraries, I’d say it’s unlikely at the moment.

2 Likes

With these new Rails front-end techniques, do your see a path for engineers remaining highly proficient at all parts of the full-stack, or are things still too complex, meaning it’s more likely to continue to see “front end” engineers and more specialised roles?

2 Likes

I’m curious if you have any recommendations regarding the learning progression of your readers. Take someone interested in Rails, who has worked through your books but doesn’t have real production experience yet. Would the next step be to build a Rails app from scratch on one’s own? If so, any advice on defining scope? The boundary between trivial and overly ambitious seems tough to thread.

1 Like

Thank you to everyone for your questions and comments! I will be closing out the Author Spotlight contest for Noel Rappin @noelrappin the morning of Feb 11 (EST). All those who posted will be entered to win one of Noel’s books.

1 Like

I think it’s going to depend on how teams structure themselves.

There’s still a lot of specialized front-end knowledge about CSS and even about JavaScript that is still needed even if a lot of the work is being done client-side, but I do think the new features make it easier for a small team to cover all the needed expertise.

1 Like

I think building your own Rails app from scratch is a great way to go if you have something that you’ll find fun to build, it can be a bit of a slog if it’s not something you are excited about.

I think there’s no way to learn about defining scope other then to try a project and then see what turns out to be ambitious, if it’s for your own thing, then you can structure it how you want and learn what’s hard by doing things. I think I’d try to build one concrete feature at a time, rather than spend a lot of time worrying about long term architecture.

1 Like

Howdy readers! Thanks so much for participating. We are closing out the contest on Noel’s spotlight. If you left a comment, you will be entered in the drawing to win one of Noel’s ebooks. Stay tuned. Also if you are interested, author Paolo Perrotta is up next in the spotlight.

1 Like

Hello everyone!

I’m your friendly Devtalk bot :nerd_face:

Thank you to all of you who participated in our Spotlight AMA!

This is now closed and all of those who commented above have been entered into the draw - meaning we’re now ready to pick a winner!

The process will be initiated when somebody clicks the special link below:

:arrow_right: :arrow_right: :arrow_right: https://devtalk.com/spotlights/pickwinner :arrow_left: :arrow_left: :arrow_left:

Don’t be shy, we need one of you to help make the magic happen! :sparkles: