Has anyone ever stopped to think what a web application developer is expected/required to know to do their job? I’ll briefly detail a few things. Here’s the short list.
HTML – The very framework the web is built on.
Well that’s just he tip of the iceberg. You have HTML v4 and most recently HTML v5. The birth of HTML4 was the rework of HTML but using an XML standard– Enter XHTML which also has it’s own versions. Of course all this HTML behaves differently between browsers. But lately, things have been getting better as each browser has been doing better at becoming compliant and supporting the so-called Standards.
CSS – Cascading Style Sheets.
CSS is a blessing and a curse at the same time. CSS helps ‘stylize’ webpages. Allows for consistency and makes life easy when having to update or change things. CSS also behaves different between browsers. The syntax is completely different from HTML as well. There’s all sorts of ‘tricks’ you can do using CSS which I’m not going to go into at the moment, but it’s almost another language a web application developer must know. Just knowing CSS gets you pretty far– We could stack on top of this all the different CSS frameworks that attempt to make using/writing CSS easier and faster– There’s still a learning curve.
SQL – Structured Query Language. (Did I just add yet another language to the list?)
Regardless of the database running on the back-end of the web page, there’s some sort of SQL going on to fetch and store data. Of course there’s all sorts of ‘magic’ that a web application developer should know to make sure the web application runs smoothly and performs without hesitation. The basics are easy. It’s when you start getting into the complicated queries for data that things tend to slow down and bring a server to its knees.
User Interface Design & Usability – The psychology behind people clicking buttons.
You can’t have a web application without buttons or some sort of user interface. Web application developers need to design a UI that’s easy to understand. Easy to navigate and makes life simple for the end-user. There’s tons of studies and presentations on Vertical Rhythm, Typography and A/B Testing to determine which colors or layout works better for the user. Just more stuff the web application developer has to cram in his brain and is expected to know and understand.
I haven’t even gotten to the meat of the web application yet. These are just top level things.
The ‘web language’ itself – The main code behind the application.
EIther it be PHP or ASP or .NET or Python or Ruby or Perl… Just to name a few of the common/popular ones. A web application developer should know this language inside and out… and yes.. I just added yet another language to the list. Just another thing a web application developer should know. This is his swiss army knife. He can make this language do jumping jacks in his sleep. These languages are pretty stable across most environments. What works on one server most likely works on another server. There’s only a few differences you have to look out for. Along with this, he should also probably have a good idea about memory management and how the language shuffles data around. He should know how to write efficient and maintainable code. You can take this one step farther and expect him to know proper formatting and code layout. File naming conventions and how to organize a project on disk. Just more stuff to be conscious about.
Networking / Protocols – How things talk to each other.
As a web application developer, he should also understand how a browser (the client) and the web server (the server) operate. Understand how a browser fetches a webpage and all the stages of the Hypertext Transfer Protocol (HTTP) works. He should also understand memory management on the server side as well. How the server is going to deal with that huge SQL query. How his code is going to grab that data and present it to the user. How all this data is going to fit (read: bandwidth) over the wire. Sure his application can look pretty, but if no one can ‘talk’ to it, it’s worthless. One step further. He should be aware of disk I/O. Reading and writing of logs. Reading of scripts. Reading and writing of data. You’d want to keep all these to a minimum to increase performance for a large audience. All of this could be a science. But he’s expected to know and understand it. Did I mention different operating systems handle some of these operations differently?
I could probably go on and on with all the things a web application developer is expected to know. These are just main ones. So if you’re trying to be a web developer and you feel overwhelmed, there’s a reason for it. There’s a lot to learn and even more to master.
It’s unfortunate that a lot of people take all these things for granted. A lot of the ‘experts’ in the field forget where they came from. All of these stuff has become second nature and they really DO forget just how much stuff we must know. Anything is easy if you’ve been doing it for years.