I've been looking around this website to find some good resources to improve my Ruby on Rails / Developer skills during my training hours, and I just realized that there wasn't much about it! So, what a better way to learn new things than reviewing resources to teach others.
But first allow me to introduce myself, I'm Antonio (Tony, Tonio, Anto, many other variants allowed...), a developer who started working in a Ruby on Rails team three months ago, after one and a half year of WordPress and other front-end tasks. I wanted to do something new, something that could teach me how to improve in other fields of programming, and there are few better ways than asking to join a big RoR team with almost no back-end experience, right?
So I started with this challenge, one-month trial on a team that did not speak my native language and had a lot more experience than I do.
Here is where I start with the resources that helped me to get accepted in the awesome team I'm working now.
There are four basic things that I think you must know:
- Best practices and good coding
- MVC knowledge
- RoR & Ruby knowledge
- Communication skills
Let's start from the beginning.
What can I say about this...
Every programmer should know that doing readable, quality code is one of the most important things in our world (I almost listen this at my company more than my name).
For this, there are three or four things that I can recommend to everyone:
- Clean Code, Book by Robert Cecil Martin
- The Pragmatic Programmer, Book by Andy Hunt and Dave Thomas
- Get someone to check your work, compare it, revise it.
- Practice, practice, practice.
These two books are almost a must to every programmer around the globe. Specially for those who are starting into this writy-writy world. Good and efficient code will tell a lot about you, so you should improve this as much as you can. (And you'll end thanking yourself for the awesome code you did, that will make those 3 - 4 hour tasks go to a fifteen minutes one).
Having someone to check your code also helps a lot. Having a different point of view in the things you do will give you feedback that will make you think new things, will teach you new ways of doing tasks, and it will make you grow as a programmer, so go out and find someone who would love to constructively criticize your work. (And also do collaborate and do the same with that person, please!)
Part two of this "article", probably the reason you came here. Worry not, here it goes!
Ruby on Rails is based on the MVC pattern (Model-View-Controller), and if you want to understand how everything works, you need to know the main pillar of the framework.
Won't take much part on the theoretical part of this, as there is a LOT of information that you can check around the internet, and won't need much apart from reading and understanding.
Here you can get knowledge for this.
Just keep reading!
In the practical part, I recommend creating your first project, no need to do code, and read this article, to understand how Rails directory work and how MVC is structured in the project.
Once you've done that, you should jump into real practice, and what I did, was reading and doing the exercises from Michael Hartl's book, Ruby on Rails Tutorial (Rails 5), from zero to deploy.
The link I wrote above is the free version of the book, which runs over an older version of Rails (This doesn't mean it's a bad book, you'll miss some parts, but nothing you can't pick up by yourself after finishing the tutorial).
Here you can buy the new book, which I'm sure it's also an excellent buy. You'll get both experience in Ruby and in Ruby On Rails by practicing and reading the exercises and apps made throughout all the chapters.
Once you've finished this book, or while you are doing it if you have time, I highly recommend doing your own app, and putting in practice every step you learn from this book. Testing, deploy, refactoring... All those things we think we won't use in a real team and then it's an everyday task. C:
Also please, learn some OOP (Object Oriented Programming), you'll love it, trust me. (You'll find some books for this at the bottom!)
Final mini-omega-step. If you are going to work in Ruby On Rails, you're likely to work on a team. It's not easy for some people, as there are a lot of skills to improve here. I'm just gonna tell you which ones seem the most important to me, as I'm not a sociologists of any kind, I can not get deeper into this (yet), so please, write these down as much as you can, and learn them by heart, as they would help you a lot in your developer career, no matter where or how you work.
- Do quality commits, explain as much as you can, you'll save time to yourself and others.
- If you are stuck, if you have a question on how things work (and you've already researched without a result) please ask.
- Learn how to constructively criticize, and to receive feedback the same way
- Write down steps and procedures you do so you can explain easily (and also to have a better understanding) on how a task was done, and which steps your coworkers have to follow to do the same thing.
There are a lot of things to follow, and even more books to read about programming, but I think these small steps will create you a really good foundation to become a RoR developer. Hope you liked it, and please don't hesitate on commenting or asking questions, or even correcting me (this is my primerito (1º) post) via Twitter or wherever you like.
Please add any other books you would recommend at the comments!
Colaboration is power 👀✨