务虚:大局观、方法与关键点

前天看了《年前的面试经历》,有点感想。呵呵,按现在的面试,俺属于不合格的,估计连5k都拿不到。事实上,俺只参加过一次面试,QQ电话面试,2年前,当时要价200k/y。面试结果很惨,搞得我从不去应聘了。而实际上,在十年前,俺的工资虚数就已经是10k(实发没有,创业嘛。但也不少,反正买外文书不心疼的那种)。下面随手写写,讲讲为什么能拿这些。

 

本文谈一种工作方法:

(1)首先对手中的工作有大局观(需要很强的观察能力和综合能力),要能理解问题,掌握问题的关键点,且能对问题进行分解;

(2)通过大胆猜想和小心验证来进行中心突破;

(3)中心突破之后,再进行外围拓展。

image

 

这样一来,即使你对某项事情不懂或懂得不多,也可以把事情做好

 

下面举例子说明(以下例子基本上都是我个人的例子):

(1)正反馈

97年玩mud,有个很好的朋友,mud玩的狂厉害,比其它人等级高多了。我的升级速度只是他的十分之一。问他怎么玩的。他说了一个词:“正反馈”。什么是正反馈呢?就是,假设你有2种属性:A和B,每秒消耗10点A能提升1点B,而A是不断回复的。一旦,你每秒A能恢复10点以上,这样你就可以无穷无尽的提升B,这个点就叫正反馈点。玩mud,就是尽量去达到这样的正反馈点。这个现象叫不叫“正反馈”不重要,重要的是他抓住了这个关键点。他一“正反馈”时,整个服务器的资源一半被他消耗了。

说到mud,再讲一个好玩的故事。有个pku的哥们叫“张学友”,老杀小号,激起公愤。很多高手都做了一个宏:follow 张学友; kill 张学友。有个哥们,就叫他Q吧。有一天,张学友出现在Q的身边,Q就按了这个宏。张学友只有五十多级,这个哥们有一百多级。张学友一路西奔跑到沙漠里面去了,在沙漠里面乱转。在沙漠里面走一步,要掉几点hp,喝水或喝酒可以补充hp。张学友事先买了很多很多酒,然后在沙漠里跑一步喝一口,结果,不久,Q就渴到hp只剩下1,晕倒在沙漠里了,张学友回头一刀把Q给杀了。

这两个例子说明,做事情要抓住核心。

(2)写mud

当年大学一二年级玩mud玩的很狠。后来玩腻了,就申请当巫师,开始写mud门派。当年的pkuxkx门派还比较少,我同系的一个老乡写了全真派,我闲的无聊写了古墓派。当时mud使用的是一种 C 语言的变种,叫什么名字我忘了。当年我的情况是C语言考了30多分(上机题75分,3道题,全部要打开文件,进行操作,再写入文件,我当时看书没看io那一章,结果75分的编程题全挂了,看在我敲了很多代码的份上,给了几分)。在这种情况下怎么进行开发呢?把问题分解一下,我需要解决这几个问题:(a)怎么下载和上传文件;(2)怎么写地图与迷宫;(3)怎么写NPC;(4)怎么写武功;(5)怎么写任务小脚本;(6)怎样与众不同.对于(a),请教老乡怎么用ftp,解决了;(2)(3)(4)(5)看代码很快就解决了。至于(6),哈哈,好办,当时阅读武功代码发现很多武功都有特技——缠人,让对方无法行动。假设A的xp是xp(A),B的xp是xp(B),A缠B,如果Random(xp(A)) > 0.5 * (xp(B)),则缠人成功,对方无法动弹。为此,我在古墓派搞了本九阴真经,需要从后门进,要下水(下水走一下也要扣hp),水下是迷宫,迷宫走通了可以找到九阴真经。九阴真经拿到手之后可以读。然后,到了一定级别可以使用移魂大法。移魂大法实质上就和上面的晕人的特效一样,不过我把判断改了,改成如果Random(xp(A)) > Random((xp(B))),则判断成功,这样的话,虽然总体概率是一样的,但一个很弱的号也有很小的可能把一个大号给弄住不动。为了平衡,我又加了个限制,一旦使用移魂大法,则两人马上变成kill状态(一般的打架是有一方hp剩不到一半就停止了,kill的话,不死不停止),这样限制滥用。后来又加了本韦小宝的《马屁宝典》,拍马屁成功也可以让对方处于无防备状态,原理同上,纯属娱乐。这样,一个有特色的门派,一些有趣的武功就诞生了。呵呵,现在去pkuxkx,上面的wiki史记中,还特意写到俺。说明,上面的工作还是有人认同的。

