Friday 29 July 2016

What are the top skills every Web Developer should have?

  1. Pulse on the Industry and the User
    It's impossible to know where web development will go in 5 years, but those who follow standards bodies or at least read tech blogs have a much better understanding of upcoming changes and growing trends.

    It's not enough to follow the industry. Web developers must also understand their users and how they use the product. Analytics tools like StatCounter and Google Analytics are my favorites for gathering basic metrics of user interactions. A web developer should know if a third of the traffic is from a mobile device or that visitors are from Spanish-speaking countries. Maybe it's time to think about optimizing for mobile and internationalization.

    I list this as the number one skill because being proficient here will trickle down and facilitate the other skills.

    Things are changing and a lot has already changed. HTML 5, CSS 3, ECMAScript 5, and so on. If you can see these things coming, you will be able to adjust your priorities.

    Developers must have an understanding of the state of the browser market and to some extent even the OS market. Did you know users of Windows XP are unable to upgrade to IE 9? Want to guess what the most popular operating system is? (hint: it's XP). Knowing this, do you think it's a good idea to drop support of IE 8, even though 9 is out? Maybe for your user base, that could be a good idea. But my point is that you should know where all of the pieces are on the board before you make your move.
  2. Programming Competency
    Web developers must be able to code. This is supposed to sound obvious. An effective web developer must be able to write syntactically valid HTML, CSS, and even JavaScript.
  3. Testing
    All web developers must be able to test their code in multiple browsers. It's easy to test for our own personal browser of choice and ignore the rest, but the web is about diversity and the browser landscape is very diverse.

    JavaScript testing also falls under this category. Developers must use tools to detect and debug scripting errors. Chrome, Safari, and Internet Explorer all come with built-in developer tools that allow you to step through JavaScript and execute code in an interactive console. Firefox has limited native support for this, but the Firebug plugin is the de facto standard.

    If you are going to write code, you must be prepared to make sure that it works.
  4. Accessibility
    Developers must be able to write code that is flexible enough to be used in different ways. Search engines and screen readers for the blind are two examples of machines interpreting your code. Sites that are heavy with Flash or foreground images for UI tend to struggle here.

    Accessibility at it's core is really about usability. Can the user use your product? Web developers must know about any obstacles between the user and the product to better design it. Is the product usable on small screens like mobile devices or even older monitors? Do users know to click on a particular button to continue to the next page or is the page difficult to understand?

    How about users with images, cookies, or JavaScript disabled? What if they're just using a really old version of a browser? What do you do for them?

    Know your user, set limits to what you will and will not support, implement a cross-compatible solution, and test thoroughly.
  5. Security
    I leave security for last, but really it's a top priority. Every web developer must understand how malicious people can use their product to attack the site or other even other users.

    If the web developer has skill #1, they should be familiar with the security concerns of the industry and common defenses.

2 comments: