其他

棣琦:我是怎么从口译转变为爱写代码的程序媛的?

2018-03-29 异步 Linux中国

棣琦(本名张萌萌),曾梦想成为一名高级口译,却阴差阳错成了一个爱写代码的程序员。在 IT 江湖升级打怪的过程中,为了不断提高自己的技能,看书是少不了的;而要想成为高级玩家,看英文书自然也是必须。她说:“一个很偶然的机会,我接触到了《Linux 二进制分析》的英文版。第一遍翻看时略显吃力,毕竟书中讲述的许多概念都是作者的原创,网上几无相关资料。但是这些稀缺的内容对于深入理解二进制分析却非常重要,译者由此尝到了知识的甜头。本着“独乐乐不如众乐乐”和“知识分享”的目的,《Linux 二进制分析》的翻译之路就这样顺理成章地开始了。”


异步社区:请向异步社区的读者介绍一下自己? 

棣琦:大家好,我是棣琦,是《Linux 二进制分析》的译者。其实我一直以来的愿望是做高级口译的,可是大学选专业的时候,因为某些原因选了计算机,于是就在写代码的道路上越走越远了~哈哈~可其实人生的选择是很多的,我可以基于我自己本身的英语基础,翻译些计算机专业相关的英文文献,无论是对我自己而言,还是对大家而言,是一件双赢的事,何乐而不为呢。

异步社区:您在百度工作多久了?正在做哪些工作和项目?

棣琦:我其实很早就加入百度了,实习了两年,正式工作一年半了。这是一家我实习跳槽很多次之后最终选择正式工作的地方。主要是 Java 开发,目前做的项目与物联网技术相关。

异步社区:工作中要想成为高级玩家,有哪些必须经历的路要走?

棣琦:我个人觉得很重要的有三点。第一是经验的积累,第二是要保持开发的心态,随时给自己充电,第三就是多思考。我其实也算个职场新人,在工作中,请教过一些前辈,我发现前辈们给的建议有一个共性,那就是先积累,将掌握的东西结构化,形成自己的东西。在积累、整理的过程中,知其然、知其所以然,就慢慢内化成自己的东西了。还有就是现在知识更新这么快,一定要多学习吧。再就是,多思考,脑子越用越灵,哈哈~我目前还不是高级玩家,我也还有很长的路要走,但是每个人都一定要有属于自己的大方向。

异步社区:你是怎么关注到《Linux 二进制分析》这本书的?翻译过程中遇到过哪些难题?

棣琦:我曾经是“Linux 中国”开源社区的翻译志愿者,也做过 “Linux 中国”的新闻编辑,是 “Linux 中国”的创始人王兴宇大哥觉得我技术背景不错,翻译的文章质量还行,就跟我聊了一下,问我有没有翻译的兴趣。翻译一本书,刚好是我 2016 年定的目标,真的是机缘巧合,我就特别珍惜这个机会。我自己不是安全技术领域的,刚开始有一点畏惧感,会自我怀疑,我可以么,不过不挑战一下怎么知道呢~哈哈~我非常喜欢挑战和突破。试译了两章,发给主编看一下,觉得还可以,那就继续翻译下去了。

翻译过程中遇到的难题,那真是一言难尽。在正式开始这本书的翻译之前,我做了很多的准备工作,恶补了一些反编译相关的一些基础知识,《程序员的自我修养》这本书翻了几遍,网上也查了非常多的资料。万事开头难吧,一旦开始了,感觉也还好。其实前面两章是最艰辛的,一方面对一些术语,都要查很多的资料一一确认,另一方面还要把原书中作者的代码去跑一下看看有没有 bug,并且在最开始翻译时,还没有磨炼出自己的风格,所以行文有点晦涩,读者读到第三章应该会觉得顺畅很多。有时候原作者的表达不是太清楚,有一些偏口语化的句子,我想很久都没有 get 到点,也很苦恼~还有就是,我在翻译这本书的时候,刚刚正式步入职场,有时候时间安排不是很合理,工作时间我会安心工作,所以翻译的事情我都放到晚上进行了,经常会到凌晨一两点。所以我感觉在翻译这本书的那一年,老了三岁的样子,哈哈~~这些都是翻译过程中碰到的一些问题,不过遇到坎儿不怕,总会有办法越过去的,就是这么乐观。

异步社区:作为《Linux 二进制分析》一书的译者,针对不同读者的学习需求,说说您对学习本书的看法?

棣琦:其实本书的实操性还挺强的。要学习这本书,首先要对链接、装载和库等这些基本概念有一定了解,要有一定的编码基础,当然这都不是最重要的,最重要的是兴趣。有兴趣了,就会想跟着书中作者的思路去实践一下书里面的代码,比如怎么将一段代码注入到程序里面,如何去追踪一个进程,书上的内容只是一个引子,通过书中提到的一些东西,读者自己去进行更深入的研究和探讨,才是本书真正的价值所在。比如,原书的作者自己写了一个 ftrace,用于追踪可执行文件的函数调用,那有兴趣的读者也可以自己造个轮子去进行动态分析,很容易就入门了。我这里也不是鼓励大家造轮子,如果有现成的轮子可以用当然很好,只是举个例子。

异步社区:对于行业内不断出现的技术演变和新技术,应抱有怎样的态度?从目前形势来看,行业预期走向会是什么样?

棣琦:我个人认为,就保持一个开放的心态吧,总会有不断出现的技术演变和新技术。所谓这个世界唯一不变的就是变化。embrace the change. 但其实总会有不变的东西,这个不变的东西,才是核心的竞争力。你的学习能力,你思考问题的方式,这都是别人拿不走的。当然啦,人要不断进行认知升级。会有很多人反馈,说在这样的时代,特别容易焦虑,尤其是中年危机这种偶尔蹦出来的新闻,让大家都惶惶不安。但其实没有必要焦虑,只要有自己坚定的方向,keep moving on。

我个人在 IT 行业的资历尚浅,还不敢妄言行业的形势和走向。不过 AI 是目前的一个潮流,是大势所趋,我目前在做的项目也跟 AI 相关。我个人对 AI 的发展持非常乐观的心态,也希望这个趋势会一直持续下去,更希望 AI 能够对人类的生活带来福祉。

异步社区:对于软件逆向工程这门手艺来说,您认为最难的是什么?

棣琦:对我来说最难的是克服技术畏惧感。可能每个人的畏惧点不一样,说到难,无非是因为畏惧感。但是你要知道,技术畏惧感或者任何的畏惧感,都会成为以后发展的瓶颈,所以要去克服。对于任何事情而言,一旦动手去做了,遇到问题就去网上搜,或者向同行的前辈请教,总会有办法搞定的。

异步社区:Linux 下的软件为什么很多需要编译,而不是直接发布二进制代码?

棣琦:因为不同的 Linux 发行版乃至不同的版本库不同,而应用程序也往往会依赖很多别的库,发布源码比较省事。并且 Linux下也有使用源码编译然后使用这个传统,这就让人比较放心,不用担心你编译好的二进制代码里面是不是注入了什么恶意代码。

异步社区:您曾说:“要想成为一名真正的黑客,不仅要会编写程序,还需要解析程序,对已有的二进制文件进行反编译,洞悉程序的工作原理”为什么会有这样的想法?

棣琦:在我看来,这个是作为黑客的一个基本素质吧,知其然知其所以然,才能游刃有余得做你想做的事情啊,嘿嘿,就是你想做的事情,这里不是鼓励大家去黑人家的网站~其实要成为安全领域的专家,在做安全防攻时,你懂一些底层的东西,定位问题会快很多,很容易就能找到切入点。

异步社区:最后,对于刚刚步入 Linux 领域的新人,有一些什么样的建议和经验分享?

棣琦:建议多在 “Linux 中国”开源社区等开源社区逛逛,多多参与开源社区的活动吧~这里有很多的前辈,可以给你很多指导。

《Linux 二进制分析》【美】Ryan O'Neill(瑞安 奥尼尔)

本书是目前为止唯一一本剖析 Linux ELF 工作机制的图书,本书讲解了 Linux ELF 二进制格式的内部工作机制,用于检测和分析 UNIX 病毒的技术,处理二进制加固和软件防篡改的方法,对可执行文件和进程内存打补丁,绕过恶意软件中使用的防调试技术,执行高级的二进制取证分析,使用 C 语言来设计 ELF 相关的工具,以及在内存上运行 ptrace。


点击“阅读原文”可以最惠价格购买此书

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存