If you want a new career as a web developer, it involves more than just knowing how to code.
There are certain universal soft skills that are desirable in almost every industry—technology included.
Below guest writer William Kennedy, from New to Code, shares six non-technical skills that have helped him be a better software developer. These are skills that don't involve coding, but will make you a more proficient developer as well as team mate.
Take it away, William!
Join the free portfolio course
Sign up below for my *free* course on how to build a portfolio site as a web developer/designer.
Becoming a software developer involves more than just writing code. I learned this quickly since starting my first job as a software developer. There is a “particular set of skills” (to quote Liam Neeson from Taken) you need to thrive.
See, there is a bigger picture at every company. Aside from writing code, you need to leverage other skills to make an impact and to earn more money.
Throughout my tenure as a developer, I learned what skills are required—aside from programming. Below I share six surprising skills you could benefit from having as an aspiring developer.
Skill #1: Written Communication
Before work each day, you'll probably have emails to get to. Emails can quickly become a productivity death trap. At the same time, emails can be a gateway to demonstrating how valuable you are to other people. Writing still leads the way as the de facto in business communication.
Since written communication is so important, I have spent a lot of time mastering the art of sending an email that can get a response quickly.
All my emails are designed to be friendly but also get to the point as soon as possible. Here is my 4 step process to get the most out of emails that are asking for a technical requirement:
- Always thank the person for emailing you. This applies to every email. E.g., Thanks for contacting me.
- Emphasize the point they made and show that you understand them. E.g, “If I am reading you correctly, you wish to . . .”
- Ask questions to make sure you understand what they want.
- After they answer your questions, reply back the same way you did in step 2 just to confirm that you have an understanding.
These steps will save you massive time up front and distinguish you from others who will not go the extra mile. Written communication is the most underrated skill in a typical developers arsenal. To express your ideas takes many years of practice but the results are intangible.
Skill #2: Teaching
If you are a beginner then you probably think you have nothing to teach. The reality is that you probably do.
When I started my first web development job, I thought I would spend more time learning from others. This was not the case at all. In fact, I was doing a combination of both learning and teaching. Our company had decided to move from SVN to Git. I actually got the job because my main portfolio was just lots of Github repos.
When I joined, it was a growing team and there was pressure for us to move to Git as it was a better tool for collaboration.
It was quite a surreal experience, because, for the first time in my life, I had to equip myself with a marker and draw diagrams on a whiteboard. They were simple diagrams demonstrating how git worked and how it interacted with Github. They also explained how to make the best use of branching.
Keep in mind: this was after being at the company for only a month. Since then, I have been part of brainstorming sessions, explained how everything in Rails works from sessions to nested forms.
In your first development job, you may end up teaching others about a topic you are more knowledgeable about than they are. Even if you don't consider yourself an “expert” or “advanced”.
In every company, there is a shared knowledge pool. I contribute to it when I teach, but I also take away lessons and insights from others.
Basically, everyone contributes their experience and perspective to this pool. And a huge aspect of this synergy is teaching.
Skill #3: Focus
In any career, whether it be a painter or a writer, an individual's focus on the small details can accumulate to greatness. If you want to produce amazing work, you need to be alert and fine-tuned.
If your attention to detail is not up to snuff then it is important that you address your ability to focus.
The ability to focus wholly on one task is a diminishing quality in our current world. Twitter, Facebook, and Reddit are constantly trying to lure us away from doing meaningful work. In his book titled “Deep Work”, Cal Newport states that in order to have an impactful career, one must be willing to discard shallow work and embrace deep work.
Shallow work is defined as work that only has a short-term benefit. For example, you could spend your day writing and replying to emails but would miss out on deep work. Deep work is the work that needs total concentration and ultimately leads to tangible results.
As a developer, this skill cannot be understated. Our job is to build useful stuff. And to create something that is valuable to others can take a lot of time. It takes less of a consumer mindset and more of a producer mindset.
Here is how it works:
- You set a timer for 25 minutes
- You concentrate on ONE task for that 25 minutes
- After the 25 minutes are up, you take a 5-minute break
- Any thoughts that come to your head that are not related to the task at hand, you write them down to focus on later.
- You repeat the cycle up to four times (or even more)
This technique is great because it makes you focus on one thing at a time. Which helps you produce more meaningful work—rather than checking Twitter or Facebook every several minutes.
Skill #4: Understanding the Bigger Picture
A developer who works at a company whose main product revolves around code has a careful balancing act to perform. On one hand, things need to ship out to production to help the business to grow. On the other hand, you have to ensure your future colleagues are not left with unmaintainable code. And, of course, the user also has to enjoy the software.
However, at first, you can only write code to the best of your abilities at the moment. But when you start to improve as a developer—which you will—go back and refactor that original code. Make your software better to benefit future developers that will have to work with it.
A great concept is the DRY (don't repeat yourself) principle. The underlying idea is to write a piece a code that only has to be changed once if you decide to alter it in the future. This approach is for both programmer happiness and business benefit.
Yet the bigger picture does not just relate to code. Most big companies follow the principles of Peter Drucker. If you studied an MBA, you might have heard of Peter and his management principles. If not, his books are available on Amazon.
Peter had a profound impact on Western companies. From him, one of the most important concepts is the cost center and profit center. People who work in sales and marketing are considered to be in the profit center of the business. They drive revenue. In a business costs must always be controlled to maximize revenue. As a developer, you can either be in the profit center or the cost center.
The best way to manage your career is to have perspective and understand where you fit inside the business. This allows you to add more value and take your career further.
Skill #5: Social Skills
Many people believe that companies such as Google create a culture from the top-down. However, there is also a culture established by you and your peers. And the best way to cultivate this team-wide culture is through your own social skills.
Think back to your real life, not work life, for a moment. Do you have that one friend in your posse that everyone looks forward to seeing? Their presence alone can bring laughter and thoughtful discussion to a room. They don't spread gossip or rumors. They offer a hand whenever someone is in need. Overall, they can only be described as a stand-up guy or gal.
That kind of person also exists in the workplace. And your goal should try to be that person.
Be the person that everyone looks forward to seeing. Build up the courage to voice your opinion in a constructive manner. It does not matter whether you consider yourself to be an introvert or an extrovert.
Later on your career, your technical skills will be the same as everybody else in your field. But if you want to get ahead in the workplace, you need to be a team player. You must be able to communicate, inspire others, and be trustworthy. Because at the end of the day if you can't connect with someone, then you will never be able to sell your idea—no matter how big or small it may be. And you'll end up taking orders instead of giving them out.
Skill #6: Troubleshooting Problems
One of the best parts about being a programmer is solving problems. But to solve a problem, you must first go on a journey of finding out what that problem is exactly.
The easiest thing in the world is to memorize a bunch of commands or copy and paste code found on Stackoverflow. Yet the real power is knowing the bigger picture of what's is going on. If you are tackling a big problem at work, it is best to break it down into tiny editable pieces.
Start by looking at the problem itself. Think about the problem the code is trying to address.
- Does it make people shop easier?
- Does it do reporting?
- What was this software created for?
Then, look at the current solution (if one exists). Lastly, consider how the current solution is solving the problem. (If it is at all.)
Once you get a high-level overview of the application, you can go into features of the application. Use the problem, solution, and details technique to further break down the issue. This framework has helped me to understand different open-source projects such as Discourse.
Certain job skills are universal, whether you're in a tech position or not. For instance, communication and teamwork. I wish I realized the importance of these soft skills before I landed my first job as a web developer.
Are there any non-technical skills that I missed? Let me know by leaving a comment below!
About the author
William is a self-taught software developer who went from a job he hates to a job he now loves. As well as writing about himself in the 3rd person, he breaks down exactly what you need to do if you want to get your first job as a software developer on his blog and newsletter.