这个例子说明,对于不会的问题,要善于分解问题,善于借鉴和创新。

(3)写读书报告

这是大学期间的另一件趣事。大学很多课要写读书报告,就是查很多资料,然后归纳总结。注意一点:归纳、总结不一定需要你懂你写的内容。这个工作的关键点是你要能够正确的把资料分类,把观点提炼出来。有一次,我查了很多资料,然后把资料分类归纳总结,写出了一篇很棒的读书报告。而我当时的专业课基础很差,导致,我自己写的读书报告我自己只能看懂表面上的意思。很荣幸,我这篇读书报告写的很好,被老师评为最好的三篇。又很不幸,这三篇的作者都要上讲台演讲。结果很惨,我讲的一塌糊涂。这个事情有哪些启发呢?我总结出一点,就是,即使你不懂,你也可能把事情做好,只要方法得当

这个例子说明,只要方法对,就算不会,也可以做好事情。

(4)向后退几年

虽然太过久远,但仍有总结的价值。因为当年俺高考那一役在当年的高中依旧是传说般的存在。在高三之前,我的英语一般在年级300-200名徘徊,最好情况是200,总成绩在100-10名徘徊,哦,我们学校是县级市高中。但高三我垄断了总分全部第一,英语在高考时达到了我的最好成绩——年级第一。并且,高三玩的很疯狂,看小说、打牌、打游戏,我都有份。每天学习也不过五六个小时,剩下的都在瞌睡或看小说。怎么会这样呢?还是大局观+方法+关键点。大局观是什么呢?(a)应试教育,成绩第一,越大型考试成绩越好就行了,一切为此服务;(b)《圣斗士星矢》中沙加平时闭着眼睛时混混噩噩,水平很烂,关键时候发飙,水平暴涨,这tmd不正好适合应试教育嘛;(c)反正智商只要还行,别人会的你也会,把能会的都搞定,把错误和失误减少到最少就行了,就可以分很高了。我是怎么执行的呢?平时混混噩噩,打瞌睡啊,做作业都是以最快的速度做完也不检查,得到一大堆叉,听写单词20个能错17个。这种状态是有好处的。好处第一是不累,第二是,你的缺点,平时全暴露出来了,考试时一注意,屁的缺点就没有了。关键时候怎么发飙呢?回顾一下混混噩噩时暴露的缺点,考试那段时间记住别犯就行了。然后,考试时,怎样能让自己鸡血怎样干。别人都在复习,我看小说啊,打游戏啊,总之就是把大脑给搞到最兴奋。这样,毫无悬念的上了THU。关键时刻可以发飙是个很强的能力,我后来发飙过几次,一次是现场表演,30分钟写了篇论文,然后发表(当然,论文中的一些资料是我以前报告中写过的,论文的一些想法是我以前曾经想过的),一次是一晚上的工作给公司要了300k的项目款,这种状态真是打鸡血啊,事后根本无法体会。

这个例子说明,要寻找最适合自己的方法。

(5)再回到大学时代,写小说的案例

