Learning Web Development? These Skills Will Make You Stand Out
Tags: webdev, beginners, learning
Published: 2018-05-02 12:39:57

---
title: Learning Web Development? These Skills Will Make You Stand Out
published: true
description: A list of skills new Web Developers can use to stand out.
tags: webdev, beginners, learning
canonical_url: http://fullbit.ca/learning-web-development-stand-out/
cover_image: https://thepracticaldev.s3.amazonaws.com/i/ibv1zy8sw7rebtedxa3j.jpeg
---

Unfortunately, learning to code is only one step on the path of learning Web Development. Depending on your career trajectory, you could be competing with <strong>thousands</strong> of others who are also trying to break into the industry.

So what should you do to stand out from the pack?

I asked Web Developers across several communities what skills they thought were often neglected by new Web Developers, and I received a lot of great responses. So many in fact, that I decided to curate a list to summarize all of the information in one place. By learning these skills and concepts, you'll have a huge leg up on the competition.

This article is going to be a two part series. One article for the technical skills and one for the soft skills. In this first article we're going to focus on the technical skills.

<em>Note: The list of concepts for each is not exhaustive. I've only include the topics I believe will give you the most bang for your buck. If you think something deserves to be included and isn't, feel free to leave a comment for everyone's benefit.</em>
<h2>A Basic Understanding of Networking</h2>
Having an end-to-end understanding of <a href="https://github.com/alex/what-happens-when" target="_blank" rel="noopener">what happens when you type google.com into your browser and click enter</a>, is one of the best ways you can stand out from the herd. Obtaining a basic understanding of networking will go a long way towards reaching that goal.
<h3>What To Learn?</h3>
<ul>
 	<li>How Domain Name Systems (DNS) work.</li>
 	<li>Registering and using domains.</li>
 	<li>Understanding TCP/IP.</li>
 	<li>Basic network debugging. (ex. why aren't I able to to connect to my new website? <em>Hint: The port isn't open</em>)</li>
 	<li>Understanding what a VPN is.</li>
</ul>
Check out this <strong>free</strong> course by google that teaches you the basics of <a href="https://www.udacity.com/course/networking-for-web-developers--ud256" target="_blank" rel="noopener">Networking for Web Developers</a>.
<h2>Understand How HTTP Works</h2>
Although technically part of a basic understanding of networking, HTTP is important enough that it deserves it's own section. HTTP is the bread and butter protocol of the web, so learn it inside and out.
<h3>What To Learn?</h3>
<ul>
 	<li>The anatomy of an HTTP transaction.</li>
 	<li>The HTTP request verbs and when the use them.</li>
 	<li>Recognize the main response codes and when to use which ones.</li>
 	<li>What a stateless protocol is and why it matters.</li>
 	<li>Recognize popular headers and how to add your own.</li>
 	<li>Working with HTTP outside the browser. <em>(REST clients, curl, etc)</em></li>
 	<li>SSL, what it is, how it works, and why you should use it.</li>
</ul>
There are a lot of available resources out there to learn about HTTP but I'll include a couple in case you're feeling lazy:

<a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" target="_blank" rel="noopener">https://developer.mozilla.org/en-US/docs/Web/HTTP</a>

<a href="https://www.udacity.com/course/http-web-servers--ud303" target="_blank" rel="noopener">https://www.udacity.com/course/http-web-servers--ud303</a>
<h2>Learn To Work in Unix Shells</h2>
Unless you plan on working exclusively with Microsoft tools, your websites and applications are likely going to be hosted on a Linux server. That means you're going to need to be familiar with working in Unix shells. A lot of new Web Developers avoid working from the command line because it feels unfamiliar. This is completely normal, but now isn't the time to stay in your comfort zone.
<h3>What To Learn?</h3>
<ul>
 	<li>Remote access using SSH.</li>
 	<li>Basic shell commands (cd, ls, cp, mv, mkdir, ...).</li>
 	<li>Learn how to use grep.</li>
 	<li>Get familiar with a command line text editor (vim, Emacs, nano, ...).</li>
 	<li>Understand file permissions and how to change them.</li>
 	<li>Learn what environment variables are and how/when to use them.</li>
 	<li>Learn how to use .bashrc</li>
 	<li>Learn how to use a package manager (apt, yum, ...)</li>
 	<li>Learn to find and read logs for your services.</li>
 	<li>Learn to manage services (start, stop, restart, ...)</li>
 	<li>Learn basic bash scripting.</li>
</ul>
Honestly, I could go on and on for this one. Learning to be effective in a Unix shell can be a career long journey, which is half the fun. The power you gain from working on the command line quickly becomes apparent and will change the way you approach development. Some learning will be specific to your environment but the basics should apply across the board. Check out this <a href="https://www.digitalocean.com/community/tutorials/an-introduction-to-linux-basics" target="_blank" rel="noopener">tutorial</a> by <a href="https://www.digitalocean.com" target="_blank" rel="noopener">Digital Ocean</a> to get started.
<h2>Learn To Use Git</h2>
A strong understanding of Git is one of the most important things to learn as a new developer but it seems to be avoided by most. This is unfortunate because I believe newer developers benefit the most from a strong command of git. Why? Because it will <strong>save your butt</strong> when you inevitably make a mistake. Keep in mind, there are other version control tools out there like SVN and Mercurial, but for this article we'll focus primarily on Git.
<h3>What To Learn?</h3>
<ul>
 	<li>Learn the basic commands (init, add, commit, status, checkout, ...)</li>
 	<li>Learn to configure remote repositories.</li>
 	<li>Learn to use fetch, pull, push.</li>
 	<li>Learn to work with branches. (create, merge, ...)</li>
 	<li>Learn what rebase is and how to use it.</li>
 	<li>Learn how to resolve conflicts.</li>
 	<li>Learn how to use stash.</li>
