Web很难!
说老实话,我过去很生气那些互联网公司,我送去简历,他们却根本不给我一点机会和时间。我已经很久没有向互联网工作职位投过简历了,因为我知道我的简介会被第一个丢到废纸篓里。
两个月前,我还不能理解为什么互联网公司对我的大量的C/C++/指令控制/嵌入式系统的简历毫不感兴趣。现在我知道了。下面写的就是为什么 …
Web软件开发体现了一种全新的思维方式。例如,我过去是用微软的.NET来做界面程序的。当经过了几个月的 CSS,HTML,JavaScript学习之后,我可以老实的说我很惭愧。做为一个非Web软件开发者,我想起了曾有无数的嵌入式软件技术人员随手把 Web编程工作写作一种“琐碎的”或“无聊的”工作。然而,经过了过去两个月对Web编程的钻研,我发现事实正好相反。
就让我们先看看前端的这些东西:
学习CSS,HTML,JavaScript,Jquery 以及把它们之间的相互作用关系搞通,并不是件容易的事情。事实上,对于那些从 .NET,C++ 或 Qt 思维模式过来的人,它会困难的让人沮丧。GUI Toolkit这些东西跟Web前端的东西比较起来显得笨头笨脑没有灵性。
这个世界已经永远的抛弃了那些设计糟糕的、令人讨厌的桌面图形界面。而互联网对此要求的近乎苛刻 — 一个糟糕的用户界面设计会毁了一个互联网公司。人们经常在说,Facebook更简约的界面设计正是致使Myspace逐渐败退、几近消亡的关键原因。有 一个在一个新近突起互联网公司工作的软件技术人员告诉我: 每天,新代码都会受到考验,来自不同地区的数百万的用户采用不同的方式,使用任何你能想到的软件、硬件对程序进行测试。你在数秒钟内就能获得反馈信息。如果某处改动可能会导致某种灾难性错误,我们可以只向1%的用户开放,并记录一切发生的事情。很遗憾,大多数桌面图形程序不会遇到这么大的压力。
桌面图形程序很容易跨平台。然而,面对着这么多不同的浏览器之间的细微差别和各自的奇特的癖好,你想让这样优雅的前端代码在它们中都能正确的运行,这更难。
现在,让我们讨论一下系统配置:
嵌入式系统通常是文本文件(如XML)来保存系统配置,运行时加载到内存里。的确,你可以做出一个嵌入式的Web前端来作为管理工具,用户通过这个前端修 改配置,但配置信息仍然存储在一个简单的文本里,有时,当简单文本体积增大的一定程度时,人们会使用小的sqllite3数据库。而web里,它要求的是 巨大的、精心设计的关系型数据库,例如mysql,更不用说那些数目众多的只是看起来像数据库东西,如memcache, CouchDB, MongoDB, NoSql 。
在web编程中我唯一能用上力的部分只有后端的server程序。可是当遇到大数据问题时,我又不行了。我就像离开了水的鱼。
我要再说一次:Web编程很难。它让我感到惭愧。在我努力学习它。