Mama teach your children protocols
I work and live in Cairo, Egypt - so I get to see the Pyramids of Giza from my office window while you suckers have to pay thousands of dollars to pay see it for a couple of uncomfortable hours.
On the downside, I have to review resumes and interview people on a weekly basis for web development jobs.
A standard resume will list litanies of languages, frameworks and databases that a particular person has mastered - but rarely I see people list of protocols in there. Not surprisingly I have not interviewed any web development candidates that know their HTTP/1.1 cold. That is a damn shame.
I do not see universities teaching protocols as parts of their IT degrees either. Developer conferences sell the latest language and libraries. Professional IT traning firms drill down either Java or .Net framework to their participants. But nobody talks about protocols.
It probably because people think protocols are boring. Yes, protocols are boring and you cannot do some flashy demoware on them at conferences - but not mastering critical protocols in your daily work hinders your progress unecessarily. You will get by without knowing HTTP/1.1 as a web developer, but let's aim higher than getting by in a profession.
(image licensed by creative common)
When you get to know an underlying protocol, you will be able to figure out easily their weaknesses and strength and be able to make the appropriate decision on when to use this. Protocols also tend to last longer than just mere frameworks.The coolest thing about mastering protocols is that you get to know how things work. There are wonderful things to be discovered inside multitude of protocols that are available and being used everyday on the Internet.
I wish universities take protocols more seriously than they are now. They should be at least one course on mastering the most popular Internet and web based protocols and open formats.
Anyway, here is a list of protocols that a developer can learn much from.
-
HTTP/1.1 (the protocol of all protocols)
-
AMQP (a wonderful messaging protocol)
-
XMPP (a presence and messaging protocol and a whole lot more)
-
RelaxNG (not a protocol, but a joy to read - especially compared to XML Schema)
-
Atom Publishing Protocol (awesome Restful protocol)
-
RSS Cloud / PubSubHubBub (open real time web)
and there are a whole lot more.
I wish Steve Balmer can repeat his schtick of shouting Developers! Developers! Developers! to Protocols!Protocols!Protocols! It will do inumerable service to wider development community if more of us take mastering protocols seriously.