Ruby on Rails is a powerful web development framework. Mastering Ruby on Rails requires proficiency in a number of technical skills. At the most basic level, you need to be proficient with Ruby, the language that Ruby is written in. You need to be proficient in HTML, CSS and Javascript, the languages powering your browser. You need to be proficient in SQL, the database language for your data backend storage. You need to understand how to have a basic understanding of how to design, test, and deploy Rails applications to the web. And, you should need be proficient wth Git, an essential tool for modern source code version control.
While mastering the basics can be daunting task, there are many resources available focused on helping developers achieve proficiency. Developer bootcamps are growing in popularity, polished introductory video courses are widely available for a nominal fee, and there is no shortage of excellent free tutorials and books to teach you how to build your first Rails app.
Once mastery of the fundamentals is achieved, it can be easy to rest and savour the fruits of your labour and enjoying the mighty powers bestowed on the newly minted Rails developer. Junior developers often contribute to larger teams with established code bases, best practices and sensible processes, which can obscure the opportunity learn and work with new technologies, architect solutions, and deepen knowledge of advanced topics. Who wants to learn about metaprogramming when there’s a bug to be squashed? Who wants to keep up with design patterns when there’s a shiny new Javascript framework? Who wants to learn about test driven development when there are so many APIs to stitch together no-code apps?
Advancing skill sets can also be a challenge to fit in with professional responsibilities and busy personal lives. But, there has never been a better or necessary time to do so. The global literacy of software development increases each day. Access to learning resources more readily available than ever before. The consumption of technology is only increasing. And the tools and infrastructure to learn and build with have never cost less nor have ever been so easy to procure. However, the need for advanced software developers continues to remain high despite new languages and frameworks are currently popular. The concepts and experience acquired in one programming language are not surprisingly directly transferrable to others. Investing in ones skills has never been more relevant, important and rewarding.
Here are 5 resources to help you advance your Ruby on Rails programming skills to the next level.
- Upcase by Thoughbot is an excellent and completely free video library of intermediate to advanced Ruby on Rails developer lessons, created by Thoughtbot, a design and development consultancy behind several popular Ruby gems. Website: https://thoughtbot.com/upcase/practice
- GoRails by Chris Oliver is an excellent resource for learning web development, problem solving and solution-oriented learning materials. GoRails shares screencasts covering topics in Ruby, Rails, Javascript, how-to-use popular gems and much more. A large portion of the screencasts are free, while a subscription service is available for the premium content. Website: https://www.gorails.com
- Ruby Tapas is a subscription service of short, focused screencasts on intermediate to advanced Ruby concepts and techniques. Avdi Grimm is the head “Ruby Chef” and the author of the popular Ruby books: Confident Ruby and Exceptional Ruby. Website: https://www.rubytapas.com
- Practical Object-Oriented Design in Ruby book by Sandi Metz, is a widely recommended book on learning the nuances and advantages of object-oriented software with Ruby. Website: https://www.sandimetz.com/products-1-1
- Metaprogramming Ruby 2: Program Like the Ruby Pros book by Paolo Perrotta, focuses on writing Ruby code that is easy to maintain, change and clean with practical examples demonstrating deep and non-obvious details of Ruby. Website: https://pragprog.com/book/ppmetr2/metaprogramming-ruby-2
I’d love to hear your thoughts and what you do to advance your skill sets. Feel free to leave comments below