瞎忙的新手

作者: ruben肖三渔 | 来源:发表于2016-10-24 17:22 被阅读273次

和直觉相反,新手的大部分时间花在外围活动上,真正用来掌握核心业务的时间反倒不多

最近利用业余时间给朋友集成一台特殊用途服务器,专用板卡和驱动程序由第三方提供,我的任务是把软硬件集成起来,对上层软件提供API和样例代码。大约写了100行JAVA代码,配置脚本加起来20行不到,结果前前后后花掉整整一周的下班时间。

回顾整个工作过程,真正和业务相关的工作差不多3个小时,非常顺利。其实业务本身有一定专业深度,当年入门时仅仅看各种英文规范就花掉两个月。朋友自己有非常熟练的系统集成工程师,找我操刀完全是因为业务背景的特殊性。因为有10多年没碰过该领域了,这3个小时还包括脑补该领域的最新标准,以及相关工具的使用。

大部分时间花在驯服工作环境上。实在没什么技术含量,花掉这么多时间,完全是因为不熟练。我平时工作在一个有严格配置管理的环境里面,硬件到软件,操作系统到工具链,甚至编辑器都不会有任何意外。换句话说,在驯服环境方面,我是一个新手。好在给朋友估算进度的时候,预留了处理意外的时间。

Robert Martin有一本《Clean Code》,大部分内容是老生常谈,但是开场白里面引用的那个实验给人印象深刻。实验用屏幕记录的方式分析程序员的工作过程,发现程序员用于敲代码的时间少之又少,80%的时间用在把屏幕滚来滚去阅读代码。

我也回放一下整个过程,看看时间都去哪儿了?

一、开发demo程序,20分钟

比计划顺利。

二、服务器开机,一个小时

成功上电,10分钟。朋友用的是工控机,屁股后面插电源的地方有个开关,通上电,摁下开关,机箱里面的LED灯亮了,但是没有声音,感叹现在的散热技术真发达,感情是风扇都省了。不对,显示器没检测到信号,反复进入休眠模式。幸好10几年前做学生的时候用过工控机,记得它前面板应该还有开关。找来钥匙,打开前面板,果然! 终于听到呼呼的风扇声了。

进入桌面,50分钟。朋友只发给我主机,没有显示器,凑巧我家有一台闲置的创维电视机,有VGA接口。可是天杀的创维,电视机把电脑画面的左边部分挪到屏幕外面去了,开机后登录框只能看到一半。一半就一半吧,输入密码,回车,咦!不对,怎么就进入guest模式了?朋友装的是ubuntu 14,我之前用过的最新的是ubuntu12,从来没有遇到过这个情况。倒腾了好半天,无意间拿鼠标点了一下登录框上面剩下的半个账户名称,然后再输入密码,进去了!ubuntu14这个莫名其妙的feature加上这个残废电视机,废掉我30分钟。进去以后倒是很顺利,调整了分辨率,显示器也工作正常了。

三、安装驱动程序,两个晚上

当头一棒。 参照手册拷贝驱动程序,修改配置文件,加载驱动程序,运行验证程序,乱码+闪退。厂商提供了一小段示范程序源代码,加上调试信息,重新编译运行,原来是设备打开失败。本能趋势去检查kernel日志,发现安装驱动的过程中报告签名验证失败,上网搜攻略,可以在驱动程序中关闭签名验证功能,幸好供应商提供了驱动程序源代码,大喜,遂按照攻略关闭签名验证,重新编译,加载。验证程序仍然报告设备无法打开。

难倒老师傅。无可奈何之下求助技术支持。技术支持提议用QQ的远程桌面帮我调试,于是先下载wine-QQ,100M的安装包,慢慢拖下来,末了发现安装不上去。一直怀疑即便安装了wine-QQ也未必能远程控制ubuntu的桌面,于是决定土法上马,每次执行完技术支持的指令,当即用手机QQ拍一张屏幕照片发过去确认。技术支持一开始怀疑是动态链接库的软链接的问题,估计他工作中经常遇到这种情况,可惜我这里软链接没有问题。后来重新编译安装驱动程序,重新拷贝动态链接库,重新建立软链接,...运行验证程序,还是报同样的错误。从晚上8点半一直折腾到10点半,无果。

