设计你自己的进度条
进度条的设计是一个很多人都知道的故事:同样的耗时,如果不给任何进度提示,只是在完成之后才弹出一个完成消息,中间没有任何动态变化,那么整个过程就会让人等得非常焦急,导致一些人干脆把程序关了了事。如果有进度不断更新,那么对整个过程耗时的心理感受就会远低于实际值,用户也不会郁闷到把程序关了。(你有多少次在银行处理手续的时候,看着工作人员把一堆材料不停地倒腾来去,心里多希望他们可以在柜台小窗口上投影一个进度条?)
这里的原因在于,没有进度提示的话,我们无法判断这个等待什么时候才是个尽头。如果有不断增长的进度条,那么我们对于什么时候会达到100%就会有一个粗略的估计,这个估计是一剂定心丸,让我们知道这事情总会并且会在不久的将来完成。
做事情也是同样的道理,善于规划的人,会将目标分割成一个个的里程碑,再将里程碑分割成TODO列表。前阵子流行的GTD方法学,核心的理念就在于,如果你把任务分割了,你就有了进度条,你就知道,事情在不断的进展,你总会完成任务或到达你的目标,你会有一个时间估计。反之如果没有这个分割,整个的任务或目标对你来说就只有两种状态——"完成"和"未完成",如果不幸是一个比较漫长的目标,那么你会发现你的进度条总是"未完成",一次又一次的等待未果会耗尽你的耐心,让你下意识的产生"这事什么时候才能完呢?"的疑惑,没有分而治之,你就不知道未来还需要付出多少努力才能达到目的,这就会让你心生怯意,不敢进一步投入时间,免得血本无归。在这样的心理下,不少人就会选择保守策略——退出,以免到头来花了时间还一事无成。
而所谓的规划其实就是针对这种心理弱点的做事方法。如果你对整个目标的几个重大步骤有清晰的界定,能够对每个步骤的耗时作出靠谱的上界估计,你就不会被不确定的未来,不确定的时间投入感到恐惧,就不会被这种不确定感压迫到过早退出。
不要过早退出循环
我们在尝试新的事物的时候,总是会遇到各种各样的困难,不同的人会在碰壁不同的次数之后退出。用程序员喜欢的话来说就是,我们都在for循环,区别在于你是什么情况下break;的。有的人退出阈值高,这是能坚持的一类人,有的人退出阈值低,这类人很可能遇到一些障碍就退出了。
过早退出的原因往往在于对于未来的不确定性,对于投资时间最终无法收到回报的恐惧,感受到的困难越大,这种恐惧越大,因为越大的困难往往暗示着这个任务需要投资的时间越大。所以其实我们都是直觉经济学家,当我们说"畏难"的时候,其实我们畏惧的不是困难本身,而是困难所暗示的时间经济学意义。
然而,我们的情绪大脑毕竟比较原始,仅根据碰壁的次数或硬度来判断事情的难易并不一定靠谱,如果你遇到困难,不妨用一用互联网,用一用群体的智慧,看看别人当时是怎么想怎么办的,绝大多数情况下你并不孤单,你遇到的问题早就有人遇到过,你踩过的坑里面尽是前人的脚印,不要仅仅因为一时摸不着头绪,找不着出路就退出,这不是informed
decision,问一问自己作出退出的决策是否基于足够的信息,我是否进行了足够的调查,至少,是否去简单用了用搜索引擎。
模仿高德纳先生的名言:过早退出是一切失败的根源。
兴趣遍地都是,专注和持之以恒才是真正稀缺的。
很多人看了书中的故事之后得出这样的结论:兴趣最重要。然而,我觉得区别他们和其他人的,并不是他们拥有超过常人的兴趣,而是他们拥有超过常人的毅力。
其实人天生就对新事物怀有好奇心,难以找出谁没有对任何事物或领域产生过兴趣,然而不同的是,有些人的兴趣只能持续几天,当遇到第一个困难,第一道坎的时候,他们就熄灭了,然而另一些人的兴趣火花会变成火苗,火苗会变成火种,一直稳定的燃烧很多年。区别他们的并不是兴趣的有无,而是他们的性格里面有没有维持兴趣的火种一直燃烧下去的燃料。
一个人有专注和持之以恒的性格,即便在一个没有多大兴趣的领域也能成为专家(更何况,兴趣的很大一类来源就是"我擅长做这件事情");反之就算有兴趣也很快会被一些冷水泼灭。
生活中的选择远比我们想象得要多,细微的选择差异造就了不同的人生
唐雅薇同学的故事中,有这么一个细节吸引了我的注意:当时她正在找工作阶段,对女生在IT行业的发展很迷茫,恰逢微软的郭蓓菁女士到他们学校演讲,演讲完了之后她立即就奔上讲台拦住郭女士询问女生与IT的问题。
这是一个细节,但我相信不是所有人都有勇气上去拦住名人问普通问题的,我们会给自己找很多很多的理由和接口,我想最常见的应该是两个原因:1.
如果被批评了自尊心会受到打击。2.认为问了也问不出特别的信息。然而事实却是相反:1.
自尊心受到打击算不上实质性的损失。2.
你想不出能问出什么特别的信息并不代表就真的问不到重要的信息。别把不知道当成没有。
一个小小的思维差异,可能导致很多人在遇到困惑的时候原地打转,冲突不出,而另一些人则取经得到宝贵的经验,站在别人的肩膀上越过了障碍。唐雅薇从郭女士那儿得到了最宝贵的信息:女生在IT行业也能有很好的发展。信心,是这样一种奇怪的东西,就算你没有确切的证明未来会更好,你也会坚持下去,你不会过早退出循环;而来源于过来人的信息则是信心最靠谱的保障。
你是不是意识到,在平常的生活中,你所作出的选择比你想象的要多得多呢?有没有想过有一些看似细小的选择可能会产生巨大的影响?
想想看,试一下,是不是真的没什么损失,还有可能得到巨大的回报呢?
靠专业技能的成功是最具可复制性的
它需要的只是你在一个领域坚持不懈地专注下去,只需要选择一个不算太不靠谱的方向,然后专心致志的专下去,最后必然能成为高手或者绝顶高手。世上有很多成功带有偶然因素和运气成分或出身环境,但至少这一样,被无数人复制了无数遍,否则就不会存在学校和教育了。
反思是让人得以改进自己的最重要的思维品质
很多人在成年之后甚至未及成年,性格就难以再发生大的变化。性格是这样一种自我实现和强化的陷阱:如果你是不容易专注的人,你会发现生活中处处都是分散你注意力的东西,你的思维难以在一个事情上停留半小时,于是你的时间变得琐碎,你很难在一个领域有长久的积累和深入的思考,这样的现实可能会让你感到沮丧,后者让你更加无法专心,这样的现实可能会让你感到焦虑,为了避开焦虑你又会去寻求其他的刺激,结果是恶性循环。
反思是改变自己的第一步,我们常常容易发现别人的问题,别人的错误,却难以发现自己思维中的问题,因为我们很少会把自己的思维当成目标去思考。
作为程序员,相信没有人不知道能修改自身的程序,而能修改自身的程序的前提就是,首先这个程序必须有法子能够指向自身。
饿死在干草堆之间的驴子
有很多在迷茫期的同学,迷茫都是相似的:面前有两条路,到底选哪一条?"转行还是不转行?""学C++还是学Java。?"做管理还是做程序员?"有些问题其实不是问题:比如"学C++还是学Java。"答案是都学而且还不仅学两个。有些问题不是一个泛泛的答案能够适合的,比如转行还是不转行,需要考虑很多自身因素。
但更重要的是,有人会因为无法作出决定就推迟决定,然而实际上推迟决定是最差的决定,在推迟决定期间,时间悄悄流逝,你却没有任何一条路上的积累,白白浪费了时间。
如果你有一些钱不知道花在A还是B上,你先不作决定,没问题,因为钱还是你的,但如果你有一些时间,不知道花在A上还是B上,不行,因为过了这段时间,这段时间就不是你的了。
所以,不管有多纠结,也不要从纠结中逃离,试图推延决定,既然终究是个痛苦的决定,就痛一回,好好思考和调查之后作出一个决定并坚持下去,只要不是太不靠谱的行业(相信也没谁会在纠结了之后却选了一个不靠谱的行业的),经过你的积累总会成为高手。
一生的知识积累,自学的起码占90%
你会在这本书当中看到的一个重复出现的现象就是自学,大规模的自学,逃课自学,上网找书自学,程序员行业是最适合自学的行业,网络是程序员的天堂,需要的资源、工具,比课堂上的多出何止百倍,如果说还有一个学科,并不需要传统的教育就可以成才,估计非程序员莫属了。作为程序员如果没有查过wikipedia,没有看过几本原版电子书,没有在国内外主要邮件列表里面提过问题吵过架,没有用技术博客记录学习的独特体会,没有订阅技术牛人们的博客,怎么好意思说身在这个行业呢?
最后,看完了书还是说"说起来容易做起来难"的,怪自己,不怪书。
2009年10月10日星期六
Linux文件编码格式转换
在Linux命令行下查看看文件的编码
enca 文件名
linux文件名编码批量转换
convmv -f 源编码 -t 新编码 [选项] 文件名
enca 文件名
linux文件名编码批量转换
convmv -f 源编码 -t 新编码 [选项] 文件名
常用参数:
-r 递归处理子文件夹
–notest
真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
–list 显示所有支持的编码
–unescap 可以做一下转义,比如把%20变成空格
比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:
convmv -f UTF-8 -t GBK --notest utf8编码的文件名
Linux下批量转换文件内容编码
1.使用enca,例如要把当前目录下的所有文件都转成utf-8
$enca -x utf-8 *
2,使用iconv 转换
iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
订阅:
博文 (Atom)