`
徜徉の小溪
  • 浏览: 447604 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

做一个有思想的程序员

阅读更多

许多程序员认为其工作任务只是负责后台逻辑的程序开发,对界面的布局莫不关心。实际上评价一个程序员的优秀与否,是要从界面和业务逻辑两方面来衡量的。杂乱无章的界面布局,只会给人留下“三流程序员”的印象。涂雅在下文中通过一个小项目为我们讲解怎样才算一个优秀、有想法的程序员,才能坐上产品经理或项目经理的交接椅。请见下文:

先做一个实验,假如我们要开发一个小项目,需求很简单,就是一个保存用户基本信息的页面,要求用户可以输入姓名、电话、联系地址、邮箱、手机号码、备注,其中姓名与邮箱是必输项目,我们把这个项目分给三个程序员做(当然这三个人都是虚拟的,其实都是我做的),三个程序员交来的作品都没有逻辑错误,数据保存正常,让我们看看做出来的效果有什么不一样。

第一个程序员交上来的作品,这种作品我们基本上可以理解为实习生做的作品,许多有两年甚至更长开发经验的开发人员,也会开发出这种作品,不要笑,我甚至见过还比这种作品更烂的作品。如果一个程序有超过一年的工作经验还提交这种作品,基本上没戏了,因为这类程序员不会自己思考。不要和我较真,那种从来不与界面打交道的程序员另当别论了。

许多程序员的理解是数据进到数据库,逻辑上没有错误注完成了。所以一般来说,让一个程序员评估一件工作的工作量,你需要在他评估的工作量上再增加100%。第一个程序员交的作品如下图所示:

 

第二个程序员交上来的作品可以算得上是一个合格的作品,中规中矩,没什么太大的亮点。与第一个程序员不同的是:

1.他给网页加上了标题信息;

2.他给每一行标题(就是姓名/邮臬等信息)设置了加粗并添加了背景颜色;

3.给必输项加入红色的*号进行标注;

4.他把默认的提交按钮文字改为保存,并没有使用默认的提交字样;

5.给表格加了连线,这样看起会舒服一些(这项见仁见智);

6.为输入框设置了最大可输入长度;

 

再来看第三个程序员提交的作品,第三个程序员在第二个程序员的基础之上又做了一些改进,除了第二程序员所做的事情,他还做了这些事:

1.添加了水印备注,让用户更能了解输入框的作用(当然这里只是做了一个示例,实际上姓名的水印是没有必要的);

2.当输入框获得焦点的时候,背景会变颜色,以提醒用户

3.当用户输入正确的时候,会在后面出现绿色的勾,如果输入错误,则会在输入框后面出现红色的叉

许多的程序员都有这样的想法,我就是一个程序员,我只负责程序的逻辑上没有错误,例如说数据正常插入到数据库,至于界面的事,应该由美工负责。实际上在大多数项目中,并没有太多复杂的逻辑。一个程序员可以不用管界面是否漂亮,但是一定要把界面弄得很整洁,不要把一大堆控件搞得乱糟糟的。其实你并不需要花太多的时间来处理这些界面,而是你要花些心思在上面,多注意几次就好了。

例如在上面示例的Web程序中,CSS代码非常简单,但给人的感觉很简洁,最起码看起来不会太难受。而第三个程序员所提交的作品,除了页面整洁之外,他还注意到用户的体验,这是很难能可贵的。如果一个程序员在写程序的时候能时时想到用户体验,那么应该离他升职的时间应该不会太远了。如果你能做到文中提到的第三个程序员的程度,我认为你已经摸到了产品经理或者项目经理的凳子了。

写程序并不是别人让写什么就写什么,应该有一些自己的想法,如果你一直像第一个程序员那样写程序,你将永远是一个三流的程序员。不要像一个鼠标一样,别人拽一下动一下,应该和病毒一样主动出击。在有限的时候里把程序做得最好,无论是界面上还是业务逻辑上.

原文来自涂雅技术论坛

 原文链接:http://iove.net/2679/

4
2
分享到:
评论
9 楼 yinger_fei 2011-01-25  
8 楼 yuantong 2010-08-15  
言而总之,做一个有思想的程序员,就要在用户体验上多下功夫。所谓以客户为主,就是要让客户高兴。
7 楼 forcer521 2010-08-10  
很不幸的是,很多公司在做项目的时候为了赶进度,不会让你有时间去优化界面的,你那样做项目经理只会给你说,你有空还是检查下你的逻辑有无问题吧。。
6 楼 matyhtf 2010-08-10  
认同博主的思想!
这仅仅是个例子,说网站设计更合适些。
咱先不管是UI还是程序。一个优秀的程序,具有很强思维能力,并且追求完美。

无论界面,还是程序。第一个 界面看得都不舒服,还能拿得出手。第二个就进步了很多,但不是很完美,普普通通吧。第三个程序员,所有的细节处理的都很好,非常完美。

就像一般的程序员能忍受自己的代码如同垃圾一般,有些程序员,能够处理的非常好,代码工整,普通,没有太大问题。
真正优秀的程序员是敢于重构的程序员,程序不满意,要有推翻了重来的决心和勇气,觉不能忍受自己程序的瑕疵和不完美。
5 楼 messiFCB 2010-08-10  
引用
写程序并不是别人让写什么就写什么,应该有一些自己的想法,如果你一直像第一个程序员那样写程序,你将永远是一个三流的程序员。不要像一个鼠标一样,别人拽一下动一下,应该和病毒一样主动出击。在有限的时候里把程序做得最好,无论是界面上还是业务逻辑上.

first.程序员是把人类语言(用户语言)翻译成机器语言,但这其中需要添加自己的想法


second.没看出来三个例子和上面这段总结有什么明显的关系
4 楼 mabusyao 2010-08-10  
谢谢楼上的回复,对于你说的UED的团队我并没有太对的认识,不知道能不能详细解释下。

但正如你所说的,IPhone的成功不是偶然的,我相信苹果的UE团队绝对是国际顶尖的。

但如果你想要把计算机专业出身的程序员培养成优秀的UE团队,我觉得你已经走错了方向了。

那种依靠几个人就能把用户体验做好的事情,我不否认说没有,但是绝对不值得提倡。

大家术业有专攻,如果你是个天才,当然可以专长于多个方面。但大多数人都不是天才,把我们能做好的事情做好,把我们不能做好的事情交给其他能做好的人去做,并且相信对方会做好, 这才是团队合作的精神。

3 楼 徜徉の小溪 2010-08-10  
mabusyao 写道
你确定你做用户界面能超过美工?

你确定你做用户体验能超过UE团队?

不能赞同你的观点。



2楼的同仁看来比较激动啊!
  别急 UI的设计工作是页面设计师来完成,而UI的设计需要UED团队共同协作。
  你可能误解了这篇文章的初衷,作者的实际用意是为了告诫我们这些做程序员的必须要去了解UI的设计和对UE用户体验,这样我们才能避免因各方工作的不了解而延长产品的开发周期,从而导致成本的消耗造成损失.
你说的UED 组成必须是:平面设计师  技术人员 和市场调研的人员。缺了任何一方整个产品会消耗大量的成本或者说是不会走向成功的.
  产品的成功不只在与程序员,也不在于UI 或者UE,我们不能这么狭隘的看待行业,只有分工不同.趋利避害,才是一个产品经理或者项目经理的境界.
    案例:IPhone的成功不是偶然的.
   
2 楼 mabusyao 2010-08-09  
你确定你做用户界面能超过美工?

你确定你做用户体验能超过UE团队?

不能赞同你的观点。
1 楼 houxinyou 2010-08-09  
真的很不幸,我虽然干了好多年,但依然被归到了第一类.不过我不明白,既然有美工,我为什么还要自己想那些我本不熟悉的东西呢?如果你认为很好与需求或美工设计的不一致,是不是会增加工作量呢?我把一个杂乱无章的界面布局给美工,美工用一个小时的时间美化.如果我多花一个小时把那杂乱无章的布局弄的像第三个一样看起来比较舒服,然后给美工,美工会不会多用一个小时把我加上的东西去掉,然后再花一个小时的时间美化呢?有时,差之毫厘,失之千里,看起来差不多的东西,实现起来可能是完全不一样的.
当然,这之是说组内有分工,如果是给客户的,当然是尽最大的努力弄的好看一点了

相关推荐

    影响程序员思想 很深远的一本经典著作

    影响程序员思想 很深远的一本经典著作影响程序员思想 很深远的一本经典著作

    一个老程序员的经典概括

    这篇文章是关于一个老程序员的历程,反映了他在编程领域不断学习和成长的过程,以及他在社会中找工作的艰辛。文章提到了VB程序员的三个境界,分别对应编程能力的不同阶段: 1. 菜鸟级:所有代码都只放在窗体文件中...

    程序设计思想修炼 每个程序员必备的书籍

    总的来说,这个压缩包集合了编程理论、实践经验、设计原则和技巧,对于想要提升编程思想的程序员来说,是一份宝贵的参考资料。通过学习这些书籍,开发者可以更好地理解和应用程序设计思想,从而提高自己在软件开发...

    软件工程思想 程序员软件工程思想

    例如,作者在困难时期仍资助贫困学生,通过实际行动展现了一个真实、正直、优秀的科技人员形象,这对读者有着深远的启示作用。 软件工程的核心在于通过工程化的方法来解决软件开发中的问题,避免“软件危机”。自...

    程序员的一生(一个牛人的自白书)

    程序员的职业生涯是一个漫长的旅程,需要不断学习和提高自己的技术。但是,作为一名程序员,你需要知道自己是否适合这个职业。下面是程序员的一生中需要注意的几个方面: 1. 程序员意味着要编程序 作为一名程序员...

    一个程序员对开发的心得

    一个好的程序员不仅需要技术能力,还需要与人沟通和理解客户需求的能力。从提供的文章内容来看,程序员对开发工作的思考主要涉及以下几个方面: 1. 深层挖掘客户需求:程序员不应仅限于完成任务本身,而应该深入...

    程序员羊皮卷 叫你如何成为一名优秀的程序员

    叫你如何做一个程序员,作为一个程序员应该养成怎么样的习惯,应该培养怎么养的编程思想!

    成为一个好的程序员需要的书.txt

    ### 成为一个好的程序员需要的书籍 对于任何想要在IT领域取得成功的人来说,了解并掌握正确的学习资源至关重要。本文将根据给定的文件信息,详细解析成为一名优秀程序员所必需的书籍和资源。 #### 编程书籍 1. **...

    程序员之路探究

    而程序员的年龄与学习能力之间的关系是一个被广泛讨论的话题,文档认为一个拥有扎实基础和强烈学习意愿的程序员,能够适应技术变革,持续保持竞争力。同时,文档也提到了一个有趣的现象,即随着时间的推移,认为...

    软件工程思想 讲述“软件开发”和“做程序员”的道理

    《软件工程思想》这本书深入浅出地探讨了软件开发的本质和程序员的职业之道,为我们揭示了在信息技术领域中,如何高效、有质量地进行软件开发,以及如何成为一名优秀的程序员。书中的内容不仅涵盖了软件工程的基本...

    一个Java程序员应该掌握的10项技能

    ### 一个Java程序员应该掌握的10项技能详解 #### 1. 语法 作为Java程序员,必须熟悉Java语言的基本语法。在实际编程过程中,能够根据集成开发环境(IDE)提供的错误提示信息迅速识别出语法错误,并且知道如何进行...

    JAVA程序员开发思想

    此外,遵循“10秒法则”是另一个核心原则。编写代码时,应确保他人能在10秒钟内理解函数的逻辑,这样可以确保代码的简洁性和易维护性。这并不意味着追求复杂性,反而,简单的代码更有利于扩展和长期维护。 对于程序...

    程序员转正述职报告 程序员转正述职工作规划.docx

    * java 开发语言是程序员转正述职报告中提到的主要技术之一 * 程序员转正述职报告中提到通过学习和掌握 java 开发技术,能够更好地融入公司的开发团队 三、CBP 产品框架 * CBP 产品框架是程序员转正述职报告中提到...

    如何成为一名合格程序员

    2. **技术更新速度**:IT领域的技术更新迅速,通常一个新版本的软件在发布一两年后就会有新的升级。因此,及时获取并理解英文原版资料至关重要,以避免因翻译延迟而落后于技术发展。 3. **技术文档的重要性**:软件...

    程序员十层楼

    本书《程序员十层楼》通过对程序员技术能力的细致划分,提出了一个包含十个层次的程序员技能体系,以帮助读者更清晰地了解和定位自己的技术水平。在这一体系中,作者周伟明从自身丰富的软件开发经验和对程序员职业的...

    一个程序员的经典简历

    【程序员经典简历】展示了丰富的IT技能和经验,涵盖了多个编程语言、框架、工具和技术。以下是对简历中提及的技能和知识点的详细说明: 1. **编程语言与数据库**: - **C#**:Microsoft的面向对象编程语言,用于...

Global site tag (gtag.js) - Google Analytics