说实话当一个程序猿不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从零开始学二十七(NumberFormat类)
一.NumberFormat表示数字的格式化类 NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示. No. 方法 类型 描述 1 public static Loc ...
- 服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。
1:关闭MySQL服务的时候出现“服务名无效.请键入 NET HELPMSG 2185 以获得更多的帮助.”错误. 2:查看服务名称 3:重新关闭服务 4:管理员运行控制台后重新执行 成功停掉了.
- ehcache.xml的配置详解和示例
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLoc ...
- Scala进阶之App特质
App特质的作用 App特质的作用那就是延迟初始化,从代码上看它继承自DelayedInit,里面有个delayedInit方法 trait App extends DelayedInit Delay ...
- WINDOWS操作系统中可以允许最大的线程数
默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小. ...
- 封装UIlabel 辨别用户名 ,话题 ,链接,电话,高亮文字等
概述 对UIlabel进行封装 用于辨别用户名 ,话题 ,链接,电话,高亮文字等,链接跳转网页,电话点击拨打电话,完美封装UIlabel,适合绝大多数需求 详细 代码下载:http://www.dem ...
- 源代码解说ActionBar的各种使用方法
1. Navigation Drawer 很多应用程序都使用了Navigation Drawer,如网易邮箱client.该控件位于 android.support.v4.widget.DrawerL ...
- JavaScript中的数组与伪数组的区别
在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function). 基本数据类型:String,boolean,Number,Undefined, Null 引用数 ...
- AjaxControlToolkit的使用
摘自:http://www.cnblogs.com/zm235/archive/2008/05/09/1189558.html 暂时的做法: 把AjaxControlToolkit.dll复制到项目的 ...
- jquery实现 批量右移
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...