大学时代很丰富,有很多成功案例。现在继续讲。mud玩多了,考试成绩直线下降,不能再玩了,于是泡BBS。当年在武侠版和科幻版大论战,论战过程中涉及到啥问题,就跑校图书馆查资料,这一来,写作功底提高的很快。后来,在科幻版战的很烦了,心想,我也写一篇试试。写小说是要发表的,我对写小说发表这件事情,当时做了这样的分析:小说要发表,首先需要一个卖点,就是编辑为什么要发你这篇小说,读者为什么要读你这篇小说,其次,文字要过得去。关键是卖点,而不是文字,不是别的什么。于是,我自己开始这样的写作过程:寻找卖点->构思情节->细分到小节->细分到段落->充填文字。这样有步骤,可操作。前面都没问题,最后,文字那一块,我文字当时不好,怎么办呢?因为已经细分到段落了,具体这里写什么场景,都划好了,然后,买了本描写辞典,找类似的模仿着写。很幸运,第一篇小说就发表了。这个小说花费3天,收入不少集子里,前后收入2000.(2000年之前的事情).因为方法对,可操作。后来,我花钱进行了一个实验,找一个不会写作的人,按上面的方法写小说,最后也写出了大半个小说,有鼻子有眼的。这个例子说明,只要方法对,敢想敢干,是可以成事的。

(6)俺的另一个案例

还是大学。俺大学成绩很惨的(后来研究生阶段又补回来了)。大四,学分刚好够。有一门课,如果挂了,学分就不够了。这门课,缺勤三次,就算不过。好吧,当时,我已经缺勤三次了。怎么考勤的呢?发一张卡,老师站门口盖章。这门课我很想听,但大四在创业,没那么多时间,前三节课我都缺了,第四节课去上了。第四节课,我认真观察了一下课堂形式,然后给主管副主任发了封email,说这种考核方式是《希望A但奖励B的愚蠢》。然后,进行了具体的分析:系里面希望大家去听课,因此采取了这种考核的方式,但这种考核方式导致的结果是:真想听课的学生,没啥影响;不想听课的学生,要么来了睡觉,要么从这个门进来盖个章再从另一个门出去,这样做没有达到系里面想要达到的效果,反而造成了浪费——浪费了考核老师的时间,浪费了不想听课的同学来回的时间,浪费了不想听课的同学本可干别的事情,但却在课堂上睡觉的时间。也就是说,这种考核方式,是没效果的。第五次,出勤考核改课后出去时盖章,第六次,考核取消了。后面有兴趣的课程我跑去听了,写了报告,这门课也过了。

这个例子说明,分析的重要性。

(7)倒数据的案例

如果不算课堂作业与mud开发,这个案例可以算俺的程序处女作。大四时网络浪潮兴起,参与了进去。开发网站,我是总编。当时想把中国法律法规给放上去,买了张法律法规光盘,一看,有几万条。公司里有个主程序员,他说倒数据要用C语言写程序,我想用C语言还要破解光盘的格式,他当时在忙网站开发,也没工夫。我仔细分析法律法规的文本,发现格式很固定,可以写程序解析。于是请教这个程序员,问他,我想在页面上放个文本框,一个按钮,然后点按钮,这些文本要能进数据库,我应该看这本书(一本asp的书籍)的哪些内容?他给我指了2页,我看了下,花了一个晚上做出了一个页面,然后,招聘兼职,要求很简单,要能灌水。为了最大化灌水效率最后页面我改成了这样的:

image

按钮搞的超级大,这样鼠标很好找,仅仅这一步改进,就让效率提高了一倍(哈哈,当时赶鸭子上架,还不会JS)。招聘来的兄弟也不赖,一小时能灌2000篇左右,两天不到就填完了。(当然,现在有按键精灵了)

这个例子说明:条条大路通罗马

(8)写企业案例

