As you've probably guessed by the title of my article, I still consider Ruby on Rails as a relevant technology that offers a lot of value, especially when combined with ReactJS as it's frontend counterpart. Here's how I approach the topic.
It’s been almost half a year since I started my job as an Intern Ruby on Rails Developer at Nopio (now a more experienced Junior) and I’ve decided to share some thoughts on how expectation compares with reality in regards to your first job in web development, and to offer some advice that may be helpful from someone who has been there.
How many skills do you need?
Well, the more the better of course. You need basic skills to get the job, but your programming based on simple loops and other things simply won’t do for the long stretch. When you start to work in a team, your code has to be readable for all your teammates, not just you. You need to learn to code the way that developers do.
At the beginning of my internship, I was working on an internal company app feature. Even though I was writing the code mostly by myself, my mentor wouldn’t approve any pull request with extra whitespace or five lines of code where one line would do. These strict guidelines got me in the habit of keeping my code readable and taught me to understand others’ code.
Apart from just working with your programming language, there are some great tools to hone your skills and code more confidently. Try using some great sites like codewars.com or exercism.io. There are tons of exercises to challenge yourself with and you can compare your solutions with other coders’, all you need to improve your skills.
What can be helpful?
Since you start to deal with huge databases, your algorithms have to be efficient. As a beginning Rails enthusiast, I thought I didn’t need to know SQL; Rails console and Active record were all I needed, but when it came to optimization or making some more complex queries, there’s nothing better than good ol’ SQL.
When you start working in a team of people you can’t get away with not using any version-control system. Even if you are afraid of git at the beginning (I still am from time to time), just keep in mind that it’s your friend; an anti-newbie firewall that won’t let you mess up the project. Just play with it nicely and learn from your more experienced colleagues on how to properly use it.
Speaking of co-workers, bear in mind that more experience doesn’t just mean they can do more complicated stuff, they also know how to do complicated things the easier way! Next time they are helping you out because you’ve “got this strange bug agaaaaain” or you “don’t know how to configure the prooojeeect!”, don’t just let them take over and fix it, but watch carefully. One thing is to learn how to deal with The Strange Bug for the next time and learn some great commands, shortcuts, or other tricks. Just imagine when you learned game changers, like copy and paste. After learning these simple tricks, you could never live without them ever again.
What can you expect?
If you expect to learn a lot, you are right. The way of working on a project will differ a lot from working by yourself. Now you have specific tasks, and you have to usually complete them in a certain way, often in the way you didn’t know before. You won’t work on a project you know every part of, but on a big, complicated application, so you’ll have to acquire the ability to read and understand other developers’ code.
Remember my mentor strictly checking my code? They all have been through the same! So don’t be scared to ask a lot of questions, they will be happy to help you, otherwise, they’ll likely gain a reputation as a bad developer to work with. Of course, asking the same question over and over can become annoying, so taking notes is your friend.
What do they expect?
Probably not much at the beginning. Since you’ve passed the job interview, they’ve decided you have something they want. It may be solid basic knowledge, good fundamental skills, potential, the eagerness to work, or just a great personality they’d like to see on the team. Perhaps all of the above.
Even if you are paid for your internship, you likely won’t be profitable at the beginning, especially when more experienced developers spend their time watching you instead of working for clients. Try not to disappoint your boss and colleagues, but do your best to be a great co-worker and developer so that you have a job that you like and you are good at someday!
I hope this article is helpful for anybody in the position I was almost half a year ago. There’s nothing to be afraid of, everybody has to start somewhere, and a first job is the start of a great adventure. Keep in mind these few personal tips from someone with experience and you will benefit a lot from your internship.