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

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

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

分享創造快樂