Web Programming is Hard

Learning Web is Hard !
Honestly, I used to be miffed that Web companies wouldn’t give me the time of day when I sent them my resume. I’ve long stopped applying to Web jobs, because I know a priori that my resume will be speedily siphoned off to Bit Bucket Heaven.
Two months ago, I didn’t understand why an Internet company would be bored by my largely C/C++/instrument control/embedded systems resume. Now I get it. Here’s why…
Web-based software development involves a whole new way of thinking. For instance, I’ve done a few GUIs using Microsoft .NET. But upon studying CSS, HTML and Javascript over the last month, I can honestly say I’m humbled. As a non-web software developer, I recall too many instances when embedded software engineers wrote off web programming jobs as “trivial” or “boring”. As I’ve delved into web technologies during the last two months, however, I’ve found the opposite to be true.
Let’s just focus on front ends for a bit :
    Learning CSS, HTML, Javascript and Jquery and their interplay proficiently is not an easy thing. In fact, it’s frustratingly difficult for someone who comes from a .NET C# or Qt paradigm. GUI Toolkit stuff seems to be almost brain-dead in comparison to web front end.
    The world has gotten away with sucky, poorly designed desktop GUIs forever. But the Internet is much too harsh – a poorly designed UI can make or break a web-based business. It’s often argued that Facebook’s much simpler UI was the key force behind Myspace’s descending zigzag into near obsolescence. As a software engineer employed at a prominent web company once told me : “Every day, new code gets pushed which gets tested by millions of people using every combination of locale, data configuration, software and hardware imaginable. Feedback often occurs within seconds. If a change has a potential for disaster, we can roll it out to 1% of users and log what happens”. I’m sorry, but most desktop GUI makers just don’t face that kind of pressure.
    Desktop GUI can easily be made cross-platform. However, knowing the nuances and quirks of each brand of web browser along with the commensurate development of elegant front end code which works seamlessly across all of them — is much harder.
Now, let’s talk about system configuration:
    Embedded Systems typically use a text file (could be XML) stored on flash memory for system configuration. True, an embedded web front end might be the vehicle through which customers change their configuration, but configuration is still managed and stored by a simple text file. Sometimes, this simple text file is augmented with a small sqlite3 database. Enter the web and its demands for huge, optimally designed relational databases such as mySql, not to mention the plethora of other pseudo-db-like creatures such as memcache, CouchDB, MongoDB, NoSql and God-even-knows-what.
The only segment of web coding I can possibly be of value in is back-end server code. But throw in Big Data, and once again, I’m a fish out of water.
Let me repeat : Web programming is hard. And I am humbled by it. I’m trying to learn it.


Post a Comment

Related Posts Plugin for WordPress, Blogger...