程序员的 “坏” 习惯:试一试

原创 2017年07月31日 21:31:24

有时,碰到一些程序员会问:“我以前是做安卓的,现在想试着学下后端服务开发,觉得怎样?”。我一下就会卡住,不知该如何回答好。学习本是好事,但前面加个 “试着” 似乎感觉就不太好了。

好的出发点

“试一试” 的初衷本来就该是好的,它表达了一种好奇心,和尝试走出舒适区的勇气。

程序员这个职业,会带来一些习惯,我们经常性的会去尝试一些东西,然后看看它是否如我们预期般工作。比如,程序员的一项日常工作之一就是 —— 调试程序。调试,就是这样一种需要不断去试的过程。

在刚工作不久,我正在做的一个项目是一个客户端程序,程序包括一个后台任务线程去批量处理一些任务,另外还有一个 UI 界面,一个前台线程等待后台任务线程的处理结果通知,实时地在界面上去刷新重绘任务处理进度。这个程序会时不时的出现一个 bug,前台的 UI 界面不时地就死在那了,任务处理进度再也不动了。

当时,我花了很长时间一直在抓这个 bug。用的方法就是调试技术,但因为这是一个机率性出现的 bug,一步步调试反而导致从来也没出现过,但真正运行起来就总是偶然出现,让人抓狂。在这样的单步调试中,我就是怀着一种期望凑巧能碰到的心态,做了很多无用功也没能解决真正的问题。

这里真正的问题是,我不知道其实是我对于线程间通信的知识上出现了认知性盲点。我习惯性的用调试去找 bug,这就是一种 “试一试” 的技术,你的初发点(找到 bug)是好的,过程也是很艰辛的,但最终结果却是无用功。

后来,那时我正在读一本有关线程编程的书,读到某个部分时,关于这个问题的根源就突然让我恍然大悟了,这个部分正好弥补了我缺失的知识点。而我习惯性的调试方法,虽然有一个好的出发点,但最严重的问题是,我不知道我在调试什么,我没能定义清楚我调试的终点到底是怎样的。

那时的我就是一个刚进入编程领域的小白,喜欢调试,在看上去很复杂的调试界面忙忙碌碌,感觉很专业,而收获的仅仅是对调试器的熟悉程度。而且自觉不自觉的还养成了这种 “试一试” 的 “坏” 习惯。

模糊的终点

“试一试” 的 “坏” 字之所以打了引号,就在于它的出发点是好的,但如果终点是模糊的,那就 “坏” 了。

近些年来,出现过几轮的技术热。比如,刚进入移动互联网时大热但如今已经回归常温的移动开发、曾经大热现在略有降温的云计算与大数据、目前还在升温阶段的人工智能与机器学习。那么,到底为什么你会想去尝试一种新技术?难道没有被技术潮流所裹挟吗?

好些年前,移动开发还在升温阶段时,我也无可避免的被这样一种潮流所裹挟过。我开始看一些关于 iOS 开发的书,从语言到工具。尝试学习一种新技术并不是坏事,即使是被技术潮流所裹挟,但问题出在,这次尝试的终点在哪里?我是想转型成为一名移动开发工程师么?还是说我有一个想法,需要开发一个 App 来达成?亦或我仅仅是想学习了解下移动开发是怎么回事,提升下技术的广度理解与视野。

然而以上皆不是,当时的尝试完全没想清楚终点在哪?后来热度下来后,也就慢慢遗忘了,浪费了一些时间和精力罢了。如今,人工智能与机器学习又热了起来,我又开始尝试学习了解起来,但这次我把尝试的终点定义得很清楚。我不是想转型成为一名机器学习算法工程师,也不是因为它很热所以被潮流所裹挟,这次尝试的终点就是想搞清楚关于人工智能与机器学习三件事:

  1. 它的原理与应用
  2. 它的前世今生
  3. 它如今已抵达的边界

搞清楚这三件事,不会让我成为机器学习的专家,但会提升我对于这个热门技术的判断力。

试一试,需要有更清晰的终点。关于终点,可以从三个方面来考虑:

收获结果
定义清楚尝试这件事,到底能收获怎样具体的结果。比如,考试,尝试的结果就是要通过。

体验过程
有时候结果并不确定,比如,创业,结果未必就能成功,那么这样的尝试难道就没有意义了吗?有的,因为创业的超低成功率,所以,收获过程多于结果。

