给学生与软件业新手的十招
日期:2006-03-16 荐:
莘莘学子与软件业新手请听听在下的十招~对于这十招提供了一些基本的解释也希望能以诙谐的方式帮助各位加深印象~相信这十招各位经过更多经历磨练后会有更多解释~所以把这篇从原篇中独立出来,希望能方便读者参考:
第一招:看到问题念十次
a. 确认你记得问题下次还记得
b. 确认你了解问题,没有漏掉什么要求
c. 确认你以后碰到类似问题,还会想到它
d. 确认你连做梦都会想到它~悲惨的程序设计师宿命~
第二招:程序不会写,先开始写注解
a. 例用注解将问题描述,将问题做分析
b. 把分析方法与解法都 document 起来~对你自己最有益处
c. 直接注解而省略白纸,由注解行数的改变,让你老板知道你有在努力做~
c. 人家是用照片写记忆~程序设计师是用文件写记忆~
第三招:解法不会写,先写工具
a. 一个复杂的问题,尤其是面对演算法相关的所谓困难部份,如果能把工具(诸如模拟)写出来,这样是比较容易找出解法的~
b. 工具总是可以拿来重覆利用的~这会让你越写越轻松~
c. 写工具也是一种重要练习~
第四招:整个问题不会解,先解会解的
a. divide and conquer(偶称它为个个击破法) 不用多说,不知道网上查也会知道~
b. 就像写论文一样,如果无法提出所有问题的统一解决方法,限定一些条件来解
c. 还有有时候一下就想最困难的问题,一来浪费进度、二来心情不佳、三来老板可能把预算砍了因为没有结果~所以先解会解的是经验上的金玉良言~因为一来你花了20%完成了80%超越进度,老板来拍肩膀了,二来你解了简单问题心情大好,更觉得整个问题也没什么大不了,说不定困难问题因心情好(没有专牛角尖)也就想到而解决了,三来老板看你有成果说不定常拍你肩膀哩~(老板这时候真好骗~可惜薪水不好骗)
第五招:查网络、问别人、看书获取各种解题的资源
a. 想想偶们还在用193x的理论,当然问题绝不可能只有你才碰到,一定粉多人早就见过了~只有你碰到的通常是你自己写出来的bug~
b. 这是群策群力的时代,多找资源、人家的经验和别人帮忙~
c. 对应于b, 现在这个社会最忌讳单打独斗, 那代表你不能 team work~
d. 增加知名度、人缘~ Social 粉重要~切记~切记~
第六招:暴力法求解再找最佳化
a. 先求有再求好~
b. 有成果人家才看得见~不然做不出来,中间再怎么完美都没有用~
c. 暴力法通常是最白痴也最有效的办法~
d. 有时白痴解法最好~因为只有呆子在演东西给傻子和电脑看~你还期待有什么人会看你的程序?偶们高贵的使用者吗?
e. 一代萎人瞪小平同志说过:「黑猫、白猫 会抓老鼠的就是好喵」
第七招:多印追踪资料少侦错
a. 讲得粉白话~就是要你可以节省出问题找错的时间~这样才有更多时间解决真正是问题的问题
b. 因为有追踪资料 (trace information)不仅你可以找问题,别人也才可以帮你找出问题,想想吧~如果 compiler 只告诉你程序错,而没告诉你大约是哪里它碰到错~你要花多少时间解决一个打错字的问题
c. 真正的问题也常能由追踪资料找出蜘丝马迹
d. 养成习惯,不要等到当了还在想怎么写追踪资料的程序码或可以重覆发生的方法~
e. 你是坏人哟~干嘛坏怕留下线索~还是你是蜘蛛精,「偶挥挥手不带走一片data而死机」所以,人家是照相机抓得住偶,程序设计师是用 bug 抓往住偶~偶不是故意帮那家快倒的、没有「即时更新技术」的公司打广告~
第八招:多读、多写、多想、多说
a. 多读,像第一招,有时候会帮助你了解问题的所在或 think out of box,读也包括读参考资料~
b. 多写,熟能生巧~工欲善其事,必先利其器~
c. 多想,解法大部份还是要脑袋想出来,即使是人家的也要脑袋理解、吸收
d. 多说,只有在你能表达出问题所在,才表示你真正了解问题~只有你能表达出你的知
识,那个知识才是你的~
第九招:学会改进重于学会重写
a. 任何时间都要学会成本控制~不然你就没有经费~
b. 当来练习学会维护别人写得烂程序~以后碰到再怎么烂也看得懂~
c. 为什么烂-用注解的方法记录下来,有机会(成本效益考量)再改进-记住是改进,不是重写
d. 由这种维护的痛苦加深写好程序的方法和印象~真是歹命呀~;)
e. 工作机会要找改进的粉多,完全写新的粉少~
第十招:记得备份
a. 即使BMW也会 Crash,那「软~」体会可能都不死机吗?有谁说他家有装避雷针不怕闪电、有水管(PVC)把电源线和所有线包起来不让老鼠咬~还有说他写的程序永远不会当 (如果是,偶送你Taiwan No 1封号 的病毒~)
b. 让电脑忙一下让脑袋休息一下,对大家都好~
c. 还是记得备份~远方又传来哀嚎:「神啊~请让偶记得备份~」
大约解释一下,听得懂的请消化吸收、听不懂的当偶是说笑话也可以~希望大家能把软件产业走得更进步~
标签: