分之九十多的市场占有率来看,
HTC
还是很有前景。 然后是
XML
和
XSL
,别告诉我现在你还不会
XML,会了
XML
再学学
XSL
不过是一两天 的工夫。
实际上最重要的不在于技术,而在于要学会人性化的设计,学会体贴用户。这是设计理念的 问题:按钮在哪
里合适?字体多大舒服?颜色如何不刺眼等等。 以上这些是前端程序员的工作,完全没有美术的技巧。
Web 设计
师应该掌握一些美术的知 识,至少要懂得审美。 首先是要会配色,哪怕图片做得不好,配色一定要好
, 不然配出
狗屎色会恶心死人。 所有设计都要考虑到人的因素。是看的人,浏览的人是否觉得好看,而不是设计的人觉得好
看。例如,给一个老年人看五颜六色的东西,你觉得他能接受吗? 图片设计由美工来发挥,但要整体的考虑,系
统的色调
, 主题,
风格要一致,不是单独一个 图片好看,就可以放上去用的。以前常看到新手设计网站,先找一
堆
gif
动画,在
frontpage 上东放一个西放一个,你说这是设计网站? Web 设计师需要在美工的图片上进行
加工切图,因此图的大小,图的质量,图的格式
,
都需 要经过仔细考虑。图片如何切适用于
css,如何能够最少
的使用图片,这很有讲究。不然直接 贴
1024*768
的图片到网站算了 要
Web
设计师干什么。 有一个需要重点
的考虑的问题,是网站的目录结构。如何分目录能够清楚地放置
js,css,html,htc 等等,这需要通盘考虑,
也就是要和后台技术一起考虑。例如用了
Struts
的多 模块,那么就需要分
module
,每个
module 单独使用
include
等等。 前几天看了一个
blog
中提到对中国的
web 设计师的评价: "上一代的文化因为文革有断层,
导致欣赏水平不高,这一代的教育有问题,导致创意力缺乏,下一代努力一点基本可以赶上 外国水平
"
。 说了这
么多,嘿嘿,实际上,大多数公司都不重视这个角色,往往的,美工作的图由她自己 切好做成
html,然后交给
程序员,程序员做成
jsp
,之后一旦需要修改,美工
mm
改
jsp
又 很麻烦。最终的结果是,美工作的图程序员
用不上,程序员的
jsp
美工改不了。两边矛盾。 增加一个中间角色,精通
Web 设计规划,周旋于美工和程序员
之间。这不是很好么? 实际上,这个人才真正的懂得
Web,是网站建设的核心。
合格的程序员
中国有很多小朋友,他们
18,9
岁或
21,2
岁,通过自学也写了不少代码,他们有的代码写的 很漂亮, 一
些技术细节相当出众, 也很有钻研精神, 但是他们被一些错误的认识和观点左右, 缺乏对系统,对程序的整体
理解能力,这些人,一个网上的朋友说得很好,他们实际上只是 一些
Coding fans,压根没有资格称为程序员,
但是据我所知,不少小网络公司的
CTO
就是 这样的
coding fans,拿着吓人的工资,做着吓人的项目,项目的
结局通常也很吓人。 程序员 基本素质: 作一个真正合格的程序员, 或者说就是可以真正合格完成一些代码工作
的程序员, 应该具有 的素质。
1
:团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程
序员应该具 备的最基本的,也是最重要的安身立命之本。把高水平程序员说成独行侠的都是在呓语,任 何个人的
力量都是有限的,即便如
linus
这样的天才,也需要通过组成强大的团队来创造奇 迹,那些遍布全球的为
linux
写核心的高手们,没有协作精神是不可想象的。独行侠可以作 一些赚钱的小软件发点小财, 但是一旦进
入一些大系统的研发团队, 进入商业化和产品化的 开发任务,缺乏这种素质的人就完全不合格了。
2
: 文档习
惯 说高水平程序员从来不写文档的肯定是乳臭未干的毛孩子, 良好的文档是正规 研发流程中非常重要的环节,
作为代码程序员,
30
%的工作时间写技术文档是很正常的,而 作为高级程序员和系统分析员,这个比例还要高很
多。缺乏文档,一个软件系统就缺乏生命 力,在未来的查错,升级以及模块的复用时就都会遇到极大的麻烦。
3
:规范化,标准化的代码编写习惯 作为一些外国知名软件公司的规矩,代码的变量命名, 代码内注释格式, 甚
至嵌套中行缩进的长度和函数间的空行数字都有明确规定, 良好的编写 习惯, 不但有助于代码的移植和纠错,
也有助于不同技术人员之间的协作。 有些
coding fans
叫嚣高水平程序员写的代码旁人从来看不懂, 这种叫
嚣只能证明他们自己压根不配自称程序 员。代码具有良好的可读性,是程序员基本的素质需求。 再看看整个
linux
的搭建,没有 规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。
4
:需求理解能力 程序
员需要理解一个模块的需求, 很多小朋友写程序往往只关注一个功能需求, 他们把性能指标 全部归结到硬件,
操作系统和开发环境上,而忽视了本身代码的性能考虑,有人曾经放言说 写一个广告交换程序很简单, 这种人从
来不知道在百万甚至千万数量级的访问情况下的性能 指标是如何实现的,对于这样的程序员,你给他深蓝那套系
统,他也做不出太极链的并访能 力。性能需求指标中,稳定性,并访支撑能力以及安全性都很重要,作为程序员
需要评估该 模块在系统运营中所处的环境, 将要受到的负荷压力以及各种潜在的危险和恶意攻击的可能 性。 就
这一点, 一个成熟的程序员至少需要
2
到
3
年的项目研发和跟踪经验才有可能有心得。
5:复用性,模块化思
维能力 经常可以听到一些程序员有这样的抱怨,写了几年程序,变成 了熟练工, 每天都是重复写一些没有任何
新意的代码, 这其实是中国软件人才最大浪费的地 方,一些重复性工作变成了熟练程序员的主要工作,而这些,
其实是完全可以避免的。 复 用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想
一些, 不要局限在完成当前任务的简单思路上, 想想看该模块是否可以离这个系统存在, 是否可以 通过简单的
修改参数的方式在其他系统和应用环境下直接引用, 这样就能极大避免重复性的 开发工作, 如果一个软件研发
单位和工作组能够在每一次研发过程中都考虑到这些问题, 那
么程序员就不会在重复性的工作中耽误太多时间, 就会有更多时间和精力投入到创新的代码 工作中去。 一
些好的程序模块代码,即便是
70
年代写成的,拿到现在放到一些系统里面作 为功能模块都能适合的很好, 而现
在我看到的是, 很多小公司软件一升级或改进就动辄全部 代码重写,大部分重复性工作无谓的浪费了时间和精力。
6
:测试习惯 作为一些商业化正规化的开发而言,专职的测试工程师是不可少的,但是并不 是说有了专职的测试
工程师程序员就可以不进行自测; 软件研发作为一项工程而言, 一个很 重要的特点就是问题发现的越早,解决
的代价就越低,程序员在每段代码,每个子模块完成 后进行认真的测试, 就可以尽量将一些潜在的问题最早的发
现和解决, 这样对整体系统建设 的效率和可靠性就有了最大的保证。 测试工作实际上需要考虑两方面,一方面
是正常调用 的测试,也就是看程序是否能在正常调用下完成基本功能,这是最基本的测试职责,可惜在 很多公司