</ul>
The more effort you put into learning git, the more confident you'll be working with a team of developers. <a href="https://www.atlassian.com/" target="_blank" rel="noopener">Atlassian</a> offers a <a href="https://www.atlassian.com/git" target="_blank" rel="noopener">great tutorial</a> or you can check out <a href="https://try.github.io/" target="_blank" rel="noopener">try.github.io</a> if you prefer a more interactive approach.
<h2>Learn To Use Browser Developer Tools</h2>
Browser tools are an everyday use just like your text editor, so get to know them. Being able to properly use browser tools will give you a <strong>huge</strong> leg up on the competition, and will make you an all around better Web Developer.

It will help you with debugging, understanding the effects of your code, recognizing performance issues, and much more. Chrome in particular has a lot of invaluable tools baked into their developer suite which has made my life as a Web Developer exponentially easier.
<h3>What To Learn?</h3>
<ul>
 	<li>Learn to use the console to find errors and debug your code.</li>
 	<li>Learn to use the inspection tool to view/change your markup and CSS in the browser.</li>
 	<li>Learn how to debug Javascript (call stack, breakpoints, object inspection, ...)</li>
 	<li>Learn to inspect and debug HTTP transactions.</li>
 	<li>Learn to profile websites to identify performance issues.</li>
</ul>
Browser tools offer an advantage that you can't ignore, so learn them early and learn them well. If you're using Chrome, checkout Google's <a href="https://developer.chrome.com/devtools" target="_blank" rel="noopener">Chome Dev Tools Overview</a>.
<h2>Learn an Additional Language</h2>
Most people will tell you to learn one language and learn it well. However, part of becoming a good Web Developer is learning to use the <strong>right tool for the job</strong>, and this includes programming languages. It's a good idea to learn more than one language but it's also important to learn different types of languages.

For example, if you're learning a language like <a href="https://www.python.org/" target="_blank" rel="noopener">Python</a>, you'll have a great tool for Object Oriented Programming. Instead of learning a similar language like <a href="https://www.ruby-lang.org/en/" target="_blank" rel="noopener">Ruby</a>, why not learn a functional language like <a href="https://clojure.org/" target="_blank" rel="noopener">Clojure</a>? or a language superset like <a href="https://www.typescriptlang.org/" target="_blank" rel="noopener">TypeScript</a>? This approach will help you to broaden your understanding of different programming paradigms and give you better insight into selecting the right tool for the job.

I'll list a few languages that will take you off the beaten path but know that there are a lot more available.
<h3>What To Learn?</h3>
<ul>
 	<li><a href="https://www.haskell.org/" target="_blank" rel="noopener">Haskell</a></li>
 	<li><a href="https://www.scala-lang.org/" target="_blank" rel="noopener">Scala</a></li>
 	<li><a href="http://elm-lang.org/" target="_blank" rel="noopener">Elm</a></li>
 	<li><a href="https://www.typescriptlang.org/" target="_blank" rel="noopener">TypeScript</a></li>
 	<li><a href="https://clojure.org/" target="_blank" rel="noopener">Clojure</a></li>
 	<li><a href="https://golang.org/" target="_blank" rel="noopener">Go</a></li>
 	<li><a href="https://kotlinlang.org/" target="_blank" rel="noopener">Kotlin</a></li>
 	<li><a href="https://en.wikipedia.org/wiki/Bash_(Unix_shell)" target="_blank" rel="noopener">Bash</a></li>
</ul>
Remember, it's not about learning a language that will get you a job. It's about broadening your horizons as a developer and being able to recognize the right tool for the job.

If I missed any languages you think should be included, feel free to add it in the comments.
<h2>Learn to Comment Your Code Properly</h2>
Commenting code is a point of contention among developers in the industry. Some developers will tell you to comment sparingly, some will tell you to comment often. At the end of the day it's going to depend on the team you work with and the style guide that they provide for you. With that said, no matter how much commenting you end up doing, it's important to learn how to comment <strong>correctly</strong>.
<h3>What To Learn?</h3>
<ul>
 	<li>Learn to write self-commenting code.</li>
 	<li>Learn your language's commenting syntax.</li>
 	<li>Learn to write comments that are brief and to the point.</li>
 	<li>Get familiar with <a href="https://en.wikipedia.org/wiki/Comparison_of_documentation_generators" target="_blank" rel="noopener">documentation generators</a>.</li>
 	<li>Learn how to recognize code that needs commenting.</li>
 	<li>Learn your language's commenting standards, if it has one. (ex. <a href="https://www.python.org/dev/peps/pep-0008/" target="_blank" rel="noopener">PEP 8</a> for Python)</li>
</ul>
Good comments can really help grease the wheels when you are working with a team of Developers. If you learn to write clean self-commenting code and back that up with comments that illuminate the dark parts, your teammates will take notice and appreciate your efforts.


That's it for the technical skills. Obviously, there is an <strong>infinite</strong> list of stuff you could learn to stand out among your peers. However, these topics are the ones that Web Developer's have expressed a desire to see more of when working with new Developers.

In the second part of this article, we'll review a similar list, but for soft skills. Until then, happy learning!


**Looking for Tech Jobs?** Check out my website [ObviousJobs.com](https://obviousjobs.com) for jobs with **full salary disclosure**.