得来全不费工夫。绝望之下咨询技术支持是否还用过其他远程桌面,想到TeamViewer。TeamViewer安装倒是很顺利,可是技术支持就是访问不了。深夜11点,觉得麻烦人家这么晚很不好意思,打算明天再战,不信邪的技术支持提出把我之前所做的工作全部清除掉,按照他的指令重新来一遍。死马当成活马医,重新做一遍,问题依旧。恍惚之间,脑洞小开,尝试用sudo运行测试程序,竟然不闪退了,直觉是成了,看来过去两个晚上的时间是折腾在这个sudo上了。但是厂商所配的测试程序输出乱码,无法进一步工作。尝试把厂商提供的样例代码存成utf-8,重新编译,乱码消失,确认是字符集的问题。可是其他程序没有源代码。
活干完了,突然想起下次可以让技术支持用qq访问我的windows电脑桌面,然后windows电脑通过vnc访问ubuntu的桌面。

四、 搞定乱码,两个晚上。

一团乱码。技术支持建议用远程终端访问服务器,他能够在putty这种远程终端程序中搞定乱码。作为码农,是可忍孰不可忍?先是去下载了一个看文件编码的工具,检查供应商提供样例代码源文件,了解到原始编码是 GB2312。然后上网搜各种治乱码方略,一部分是专治centos/redhat的,ubuntu用不上,另外一部分ubuntun能用,比如用locale-gen生成GB2312,然后通过修改环境变量启用新编码。尝试过GBK,GB18030,GB2312,始终不能完整解决问题,比如窗口程序能正常转码了,但是字符终端仍旧是乱码。

绝处逢生。因为不熟练,有一次直接把GNOME搞瘫痪了,那个lauchpad再也找不到可执行程序,电脑成了砖头,觉得天都快塌了。幸好后来找到一个开启终端程序的快捷键,在决定重新安装系统前一分钟和电脑重新打开了交流渠道。折腾了两个晚上,乱码还是没搞定,打算改为在windows上运行板卡的管理程序。第三天早上,终于发现了一个可以工作的乱码转换方案,luit,简单又安全。

后话

作为老鸟,时刻提醒自己遇到困难绕道走,始终聚焦在终极目标上,没有犯换个灯泡修梯子,最后升级到要给汽车加油这种低级错误。即便如此,浪费掉的时间还是触目惊心。

我相信换个工程领域也能观察到类似现象。新手看起来很忙,其实绝大部分时间浪费在不创造价值的外围活动上,有人把这叫做踩坑,成长的必经之路。对于个人来说是成长,对组织来说是不折不扣的浪费。这件事充分说明工程师的经验对一个组织有多宝贵。

本文后来根据伯乐在线的编辑更新,感谢站长化腐朽为神奇的编辑技巧

相关文章

  • 瞎忙的新手

    和直觉相反,新手的大部分时间花在外围活动上,真正用来掌握核心业务的时间反倒不多 最近利用业余时间给朋友集成一台特殊...

  • 瞎忙瞎忙

    刷朋友圈的时候,看到同事说,想放一个真正的假。 一个既不会在放假时还有没完没了的工作电话,也不会一放假就是没日没夜...

  • 最怕瞎忙

    忙不怕,最怕瞎忙;个人瞎忙害一人,领导瞎忙害全体。人虽牛,瞎忙必败家;国虽强,瞎忙必歇火。鲁迅所谓的“铁屋子”,恰...

  • 瞎忙瞎忙,也不全是瞎忙

    下午上了两节课,第三节带孩子做核酸检测,第四节自习课,把课堂不够认真的学生叫到办公室旁边单独辅导。 看着单独出来的...

  • 不要瞎忙,只有做对这几件事,就离成功不远了

    首先我们说说什么叫瞎忙,“瞎”是指没有目标,瞎忙就是胡乱的忙了一气,没有任何成果。 瞎忙 到底是...

  • 瞎忙

    一天到晚瞎忙,白天忙工厂,晚上有应酬,每年不断的投入,实体经济下一步应该怎么走 今天晚上又喝多了,但是还是保证先交...

  • 瞎忙

    摩曼涅槃 2010-3-18 23:29 都一星期了,每天晚上都熬夜加班。这两天还加班的没有时间回家,哎,昨天还是...

  • 瞎忙

    文/元浩阳 忙了一天,也不知在瞎忙些什么。若说不知道干了些什么事,那是瞎话,还没老到撂爪就忘的程度。事实是,不知道...

  • 瞎忙

    一个人按部就班 挥汗如雨 身心俱疲 绝对不是一个追梦者 只能是一个稀里糊涂的二货

  • 瞎忙

    近一段时间,工作比较忙,压力相对较大。对健康的关注程度有所下降,最近身体有明显不适,需要体检一下才好。抛开健康不说...

网友评论

    本文标题:瞎忙的新手

    本文链接:https://www.haomeiwen.com/subject/zpqluttx.html