Menu

From Dev to Dev: The Path to Success in 5 Steps

November 26th, 2021
Looking for a shortcut to become a great software engineer? Follow the path of Rafael!

As software engineers, we all face a significant amount of challenges until we consider ourselves to be good professionals.

We all have different ways of working, thinking, and solving problems. 

However, we all have something in common. Hard work can solve any limitation you might think you have. It's just a matter of time until you achieve whatever you want if you keep pushing every day!

By doing so, you'll stop being afraid, having second thoughts, or even doubting yourself. You'll have proven yourself that you're capable!

Failing will be another word like all the others.

Through this article, you'll learn some tips that will help you not fall into some common mistakes, and at the same time, help you take a small shortcut to become a great software engineer.

1 - The 5 - Hour Rule

The 5-hour rule is more powerful than it might seem at the first glance. Simplicity is the goal of this rule. You should devote 1 hour to a given skill every working day. And by 1 hour, we're talking about using it in either learning theory or practical subjects.

The five-hour rule isn’t about going to work and hoping you learn something new — it’s about setting aside time for personal development and deliberate learning.” - Randall Stephenson, chief and chairman of AT&T

The secret is not in the amount of time you spend studying or practicing. It's persistence.

It takes time to master a given technology or skill. One or two months won't be enough. 

Any software engineer must keep learning as the technology grows, or he'll become obsolete, and the path to success will become harder.

As a software engineer, I use my hour to improve my skills through different tools such as:

  • Watching courses at LinkedIn Learning like:

    • Microservices Foundation  - As most services are being migrated to the cloud, being aware of their structure should be everyone’s priority.  

    • Learning Git and GitHub - Understanding how to globally share code, and work in it as a team has its challenges. This course helped me to get an overview of all Git’s main functionalities.

  • Reading books about my current job role, or some technologies I want to try:

    • Fullstack React - Written by a Facebook’s software engineer, the author explains from scratch how you can get everything up to speed with all the concepts within this framework.

    • Test-Driven Development: By Example - I suggest this one if you’re looking for new development perspectives. Through several examples, the author teaches you how to shift the mindset of a regular developer to a TDD mindset.

  • Writing articles, so I can have a backlog of topics I've learned in the past.

You don't know what to do with your time while applying the 5th rule? Start small, tiny steps. If you can't read much, start small, 15 minutes a day reading a technical article or even a book like Effective Java, by Joshua Bloch. You don't like to read? Create small projects by using a framework you want to learn. Check for example: React framework.

The goal should be not to stop, or we'll all get obsolete.

2 - The Beauty Of Getting Reviewed

I've worked with a significant amount of junior software engineers throughout my career, and I noticed a pattern. Most were afraid of what others would say about their work.

As someone new to coding, they think it's just a matter of time until someone reviews their work, and starts complaining about their code.

This doesn't just happen in tech fields. A lot of people are skeptical about showing out their work, as they don’t feel comfortable being wrong. 

How can you get familiarized with the process of getting your code review? How can you become comfortable with being wrong? 

Through a process called Merge Request. By working with this review process, whenever someone wants to publish their changes, those changes must get reviewed first before their code can join the repository.

People will look at it, and they'll start giving feedback regarding all the code they see, like suggestions, mistakes, or eventually endorse. There's no best place to learn!

Don't feel pressed, because everyone is working for the same goal. A good and reliable product that everyone is proud of delivering.

You can see yourself improving in many areas such as:

  • How to express yourself so others can understand you.

  • How to organize your thoughts before explaining why you follow a given path.

  • Applying given suggestions to your code style.

That's why some people suggest streaming on Twitch whenever you're building a personal project. People will always ask and propose new approaches.

My favorites are the ones below, as they are engineers like us, sharing some fun moments while coding:

3 - Asking is the key to leveling up!

There's a general misconception, mainly among junior developers. Asking about a subject they don't know is a way of showing weakness. If you got hired for a specific role, shouldn't you solve everything without anyone's help? Wrong!

No one is ever hired based on the assumption that you'll never need anyone's help. Usually it's quite the opposite. People want you to collaborate, exchange ideas, opinions, and most importantly, experience.

After I accepted this idea and started applying it to my career, I felt a weight had been lifted off my shoulders.

Keep in mind that this doesn't mean you should stop trying to solve problems by yourself, as this is as important as asking for help. Try to figure out your challenge first, experimente a few approaches, and choose some possible solutions, and only then, if you're stuck, or unsure about the best way to proceed, ask for help, or review! You'll see your work turning way more productive and less cumbersome.

Asking for help is not a way of showing weakness but a way of expressing intelligence.

4 - Stay away from your gadgets

After reading The Shallows, by Nicholas Carr, I started rethinking the amount of time I was spending using gadgets, such as my cell phone, tablet, and laptops. A hidden voice started to arise every time I'd find myself in this world.

After analyzing the hours I was using on all those internet-connected devices, I found the time I needed to pursue other tasks I was looking forward to start.

Finding the time for the 5-Hour rule was indeed the best decision I ever made. Otherwise, you wouldn't be reading this article right now.

Another interesting topic, addressed by the book, is that all these devices bring to the table something called distraction.

Usually, it takes 20 minutes for a regular person to get into the subject they're working on. Carr calls it "getting into focus".

Every time you get interrupted, by a notification, a call, or a quick look at social media, you'll need those 20 minutes again so you can be productive again on that subject.

Now imagine getting interrupted every 20 minutes. You won't get any work done! Unfortunately, that's a big reality in most workplaces. Same for the remote work, where you are reachable through a simple chat message.

I've started setting my cellphone on Work Mode, so that I can only be interrupted whenever I want. Then, I advise you to move your cellphone or distracting gadgets away to another room so you don’t feel tempted.

And now the real challenge starts.

5 - Task Prioritisation

In the end, what matters most in the job, is to get it done! Knowing how to organize by priority is equally as important as knowing how to perform a task.

Whenever we don't know where to start, and we can only see a big pile of tasks awaiting, prioritizing comes in handy. We're defining what we'll do first, and nothing below is worth spending more time than the ones above.

Usually, I use Notion as a tool for personal and professional organization, it looks like this:

I can always stay on track of what I should do first. Every time a new task arrives, I only need to rethink those priorities. That's an exercise that will not only help you in your job but also in your life.

You should come up with a priority level based upon the following properties:

- Time Consumption;

- Outcome Reward (Earn money, a door for another task):

- Preparation Needed;

- Dependency;

You can always add some or remove others. It's up to you.

Final Thoughts

We all have a long trail to follow so we can improve ourselves as software engineers. You should always be aware that you're not alone. We all had the same problems, same thoughts.

It's always up to you to get to the next level. Working hard is an option we all have. No one said it would be easy, but if you keep going, it'll be a matter of time until you get there. 😉

Speaking out and sharing are the keys to keep on track. That's why I do what I do.

Any additional questions, feel free to reach us out through the comments!

Leave a comment