During my career, I've had the chance to work with different developers. Additionally, I've been able to observe the probation period of many new interns at companies. Based on my experience, I've built a list of sins that almost every junior Ruby on Rails developer has made (or currently makes) throughout their career.
We read Medium stories not only for the knowledge, but also for strange memes.
1. Don't blindly follow TDD
Testing is a very common approach for projects built with Ruby on Rails.
All Ruby/Rails learning courses promote the idea of writing TDD as a commandment. This learning approach sometimes creates plenty of developers who write 5-6x more specs than actual code.
Of course, it's impossible to write even medium-sized projects without specs at all. Tests are good, and it's a correct idea to write them, but you need to know the right measure. It's not necessary to cover each feature with tests. It's important to check only critical functionality.
Your job is to find that sweet spot where your tests bring a lot of value while not taking many extra hours of work just to maintain the suite after each small change. Dozens of integration tests for clicking buttons in the interface take hours to develop, but in the end, they might miss minor bugs and become useless.
2. Please, learn some SQL
Paradoxically, very few people now know about SQL. Everyone relies on ORM, and nobody really thinks about how it works.
Even if you don't have to write any SQL because ActiveRecord does that for you, you still need to read logs to understand what happened.
3. Plan your architecture
It's necessary to understand how your application will be built and what its requirements will be at the initial stage. Don't do over-engineering, which isn't really needed at first but still takes time.
At the same time, it's necessary to understand and predict what will be needed later -> so you don't have to rewrite an entire application to add an insignificant new feature.
4. Be technology-aware
You should understand what's better to use in each case. Don't be attached to one gem
, lib
, or technology
that you know well and try to add everywhere.
For example, when developers use
devise
for any authorization case or use an old unsupported gem (while a better new one has been released) just because they are familiar with the old one.
5. Think about the business
You need to understand the objectives of the business. You can either become a passive coder who just does what they're told, or you can proactively do things that improve the business you work for.
It's nice to be a good engineer, but it's better to be an engineer who is involved in the business.
Finally
Don't be scared of saying "I don't know".
On one side, as a junior developer, you have to know where to find answers to your questions. Get familiar with StackOverflow, forums, Google, docs, etc. Only if you admit that you don't know something can you learn it.
On the other side, be communicative. Usually, more senior colleagues will be happy to help you with something if you say that you don't know it. You don't have to be shy about it. It's a normal part of the learning process.
So, I would simply advise you to make your own projects and break away from the label "Junior". Don't be a junior.