In part one of this article we discussed technical skills that, for people learning Web Development, could help you stand out from the crowd. The list was curated from discussions with experienced Web Developers across several communities, who felt the aforementioned skills were often neglected.
In part two of this article, we're going to discuss the soft skills. What are soft skills? Pretty much anything that isn't a technical skill is considered a soft skill.
So let's get started.
Learn When/How To Ask Questions
Learning Web Development, like a lot of professions, is an endless journey to obtain knowledge. As someone learning Web Development, you're inevitably going to have a lot of questions. Let me be clear, this is okay. I'll go one step further and say it's expected. With that said, there are right ways to ask questions and wrong ways. If you want to stand out as a Web Developer, it's important that you learn the right way.
Help Yourself First
Before asking a question, you should learn to help yourself. Very few issues you run into during the beginning of your career are going to be novel. Chances are someone else has run into the exact same issue, found an answer to the problem, and documented the solution on the internet in some form.
Read the documentation, search the error message on Google, check Github for related issues, search Stack Overflow, and any other resource you can think of. If you can't find the issue, your wording might be wrong and you may need to try some different variations.
My Dad used to have a saying he'd tell me when I was learning something new. Read the f*cking manual. Maybe it's not an overly elegant statement, but it rings very true when it comes to learning Web Development.
Before asking a question, try reading the documentation for the tech that you are working with. If nothing else, this will give you a better understanding of what's going on and might be able to point you in the right direction.
I have a confession, the majority of times I run into an issue with a library or framework is because I didn't read the documentation or glossed over the details. This is not specific to new Developers but is a concept that will solve problems before you run into them.
If you want to be a more consistent Web Developer, RTFM.
Show Your Work
Read all the documentation, combed the internet from top to bottom, still can't figure it out? Now it's time to ask your question. When asking a question make sure to include:
- A clear summary of the issue including any error messages, side effects, context, stack traces, or other pertinent details.
- A screenshot, gif, or video of the problem if it's visual.
- All of the approaches you've tried already.
- The related code, if there is any.
- Any related issues or documentation.
One other thing. If you've found the solution to your problem but don't understand it, make sure you ask for clarification. Remember, those who fail to learn from history are doomed to repeat it.
Learn To Think Like A Customer
We spend a lot of time learning to think like a Web Developer, so this one can be tricky. Being able to think like a Customer can mean the difference between one or two iterations of a feature, versus a dozen. So how do you learn to think like a Customer?
Talk To Them
Customers are the single most valuable resource for your development process. Why? Because they can tell you exactly what they want or at least give you specific details about how they plan to use a product or feature. This is valuable insight that you can use to plan your approach.
If you talk to your Customers often enough, you'll begin to see the product through the eyes of someone using the product, instead of the eyes of a Developer trying to solve a technical challenge. The two perceptions are very different.
Get Early Feedback
When you're working on something that directly relates to a Customer, try to get feedback as early as possible. After developing a rough idea of how something should work, I often like to create a gif of it working and send it to my clients for some quick feed back.
I can't tell you how many times I've started coding, provided the client with a rough draft of the feature, and received feedback that prevented me from spending hours more on a feature that the client ultimately didn't like. Do this enough and you'll start to know what the Customer is going to say before the say it.
One thing to keep in mind. Be weary of showing a Customer something that is mid-development and subsequently broken. Sometimes Customers can't see past your rough draft choices and it skews their perception.
Learn To Understand Why It Was Done That Way
This one is pretty straightforward. When you're out there in the wild, there are times when you'll find yourself staring down the barrel of some really gnarly code. When this happens, take the time to try and figure out why it was done that way. Most Developers want to write clean readable code, but the reality is that sometimes we are forced to write garbage.
Why? Because at the end of the day programming is usually used to solve business problems and business problems are often a mess. So take the time to understand why something was done the way it was and don't assume you know better.
Nothing is worse than "refactoring" a block of code, only to find out you introduced a bunch of new bugs that the original code walked around carefully.
Learn To Properly Test
Yes, this means learn to write unit tests properly. However, it also means that you need to try your code before you push it out. Just wrote a new API end point? Don't just get your unit tests passing and ship it. Test the end point in real world scenarios. Test it while thinking like a customer. Made front-end changes? Test it on all the browsers and at different screen sizes.
When your coworkers review your pull requests the only issues they should run into are edge cases. Even with edge cases, if you write good unit tests, you'll likely catch those as well. Learning to properly test will make your code more consistent. Consistent code will label you a consistent Developer.
Learn To Properly Search
This is probably one of the most important soft skills you can learn when learning Web Development. If you can learn to properly search for answers to your problem, you'll be close to unstoppable. 99.9% of the time the answer to your problem is out there on the internet, in a Github issue, article, or some obscure community forum. You just need to learn how to find it.
Here are some approaches you can use:
- If you have an error message, try searching Google using exact string matches. Just make sure to leave environment specific parts of the error message out.
- Try rewording your search phrase multiple times. Swap phrases like "modal" with "popup".
- Have a stack trace? Find the line of code that is erroring, look it up on Github, then comb through the history of that line for possible leads.
- Search Github for issues related to the problem. Maybe someone has ran into this issue already and a fix is included in a newer version.
- Search using function or variable names specific to the problem. Often function names can be unique to the code base and yield good results.
- Read the source code. Maybe there are comments that will help you or maybe gaining a better understanding of how it's working under the hood will help you understand the problem from a different angle.
- RTFM (see above)
There is no formula to follow when learning to properly search for answers to your problem and the best approach is often specific to the type of technology you are working with. More important is that you commit to learning to find the answers on your own.
Don't Do Things You Don't Understand
I'm going to keep this one short. There are times when you are going to feel tempted to copy and paste code into your project without understanding how that code works. Don't do this.
Either take the time to learn how it works, or don't use it. This doesn't mean you need to understand the inner workings of every plugin, package, or module before using them. It does mean that you should read the documentation for those tools before using them.
The Tip Of The Iceberg
There was an unreal amount of soft skills mentioned across all of the communities and unfortunately I can't write about every single one in detail. Here is a list of some that I missed:
- Learn to be empathetic.
- Learn better conversational skills.
- Learn to not assume it's someones else's fault, because it often isn't.
- Learn to take notes.
- Learn to under promise and over deliver.
- Learn to be humble when being critiqued and merciful when critiquing.
- Give yourself time before escalating problems with coworkers.
- Learn to be patient with others.
- Learn to back yourself when you think you're right and to recognize when you're not.
- Learn to communicate your progress, even if you aren't required to.
- Learn to know your limits and not work yourself to death. Sometimes a break can increase your productivity overall.
Thank you to everyone who was involved in the initial discussions. There were a lot of great suggestions and a lot valuable insight. For those learning Web Development, I hope these articles have provided you some value.
Good luck and happy learning.
Looking for Tech Jobs? Check out my website ObviousJobs.com for jobs with full salary disclosure.