MyException - 我的异常网
当前位置:我的异常网» 综合 » 软件工程师的 “坏” 习惯:试一试

软件工程师的 “坏” 习惯:试一试

www.MyException.Cn  网友分享于:2013-08-22  浏览:0次
程序员的 “坏” 习惯:试一试

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

好的出发点

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

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

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

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

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

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

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

模糊的终点

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

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

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

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

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

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

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

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

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

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

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

...

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


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

文章评论

程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
那些争议最大的编程观点
那些争议最大的编程观点
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
我的丈夫是个程序员
我的丈夫是个程序员
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
10个调试和排错的小建议
10个调试和排错的小建议
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
漫画:程序员的工作
漫画:程序员的工作
为什么程序员都是夜猫子
为什么程序员都是夜猫子
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
鲜为人知的编程真相
鲜为人知的编程真相
编程语言是女人
编程语言是女人
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员都该阅读的书
程序员都该阅读的书
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
总结2014中国互联网十大段子
总结2014中国互联网十大段子
一个程序员的时间管理
一个程序员的时间管理
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
 程序员的样子
程序员的样子
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
老程序员的下场
老程序员的下场
每天工作4小时的程序员
每天工作4小时的程序员
旅行,写作,编程
旅行,写作,编程
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
代码女神横空出世
代码女神横空出世
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
中美印日四国程序员比较
中美印日四国程序员比较
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
如何成为一名黑客
如何成为一名黑客
我是如何打败拖延症的
我是如何打败拖延症的
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员应该关注的一些事儿
程序员应该关注的一些事儿
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有