Every developer has a unique set of career development goals. It is one thing to be talented yet another to work hard and excel. Whether you’re just starting off in your career or preparing your next move, there are always ways to improve your performance and stand out.
I’ve noticed over my career that so many developers often think they only need to be strong in technical thinking, architecting and building software. Technical skills are important for a developer but you need more than that to become great at your job.
In my current role, I use React and React-Native on my everyday job. But being hands-on is now about 50% of my job. One part of my job is also to interview new front-end candidates. I had the chance to discuss with different developers of all levels over the phone and face to face. I usually ask technical questions but I’m also getting into soft skills and cultural fit questions. When we interview candidates we consider their technical skills of course but let’s be honest — it’s not our main focus. We’re not looking for someone who’s just willing to sit in front of a computer for 8 hours a day writing solid code. It’s quite difficult to find the right candidates. For us, it’s someone with the right attitude, passion, the willingness to learn and, more importantly, a trustworthy person. Someone you know will do a great job even if they have to learn something completely new.
If you want to level up in your career as a Front-end Developer you absolutely need to work on those so-called “soft-skills”. They often seem underrated, yet they make the difference between a regular developer and a good developer. They can be quite difficult to master, especially for us as developers. We tend to be more theoretical, rational and be more science-minded but also more introverted. Our left side of the brain is more dominant than the right side which focuses more on relations, social interactions and emotions.
Does this sound difficult? It’s not something you learn overnight, but an ongoing journey which can take years. With practice and good habits, however, it is definitely possible to master those skills.
Get a good understanding of the business
A while ago in my current job, I received feedback from one of my manager asking me to be slightly less productive. What? Yes, you read it right! I was a bit confused at the beginning but I ended up understanding the reason behind it. To him, I was great at conceiving and building new features and, even though I knew most developers around, he still wanted me to allow time to talk with more people from other teams and learn more about their work.
And he was right. One way to understand your company’s needs is to understand other people’s jobs, especially when you work for a larger corporation. I am sure there are many people in your office you don’t even know what their job consists of. You certainly already know the graphic designers or the product managers but what about the people working in the customer service department? And the data analysts you often cross path with at the coffee machine? Building relationships is great for you and your organization. You will most likely meet someone who can help you understand the business better and progress in your day-to-day job.
Getting to know more people will give you a better understanding of the business, the customer needs and how the customer interacts with the product. Such knowledge will help you make the right decision when it comes to building the next feature of your project or picking the right technology and tools.
Have you already heard about Donut? If you use Slack at work, you can install this chatbot which introduces people who don’t know each other in your organization and encourages them to grab a coffee or lunch. I’ve recently added it to our company’s Slack and it received lots of positive feedback.
Make sure your communication is top-notch
One of my first apprenticeship contract as a Web Integrator was for a travel e-commerce company. I am an autodidact and I learnt web development at home, so it was quite different from what I was used to. I had to learn new methodologies and new tools, and also had to learn to work with about 10 other developers. It was quite an exciting time for me.
I’ve always been an opinionated developer but at that time due to my lack of experience as a junior developer, there were often disagreements. I was open to learning more about new languages and tools but I struggled to understand the reason behind some decisions. I was on the defensive when someone was trying to argue with me. Wanting to always be right can lead to interpersonal conflicts, so it’s important to listen to the reasoning behind someone else’s opinion and to ask the right questions. Fortunately, I have changed my approach since then but it took me some time to work on this.
With further years of experience, I’ve been a few times in opposite situations. There were the developers who didn’t try to understand your reasoning and built it their own way, and there were those who wanted to build first then ask questions later. And most of the time they needed to rebuild the feature they’ve been working on, either partially or completely, because they preferred to do as they pleased.
As developers, we need to communicate with the different stakeholders that are involved in projects we are working on. Most projects, especially larger ones, can be a social venture and one can fail or succeed based on the quality of the communication we have with our peers. It’s important to communicate effectively with an accurate understanding of the problems. You need to ask the right questions to the right people, to adjust your language to your interlocutor and suggest a solution based on your expertise. And most importantly, you need to be clear and respectful while keeping a positive attitude in all situations. Nobody likes to work or chat with someone angry anyway.
Communication also means code communication. Code readability matters more than you might think; elegant and clear code for other developers is also part of good communication. Authors write books for people to enjoy reading them, similarly, developers should ask themselves if what they write is readable and easy to understand to someone else. You need to be proud of your well-structured and understandable code and follow agreed-upon standards and best practices. You don’t want to be seen as a developer who rushes and uses sloppy shortcuts.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Even when you think you’re a great communicator, you might be surprised at how it can be perceived by others and what they would be expecting, that’s why you should never hesitate to ask feedback.
Enjoy being proactive and taking responsibilities
Making proactive decisions can change your workplace. As you become better as a developer you will increase your ability to see the bigger picture and you will know what needs to be done to get a well-functioning product. When you notice that something can be improved, you need to speak up. As I was saying before, it’s a great thing to be opinionated as long as you stay open to discussion. If for example, you think your organization will value the use of tools like continuous integration, the practice of TDD or the implementation of a great new feature, make it happen by convincing your teammates and managers. It not only brings value to your project but it will also make your work more interesting to you, it will teach you something new and make you happier in your day-to-day job.
Being proactive and responsible also means making sure your code works as intended. When you code a feature, you take the responsibility of the quality of your hard work. As good as you may be when you want to get things done, it happens to break things on the way and it’s okay to make mistakes. Your mistakes will cultivate you. However, when you make one and there is no going back, it’s important to accept you got it wrong. Stay humble, positive and be willing to take the responsibility to deal with it with integrity. Dishonesty is rarely useful and you can’t pretend to agree with someone when you believe they are wrong.
As you take on more and more responsibilities, you will reach a point where you become trusted and reliable by your team as well as the executives. As a trusted person, you will gain more freedom in the way you manage your work or decide what needs to be done. As you get more experienced and build expertise for certain projects, your knowledge becomes invaluable for your company.
Be ready to give and receive constructive feedback
Most people don’t like to receive feedback, they feel offended when someone assesses their work making them think the quality of what they do isn’t good enough. Yet, feedback is a powerful tool to learn and to improve performance and can be very positive and restore confidence. You need to recognize the need for accountability and be willing to accept criticism, it’s a valuable way to continuous learning.
As a developer, it’s common to receive feedback from other developers through code reviews. Receiving negative feedback can be tough but it helps you get better at what you do. Constructive disagreements will undeniably aim to better code design decisions. If you’re interested in improving your code reviews, I’d recommend you to read this article from Tracy Lum who provides you with great advice on how to give and get better code reviews.
I myself often ask for feedback even before I start working on a feature to make sure that my idea is good. I want to ensure the way I will write my code is appropriate and satisfies everyone involved. This prevents wasting time coding something that will go straight into the bin. Feedback on code and design is important, but also on yourself and your soft skills.
Feedback should go in both directions, you should also consider helping your teammates out by giving them feedback continuously when you feel it’s necessary. What are they doing well? What can be improved? Just be transparent and honest.
It’s important to recognize our need for accountability as a valuable way for us to improve our methodologies and our code but also our relationships with our colleagues in order to keep learning and improving our skills.
Stay passionate and never stop learning
When I was 11 my parents decided to buy a computer for Christmas. We were all super excited, it was the first computer in our family. It was running Windows 98 with 6GB of hard drive and 256MB of RAM! We loved it!
At first, I was mostly playing video games, at that age that’s pretty much what all kids would want to do with a computer. My mom was also spending time on it, she really enjoyed chatting with other people on IRC. She started to use a software called mIRC which is a completely extendable client for IRC.
One day, I was very curious to understand how that software worked and how we could build things with it. How can you create an extension to personalize colors or automate messages? I found out you could even create chatbots with it! Yes, chatbots have been around for a while now. I created a few extensions, even chatbots that people could play with. That is how I started to learn to program, using the mIRC scripting language.
Since then, I have never stopped programming. I created my first website a few years later, learned PHP on the road, built many websites and a few got their success.
Programming is exciting, there is always something new to learn and new challenges to resolve. You know it’s a passion when you also code during your spare time in addition to your daily job because you want to build something you really care about. Maybe even dream about programming? Being passionate for coding will make you a greater developer.
Enjoy time teaching your knowledge
Teaching is a lot more than just doing something and expecting someone to follow, it’s about inspiring and empowering someone to use their skills to succeed on their own. It’s also another way for you to learn new things.
I am a native French speaker and I started to learn and speak English when I moved from my hometown in France to Toronto in 2012. I have always had trouble expressing myself and doing so in English was even more difficult for me. For this reason, I decided to challenge myself by writing my first article in English on Medium about something I really enjoyed and cared about, React applications organization.
I had two goals when I wrote that first article. My first goal was to improve my English writing skills; the more you write the more you learn new words and different ways to say what you want to say. My second goal was to share my knowledge and to see what other people think about it, and learn from their feedback. It was quite a challenge for me to write that first article but in the end, what a reward it was! I’ve received really positive comments from many people telling me both the content was really great and well-explained.
A very simple way you can get started is to answer questions from StackOverflow, there are many questions out there that need answers. You could also write articles like this one, work on open-source projects, create a YouTube channel, join meetups in your city or even create one if there aren’t any that exist for the topic you like. You might end up giving a talk to a larger crowd faster than you may think.
There is art behind all software. Some developers’ canvas is more abstract than others. One sure thing, all developers have it in common, the love to craft, build and resolve technical challenges.
That advice apply for Front-end Developer but also but any kind of developers who wants to level up in the career. We are not just coding machines, show the world how good you are, teach your knowledge and empowers others. This feeling is so rewarding.
More articles from me
- Why React developers should modularize their applications?
- What are the main differences between ReactJS and React-Native?
- The essential boilerplate to authenticate users on your React-Native app
Illustrations are borrowed from commitstrip.com, a webcomic relating the daily life of web agency developers.