A Reponse to “Web Programming is Hard!”
This article is a response to a blog post titled “Web Programming is Hard!” The author expresses her frustration at being denied interviews for web programming jobs because she comes from a desktop/embedded system development background.
Let me tell you a little story that may make you feel better about the difficulties of web programming. I work at a school, and about a decade back (before I was hired) they commissioned a programmer to build a customized student information system. You couldn’t meet a nicer guy, but he was an engineer who followed the money into Visual Basic development. He’s a smart guy, but originally not a programmer by trade or training.
About four years back they reached the limitations of that program. More people were using it over wireless, which caused the Access database on which the VB front-end relied to become corrupted. It began getting slower. His programming relied on a separate program that ran continuously on a server to calculate grades. On top of that, some of the VB 6 controls have nasty rendering issues on Vista and Windows 7. It was time for a rewrite.
The requirements set forth for this new application were, 1. It must be web-based, 2. It must use a full-fledged RDBMS (SQL Server was chosen), 3. It must have a parent module they can access from home. The programmer, having never developed a web application in his life, decided on a set of technologies he’d never used: C#, ASP.Net, Silverlight, and IIS.
It’s four years later and we don’t have a web application. The desktop application we do have is alpha at best, still doesn’t have all the features of the original, doesn’t have a parent module, and requires me to install about 5 libraries (requiring 2 reboots) before I can install it. The only requirement that was met was to use SQL Server, and we’re a little leary of that because he couldn’t make his program work without admin rights to our entire SQL Server. The only reason the project continues is because certain stakeholders feel too invested to throw in the towel.
This is the story of a perfectly intelligent man who bit off more than he could chew and failed to understand one simple idea: web applications run in a browser. Web development is different. As others have said, it’s not any more or less difficult than desktop development, but there is an entirely new set tools, requirements and obstacles that you need to understand going into it.
Even if you consider yourself an expert in other forms of programming my recommendation isstill to start with HTML. HTML is just markup and no logic (just like XML, it applies structure and meaning to data), so it’s generally easy to pick up.
Then learn CSS. You don’t have to become an amazing designer, but understand positioning, the box model, and font sizing, before you move on.
Once you have a good grasp of the client side, then pick a server-side tool, whether it be ASP.Net, PHP, Ruby or Java. Then start small. Even if you already know the language from a desktop development standpoint, write a program that outputs a “hello world” HTML page first. You can write the next Facebook tomorrow!
Loved your response. It further reinforces the fact that web development introduces a whole new way of thinking about things, a revolutionary new paradigm shift. Your outlined steps to success match those of several other web professionals who have responded to my blog. Thanks Again !
If your programmer had left Silverlight out of the equation, he could’ve gotten somewhere. ALthough I must admint, ASP.Net is horrible, and its support for Ajax sucks bigtime.
The funny (or sad?) part is, he never got to the Silverlight version of the application. I’m guessing he thought he could write the desktop app and then port it to Silverlight, but from what I understand that’s much easier said than done.