我以前说过,程序猿不是一般的人,是具有某种超能里的人。但问题是。程序猿往往意识不到自己的这样的特异功能。在他们的眼里。会觉得自己非常普通。跟常人一样,所以,程序猿能做到的事情,其它人——比方他们的客户/软件用户——也应该非常easy做到。

但其实,因为大部分人——绝大部分人(包含软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一个对于程序猿来说非常显而易见的软件操作,换成让用户来操作。就会出现各种各样奇怪的事情。这让程序猿非常痛苦。



        记得有一次,一个客户打电话给我,说他电脑桌面上的大e找不到了。我没听懂,什么大e找不到了?客户解释说:就是那个长的像大个儿的英文字母e的图标找不到了。我倒。最终明确了他指的是桌面上的IE浏览器的图标不见了。



        另一次,有个客户提出一个需求,要求在页面上添加一个搜索功能,我问它,系统里有搜索功能,为什么还要在这个地方新增一个搜索功能。他说他要的不是那个搜索。他要的是在这个页面上搜在某个关键词。经过进一步的沟通,我明确了,他要的是浏览器上的快捷键CTRL+F的功能。

由于用户的这些特征,导致了程序猿觉得完美的程序,到了客户的手里,却变成极其难用的软件,投诉电话如乡下骂街的泼妇似的响个不停。而事后分析发现。根本原因都是应为程序猿高估了用户对软件的掌控能力。低估了自己对软件的创造能力,于是导致了他们看这些客户使用他们开发的软件时。都是那样一种可笑的行为。

假设是脾气暴躁的程序猿。遇到这样的情况,难免会对着客户发一顿牢骚。并且,程序猿的脾气一般都不是非常好,所以,通常跟客户沟通时。项目经理一般都是跟着一起。以免事态激化。



        用户尽管给程序猿带来非常多麻烦,但事实上程序猿的全部荣耀感都来自客户,由于仅仅有客户用得惬意。程序猿才会有成就感。比方像以下这几个客户在使用一个新款软件时显露出来的表情,足够让一个处在北京重度雾霾的下午的程序猿也能露出笑容:



        程序猿尽管脾气不好,但他们都是为工作着想,不带不论什么个人恩怨。当开发软件有紧急任务时。他们都是任劳任怨的加班加点,当在已经公布的软件中出现了重大bug时。他们都会深深在自责,会连夜赶制出紧急修复bug,假设不能在第一时间让用户惬意,他们会茶不思、饭不想、觉不睡。即使在实在没有短期内完整的补救措施的情况下。他们也会想出一些歪招,但也是行之有效的方案,让用户临时度过难关。



        用户应该体谅程序猿。程序猿的生活实际处在一种十分矛盾的状态中。

编程不像其他行业。比方泥瓦匠砌砖,砌一层砖,墙就会高一次。

但编程不一样,有时候一个程序猿写了一天的代码。急得满头大汗,但开发进度未必就有所进展。有时候甚至还会倒退。软件编程是一个亦虚亦实的世界。有时候你搞不清一段代码为什么好用。有时候也会诧异由那样的代码构成的软件也能跑起来。



        最后,说一下跟程序猿打交道的一些注意事项。程序猿由于整天和编程逻辑打交道。所以对因果关系特别敏感。假设你的话语的因果关系不是非常明白。这会让他们感到疑惑,假设你的话语的因果关系不完整,这会让他们办错事。假设你的话中有if,最好后面用then做结束。或者用else给出选择,主语要明晰。



       假设你是一个程序猿,你会理解我说的话。

说实话当一个程序猿不easy的更多相关文章

  1. 每一个程序猿必知之SEO

    似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...

  2. 每一个程序猿都应该用MBP

    换笔记本的想法非常久了.前段时间换工作就想看换工作之后是什么情况吧. 可能工作配的笔记本就是MBP.后来发现是想多了,新工作的笔记本是Thinkpad X240. 配置全然够用了,8G内存+128G的 ...

  3. 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业

    相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者”        15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...

  4. 连载《一个程序猿的生命周期》- 44.感谢,我从事了IT相关的工作

    感谢博客园一直以来的支持,写连载都是在这里首发,相比较CSDN和开源中国气氛要好的多. 节前,想以此篇文章结束<一个程序猿的生命周期>的<生存>篇,对过10的年做一个了断,准备 ...

  5. 连载《一个程序猿的生命周期》-28、被忽悠来的单身HR(女同志)

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  6. 连载《一个程序猿的生命周期》-6、自学C++,二级考过后,为工作的机会打下了基础

    一个程序猿的生命周期 微信平台 口   号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103    微   博:h ...

  7. 蒙特卡洛树搜索算法(UCT): 一个程序猿进化的故事

    前言: 本文是根据的文章Introduction to Monte Carlo Tree Search by Jeff Bradberry所写. Jeff Bradberry还提供了一整套的例子,用p ...

  8. 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事

    阿袁工作的第1天: 不变(Invariant), 协变(Covarinat), 逆变(Contravariant)的初次约 阿袁,早!开始工作吧. 阿袁在笔记上写下今天工作清单: 实现一个scala类 ...

  9. 专访雷水果国:离1.5K至18K 一个程序猿5每年的成长之路

    我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...

随机推荐

  1. ubuntu server 安装 question2answer 及 汉化包

    ubuntu server 安装 question2answer 及 汉化包 question2answer 是一个非常简洁方便的问答系统,可以用它快速的部署一个问答社区,提高在开发中的交流沟通效率: ...

  2. Apache+Tomcat负载均衡集群搭建

    1.所需软件 apache_2.2.4-win32-x86-no_ssl.apacheserver mod_jk-apache-2.2.4连接器,连接apache和tomcat apache-tomc ...

  3. spring jdbc连接数据库

    1.在applicationContext.xml中配置jdbc bean <bean id="dataSource" class="org.springframe ...

  4. tomcat 如何查看tomcat版本及位数

      tomcat 如何查看tomcat版本及位数 CreationTime--2018年8月31日10点16分 Author:Marydon 1.tomcat展示 2.具体操作 实现方式:在cmd命令 ...

  5. 新浪微博api出现认证失败问题 (获取code字段值的问题)

    出现该提示的原因:`` - 说: (2015-10-30 18:06:14)回调地址不一致,`` - 说: (2015-10-30 18:07:38)请在编辑开发者信息中将网站地址和应用信息--高级信 ...

  6. 自定义AppServer

    TelnetSever.cs public class TelnetServer : AppServer<TelnetSession> { protected override bool ...

  7. 获取List对象的泛型类(原创)

    群里一个伙计的需求,最后我提出了这种解决方案,不过他觉得多写俩括号增加了调用方的难度.还是先记下来吧,有时间看看还能不能再改造.   1.直接获取时获取不到的,类型被虚拟机擦除了2.利用子类实现父类的 ...

  8. 关于 C# HttpClient的 请求

    Efficiently Streaming Large HTTP Responses With HttpClient Downloading large files with HttpClient a ...

  9. Linux 禁止用户或 IP通过 SSH 登录

             一切都是为了安全,做到来着可知! 限制用户 SSH 登录 1.只允许指定用户进行登录(白名单): 在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers ...

  10. nginx 配置web 虚拟文件夹 而且codeIgniter,thinkphp 重定向url 地址

    nginx 配置虚拟文件夹而且url 重定向 server { #侦听80port listen 8090; #定义使用www.xx.com訪问 server_name 127.0.0.1; #设定本 ...