歡迎光臨
每天分享高質量文章

棣琦:我是怎麼從口譯轉變為愛寫程式碼的程式媛的?

棣琦(本名張萌萌),曾夢想成為一名高階口譯,卻陰差陽錯成了一個愛寫程式碼的程式員。在 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。


點選“閱讀原文”可以最惠價格購買此書

贊(0)

分享創造快樂