If you didn't register yet, don't miss this opportunity. Go to the official website to register as soon as possible. The conference will commence on August 29th.
This is the 6th consecutive year that Locaweb and myself are organizing yet another great Rubyconf in Brazil. For some years I wanted to bring one of the most influencial authors in my library: Hal Futon, author of The Ruby Way, one of the best books to learn Ruby.
Finally, he will be here! He will be the keynote speaker to open the second day of the conference on August 30rd. So don't miss the opportunity to meet him. Let's get to know some more about him before the event.
"Your talk is about External DSLs, an important concept to be mastered by every Ruby programmer. If someone is just beginning with Ruby, can you explain what some of the requirements are to understand what you're going to talk about?"
Hal: This talk isn't specifically relevant to Rails, although there certainly are areas in which a "custom" parsing solution is needed. You'd be more likely to use this material if you are developing libraries, tools, or plugins. If you're a beginner in Ruby, you can still understand the topic. It helps if you have some genuine background in computer science (or at least have an understanding of what "parsing" really means).
"Many developers would love to become as experienced and fluent in Ruby as you are. What have been some of the pitfalls you had to overcome in order to become a great developer? Any good tips for a Ruby beginner?"
Hal: Everyone's pitfalls will be different. One of my biggest weaknesses is the "fear of complexity." This is why, although I am a Ruby expert, I am still a newbie in Rails myself. (Yes, they are different! Ruby existed more than 10 years before there was any "Ruby on Rails.")
My best advice is:
Read books. Read a LOT of books. Not just how-to books, but theory-based books and the classics such as Refactoring by Martin Fowler and Object-Oriented Software Construction by Bertrand Meyer. And (as one of my college computer science textbooks recommended) read Zen and the Art of Motorcycle Maintenance.
Take actual coursework if you can. There is no substitute for having a human teacher who can answer questions.
Read other people's code, especially the "best" developers you can find.
Pair-program whenever you can. Even if the other person is less skilled than you, you will still learn from the experience.
Contribute to open-source projects as you find the time and the skill.
Experiment! Try the tools and libraries and techniques that you read about. Write little tools for your own use. Imitate other people's ideas and try to improve on them.
"There are so many new technologies, best practices and so on being released all the time. In your personal opinion, and maybe related to your current field of work, what are some of the trends in technology that you think we should be paying attention for the near future?"
Hal: Such a hard question! :) Obviously mobile technology is getting more and more important. Inter-operating and syncing between different devices and applications is a growing concern.
As for what specific technologies we should watch -- that is an even harder question. No one can see the future. In 2006, I thought RSS was going to be very important; but it did not grow as much as I expected.
A friend gave me a rule to follow: Wait until you hear of a new piece of technology for the third time -- then go and read about it.
Also, I tend to favor more "open" solutions where technology is concerned (although we can't dismiss some of the less-open tech such as Apple's iOS).