The calendar is changing yet again on another decade and as we go from 2009 to 2010, it seems only natural to become a bit reflective on all things. Technology is always changing and what seems like life long disputes are now fading into obscurity, and before you know it, you will be sounding like an old timer talking about the old mainframe days of computing. In my case, the old local network model of client and server is where I made my professional career. However that model is dramatically different today. Today, I no longer work on Netware or Windows 2000 file servers and their Windows clients, as much as I work with browsers and the Internet. Instead of supporting a LAN, I mostly support Web Services; a term that describes pretty much anything if you really think about it. I tell most of my non-technical friends that essentially I support web sites, to make sure they are working the way they are suppose to. This is more easily said than having to explain that I spend most of my time trying to figure out where exactly my problem is.
The extraordinary situation is that supporting web services is kind of an unwritten subject matter. You will not be able to walk into Barnes & Noble and find it in the computer books section. Most of the time what you will find will be books that talk about making money with web services, by which they mean running your own website business or using eBay or Amazon to help your business. This is because web services, as we think of web services have not been around all that long. The prior file server and client model, what I call LAN support, has been around for more than two decades and it was properly evangelized by companies like Microsoft, Novell, and IBM.
For years, Microsoft sold and supported training for how to support your basic file server and local clients. You usually ended up with huge thick books and a paper certificate that you could hang on your wall saying you knew how to support Windows. Web services has no such certificate and even if you could point to one, it most likely would be so specialized that it really could not encompass much. For example right now, a web service could mean Apache Web Server connecting to a backend database that is serving up information to a browser on a Macintosh, a Windows machine, a mobile smartphone, or even a GPS device in your car! The technologies that make this happen are varied and when you think about the data it only starts to get more complicated. The iPhone as a platform for web services has been incredibly successful for Apple but even Apple did not foresee most of the web services that the iPhone is now capable of. As Apple has added more sensors to its device and given developers access to their data, it has allowed developers to change the way we think of web services. The iPhone will soon be able to not just tell you where you are, but inform you of what you are actually looking at or even what you should be looking at! Now if you look at it from the point of view of a person who wants to support that technology, where do you exactly start? It certainly is not going to be easy.
Since there is no one company behind the technology that powers web services, it is best to be a good problem solver who knows a little bit of everything and who can properly research problems.
The absolute things to learn are HTML, CSS, and XML. These are the defacto data elements of pretty much all web services and are not at all difficult to learn. HTML is like learning to use different grammar, so pretty much anyone can learn to read and write it. One other subject matter to master for problem solving has to be networking. You must know how networking works, both at the protocol level and at the hardware level. You may not need to master CISCO routing, but you should learn the basics of what routing is, what TCP/IP is and how it works, and you must learn everything you can about HTTP, as this is the most common protocol you will be working with. Remember how I said there was not one book that you could pick up to learn web services? After all this reading, you will probably hate the computer section of the book store.
Once you have acquired some knowledge of the technologies involved, you will need to learn how to research problems. It amazes me how many people do not know how to research. This is the one skill that you need to acquire before you interview for any position. There is nothing more disappointing than to realize a candidate for a position has poor researching skills. If you never took a class on how to utilize Google Search, than pick up a book and learn how to mine Google for all sorts of data. This is an essential skill. No one can possibly know everything and remember you are getting paid to solve problems, so why not get ahead in life by using the immense knowledge out there on Google and other search engines. The other part of research is documentation. Effective people are organized. Find a system of organizing your researched data that makes sense to you, whether this is Outlook, a content management system like a wiki, or just a WordPress blog. Whatever you do, do not rely on your employer or someone else to tell you how to do this. What you will find is that it is a lot easier to stick to a system that works for you than it is to try to work within the limitations of someone else’s system.
Supporting web services is always changing, and so there will always be new browsers to test, new tools to use in your analysis. You will need to devote some small part of your day to reading about these new developments. And who knows maybe someday there will be a good book on how to do all this, but until then you will probably have to do all of the above. Good luck and remember it is just a website, right?