从工具使用的痛苦说开去

标签: Career pipeline Spark 工具 痛苦 | 发表时间:2016-10-25 04:16 | 作者:四火
分享到:
出处:http://www.raychase.net

从工具使用的痛苦说开去

是因为最近团队里的数据分析师(data analyst)向我抱怨,为了分析数据,要跑job,要执行pipeline,要用Spark来算结果,但是期间遇到各种问题,虽然我们一起研究问题的解决方法,但是依然非常耗时而且令人沮丧。这些问题大多并非数据本身的问题,而是工程问题。换言之,我认为数据分析师的价值在于数据思维,他们有我们软件工程师不具备的数据敏感性,他们能从海量的数据中获得有价值的信息——但是如今他们却陷入了因为工具问题而导致才华无法施展的境地,确实令人叹息。而工具的问题,正是应该由软件工程师来解决的。

上班同车的同事Kai和我说,现在和几年前不同的是,“全民dev化”了。除了上面说的数据分析师要解决工具的工程问题以外,还有data scientist,business intelligence engineer,甚至program manager,以及TPM,都在不得已地处理并努力解决各种各样原本应该由SDE(软件开发工程师)去思考和处理的问题。个中原因很简单,技术发展太快,快到维护的工作已经跟不上了。虽然有各种各样的工具,拥有巨大的能量,解决以往根本不敢想象的数据规模下的问题,可以不可思议地提高效率,创建纷繁多样的数据分析结果,但是似乎很多人都忽略了一件事。没有问题的时候,如同平静的湖面波光粼粼,光彩动人。但是一旦出现了许多问题,湖水马上翻脸,波涛汹涌,这些新技术和新工具往往带来了巨大的维护成本。

在许多团队以大数据为荣的时候,用大数据招人的时候,很少有团队去思考这样一个事情:真的需要那么大的数据规模吗?

我看到有很多问题的论证和尝试,是并不需要用海量的数据和巨大的计算资源的。但是似乎我们的思考已经带着迂腐而沉重的惯性,迈开了步子,跑起来,就再也停不下来了。举个例子,用sample data来验证数据的正确性。既然是sample data,完全可以用合适的ETL去攫取少量但是符合要求的数据,然后来完成验证。有时候为了控制sample的数据规模,这个ETL需要更多的思考和斟酌才能完成。但是人是有惰性的,有时候拿到一个数据集合,不做filtering,不管三七二十一一股脑儿扔进去,拿巨量的EMR计算资源去算结果,也能得到结果。但是这就是强大的工具带来的人在思维上的懒惰。我们看到计算和存储成本不断上涨,却很少有人从这个角度思考问题。

只有等这个问题问完了之后,我们才值得继续去问下一个问题:到底谁来为这样的工具问题买单?

我的观点是,虽然现在有那么多人都在承受它带来的后果,但是只有软件工程师才应该以之为耻。你们引入了这个工具,你们就应该把它负责到底。我们不要看到data analyst的才华消耗在无比沮丧的异常堆栈上面,data scientist因为各种运行时故障跑一个简单data report生成折腾了一个星期。他们的才华不应该被浪费在这上面。无论是公司层面还是团队层面,SDE应该站出来解决这些问题,提供一些足够好用的工具。如果没有资源和统筹来做这件事情,大家都只能痛苦,跟着效率低下。

于是说到痛苦,于我以及我们团队来说,最大的痛苦在于不得不去打交道的Oracle。Data warehouse,既是系统的上游数据来源,也是中间数据存放的其中一个媒介,还是下有数据的出口,因此耦合紧密。而其中的数据库Oracle又频出问题。整个公司都在努力 去Oracle,但是这却并不是那么容易做到的。

以上只是一些冷静下来的思考而已。

更多的,留在记忆中的,是那些思考之前的痛苦的回忆。

但是这些年的工作,已经让我渐渐麻木或者说不会再少见多怪情绪激动了。

我记得刚工作的时候,发现一大痛苦在于要读懂项目里的六十万行代码。那个时候对于设计、骨架、模式等等缺乏认知,这六十万行代码映射到眼睛里面并没有明显的主次轻重之分,于是读代码变得痛不欲生。

接着则是出差,开局,要熬夜,要解决各种各样的线上问题、网络问题、部署问题。这不光是心理上的,还有身体上的疲惫。我记得在当时联通“沃”项目联调运营,对外展示前,突然网络出现重大问题,当时目睹某现场总工程师急的眼泪都要下来了,最后说出一句心凉的“我们只能烧高香了”。

做过一个前端播放器的整合,一大堆兼容性问题,好多个日夜的折腾。好好坏坏,也缺少专家指导,很多问题都是靠枯燥而无奈的“试错”来“解决”的。于是问题规避开了,但是原因却不很清楚。

第一次 性能优化期间,则是为了达到要求的指标。如果是一个新项目,有好多种性能要求下的设计方法。但是困难的地方在于,当我们开始着手并深入性能问题的时候,系统已经基本完成了,架构上的大动作基本不可能实施。

后来进入外企,开始面对如山的英文文档,难受得胃疼。