验证猜想
这个部分程序员就很熟了,编程中的调试其实最重要的目的就是验证猜想。引入一种新技术或框架,验证 API 的调用结果或运行输出是否如你所想,即使最终否决了,也获得了判断的依据与知识。

试一试,是走出舒适区的一次行动,但也不要胡乱尝试,得大致有个方向和期待。

回到文章开头,尝试下后端开发,这是一个好的出发点,但还没有定义清楚你这次尝试的终点。


写点文字,画点画儿,记录成长瞬间。
微信公众号「瞬息之间」,既然遇见,不如一起成长。

版权声明:本文为博主原创文章,未经博主允许不得转载。

程序员的 “坏” 习惯:试一试

有时,碰到一些程序员会问:“我以前是做安卓的,现在想试着学下后端服务开发,觉得怎样?”。我一下就会卡住,不知该如何回答好。学习本是好事,但前面加个 “试着” 似乎感觉就不太好了。 好的出发点...
  • guxin_duyin
  • guxin_duyin
  • 2017年08月09日 18:24
  • 142

『高效程序员的45个习惯:敏捷开发修炼之道』读书笔记

这是我近些日子的读书笔记。 电子书见:http://www.amazon.cn/mn/detailApp?asin=B00ALPRKJ8&tag=baiduiclickcn-23&ref=p...
  • sharetop
  • sharetop
  • 2014年10月20日 15:46
  • 1150

学习笔记之《高效程序员的45个习惯》

有本关于敏捷开发方面的书非常不错《高效程序员的45个习惯-敏捷开发修炼之道》,Venkat Subramaniam和Andy Hunt著,该书简短、易读、精炼、深入,深刻且实用。对于想要采用敏捷方法的...
  • Jerry_1126
  • Jerry_1126
  • 2015年04月25日 21:29
  • 2272

究竟为什么程序员最好养成写博客的习惯?

在学校里,有“文科生”和“理科生”的区分,学习内容不同,思维方式也有差异。我是一名理科生,大学里我的专业是计算机科学,毕业后我的工作是软件工程师。在这个过程中,我发现文理科之间的鸿沟始终无法弥合。我见...
  • u019524703
  • u019524703
  • 2016年01月04日 10:52
  • 679

读书笔记之《高效程序员的45个习惯----敏捷开发之道》 摘录

读书笔记之《高效程序员的45个习惯----敏捷开发之道》摘录        此次原创的意思是指这个文章中的内容是由笔者从《高效程序员的45个习惯----敏捷开发之道》书中摘录,而不是别人摘录的,但是...
  • eric_XJJ
  • eric_XJJ
  • 2013年03月01日 23:14
  • 1367

程序员偷偷深爱的9个不良编程习惯

下面这9个编码习惯,虽然在编程规则中是被驳斥的,但我们很多人就是会不由自主地使用它们。我们曾经都做过这样的事情:当妈妈不注意的时候,偷偷地吃糖果零食,然后导致有了蛀牙。同样的,我们都违背过一些编程的基...
  • tTU1EvLDeLFq5btqiK
  • tTU1EvLDeLFq5btqiK
  • 2017年12月11日 00:00
  • 280

作为一个程序员我为什么要写博客?

作为一个程序员我为什么要写博客?从2012-05-22的第一篇博文,到现在累计原创:523篇,转载:182篇,译文:8篇,转载的基本不会占用多少时间,我们来计算一下原创的+译文;这里假设平均写一篇博文...
  • testcs_dn
  • testcs_dn
  • 2016年04月24日 14:08
  • 15013

优秀程序员的良好的学习方式,特征,生活和学习的习惯

优秀程序员的良好的学习方式,特征,生活和学习的习惯
  • txl16211
  • txl16211
  • 2015年01月07日 19:50
  • 1316

[读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特

虽然不记得阅读本书用了多久,但是整理本书的读书笔记用了两个小时的时间,因为本书的大部分内容对于笔者来说都是新知识,很难进行归纳总结本书所讲的是程序员应具有的工作态度和在团队中作为开发者和领导者具备的各...
  • apple890111
  • apple890111
  • 2015年08月19日 01:30
  • 1034

Python编程:从入门到实践的动手试一试答案(第五章)

#5-1 条件测试 car = 'subaru' print("Is car == 'subaru'? I predict True.") if car == 'subaru': print(...
  • weixin_39449570
  • weixin_39449570
  • 2017年10月27日 19:00
  • 294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序员的 “坏” 习惯:试一试
举报原因:
原因补充:

(最多只允许输入30个字)