岑文初:做个简单的程序员

来源:岑文初

下班前一路和震子走,一路还在吐槽,事情倒真的非常小,但心里却真的替很多跟着我们这批“老骨头”做事的新人担心,所以想说一点自己的真心话:做个coder其实很简单。

实在人说实在话,衡量一个负责业务系统代码质量最容易量化的就是:

1、新增,删除,修改一个功能和业务要动多少部分的代码?多少代码是重复或者类似的修改?

2、排查问题的时候是否可以用排除法“卸载”模块,按需测试?

隔离,重用,主从逻辑区分。(前两者不多说,最后一个很容易被忽视,例如做一个合法的公民从来不会告诉你应该做什么,而会告诉你不要做什么,而违反上面第一条的很多时候不是代码不复用,而是主从反置,最后使得主流程的修改不断的在分支流程上去做判断)

额,至此为止,我可以很负责的说,你所学的大部分模式就是用来干这个的,而你只要奔着这个目标去做事,不仅能够学会那些书上的模式,而且还能够按需裁剪,因为雨天撑伞是尝试,风向不同伞要倾斜是技巧。

simple

接着你就开始因为做业务不断的接触各种内容:文件,IO,Load,压缩算法,tcp,http,缓存,db,数据流,一致性…,好像很杂,是的因为我们 在做业务,我们在积累我们宝贵的“经验”,往往这个时候是两种程序员分叉的开始,都是做业务,有些关注完成任务,有些关注细节,这些细节就是我所说的上面 那些那些杂物。

接着,那些关注细节的人得到了更多的空间和机会,接触到更多的问题,面对效率,可用性,一致性等问题在设计上开始摆脱最初学到的隔离,重用,而开始学会权 衡(业务的取舍,所谓的优雅和长久的取舍),开始学会用他经历过的“杂学”来改变程序设计无法改变的问题,最后经历过了一系列痛苦的反复,最后留下了更多 的所谓的“感觉”。

而当经历过这一切的时候,再去拓展更多的领域,领会不同语言和场景的差异和特征。这时候会发现这样的人学新东西非常快,原因两点:1.任何程序的载体就是 前面说的“杂学”(最后归一无非就是二进制流及一些协议,算法和硬件)。2.语言的融合和借鉴早已深入各种语言内部 (java,python,js,objective-c,c#等等),因为语言就是用来利用“资源”表达思维的方式。

好了,其实我想说,做个程序员很简单,而每一个带兄弟的人要为兄弟成长负责不是在晋升的时候拉票,不是在饭桌上灌酒,应该是告诉他们我们走过的路。

 

后续

前两天,性能测试的一个同学旺旺我:放翁,我压 jetty 上的一个应用,加大了并发用户,dump 出来还是16个jetty的io线程,是不是我配置的有问题?配置截图给我看了一下,线程池配的不小。我说,一个你把当前应用去掉,用一个模拟的简单应用放在上面,然后调整模拟应用的响应时间然后压压看,线程会不会变化。结果变化了,然后知道了。上一个帖子看起来我象是行为论者,只要能干出活来,就是可以成长,其实我少说了一点:“天资”。

记得神相过去会常常和我聊关于团队内部人员将来成长的看法,有些人我就很直白的和他说:“天资”不行!他总是会笑笑摇摇头。其实我所谓的“天资”,就是对事情的敏感性,简单来说任何一个人最早做压力测试看到的都是各种数据表象,动手是初始学习最基本最必要的,但当有大量的结果展示在面前的时候,就需要更多的去考虑数据背后的内容,而且你会发现,往往那些内容在不同场景下是不同的,就好比以前说了一句废话:性能瓶颈是会移动的,优化只是让一个漏斗变成一个管子。”天资“不是一天养成的,但是错过了培养“天资”的岁月,那么只能接受被生活赶着走的现实了。

因此当你正在经历,幸福的享受着经历,不要看着比你老三五年的人幸福的享受着“Leader”的生活,因为他们已经经过了这个阶段,他们不能回头,只能接受自己过去的积累给自己的未来带来的“好”或者“不好”。

 

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部