1. 14

Web has changed a lot in last 10 years. What does it mean for you do be a good web developer in late 2015?

  1.  

  2. 15

    I’d humbly suggest the following…

    Tools:

    • Knowing (well) at least one build system in common use (make, gulp, grunt)
    • Knowing (well enough) at least one solid text editor (emacs, sublime, vim, notepad++)
    • Knowing (well) at least one source-control system (git, svn, hg, darcs)

    Languages:

    • Knowing basic CSS and at least one CSS-replacement (SASS, LESS)
    • Knowing ES5 backwards and forwards. No excuse not to know that language in its near entirety (ES6 makes things weirder).
    • Knowing basic HTML and where you can use custom tags and whatnot

    Standards:

    • Knowing broadly what is now possible (3D rendering, sound, websockets, webworkers, location)
    • Knowing where to find compatibility information ( http://caniuse.com/#index should be carved into your desk)
    • Knowing how to read and understand the specs from W3C and IETF (where appropriate in the latter case)
    • Knowing what hasn’t changed (fundamental document model, client-server stateless responses, etc.)

    Philosophy:

    • Knowing hypermedia and linked documents as a way of creating content
    • Knowing about open-source standards, licensing, and ettiquette

    Frameworks:

    • Knowing what DOM and AJAX stuff you can now do in modern JS DOM apis (classList, for example)
    • Knowing (to todo-list proficiency) at least one modern client framework (Flux+react, Backbone, Angular, Ember)
    • Knowing (to todo-list proficiency) at least one modern server stack (Rails, Sinatra, HAPI, Express, Laravel, Phoenix)
    • Knowing (to todo-list proficiency) at least one database stack (Mongo, Postgres, MySQL, Cassandra, SqlLite)

    I’ve probably left out a bunch (like, security) but I’d consider that a good start for somebody claiming to be a “good” web developer.

    1. 15

      Security is a pretty big deal. For web development, it’s actually a specific skill. For most development areas, security is a subset of correctness. But a “correctly” written website will fall victim to trivial CSRF attacks. You cannot reason about web security from first principles. This should terrify people.

      1. 4

        It absolutely should. At the very least, being aware of the OWASP Top 10 threats and how to deal with them is a must.

      2. 2

        @angersock Thanks for your detailed explanation.

        What are in terms of skills your strengths? What would you suggest to an average web dev to improve themselves?

        1. 1

          Shoot me an email for a more in-depth explanation.

      3. 8

        What does it mean to be a good modern web browser developer? Zing!

        1. 1

          @tedu, do you mean to be oriented towards frontend development (aka browser)?

          1. 18

            Oh, I’m just fooling. I like to complain about the disaster that is the “modern” web site, but I think browser developers are also to blame for enabling it.

            If you are so inclined, you can dig a first gen pentium with 16MB RAM out of the closet and the ancient browser installed on it can probably render my homepage with some degree of fidelity. A modern browser requires more than 200MB memory to accomplish the same task. This would be somewhat understandable if I had the page background set to a webgl rendering of quake, but I don’t. Hundreds of man years invested in performing the same task with 10% efficiency. And every release proudly announces “reduce memory usage” in the release notes.

        2. 5

          Not forgetting about the last ten years because of shiny new framework of the year.

          1. 2

            @kaiju What is valuable in your actual tools? What are your skills that you value the most?

          2. 5

            Hasn’t changed. Know and adhere to standards. Employ progressive enhancement. Provide support, if degraded, to older and fringe browsers. Assume low bandwidth, high latency clients.

            1. 1

              @trevorbramble What do you think it’s essential in terms of skills and knowledges? Imagine an average developer that wants to take the path from good to great.

              1. 2

                It was really well covered by @angersock.

                For what it’s worth, I disagree with conflating web applications and “the web”, so a “web developer” can be excellent at what they do with a subset of that list. In fact if you’re working on the web and including items from all those areas, I’d say you need to rein it in.

            2. 2

              Write an angry blog post any time another terrible addition to the System Information API is drafted

              1. 1

                Probably knowing what to use to make Web development less painful.

                • What are you doing to make JavaScript less painful?
                • What are you doing to make CSS less painful?
                • What are you doing to make resource handling less painful?
                • What are you doing to make client/frontend/backend interactions less painful?
                1. 1

                  Being comfortable working with tools like Gulp to automate transpiling and package dependencies seems relatively novel.

                  Understanding and being able to work with frameworks like React and Angular seems important, as well.

                  1. 1

                    @anfedorov What about skills, server side? What is for you the path to mastering web development?