说实话当一个程序猿不easy
我以前说过,程序猿不是一般的人,是具有某种超能里的人。但问题是。程序猿往往意识不到自己的这样的特异功能。在他们的眼里。会觉得自己非常普通。跟常人一样,所以,程序猿能做到的事情,其它人——比方他们的客户/软件用户——也应该非常easy做到。
但其实,因为大部分人——绝大部分人(包含软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一个对于程序猿来说非常显而易见的软件操作,换成让用户来操作。就会出现各种各样奇怪的事情。这让程序猿非常痛苦。
记得有一次,一个客户打电话给我,说他电脑桌面上的大e找不到了。我没听懂,什么大e找不到了?客户解释说:就是那个长的像大个儿的英文字母e的图标找不到了。我倒。最终明确了他指的是桌面上的IE浏览器的图标不见了。
另一次,有个客户提出一个需求,要求在页面上添加一个搜索功能,我问它,系统里有搜索功能,为什么还要在这个地方新增一个搜索功能。他说他要的不是那个搜索。他要的是在这个页面上搜在某个关键词。经过进一步的沟通,我明确了,他要的是浏览器上的快捷键CTRL+F的功能。
由于用户的这些特征,导致了程序猿觉得完美的程序,到了客户的手里,却变成极其难用的软件,投诉电话如乡下骂街的泼妇似的响个不停。而事后分析发现。根本原因都是应为程序猿高估了用户对软件的掌控能力。低估了自己对软件的创造能力,于是导致了他们看这些客户使用他们开发的软件时。都是那样一种可笑的行为。
假设是脾气暴躁的程序猿。遇到这样的情况,难免会对着客户发一顿牢骚。并且,程序猿的脾气一般都不是非常好,所以,通常跟客户沟通时。项目经理一般都是跟着一起。以免事态激化。
用户尽管给程序猿带来非常多麻烦,但事实上程序猿的全部荣耀感都来自客户,由于仅仅有客户用得惬意。程序猿才会有成就感。比方像以下这几个客户在使用一个新款软件时显露出来的表情,足够让一个处在北京重度雾霾的下午的程序猿也能露出笑容:
程序猿尽管脾气不好,但他们都是为工作着想,不带不论什么个人恩怨。当开发软件有紧急任务时。他们都是任劳任怨的加班加点,当在已经公布的软件中出现了重大bug时。他们都会深深在自责,会连夜赶制出紧急修复bug,假设不能在第一时间让用户惬意,他们会茶不思、饭不想、觉不睡。即使在实在没有短期内完整的补救措施的情况下。他们也会想出一些歪招,但也是行之有效的方案,让用户临时度过难关。
用户应该体谅程序猿。程序猿的生活实际处在一种十分矛盾的状态中。
编程不像其他行业。比方泥瓦匠砌砖,砌一层砖,墙就会高一次。
但编程不一样,有时候一个程序猿写了一天的代码。急得满头大汗,但开发进度未必就有所进展。有时候甚至还会倒退。软件编程是一个亦虚亦实的世界。有时候你搞不清一段代码为什么好用。有时候也会诧异由那样的代码构成的软件也能跑起来。
最后,说一下跟程序猿打交道的一些注意事项。程序猿由于整天和编程逻辑打交道。所以对因果关系特别敏感。假设你的话语的因果关系不是非常明白。这会让他们感到疑惑,假设你的话语的因果关系不完整,这会让他们办错事。假设你的话中有if,最好后面用then做结束。或者用else给出选择,主语要明晰。
假设你是一个程序猿,你会理解我说的话。
说实话当一个程序猿不easy的更多相关文章
- 每一个程序猿必知之SEO
似乎由于受这篇文章的影响 http://katemats.com/what-every-programmer-should-know-about-seo/ 于是我也觉得我应该写一个每一个程序猿必知之S ...
- 每一个程序猿都应该用MBP
换笔记本的想法非常久了.前段时间换工作就想看换工作之后是什么情况吧. 可能工作配的笔记本就是MBP.后来发现是想多了,新工作的笔记本是Thinkpad X240. 配置全然够用了,8G内存+128G的 ...
- 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业
相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者” 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...
- 连载《一个程序猿的生命周期》- 44.感谢,我从事了IT相关的工作
感谢博客园一直以来的支持,写连载都是在这里首发,相比较CSDN和开源中国气氛要好的多. 节前,想以此篇文章结束<一个程序猿的生命周期>的<生存>篇,对过10的年做一个了断,准备 ...
- 连载《一个程序猿的生命周期》-28、被忽悠来的单身HR(女同志)
一个程序猿的生命周期 微信平台 口 号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103 微 博:h ...
- 连载《一个程序猿的生命周期》-6、自学C++,二级考过后,为工作的机会打下了基础
一个程序猿的生命周期 微信平台 口 号:职业交流,职业规划:面对现实,用心去交流.感悟. 公众号:iterlifetime 百木-ITer职业交流奋斗 群:141588103 微 博:h ...
- 蒙特卡洛树搜索算法(UCT): 一个程序猿进化的故事
前言: 本文是根据的文章Introduction to Monte Carlo Tree Search by Jeff Bradberry所写. Jeff Bradberry还提供了一整套的例子,用p ...
- 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
阿袁工作的第1天: 不变(Invariant), 协变(Covarinat), 逆变(Contravariant)的初次约 阿袁,早!开始工作吧. 阿袁在笔记上写下今天工作清单: 实现一个scala类 ...
- 专访雷水果国:离1.5K至18K 一个程序猿5每年的成长之路
我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...
随机推荐
- Java从零开始学十四(包和访问控制)
一.java中的包 Java文件的组织形式Windows中的文件功能类似 在开发比较大的项目时,不可能只涉及到一个java文件,可能要创建几十,甚至几百个java文件,这个时候,我们就可以使用包,把相 ...
- Android 升级脚本updater-script 的函数简单介绍
这是Android系统来执行updater-scripts中的函数介绍. 函数都是的Edify语言.当调用这些函数结束的时候.会返回数据给脚本.当然,你也能够使用这些函数的返回值来确认成功与否,比如: ...
- vue单文件(sfc)编译为js的流程
1.流程 2.参考文章地址 https://segmentfault.com/a/1190000012336392 3.Vue框架的parseComponent https://github.com/ ...
- tomcat 禁用access.log
修改 server.xml 注释掉,如: <!-- Access log processes all example. Documentation at: /docs/config/valve. ...
- 媒体类型(MIME类型)
# encoding=utf-8 #python 2.7.10 #xiaodeng #HTTP权威指南 #HTTP协议:超文本传输协议是在万维网上进行通信时所使用的协议方案. #媒体类型: #HTTP ...
- js 面向对象式编程
1.声明一个函数,在函数内进行初始化操作,,函数不能有返回值2.把需要的参数传递进去,参数最好以对象形式传入,如果有默认的设置默认参数3.把传入的参数都保存到对象的属性上面4.把初始化操作中需要用到的 ...
- 批处理文件:将目录下所有的jar文件都加到CLASSPATH
简便写法如下: 代码 : @echo off SetLocal EnableDelayedExpansion FOR %%i IN ("XXX\lib\*.jar") DO SET ...
- java 多态的好处
/* 对象的多态性. class 动物{} class 猫 extends 动物{} class 狗 extends 动物{} 猫 x = new 猫(); 动物 x = new 猫();//一个对象 ...
- Loadrunner脚本编程(1)-大体思路
http://www.360doc.com/content/10/0806/13/1698198_44076570.shtml 就目前的了解.Loadrunner的脚本语言其实和C没什么区别.他内部的 ...
- C输出大于127的ACSII字符
近期,我们的DNS服务器收到了一些异常的域名请求,从访问日志看到很多域名都被返回了FORMAT ERROR的错误码,但是访问日志中的域名看起来很正常啊,为什么会返回FORMAT ERROR的错误码呢? ...