0%

离别

在华三实习了近一年的时间,认识了一群好朋友,离职的那天,一个朋友各位发了一封邮件,看着看着不知不觉眼睛湿润了,这封邮件不仅包含了一个程序员对自己经验的分享,更包含了一个老大哥对我的殷切的期望和深厚的感情,现在我把这封邮件贴出来与大家分享。 >在短短的邮件里,我没有什么复杂的技术可以教你们。说教其实也是言重,论年龄,我也没有比你们大多少,我不过在这个行业里比你们先行了几年,甚至还没有走得多深。我只能说一点这些年我的经验和体会,有些东西书本是上没有的,却实实在在推动了一个人地成长。希望我的经验和思想可以让你们在将来的路上走地更快一些。 >###应该掌握的工具 >#####掌握文本处理的能力: >在开发过程中,对文本的处理和分析远比能想到的多。这些文本有可能是代码,有可能是数据,也有可能是日志。以下的一些文本处理工具,适用于各种场景: >-a) 正则表达式 >-b) 简单命令: sed, awk, cut,grep >-c) 交互处理: vim, emacs, excel >-d) 自定义逻辑: python,perl >#####趁手的编辑器: >在你没从更好的环境中尝到甜头之前,你永远不知道自己当前的工作是多么的低效。如果当初不是偶然间铁了心学Vim,我也许也是沉浸在VS或者Eclipse中怡然自得。根据实际的场景,选择合适的编辑器。在2013这样的工作环境中,Vim是比较好的选择。 >#####善用SCM: >SCM的好处,不仅在于高效地管理你的代码,更在于让你学习一个软件的发展及学习他人的工作。同时为了你的劳动成果和让别人也能学习你的工作,请规范地使用SCM。这是我要讲svn和git的原因。 >#####Google, github, stackoverflow: >#####编程语言: >在刚开始的几年,语言一定是你必须精通的东西。而且你至少要熟悉一门面向对象语言和脚本语言,而且要多多少少知道些设计模式。目前大部分语言还难脱这两者框架,你不一定写得很熟练,但是看代码的时候,不要让语言成为你理解逻辑的障碍。

使用一个工具,就要用到极致,压榨它所有可利用的价值,来节省自己的时间。使用工具,不要为工具所累:依赖工具,却忽视了它的实现原理。工具始终是工具,是人先有了巧妙地思维,才得以发挥死板工具的用途。如果未搞清楚自己想要什么,即使工具摆在你眼前,你也想不到该去用它。 ###关于工作 #####不留余力地改进工作效率: 机器能完成的事情,不要人工重复来做。即使写脚本费事,但也值得去写脚本去解决可以用脚本解决的事情。为什么优秀的程序员常在喝咖啡?因为他们已经写了自动化脚本,代替了普通人的埋头苦干。为什么不喝咖啡的程序员更可怕?因为他们不仅跑着自动化脚本,还拿别人喝咖啡的时候来写代码。 #####团队协作之外的单打独斗: 团队协作之外,你要具备独当一面的能力。要养成独立思考,独立解决问题的习惯。团队会流动,你也有可能会离开。当你孤身一人的时候,你应当依然可以毫无阻塞地完成全部的工作。有队可以依赖是好事,没队友也是自由自在。闲暇之时多学习。就似雨后缓缓织一张大网,被命运派来的飞虫不经意间就会落入在某个点上。 #####剖根揭底地发掘事实真相: 我们要学习,那就去学最好的东西。我们要追究原因,那就去追逐更深层的东西。程序的世界,远没有人类世界那么复杂。人类那些解不开的谜团,想不开的哲学,是因为先有宇宙后有人。而程序的世界里,是人类发明了计算机,对于我们来讲大部分工作都还是在学习这个已知的计算机世界。溯本求源,抽丝拨茧,没有解不开的迷团,只缺迎难而上的勇气。 #####对代码质量的不停追求: 文档会过时,人会遗忘,但代码永远不会说谎,写下的代码最后会成为唯一的真理。什么代码才是好的代码,我不敢说。然而在我心中却一直有个美好的比方。纸上的代码就像故事般娓娓道来。故事思路行云流水,条理清晰;言语朴实,意义深远;场面宏大,疏而不漏;一语言毕,无多余赘述,也不需额外雕琢。读者安静听完,始末了然于胸。这,未必没有可能。大道之简,殊途同归,错误的方式千奇百怪,但正确的想法却往往相似,能引发共鸣。写出的代码不仅是为了更高的执行效率,更是为了更好的可读性。 #####不懂英语的程序员不是好程序员: 不得不承认,目前国内技术落后国外很多,人心也浮躁许多。大多最准确,最前沿的往往来自国外。也许今天中文资料已经满足了你,但等有一天你资深了,等你站在行业最前沿时,已经没有中文资料供你参考了。那时再开始阅读外文时,可能已经太晚。 读英文资料不是件轻松的活,但我依然强烈建议你们坚持去做。你们的英语应该比我要好,至少没在考研的时候败在英语上。我在工作后受氛围影响,才开始阅读大量的英文资料。这些年看过的书应该是英文多于中文,更不用说网页上的资料及官方文档。读英文的时候,速度会比看中文慢,理解上也可能会少,然而久了,自然会进步。等你习惯了英文的阅读,你的世界会比现在大很多。 #####看淡批评,看重意见: 我相信人绝大多数是善良的,尤其是人畜无害的程序员。然而善良,并不意味着脾气好。工作的路上,你可能会挨很多的骂,有善意的,无意的,也会有恶意的。不管别人对或不对,你多多少少要在自身上反思挨骂的原因。以后的路有很长要走,在骂声中吸取教训,而不能滋生仇怨。 这同时也提醒我们更加珍惜身边那些不骂你的人:他可能是词语匮乏,可能是懒得骂你,也有可能是不舍得骂你。比如说我。 ###关于你我 工作这些年经历的这些离离散散,我似乎早也已经习惯,说句“再见”容易,兑现却难。我不会忘记过去的一年,而我想我知道我以后也不会惦记你们太久,所以就无妨让情绪在离别之前多伤感几分。昨日时光荏苒,今日的离别依依,明日终是物是人非。 说了这么多话,请原谅我在工作上还把你们当作未经世面的孩子。我们都还有很长的路要走。希望有缘还会再相见,相见依然能如当初。 珍重

以上邮件作者主页为http://hanxueluo.github.io/