我不是MBA,但考察过快100家企业。后来因为这个,接到项目是写企业案例。需要抓住这个工作的关键点。有些数据企业能提供,有些企业不能提供,报纸上的报道又几乎不是吹的就是捶的。为此,我确定了几个原则:(a)客观,写作过程不做任何评价;(b)采集事实,什么是事实呢?A说“我们企业今年赚了2000万。”该企业今年赚了2000万不是事实。某年某月某日该企业的某某说,今年他们的企业赚了2000万,这一个是事实;(c)把采集的事实归类,按时间归类;(d)进行分析,纵向分析和横向分析;(e)试图发现规律或有趣的现象或值得讨论的问题;(f)尽量多图多表。这样一来,就非常可操作了。写作过程中我发现,事实超出想象的多。以生产小灵通的UT斯达康为例子,他们上市时的招股说明书有近400页(英文的),里面具体到哪里有一台电脑都写得清清楚楚的。只要肯用心,很多现象都可以找到,比如,通过上小灵通,电信的设备使用率从60%多上升到80%,等。这些案例反响很好,很受那几年MBA教学欢迎。当时赶着出版,签的0版税(稿费相对项目费只是小虾米)。据出版社的朋友说,卖的也不错,她说是上万册。

这个例子同样说明:关键需要做事情的方法对

(9)到非典了

非典要呆学校,那段时间正好是写硕士论文。闲的没事,我拿着合成的几个产品的NMR图发呆。NMR的定量分析能力很强,我想,通过这几张图,能否计算出我的产品的平均分子量还有别的参数出来呢?这个领域,从大四到研究生,我干了3年,国内外文献已经烂熟于心。还没人这样干过。想到了,就开始干。用我贫瘠的随机数学的知识和一年前补来专业知识,我列了几个方程。自己一看,方程的个数和未知数的个数是一样的。乐了。一遍一遍的检查假设,没问题。然后,和导师讨论。哈哈,一篇EI就这样诞生了。主要是结果没做详细的实验验证,要是好好做下验证,再丰富下模型,可以发SCI了。

这个例子说明:大胆猜想,然后验证

(10)GIS

有一个项目要用GIS,我带着一个哥们在做。选择的是GeoServer+GeoTools。首先架设Demo,然后,给了一个星期时间,啥事没干,我就让那个哥们从浏览器请求开始,到返回GIS图像,这个过程发生什么事情,发生了什么调用,用UML序列图画出来,然后讨论清楚。因为GeoServer,GeoTools是开源的,代码都可见。这一步直指核心,捋一遍就知道个七七八八了。因为这事,后来收了个徒弟,是学GIS的研究生。

这个例子说明:不要怕难,要有大局观,抓住关键点,直指核心流程

(11)直指核心

即使你不会,或者懂得不多,你也应该不怕困难,直指核心,把核心弄明白。这又是一个例子。我带人开发分布式网络协议测试床原型。开发平台:Linux,开发语言:C++。俺当时的水平:C#两年开发经验,Linux不会(但深入理解计算机系统那本书我看过),C有点点经验,C++经验几乎为0。但我对问题的分析能力是超强的。先查询资料,让一个研究生做一些试探性的开发,摸方向。最终决定选用ns2.ns2是单机网络协议模拟软件,也有并行版本的pdns,但这个不满足需要,它还有单机实时仿真的版本nse。我决定拿这个下手。nse的限制是:(a)实时性不好,只能到0.01s;(b)性能低下;(c)可扩展性不好(搞分布式很难)。因此,关键工作是两点:(a)修改核心调度引擎,增强实时性;(b)引入新路由机制,方便可扩展性。我让手下人做(b)及一些外围工作,我自己做(a),(a)部分只有不到2000行代码,那段时间就是啃这2000行,啃了几个月,profile各种实现方法,比较各种系统调用,最后将实时性提高到0.0001s,性能也提高了很多。为了更好的调度,最后把Socket也给hack了,让它每0.0001s扫描一次,一切数据结构都按这个0.0001s优化。这些一完成,一个分布式网络协议测试床的基础架构就出来了。N年前的事情。

这个说明:不畏艰难,直奔问题核心

(12)MSN群发频率的调整

