Secrets to Become a Good Software Engineer

Irvan Fauziansyah
Ruangguru
Published in
6 min readJan 26, 2022

There have been a lot of new software engineers emerging over the past few years. This is because the need for software engineers has been increasing dramatically since more and more companies started using technologies for their services.

Among the ever-growing list of new software engineers, only some of them turn out to be good. So, how do you become a good software engineer? Here are some secrets to help you become a good software engineer based on my experience.

Always learn and practice

If you want to be a good software engineer, then learning and practicing are habits that you must have. As mentioned in The Pragmatic Programmer book:

“Make learning a habit.”

Andrew Hunt

I really recommend that you read the book.

Tech industries are constantly evolving. There is almost always something new every day. That new shiny Javascript library or framework that you just learned yesterday, might already be outdated today. And the best way to master what you learned is to practice it every day.

Try to build something. If you just learned web development, creating your own web portfolio can do the trick. If you want to upgrade your problem-solving or coding skills, Hackerrank is the best place to start.

Another way to learn in the programming world is to read someone else’s code. It doesn’t have to be someone you know. You can just open GitHub, find any open source with the programming language you learn, and read the code inside. You will learn something new, whether it’s code readability, architecture, or best practices.

Strengthen the fundamentals

There was a time when I felt really confident in tackling job interviews. I already created several web apps back then. But when the interviewer asked me some questions, I was lost. I couldn’t answer their questions, my explanation was vague and all over the place, without actually answering the real question. The question was about big o notation and index in the database.

For some real-world coding scenarios, you might rarely use a basic algorithm or data structure knowledge. Like the sorting algorithm, most programming languages already have built-in methods to handle them.

But basic algorithm or data structure knowledge is really useful when you want to optimize your code performance or have a better solution. They will also help you if you want to advance your software engineering career. So first, let’s get back to the basics.

Keep up to date

One of the main duties for us as software engineers or someone who is involved in the tech industry is to always keep up to date with the current issues, new technologies, or libraries. You don’t have to master or try everything new, but at least you know they exist.

For example, in November 2021, Chen Zhaojun from Alibaba Cloud Security Team discovered a very severe bug in Apache Log4j, a library for logging in Java that is widely used. If you just started learning Java and used the library without knowing this issue, your code might be compromised.

One way to keep up to date is to follow some accounts on Twitter that are active and often share tech-related news.

Follow best practices

This is very important if you just learned how to program. Try to always follow the best practices of the programming language you learned. Because sometimes, if you don’t follow the best practices, it may lead to security issues.

For example in the PHP programming language, you should always use prepared statements and parameterized queries when fetching data from a database. The following code in PHP will lead to SQL Injection vulnerability.

/* Code with SQL injection vulnerability */
$sql = "SELECT username, password FROM users WHERE id = $id";

A good version of the above code is to use a prepared statement like so:

$stmt = $pdo->prepare('SELECT username, password FROM users WHERE id = :id');
$stmt->execute(['id' => $id]);

The best practice is not always related to security issues. There is also a style guide best practice that can help your code be more standardized and readable by others. Some people often refer to this with bad or good code.

The community on most programming languages already provided the guide like in Ruby or PHP. Just find the guide on the programming language you learned.

Before asking someone, try to solve it yourself first

When you are stuck on something or have errors in your code, before asking someone to help you, I really recommend you to try solving them by yourself first. You can try to search for the solution online. Stackoverflow is our best friend for this.

Or if the company you work for has a search feature on the communication platform, like Slack, try to find your problem there first. I have personal experience with this. In the company I work at, we have our own framework, and I faced a problem with my code. I searched online and found nothing. Then, I asked a senior programmer, who then gave me a link to a Slack thread about my problem after he searched about it on Slack. As it turned out, someone has already encountered the same issue I had and posted the solution there. Silly me, I should have tried to search for it on Slack first.

When you have already tried everything, and still cannot solve the problem, then it’s time to ask someone else. Tell them everything you have done before, you have already tried this and that. This is the basic attitude when asking for someone’s help.

Join and be active in communities

You can learn anything by yourself. But if you want to speed up the learning process, you should join some communities. You can learn something new, ask someone about your problem and get an update on what’s happening right now.

You can join some Telegram groups on several programming topics, follow some Twitter accounts or join some offline events closest to your home. And if possible, be an active member.

Last but not least, upgrade your soft skills

If you think being a good software engineer is only about technical skills, you are wrong. We, software engineers, are also human. When asking about errors or interacting with others, good communication skills are necessary. When you want to advance your career to a managerial level, you will also need good leadership skills.

Image source: https://www.careertuneup.com.au/career-tune-up-resources/free-report-why-soft-skills-are-important-for-you/

From my experience, upgrading soft skills is not the same as upgrading your technical abilities. You can’t just read some leadership books and magically have good leadership skills after. You need to practice and implement what you learned in the real world.

The chance to practice or implement soft skills is also different from technical skills. You may not find the opportunity every day. So, whenever you find the chance to practice your soft skills, grab them as soon as possible. When your boss or manager offers you to lead a team, challenge yourself. When there is a chance to give a speech, present a demo, or any other public speaking opportunity, take it.

Wrap up

Among the list I mentioned above, perhaps not all of them will suit you. These are just based on my personal experience. There are no fixed steps or pathways to becoming a good software engineer, and you might even discover your own secrets! If you do, would you mind sharing your experience or tips with us?

--

--

Irvan Fauziansyah
Ruangguru

Senior Software Engineer at Ruangguru | Jakarta, Indonesia | https://irvan.co