开会面对一帮印度人,口音听起来仿佛和外星人交流,只觉得云里雾里,不知所云。当时我肯定没有想到,如今几乎天天跟各种乱七八糟口音的人打交道。

后来则是一些恼火的线上问题,甚至一些严重的问题,棘手且出现在半夜,往往 背上一凉,睡意全无。

……

现在已经淡定许多了。

我曾经和同事开玩笑,软件工程师成长的过程,就是一个被各种问题痛苦折磨并且自我解脱升华的过程。技术上的解脱是次要的,心理上的升华才是收获。在觉得山重水复疑无路的时候,往往悲观消极,自我怀疑。在解决问题的时候,又有一种巨大的解脱感而畅快无比。

有人说程序员是一个最波澜不惊的职业。对着电脑工作,然后拿钱回家。那么那个人一定不懂这个职业。

热爱,才有激烈的喜怒哀乐。

其实有时候也想心如止水,但是人的个性本就如此,不易改变。

于是在各种各样问题不断的折磨中蜕变,也不断成长。

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

分享到:

相关 [工具] 推荐:

工具小结

- yboren - 博客园-welfear
文档名称:工具小结(Tools Tips) 文档维护:Xuefeng Chang(welfear@gmail.com @welfear) 文档日期:2010.10.17 find. -name "*.java" | sed 's/.*\///' | \ sort | uniq -c | grep -v "^ *1 " | sort -r 短小精干.

Windows工具集

- - 互联网 - ITeye博客
参考: https://community.rapid7.com/servlet/JiveServlet/downloadBody/2881-102-2-6389/Mitigating%20Service%20Account%20Credential%20Theft%20on%20Windows.pdf.

Geek 漫画:工具

- Yaping - 煎蛋
原作 MANU,由 Oicebot 汉化. 男:我说,与其开车这么大老远过来拍照,我们不如把夏天那张照片在PS里用“色调”选项来改改……. Geek Sexy:旋转木马赛马大赛[v]. 漫画:数码Geek 乱战,他们眼中的对方. Geek Sexy:Cosplay 视频特效大Fight. Geek Sexy:哭泣的PC玩家.

手机:非工具

- 達 - 《商业价值》杂志
手机正在改变世界,因为它正在改变人类本身. 如果有外星人真的在观察人类,他们或许现在正在写下这样的记录:“这个物种正在经历一个剧烈的习性与形态变革期. 其过去100年来的科技爆发已经开始把这个物种带入‘体外进化’阶段——半导体技术正在让这群碳基生命体融合硅基基因,而这种融合已经从被称作‘手机’的沟通设备的‘器官化’开始了.

Linux 常用工具

- - SSORC.twSSORC.tw
http://www.cyberciti.biz/open-source/best-terminal-applications-for-linux-unix-macosx/ 它整理出 15 工具. siege – 壓力測試 (我好像用過一次). ngrep – 好用的封包過濾,類似 tcpdump.

mysql监测工具

- - DBA Blog
mysql监测工具tuning-primer.sh. mysql的运算情况,我们可以一步一步的去查看,分析. 这样需要一定的时间,今天推荐给大家一个不错的脚本tuning-primer.sh,可以帮助我们去查看一下msyql的运行情况,产生报告和给出一些建议,我们可以根据这些建议,结合mysql服务器的实际情况,对mysql进行优化.

gdb调试工具

- - CSDN博客系统运维推荐文章
查看帮助一是man 命令,二是进入 www.gnu.org,找到gdb的帮助文档(更详细). gcc -Wall -g main.c -o main,只有这样才能产生调试信息,包括core的调试信息.     run(r)  运行,执行到断点,重新用r,表示重新开始执行.     list(l)  列出源代码,l 2,l main,l 2,16(数字表示行数).

30款基本UX工具 - 思维流程工具 & 原型工具

- - CSDN博客Web前端推荐文章
来源: GBin1.com. 现在的开发人员在建造网站时,注重的是布局和技术特性,但是往往忽略了更重要的一点,那就是用户体验. 如 果用户在使用的时候,不能简单清楚的知道该要如何操作,那么他们一定会选择另一个操作简单,浅显易懂的网站或者应用,绝不会在回到这个复杂难解的应用上 来. 一个令人舒服的用户体验,从另一个方面而言,可以让你的网站变得讨喜且令人印象深刻,这样一来,就比其他同类网站赢了一大截.

Java开源建站工具

- Amom - 阮一峰的网络日志
美国程序员Jon Scott Stevens,公布了他的创业公司所使用的开发工具清单. 他的语言平台是Java,开发项目是一个网站(还未上线). 所用到的工具都是开源的,可以免费得到. 在目前的创业者之中,用Java作为网站开发语言的人似乎很少. 这当然不是没有原因的,Java看上去确实不像是最便捷的网站开发工具,给人的感觉是用起来麻烦又费事.

Gmail、Google Reader工具合集

- 三心 - 天涯海阁-Web2.0Share
这些工具本人没有全部试过,所以不排除有些工具可能已经失效:). GCount - 新邮件通知,仅能运行于Mac OSX. gDisk - 将Gmail变为网络存储空间,仅能运行于Mac OSX. gFeeder - 小型的Feed阅读器. GetMail - 将邮件从Hotmail转移到Gmail.