MSN发送离线信息的频率是最多10s一条,超过了就警告你,封你一会。咋办呢?嘿嘿,把tcp的那个动态调整的算法拿过来直接用,哈哈,效果很不错!

这个说明:对问题的理解能力很重要

(13)网络外包

大城市呆久了,不喜欢大城市,跑到小城市呆着。中途中断了两年,然后继续奋斗。做了一年多了网络外包了,站在大局观上分析一下:

为什么外包?(a)做不出来;或者(b)不值得做。(a)比较难;下面看(b),哪些是企业不值得做的呢?

不是经常性的开发,就不值得企业自己去做。比如,Logo设计这些,养个美工划不来,请设计公司太贵,网络外包又便宜又实惠。Flash开发,同理,养个专门的Flash程序员划不来,请专门的公司做也划不来,于是外包。并且,这些东东网上又好演示,好沟通…… 仔细观察 很多适合外包的情况——不宽不窄,不多不少这样的领域最适合了。

那么关键点是什么呢?

image

网络中的A和B两人之间存在一个壁垒。A对B不信任,B对A不信任。这就是网上的活价格高不起来的原因——很多都是在投石问路,投石问路,当然不会投钻石了。价格不高,还很容易扯皮,因此很多人不喜欢这条路子。如果把这个壁垒给去掉,活的价格其实是还不错的。要想靠这个过日子,就要突破这个壁垒。

继续发展怎么办?走出国门,直接对老外外包。俺口语很烂,普通话都说不好。咋办呢?语音合成!现在语音合成效果还不错。哈哈,到目前为止,走出国门这一步还是在考察中。唉,听力也很烂,语音识别效果还很不好啊。

然后是开发软件赚钱。RIA是个机会。国人盗版太厉害,可以用RIA来对付,关键计算放在服务器,大量的非关键计算放在客户端,未来网络速度会提升,这一块有很多个人发财的机会。

(14)以投资的眼光、以动态的眼光看技术

这个题目大了,有时间再写。

 

最后,说个反面的案例

(1)SQLServer 7.0时代,我把Backup当作恢复(向上 Back,字面理解做回复),把Restore当作备份(Re-Store,字面理解成备份),结果好几天数据丢失,害得上面那个贴数据的哥们不得不再贴一遍,我也被扣了一个月工资。

这个说明:英语很重要

 

=======================================

附上我在吉日帖子里面的2篇回复。

这个里面道道挺多的。昨晚(应该是前天晚上,宅男的日期概念不强)写了篇博客(就是这篇,想想还是发出来算了),写完后又不想发出来了,发部分文字到吉日这里(下面仅指面都不见就接活):

为什么外包?(a)做不出来;或者(b)不值得做。(a)比较难;下面看(b),哪些是企业不值得做的呢?

不是经常性的开发,就不值得企业自己去做。比如,Logo设计这些,养个美工划不来,请设计公司太贵,网络外包又便宜又实惠。Flash开发,同理,养个专门的Flash程序员划不来,请专门的公司做也划不来,于是外包。并且,这些东东网上又好演示,好沟通…… 仔细观察 很多适合外包的情况——领域不宽不窄,会的人不多不少这样的领域最适合了。

.Net也不是很适合这种,因为会的人很多,把价格拉下来了。.Net的局部领域倒是挺适合的,比如搞各种协议的模拟——但这些东东我自己想运营,不对外做了。倒是flash程序员挺适合的——这是我这半年的感觉。技术的选择很重要,越窄越难的技术,越有定价权,但活的量会减少——活量减少可以通过全国寻找或者全世界寻找来弥补。

接Web项目,一般我就没有定价权,非Web项目,一般我都有定价权。.Net类Web项目,我报价最高只能到6k/m,再高了,都请本地的人去做了,所以基本不接这类项目。flash项目,可以到10k+/m,当然,协议类的项目、图像处理类的项目,也可以到10k+/m,还有的能到50k+/m,并且——客户很少还价,我一直琢磨是不是报价低了。20k+/m的都是很难的,还有客户主动加价的。项目复杂了,技术支持都是另收费的。

