What you need to know to be a webdeveloper, and how crazy you must be - developed.be

That’s cool ey, making websites! Think twice! And if you’re planning to make a career-switch to webdeveloper, consider what you need to know before you can call yourself a webdeveloper. I started this list 5 days ago and new things still pop-up in my head.

Edit: update april 2017. I wrote this post 4 years ago. Things have changed of course. I added some stuff that you now need to know _as well_.

To kick off, you need to know:

  • HTML, well obviously. But there isn’t just HTML there’s also:
    • XHTML
    • HTML5 (please don’t tell me you don’t use <article>)
    • HTML for IE
    • HTML for everything but IE
    • Word HTML ®
    • Any DOCTYPE variation and their behaviours
  • Even if you’re not a frontend-dev you at least need to know some:
    • javascript
    • jQuery
    • jQuery-libs (version 1.7 of course not compatible with 1.3)
    • CSS
    • CSS 3
    • CSS for IE
    • JS Frameworks! Hurray! There’s Bower, grunt, node and other new kids on the block.
      • All you need to do is node install  (so they say)
  • Basic Photoshop knowledge (you will need to alter images some time)
  • Know all about usability
  • But we haven’t talked about the actual specialty: programming!
    • All basic program structures (sequences, iterations, classes, inheritance)
    • Keep CPU, disk iops and RAM in mind. Performance is very important.
    • A handful of design patterns
    • And of course some UML or other analysis tools
    • You shouldn’t, shall never and won’t use any goto’s
    • You must master the tools you have to program with.
    • Separate concerns
    • You are able to arrange cultural settings (the current time is: Mercredi octobre 19 22:05:12:4854 +05:00 GMT with daylight saving time)
    • Know regular expressions and how they don’t behave the same in every language.
    • Character encoding (UTF8, ascii, Unicode, Latin-types, url-encoding, html-encoding)
    • Encryption algorithms
    • Refactoring “a monster”.

  • And there isn’t just one language around. In my career so far:
    • VB6 (long gone)
    • PHP (version 4, 5, 7) (glad they skipped 6)
    • C# (version 1, 2, 3)
    • ASP.NET
    • Javascript
  • Frameworks! Yes, they have taken over web development.
    • You have 5 years experience with Symfony or Laravel.
    • You use composer to include anything, even the framework.
      • –ignore-platform-reqs saves your day
      • You have been dared to execute composer update on a live server.
  • But you can’t dev without some database-knowledge:
    • All possible queries
    • Modeling
    • Migrating
    • Indexing
    • All these crazy db-types that are just a microsecond faster than another
    • BLOB is unreadable??
    • And suddenly you have a deadlock.
  • As in all software development, in order to develop, you need a strong analytic mind. You need to identify problems, identify solutions, identify ways to implement that solution, and eventually implementing that solution.
  • More important than anything these days it seems: all the dubious SEO rules (or you’ll get the following question: why is my website not the number one search result?). Yes people, Google has taken over the rules how you should structure html, which tags you should use and how you should write your content.
  • You must be able to bugfix a system with zero documentation.
  • Know about different license-types.
  • You perform unit-testing, user-testing any other kind of testing.
  • You have to find people who want to test your app (testers). They should know how to test your app and know how to write a decent bugreport (or you’ll get: “I can’t see the picture!“).
  • CMS! Even if you’re into PHP, ASP.NET or JAVA, you will need to know at least some CMS’es including all their strange behaviors, all their workarounds and all their non-sense making details.
    • But don’t worry, the new version of the CMS is written from scratch so none of your code will be reusable
    • * The upgrade process is a bit buggy
    • And it uses this brand new funky template language.
  • Social Media! Everyone on the web is social these days, so you must keep up with ever changing Facebook-API’s and these colored share-buttons.
  • Work organized (on your harddisk, not on your desk)
  • Remember a dzillion passwords.
  • You also need to be a writer. You must be skilled in writing any of those:
    • technical analysis
    • functional analysis
    • comments in your code
    • documentation
    • manuals
    • bugreports
    • time schedules
    • notes
    • know how to write for the web
    • keep a blog
    • but the real excellent CV players have released publications or even wrote  a book.
  • And most important: you need to know how much time the project will take in advance. (and if possible, a bit faster than that please)
  • Don’t lose hope though, 90% of all IT-projects fail to meet the deadline anyway. (some projects might never see the light)
  • Going through tons of logfiles, hoping to find a clue.
  • You can’t, can not and mustn’t forget to make backups before you start doing anything. You might regret it the rest of your life.
  • Of course, you need to keep up with the new technologies.
    • Going to unpaid after-hours presentations, workshops and meetings. Some of them might be abroad (though that’s the fun part of the job).
    • Reading specialized books, magazines and websites.
    • A “Microsoft 2013 Certified WCF” wouldn’t harm your CV.
    • Too bad you can’t predict which technology will eventually take over (Linq to SQL or Entity Framework?) and which technology will just be a waste of time (XSLT).
  • A diploma (with a distinction?). You need this for all these things you learn in school and never need again afterwards. (For example, I had a Frontpage and a VBA-exam in public school)
  • Some algebra and “simple” math.
  • Other knowledge dependent on the sector you’re in (and it’s politics)
  • You think and write in English!
  • Find the meaning of every new buzzword your colleagues come up with.
  • Figuring out why something suddenly stopped working (and fast because the client is mad, losing money and will make you feel bad)
  • You need to talk to clients who don’t have a clue what they want and what’s possible.
  • You need to talk to users who don’t have a clue what they’re doing.
  • If you’re self-employed you will need to sell.
  • You will have to explain a complex system to someone who doesn’t know the difference between a database and apple juice.
  • Scrum, Agile, Waterfall — the things that keep you from going loose
  • Keep the scope in mind though. The client might want everything different the week prior to the release.
  • You know some reliable inexpensive well-supporting hosting companies.
  • You know and use a version control system and resolve merge conflicts.
    • You make pull requests and wait patiently.
  • Before you know, Firefox will release its 250th version and will break half of your website. Well, that’s embarrassing!
    • Luckily, IE13 will solve everything. (well, actually, if you use these new Microsoft tags®. They are really wow!)
  • People expect you know every detail about Star Wars, Star Trek and Lord Of The Rings.
    • Also: you’re into coca cola, pizza, hacking, Minecraft and other nerdy stuff.
    • Also: you drink coffee and nothing else!
  • You can’t get around some sysadmin stuff:
    • Configuring a webserver (IIS/Apache2)
    • Setting up a dev-environment
    • For Linux, know tons of commands and their arguments
    • Give rights, but not too many
    • Work out a decent folder structure.
    • And then oopsError 500 and no logs.
    • Give advice about which operating system ordinary people should use (though Win8 sucks, Ubuntu is too difficult, Apple is too expensive and XP is impossible to get these days).
    • Settings like “make directory X writable”, set RAM to 128MB
    • Indistinct config files (yes you .htaccess, .gitignore and robots.txt’s of this world)
    • Know protocols (http, pop3, ftp, IPv4, IPv6)
    • Know how DNS functions
    • At least have a little knowledge on current hardware.
  • And you don’t know any Flash?
  • Employers search people who have 5 years experience with a technology that’s stable for just 2 years.
  • Google. No really. Without Google you’re lost.
  • Helpdesking. You wade through tickets in the system.
    • You’ll be getting questions about projects you haven’t worked on for 20 months.
    •  Priceless: “Our users without an emailaddress do not seem to receive the newsletter. Why’s that?” (real life question)
  • You should know – and this one is very important for you –  how much you should charge, define your price.
    • Be prepared that people who are not into the business will get cold-sweat when they hear you can’t make a website with a $50,- budget.
    • Be prepared that employers won’t tell you your wages are too low to be “competitive”.
  • Security! Not an afterthought! You have perfect knowledge about all of these, without any exception:
    • SQL-injections
    • Cross site scripting
    • Malware
    • SSH
    • Private/public keys
    • HTTPS-certificates
    • Install regular security updates
    • Avoid spam (on WordPress!)
    • Firewalls
    • Salted hashes
    • The risks of every technology you use (certainly with PHP)
    • Why you shouldn’t use Dropbox and USB-sticks for private content
  • And above all, you must be, by no doubt, a team-player
  • But if needed, you must, certainly, be able to work independent and without any help.
  • But be social for heaven’s sake.
  • Your site must be responsive.
  • You must have a portfolio, an impressive personal website, a Linked-In account with some recommendations, a personal spare time web-project, a decent Facebook-picture and other various internet karma.
  • Keep RSI in mind, before you know your body will object.
  • You will have to work at night to release an upgrade for a popular website. The deadline is 6AM (at 9AM your normal workday starts).
  • Be prepared to get alert text messages like “the website is down!”, “the form doesn’t work anymore!”, “I can’t send an email!”, “a client forgot his password!” when you’re drunk in the pub watching Star Trek.
  • Explain to PM’s, sales, clients, other devs, designers, team-leaders, analysts, marketeers why “the team” (=you) must or can’t do it that way, or why it will need extra time. They will react as if you’re an alien and won’t understand how something so easy as “creating a yes/no box” takes so much time and effort, and why the “yes/no box” will break the logic architecture of the application.
  • Oh, and if any of the above things fail, the entire project fails (and it might be all your fault)
  • You will be misunderstood by everyone:
    • Colleagues think you’re only there for fixing wireless routers and printers (I HATE WIRELESS ROUTERS AND PRINTERS!),
    • Except for fellow developers, nobody has a clue what you actually do for a living (and certainly not your mom).
    • Your fellow developers (teamleaders or project managers) will prefer a different approach because they heard technology X or Y is the new fantastic magic solution for every problem.
    • People will call you “the webmaster”.
    • At parties, people will ask you following questions because they think that’s your profession:
        • why is my computer so slow?
        • is Medion CS4938 B Super 64bit a good laptop?
        • can you fix my computer?
        • is it safe to refill my cartridges with cheap ink from Germany?
        • how do you manage to sit behind a computer all day? I wouldn’t want that.
    • Even though, if you master everything in this list, people will be surprised that you are not a designer and can’t create a professional template in Illustrator. You said you make websites?
  • But that’s all yesterday, because tomorrow everybody will use iPhone Apps. Can’t you make one for us?
  • Oh, have you any experience with INSERT_RANDOM_SOFTWARE_PACKAGE?

Conclusion

There is nothing more intellectually satisfying in the world than creating a well written, well working and popular website, script or software program — certainly when it’s written from scratch. All that other sh*t and temporary useful knowledge comes with the job.

And you’re crazy.


Rss Comments

2 comments

  1. This is hilarious! A very comprehensive list of things that only a web developer could ever understand.

    #1 Nathan
  2. lol.. absolutely spot on, I would have thought I wrote it in my sleep. crossover to hardware and customer assumed knowledge of every CMS so you can effectively argue against google searches like: “why is drupal bad”.. priceless. I just keep reading it over.

    #2 dustin

Leave a comment