Our Book Promotion: “Foundation Rails 2” starts soon. Win one of four books to be given out for active participation. The coolest thing? Author Eldon Alameda will be on site to answer questions! Click here for more details. Here, in this brief interview, Satish Talim of RubyLearning talks to Eldon Alameda.
Satish>> Eldon, could you tell us something about yourself – your background, where you are based?
Eldon>> I’m originally from California, but have been residing in Kansas City for the last 11 years. I have a large number of years of experience working for a variety of companies such as IBM, Sprint, dot-com’s, advertising agencies, and even a stint as the central region webmaster for the National Weather Service. Currently I’m working as an architect and as the leader of the core product development team for a technology startup in the digital incentive arena. It’s a really fun environment as we’re working on a fairly large and complex code base that has some very strict performance requirements.
I’m also an ex-Marine, so I can tend to be a bit on the opinionated and gruff side – especially when it comes to code quality. Perhaps paradoxically, I’m also a big Disney fan who tries to take my family to Disney World once a year.
Satish>> How is your book “Foundation Rails 2″ different from the other Rails books?
Eldon>> That’s a good question. To be honest, I was fairly resistant when the publisher first contacted me to ask me to write this book. It felt like there was already a huge selection of books and resources for a beginner to use to learn Rails and I didn’t feel like writing another book unless it added value. When I took the time to take a deeper look at the beginners books that were available at the time, however, it seemed to me that there were some important gaps in them.
For one, many of the books seemed to rely too heavily on using scaffolding and plugins. While these tools certainly have their place, I’ve been called far too many times to “fix” projects where it was obvious that the original developer was over-using these tools and didn’t understand the underlying code that these tools were adding to the project. For my book – I really wanted to make sure that the reader had a solid understanding of the basics before I introduced these tools. Thus, I didn’t cover scaffolding or plugins until chapter 9 and even then I present them only as a way to expedite the development of a prototype.
Secondly, it felt that many of the books out there had the goal of teaching Rails while building a single application in the book. While this sounds like a good idea, in practice, it felt like most of the books that chose this path were rushing the reader through the learning process in order to build the app. As Rails is composed of several individual libraries that work together, I opted to take the readers through a deeper hands-on tour of how to use each of the Rails libraries that provide its MVC architecture before bringing it all back together to build a sample application.
Finally, I really wanted to encourage readers to have fun and explore concepts beyond the simple examples that I provide in the book, so I really strived to give the reader something to play with in each chapter. So for most of the chapters I either was guiding the reader through experiments in the console or I was having them complete sample Rails applications using the tools that we were discussing in that chapter. I know that I feel that I learn best when I’m getting my hands dirty in the code and so I was hoping that by ensuring that readers were able to be actively playing with Rails code throughout the book, that they would be able to learn better as well.
Satish>> Who’s the audience for your book – Foundation Rails 2?
Satish>> Looking back are there some topics that you now wish should have been covered or dropped from the book?
Eldon>> Unfortunately, I’m somewhat of a perfectionist so if given more time to write the book I would have loved to continue refining and expanding many of the areas of the book. Most notably, while I was able to provide an introduction to testing using Rspec, I would have loved to have expanded that and given readers even more value.
Secondly, as someone who now has to interview and hire other Rails developers – one of my big frustrations is how many “professional” Rails developers I meet who have a very shallow knowledge of core Ruby or even generic object-oriented design concepts. So those are areas that I would have loved to expand upon in my book if I could have done it without overwhelming the reader.
Satish>> Anything else you would like to add?
Eldon>> The best advice I can give is one of my core personal philosophies and something that I try to communicate to my team members; which is the importance of what I call the “Sharpening the Axe”. That term is based on a bible verse I once had to memorize when I was younger which stated that:
“If the axe is blunt, and one doesn’t sharpen the edge, then he must use more strength; but skill brings success.”
The basic premise being that you need to continually be looking to keep yourself and your skills sharp. The stronger your foundation is on the basics, then the easier it will be for you to solve the bigger problems. Conversely if you’re weak on the fundamentals, then you can still solve problem but they’re going to difficult and consume more of your energy.
So if you find that you don’t feel like you quite understand how something like blocks work in Ruby, you should take the time out of your schedule to invest in digging deeper into that area until you truly learn it. The quality of resources for learning Ruby that are available today are light-years ahead of what what was available when I first started coding in Ruby.
Thank you Eldon. In case you have any queries and/or questions, kindly post your questions here (as comments to this blog post) and Eldon would be glad to answer.