那么关键点是什么呢?
网络中的A和B两人之间存在一个壁垒。A对B不信任,B对A不信任。这就是网上的活价格高不起来的原因——很多都是在投石问路,投石问路,当然不会投钻石了。价格不高,还很容易扯皮,因此很多人不喜欢这条路子。如果把这个壁垒给去掉,活的价格其实是还不错的。要想靠这个过日子,就要突破这个壁垒。

做(b)类项目,其实也就赚个行业平均工资,但俺在小城市,随便赚赚就是本地社会平均工资的四五倍。最近发现,这个Flash外包(程序开发)挺适合推向国际的,因为Flash美工多,程序少,并且好沟通,且界面修改快,价格上可以做到120刀每天,等于差不多10张老头/d。

现在很多想法都变了。比如说,验证码识别,难点的,外包价格在1-2万,没啥兴趣。这种我现在的想法是写成接口,然后一月1000块钱租用。我算了一下,我这条破ADSL能支持10个人以上。不过验证码这块不好搞,去年搞了半个月没成功,今年手中项目结束了继续搞,搞出来就是坐地收钱。

再比如技术交流。现在非常讨厌技术交流了。其实技术问题,一般google都能解决,google解决不了的,交流也解决不了。并且,和技术人员聊天只浪费时间没有任何收获。由技术人员外包的项目,一般都是不好的项目。好的客户聊两句就把项目给你了(哈哈,谈出经验来了,现在大半项目都是QQ聊不到半小时就定下来的,并且我现在谈项目,中标率差不多在30%,基本上只有做不完的项目,没缺项目的时候)。技术人员能一缠缠你几天,然后啥报酬不给你。前几天一个没搞过车牌识别但投标需要一个车牌识别demo的烦死我了,拿着我博客文章中的demo,问这问那,说什么项目弄下来了付咨询费。自己不debug,还老要我帮他debug。烦都烦死了。今天(应该是昨天,宅男的日期概念不强)一个做flash的在QQ群上问有没同行,有加好友,俺回了一句“从不加同行为好友”(俺的新加的好友全是客户和潜在的客户),然后他回了句“那算了,我本来有项目找人一起做”。闲的无聊聊的几个技术人员,得到的都是空头承诺。害得俺只好在博客上注明,技术交流请通过email,谢绝QQ。

(b)这一块已经做得比较熟练了,关键就是建立信用和自己的案例库,还有,领域一定不能宽,领域宽了显得不专业,并且做项目效率也上不去。领域窄了项目量会少,这就需要谈客户找客户的能力了。

靠(b)生活可以生活的蛮不错的,但赚不了更多。赚更多得靠(a)和运营。

(a)这一块还在探讨,因为技术的积累还不够,做的还不顺利。去年接触了几个20k-50k/m的项目,demo这关都没过。可能还得2-3年,我才能接这样的项目。我计划是要花3-5年时间,在某一个领域做到全国的前沿或全球的前沿。这样,就可以承担(a)类项目了。并且,这个领域还要是可以直接通过网络来交易。其实在一个领域内做到前沿不是很难,关键是这个领域要够小,但还要有一定的市场和潜在的发展前景。目前我是盯在图像处理、视频处理这一块,这一块有足够的技术深度和足够多的分支,并且三网合一,有潜在的强力应用背景,并且很容易通过网络来演示。以前我是想做3D试衣服,跟了几年,感觉技术上难度太大,风险太大,现在决定放弃。

还有一个就是自己做东西运营,这个就是抱大腿或走向海外了。这个一直说试水试水,但一直没走出第一步,因为还有很多不确定性,比如渠道啊,平台啊,但慢慢的这些不确定性在消失,这一步始终要走出去。

posted @ 2010-03-03 07:50  xiaotie  阅读(3883)  评论(37编辑  收藏  举报