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 thousands 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.
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.
A Basic Understanding of Networking
Having an end-to-end understanding of what happens when you type google.com into your browser and click enter, 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.
What To Learn?
- How Domain Name Systems (DNS) work.
- Registering and using domains.
- Understanding TCP/IP.
- Basic network debugging. (ex. why aren’t I able to to connect to my new website? Hint: The port isn’t open)
- Understanding what a VPN is.
Check out this free course by google that teaches you the basics of Networking for Web Developers.
Understand How HTTP Works
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.
What To Learn?
- The anatomy of an HTTP transaction.
- The HTTP request verbs and when the use them.
- Recognize the main response codes and when to use which ones.
- What a stateless protocol is and why it matters.
- Recognize popular headers and how to add your own.
- Working with HTTP outside the browser. (REST clients, curl, etc)
- SSL, what it is, how it works, and why you should use it.
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:
Learn To Work in Unix Shells
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.
What To Learn?
- Remote access using SSH.
- Basic shell commands (cd, ls, cp, mv, mkdir, …).
- Learn how to use grep.
- Get familiar with a command line text editor (vim, Emacs, nano, …).
- Understand file permissions and how to change them.
- Learn what environment variables are and how/when to use them.
- Learn how to use .bashrc
- Learn how to use a package manager (apt, yum, …)
- Learn to find and read logs for your services.
- Learn to manage services (start, stop, restart, …)
- Learn basic bash scripting.
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 tutorial by Digital Ocean to get started.
Learn To Use Git
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 save your butt 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.
What To Learn?
- Learn the basic commands (init, add, commit, status, checkout, …)
- Learn to configure remote repositories.
- Learn to use fetch, pull, push.
- Learn to work with branches. (create, merge, …)
- Learn what rebase is and how to use it.
- Learn how to resolve conflicts.
- Learn how to use stash.
The more effort you put into learning git, the more confident you’ll be working with a team of developers. Atlassian offers a great tutorial or you can check out try.github.io if you prefer a more interactive approach.
Learn To Use Browser Developer Tools
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 huge 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.
What To Learn?
- Learn to use the console to find errors and debug your code.
- Learn to use the inspection tool to view/change your markup and CSS in the browser.
- Learn to inspect and debug HTTP transactions.
- Learn to profile websites to identify performance issues.
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 Chome Dev Tools Overview.
Learn an Additional Language
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 right tool for the job, 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 Python, you’ll have a great tool for Object Oriented Programming. Instead of learning a similar language like Ruby, why not learn a functional language like Clojure? or a language superset like TypeScript? 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.
What To Learn?
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.
Learn to Comment Your Code Properly
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 correctly.
What To Learn?
- Learn to write self-commenting code.
- Learn your language’s commenting syntax.
- Learn to write comments that are brief and to the point.
- Get familiar with documentation generators.
- Learn how to recognize code that needs commenting.
- Learn your language’s commenting standards, if it has one. (ex. PEP 8 for Python)
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 infinite 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 for jobs with full salary disclosure.
If I would suggest some more things to learn, there will be SQL, and database servers, web servers like apache, nginx and IIS, and things like ajax and jquery.
The languages you mention are all viable languages to learn. As mentioned in the article, the idea is not to learn a language because it’s used frequently in the industry.
The idea is to learn and demonstrate your ability to work with and understand various programming paradigms.
The things you mentioned are definitely good investments. Especially SQL.
Thanks for your input!
I would argue that both PHP and ASP are not really valid options for new developers.
ASP was replaced by ASP.Net in 2000.
PHP is pretty old now too and not really that popular from what I see on the job-boards.
How about Ruby instead of PHP, or do people still think PHP is a valid option?
Otherwise, I agree with you esp. on the DB/SQL stuff, critical to know that for web-dev.
Good list, but I think two important things are missing:
– Writing tests
– Understanding cache at different levels
Writing unit tests is definitely a big one. Thanks!
Learn how to create web user interfaces that are easy to use for all users and accessible for users with disabilities (look up WCAG 2.0). Most government and many private sector websites are required by law to be accessible.
Nice article. You should add coding for WCAG 2.0 AA and WAI-ARIA to your list.
Nice article. No love for .Net/C# is a little weird esp. with .Net Core being such a fun and easy way to get into it.
This article was based off a discussion of the “other” parts of Web Development. You’ll notice I didn’t touch on any mainstream languages or frameworks.
No slight to .NET, it just wasn’t pertinent.