`

做一个有想法的程序员

阅读更多
   先做一个实验,假如我们要开发一个小项目,需求很简单,就是一个保存用户基本信息的页面,要求用户可以输入姓名、电话、联系地址、邮箱、手机号码、备注。

  其中姓名与邮箱是必输项目,我们把这个项目分给三个程序员做(当然这三个人都是虚拟的,其实都是我做的),三个程序员交来的作品都没有逻辑错误,数据保存正常,让我们看看做出来的效果有什么不一样。

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

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

[/img]

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

   [img]

[/img]
   1. 他给网页加上了标题信息;
   2. 他给每一行标题(就是姓名/邮臬等信息)设置了加粗并添加了背景颜色;
   3. 给必输项加入红色的*号进行标注
   4. 他把默认的提交按钮文字改为保存,并没有使用默认的提交字样
   5. 给表格加了连线,这样看起会舒服一些(这项见仁见智)
   6. 为输入框设置了最大可输入长度

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

[img]

[/img]
   1. 添加了水印备注,让用户更能了解输入框的作用(当然这里只是做了一个示例,实际上姓名的水印是没有必要的);
   2. 当输入框获得焦点的时候,背景会变颜色,以提醒用户
   3. 当用户输入正确的时候,会在后面出现绿色的勾,如果输入错误,则会在输入框后面出现红色的叉

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

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

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

   说明:
  老实说这篇文章无论是从立意还是从技术角度来讲都很普通,但之所以把它转载过来是因为我发现自己常常是属于文章中提到的第一类程序员。 借此文章用以告诫自己, 写程序一定要有精益求精的精神!
  • 大小: 11.7 KB
  • 大小: 12.5 KB
  • 大小: 15.3 KB
分享到:
评论

相关推荐

    一个程序员的面试感想

    标题中的“一个程序员的面试感想”意味着这篇文章将聚焦于一个程序员在面试过程中的体验、反思和学习。作为程序员,面试不仅仅是技术技能的展示,也是沟通能力、问题解决能力和个人职业素养的综合体现。这样的文章...

    程序员的酸甜苦辣 程序员的酸甜苦辣

    然而,当程序员成功解决一个难题,或者完成一个功能模块,那种成就感就如同蜜糖,甜蜜无比。看到自己的代码运行顺畅,或者得到用户的好评,那是程序员最甜美的时刻。此外,通过编程实现创新想法,为社会带来便利,也...

    一个程序员的告白书!

    根据给定的信息,本文将围绕一个程序员通过编程语言表达情感的独特方式展开,深入解析其中蕴含的技术与情感元素。 ### 知识点一:程序语言在情感表达中的应用 #### 1.1 编程语言的独特魅力 编程语言是计算机与人类...

    程序员记事本

    总的来说,《程序员记事本》是一个强大的辅助工具,它不仅提供了一个安全的存储空间,让程序员可以安心存放他们的代码和思考,而且通过其强大的组织和检索能力,极大地提高了工作效率。无论是在日常开发还是项目协作...

    程序员(程序员受益终身的文档)

    “程序员相轻”是指程序员之间存在的一种互相轻视的现象。这种心态源于以自我为中心的倾向,表现为自以为是、不愿意听取他人意见,甚至在交流中倾向于寻找对方的缺点而非优点,以此彰显自身的优势。这种心态不仅存在...

    程序员表白系列-6套源码分享.zip

    5. **程序员表白程序,开放源码,不断更新_6856257.zip**:这个项目不仅是一次性的表白工具,更是一个持续更新的平台,程序员可以在这里找到新的想法和代码片段,不断改进自己的表白方案。开源的精神鼓励社区成员...

    程序员跳槽全攻略

    例如,如果公司有强大的云计算平台,对于想从事这方面工作的程序员来说,可能是个不错的机会。就像作者拒绝阿里巴巴的Offer,选择了百度的云计算岗位,这表明他可能更看重在特定领域的深入发展。 跳槽过程中,合同...

    我就差一个程序员了! - 文章 - 伯乐在线1

    通过这些知识点,我们可以看出,成功的创业不仅仅是有一个伟大的想法,还需要有执行想法的能力,这包括但不限于编程技能。同时,尊重和理解技术团队的重要性,以及愿意学习和适应新技术的精神,都是创业者成功的关键...

    程序员系列丛书《程序员接单宝典━资深高手谈接外包项目》作者:韦刃

    最后,对于有创业想法的程序员,书中可能提供了从接单到创立自己公司的过渡建议。这包括如何从单打独斗逐渐组建团队,如何寻找投资,以及初创公司可能面临的挑战和应对策略。 总结起来,《程序员接单宝典━资深高手...

    程序员成长之路(很受用)

    程序员成长之路是一个老程序员对刚上大学的学弟学妹的忠告。文章提出了几个误区,提醒初学者不要追赶时髦技术,而应该花时间学习基础性的东西。 第一个误区是认为计算机技术等于编程技术。很多人认为计算机专业就是...

    程序员创业必须要过的三关

    在创业初期,很多程序员都会有一个好的创意或想法,但如何将这些创意转化为实际可行的商业模式,是至关重要的一步。很多初创企业往往因为没有明确的盈利模式而最终失败。 - **识别市场需求**:首先,创业者需要深入...

    新入行程序员应知的十个秘密

    - **关键点:** 选择一个适合自己的技术栈对于程序员的成长至关重要。 - **详细解释:** 作为新入行的程序员,选择一个合适的技术栈(例如Ruby、Java等)是非常重要的一步。Sam Kaufman提到,不同的技术栈能够带来...

    Quiver 程序员的专属笔记本 Mac体验版

    1. **多语言代码支持**:作为一个程序员的笔记本,Quiver允许用户直接在笔记中编写和运行多种编程语言的代码,如Python、JavaScript、HTML/CSS等,这对开发过程中快速测试和记录代码片段非常有帮助。 2. **富文本...

    程序员能力矩阵教材.pdf

    程序员能力矩阵是衡量程序员能力的重要指标,它涵盖了计算机科学、软件工程、程序设计、交流等多个方面的知识点。以下是对程序员能力矩阵的详细解释: 计算机科学(Computer Science) * 数据结构:数组、链表、...

    程序员季度绩效考核表

    **定义:**衡量程序员在一个季度内新增功能的数量与质量。 **关键知识点:** - **需求分析:**在开发新功能前,需要对用户需求进行深入分析,确保新功能符合实际需求。 - **技术选型:**选择合适的技术栈来实现新...

    程序员必备,非常实用的小软件

    作为一个高效的工作辅助工具,URNotes能够帮助程序员提升工作效率,减少因遗忘重要细节而产生的困扰。这款软件的最新版本是1.1.9.0,它提供了一个简单直观的界面,让用户可以快速方便地创建和管理自己的便签。 首先...

    程序员表白代码

    总的来说,程序员表白代码是一个充满创意的领域,它展示了编程不仅可以用于实用目的,也可以成为表达情感的一种艺术形式。无论是为了向心爱的人表白,还是提升自己的编程技巧,都是一个值得探索和尝试的主题。

    高效程序员的10个习惯

    - **促进建设性对话**:创建一个开放、包容的环境,让大家能够自由地分享想法而不担心被攻击。 #### 二、跟踪变化 在项目开发的过程中,需求和技术环境常常发生变化。有效跟踪这些变化对于保持项目的顺利进行至关...

    程序员的代码的代码的代码

    3. try.rb:这个文件名可能代表了一个试验性的或探索性的代码,开发者可能在这个文件中尝试新的想法、算法或解决方案,以解决特定问题。 在深入理解这些文件之前,我们需要了解Ruby语言的基础知识,包括变量、数据...

Global site tag (gtag.js) - Google Analytics