As with any skill, the key to becoming a great software developer is practice. The more you code, the better you'll become. But if you want to advance in your career path and achieve higher goals, you’ll need more than that. Success is the product of hard work, talent, qualifications, and skills. In this article, Tai Nguyen, Tech Lead at Niteco, shares 5 soft skills that are truly effective in helping you level up your coding game.
Solve your task in a proactive way
Being proactive is fundamental in any job. In this case, it's the ability to find answers and seek help until the problem is resolved.
Many people hesitate to ask questions, especially young developers who do not have much experience. They are afraid to speak up when they are wondering about something or have not yet found the answer to a problem. Most of the time, it is because they think their questions are not "valid enough". And since they assume the problem is "small", they tend to try to figure it out on their own without seeking any advice from others.
Some get lucky, but in many cases, a person can go completely wrong or not fully understand the issue. Both cases can lead to failure and even make it necessary to fix a piece of code or rebuild an entire feature, which takes a lot of time.
A question that may sound very naïve and simple can be the key to solving a big problem. So, whenever you find a problem beyond your skills, proactively seek help from those around you.
An "I can do it!” mindset
Some people find themselves stuck in their comfort zone because they're afraid.
"It's so new, I've never done that before..."
"What if I cannot do it?"
"Will they judge me and my work?"
If you want to grow, you have to put these doubts aside. Being challenged should act like a driving force, a motivation, not an obstacle to your success. When a challenge comes, embrace it, because it provides you with a chance to try and learn. Allow yourself to experience as much as possible, then you'll see yourself growing in no time.
And always set higher goals each time you do something. Don't get too comfortable with where you're standing. Once you're familiar with a task, look for a new challenge. Learn a new technology, try a new field, or apply to a new position that you have never experienced before. With each challenge, you will gain new knowledge and extremely valuable new experiences, opening countless opportunities.
Simplifying is key
Don't always look at a problem as a whole task, because you'll find it very difficult to handle. A smart developer will know how to break it down into smaller pieces to approach and study. When all the puzzles are solved, the original complex picture will appear simpler. This technique can save you lots of time and energy, bringing a high sense of effectiveness to the whole project.
For example: When developing the homepage of a website, if you only look at the overall design to estimate, it will be difficult to know exactly when the entire homepage can be completed. The first thing you should do is divide the homepage into smaller components such as navigation, banner, top content, main content, bottom content, and footer. Then, analyze the behavior of each part to learn how it will work on different devices. After clearing all that up and confirming with the designer and customer, you can start coding.
The QA team is your ally
A developer's skills can be told by the number of bugs the QA team discovers in the feature they have worked on. That's why the "battle" between developers and QA never ends. One will always find flaws and the other one will try their best to defend their work.
But if you want to be an excellent developer, you must put yourself in the QA team's shoes and list all possible test cases in a feature. There is no such thing as a "bugless" feature, but reducing the number of bugs as much as possible is the ultimate goal of your work, creating a clean and smooth experience for users. This will create a habit of learning and investigating things in detail, with a more multi-dimensional view.
Win-win spirit in a team
During work, there will be times when you encounter situations where you do not share the same opinion as the rest of the team. Throughout a career, it’s inevitable. Arguments will happen, but it's how you handle them that matters.
I used to work on a project where our task was to update the design and skin for an E-commerce website that supported basic displays including mobile, tablet, and desktop. While implementing, a developer adjusted the breakpoint of the tablet and the desktop displays, as instructed in the design script. Clearly, this created a new user experience. When a customer reported it and the QA team investigated the root cause, they found out about the change. That developer insisted he was right because he had followed the design. However, the QA team members also stood their ground because that feature was not in the updated feature list. It was a huge fight. Both felt they were telling their truth. It went on until a designer came in, read the script, and realized that the change had been just a mockup. It hadn’t made the cut for the final design but had somehow ended up in there. It took no time for us to sort things out and change it back to the original version. In the end, we got our damage controlled and learned our lesson: listen to both sides and double-check everything.
n cases like this, if you choose to take it personally and put your ego first, you will lead your team into a very stressful and frustrating situation.
You should stay calm, listen to other people's opinions, and present your own opinion. Always remember that the goal for you and everyone else in your team is to solve the problem most effectively. Analyze the situation together and try to see the issue from the other person's point of view. In the end, you will get to the right solution.
“Winning” is not when you force others to listen to your opinions. It’s when the collective goal is accomplished that everyone is a winner.
About Tai Nguyen
Tai Duc Nguyen - Tech Lead
Tai joined Niteco in 2015 through an intern program called “Niteco Young Talent” and is now a Tech Lead, guiding young talents and continuing to bring excellent solutions to the clients. He graduated from Hanoi University of Industry with a major in Software Engineering and has more than 7 years of experience in web development, especially using Angular. Tai has contributed his skills to many of Niteco’s clients such as Litium, Farrow & Ball, and Royal Mint. His skill is also proven by the certificates he has earned, including Episerver CMS 9, EPiServer CMS 7, and Microsoft MCSD Web applications.