Are you learning web development? This article by Colin Morgan tells us of the skills which will make you stand out.
"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
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.
Understand How HTTP Works
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.
https://developer.mozilla.org/en-US/docs/Web/HTTP
https://www.udacity.com/course/http-web-servers–ud303
Learn To Work in Unix Shells
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
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.
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 how to debug Javascript (call stack, breakpoints, object inspection, …)
- Learn to inspect and debug HTTP transactions.
- Learn to profile websites to identify performance issues.
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?
- Haskell
- Scala
- Elm
- TypeScript
- Clojure
- Go
- Kotlin
- Bash
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
- 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)