瞎忙的新手

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

最近利用业余时间给朋友集成一台特殊用途服务器,专用板卡和驱动程序由第三方提供,我的任务是把软硬件集成起来,对上层软件提供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,简单又安全。

后话

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,062评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • 我想为你唱支歌,姑娘 夜色美好,如你一般模样 你在那个城市过得好么,姑娘 会不会有人抚慰你的忧伤 我过得挺不错的,...
    知亦不知阅读 195评论 0 0
  • 1.在模块中定义常量: 在模块中定义变量需要在当前模块中的Conf文件夹下穿件config,php 下 定义常量...
    起个名字太费劲阅读 187评论 0 0
  • 如若,生命的历程,用一本书来形容,那么,在我的人生书本里,用波澜不惊来形容,最为恰当。 闲暇时,我时常慵懒一隅,心...
    一把纸伞碎江南阅读 424评论 2 5