When I rocked up to my first Junior developer job interview, I was ready for a grilling about code! You can imagine my surprise when they interviewed me about my soft skills instead.
They wanted to assess if I could communicate well, take feedback with grace, and think critically about my work.
What makes a soft skill soft?
The term was coined by the Army in 60s to refer not to your technical ability but how you communicate and work with others.
We call these types of skills "soft" skills but there's nothing really soft about them!
Once you have a solid technical foundation, you can pick up new tools and languages fairly quickly. Companies recognise this, and will often hire you based on your potential.
On the other hand, you can’t learn soft skills over night and employers recognise this as well. That's why soft skills set you apart in a really big way, even when compared to more experienced coders.
In this post, you will learn the most important soft skills for newer developers based on a survey I sent to engineers and engineering managers in the industry.
Instead of relying on my own experience, I wanted to cover a wide base and hear from others: What soft skills set new developers apart?
In most environments, communication happens live, either face to face or on a call.
At work, however, most teams prefer asynchronous communication like email, Slack, and Loom. This has a number of benefits,
- Eliminates faff scheduling a meeting around everyone’s schedule
- Takes less time than a meeting
- Creates a “log” of what was said, which could be searched in the future
- Allows people time to think and communicate their responses efficiently
Even though teams prefer asynchronous communication, that doesn’t mean meetings don’t have a place! You’ll learn more about how to present yourself on Zoom in the next section.
Asynchronous communication has some unique challenges and you must be aware of good etiquette.
Notifications, in particular, can overwhelm even the most focused developers and distract them from their work. At the same time, you don’t want to miss important messages.
Try muting notifications apart from colleagues on your team or management. Another tip is to carve out focus time and explain to your manager and team you may be unresponsive during that time window while you focus on deep work.
Now you know how distracting notifications and context switching can be, you should be more mindful about how you communicate with your team.
For example, avoid saying “hello” and waiting for a response before sharing your question or thoughts. It may seem trivial, but asking your question before getting that initial salutatory reply also allows for asynchronous communication. If the other party is away, and you leave before they come back, they can still answer your question, instead of just staring at a "Hello" and wondering what they missed.
Comfortable communicating on Zoom
As more and more companies went remote, Zoom and video calling became more and more essential.
For many, this would have been their first time working remotely and depending on video calls for their work.
When you depend on video communication, the standard for a good call becomes a lot higher:
- ✅ Make sure you’re in a quiet environment
- ✅ Wear headphones to avoid echo
- ✅ Make sure your audio is configured properly before you join the call
- ✅ Make sure your are centred in your web cam and the lighting is reasonable
- ✅ Optimise your internet connection by positioning the router and making sure there aren’t any underlying problems
- 💰 Invest in a cheap external microphone
- 💰 Invest in an external camera
- 💰 Invest in a faster internet connection
While it may not always be practical little things also go a long way. Can you centre your webcam Instead of it showing the side of your face? Can you improve your audio by getting a decent headset? If you change the position of your desk could the lighting be better on call? Minor tweaks but makes the world of difference for the person on the other side!
Ability to manage deadlines
Working to tight deadlines and meeting them is often a big performance indicator in many fields of work. However, in Dev world, you may be surprised to hear that deadlines aren’t the be-all or end-all, especially with the rise of Agile Development.
💡 Agile Development
Agile is an iterative approach to project management and software development that helps teams deliver value to their customers faster … Requirements, plans, and results are evaluated continuously so teams have a natural mechanism for responding to change quickly.
For example, imagine you have been tasked with implementing a form on a website your company is working on. As you start work on this new feature, you notice that some of the old legacy code should be reformatted to meet the company's new coding standards. In order to meet the deadline, you think of two options:
- Ignore the bad legacy code, and implement your feature and that alone.
- Have a discussion with your team about making a new ticket and adding the work to your team’s tech debt backlog
Despite what you think, neither of these options is “bad” depending on the aims of your team, how urgent the need is, and where your company is in its growth journey. If your project manager feels there is enough slack in the overall delivery goal, they may ask you to focus on fixing the tech debt and implementing your feature. However, it may require an urgent fix and, as such, will prioritise getting the feature out.
A developer who consistently meets every single deadline may be missing opportunities to make improvements to the wider codebase, be overworking, and making shoddy fixes to complex problems!
This is all to say that meeting deadlines often in development is often secondary to writing good, maintainable, clear code!
A job well done is better than a job done twice! This is not to say that meeting deadlines isn’t important. They really are. Aim to be a person of your word. If you say you want to finish a ticket by the end of the week structure your time to meet this deadline and avoid procrastinating until Thursday to get it done! Keeping your word builds trust and trust is foundational for any relationship most importantly your relationship with yourself!
As a small tip, the temptation to ‘prove’ yourself is often strong for many juniors but make sure to book off your holidays! From January to August, I had used less than 15% of my holiday days and I felt my performance sag towards the end of the year and wondered why 🤦🏿♂️! They are there so you can rest and thus deliver your best work!
Easy to get along with and works well in a team
Good web developers get on with their colleagues! While learning, this can be easy to forget. If your focus is to get a job as a web developer, you may be forgiven for focusing solely on your competency skills, but in order to keep a job as a developer, you may want to think about focusing on your soft skills, as it forms such a big part of a web developers day as web development in the workspace is mainly collaborative!
Think of this situation. Your team has been tasked to collaborate on designing a website for a restaurant.
- Someone may be tasked with creating the API endpoints to handle getting booking information from the database.
- Someone may be tasked with creating the front-facing website.
- Someone may be charged with collaborating with the restaurant to make sure the website will fulfil all their unique requirements.
As you can imagine, there are many questions each person will have and need answers to do their job effectively!
- What information needs to be displayed on the front end?
- Does the API client need to make calls to a third party to get the data?
With so many questions, you can imagine the added complexity of a colleague that is hard to work with is not an added complexity many teams want!
As a junior developer your expectations will look different to if you were a senior. The expectation rather than to deliver perfect, test-covered, reliable code is to communicate any challenges you are facing earlier rather than later and to display humility in what you don’t know!
Your teammates will appreciate that you are learning and, as such, will not put pressure on your for perfection but rather that you are keen to learn and that the lessons you do learn, you’re making an effort to remember!
Learning to stay focused and give your best day-to-day can be challenging when working from home. Deliveries and distractions are always ever present, but a manager knowing that you are truly giving your all is always an appreciated ‘skill’.
Sometimes this can be challenging but demanding the best from yourself is a hugely appreciated skill in the industry.
This may involve:
- 📝Making/using a learning journal (as seen here by Alex from Scrimba!)
- 📝 Having a ‘help’ checklist you follow before asking for assitance
- 📝 Using your 1:1s to set up helpful goals that you actively work towards
Ability to handle feedback well
Receiving feedback well as a web developer is incredibly important. In fact, every person who answered who participated in our survey had it in their top 3 most important skills! You will likely have more 1-1s than in other industries (discussed in this article)and every line of code you write will go through a code review (discussed in this). article here). So how you give and receive feedback is something to think about as you code!
Here are two top tips that will help you with your relationship with feedback!
- 🙏 Don’t interpret it as a personal attack, and trust that others will do the same! Often receiving feedback on a project/feature that you have worked on can feel demoralising, but as a junior developer, feedback should be expected as this is how you will improve! Make it as easy for people to give it to you by not being combative!
- 🙏 Don’t be afraid to give feedback on senior developers' code! This will help you learn that everyone makes mistakes but also make mental notes of mistakes to look out for in your own code!
Can adapt to new circumstances
Most developers work in a different language to the one that they learnt in! Given the rate of change in the industry being about to adapt to new circumstances well is a superpower!
Developers have to ‘onboard’ a lot!
- 🎯 Onboard a new colleague who joins the team
- 🎯 Get up to speed with a new team within your company
- 🎯 Get up to speed with a new framework your company is now using
Being able to adapt and be flexible as circumstances change is super important. Knowing that none of your work is ‘in vain’ is a huge way in which to get better in this aspect!
Many companies now offer a learning budget (for your first year the scrimba bootcamp may help you continue your learning). Using this budget towards your ability to adapt can be a wise investment!
There are always new concepts to learn and learning in the way that is best for you is important! I for instance learn well from watching videos and then practising on my own. If someone is demonstrating a feature they have built I may ask to record the call and rewatch it in my own time so I can pause, get up my code editor and see if I truly am understanding things! My colleague, on the other hand, learns by writing so after learning something she will write an article to a friend who doesn’t understand coding explaining the concept. Adapting to new circumstances can be summarised by finding the way you learn best and fastest!
Critical thinking was the top-most-ranked skill in our survey, and it is no wonder why! The ability to think about how your work will affect others and communicate it to them will help your team! You may see a theme developing in this article but a big transition from working on personal projects to working in a company is thinking about the knock on effects of the lines of code you write!
Thinking critically looks like asking questions like these:
- Does my code make sense quickly?
- Should I write some documentation for it?
- Are my tests testing too much?
Thinking critically about your code is a truly special soft skill!
A way that you can improve your critical thinking is to take full advantage of pair programming sessions and making sure that you ask questions about things that may seem obvious if they are not clear to you.
Take, for instance, testing an API. In your test, you may, in your test, check for a specific error message. But what if, in the future, this error message changes should the test fail? In truth, there isn’t actually a correct answer to this question! But with the help of a senior developer and an understanding of company coding standards, you will work out the best answer to such questions and be a greater asset to your team!
Critical thinking also involves slowly forming opinions about why you do what you do. There are many ways to solve problems but knowing why you have chosen a particular solution is a fantastic learning opportunity. You can think about the benefits of the chosen method but also learn about it’s potential flaws and knock on effects.
<aside> 💡 What is critical thinking? Critical thinking in basic terms is your ability to make the right decision based on what you know about a problem. This often and I’d say frequently involves knowing what you DON’T know and making compromises for that!
So as you think about learning to code and you continue improving your technical skills, try to think about how you can improve your soft skills simultaneously!
Maybe ask a non-technical friend what they think of your READ.me on your Github repo?
Or imagine how you would communicate a question you have clearly.
Thinking about improving your soft skills while learning to code will help you tremendously! Don’t put too much pressure on yourself though much of this comes with time and intentionality! Being conscious of how you work with others is often just the first step!