本期對話嘉賓:@Loco
訪談編輯:芒果果
Loco 是目前我採訪過的最年輕的程式設計師,雖然才 22 歲,但從基本的軟硬體到產品設計到運營再到安全、風控、區塊鏈、邊緣計算等各種領域都有涉獵。
與他的對話可以明顯感覺到那種年輕人的張揚和「天才性格」中常見的「憤世嫉俗」,用一個爛俗的詞來說應該是有點“憤青”,會因為網上槓精的發言氣憤,甚至花幾天時間和對方講個清楚。
然而他卻將自己評價為“菜雞”、“鹹魚”,這與我的預料完全相反,似乎不應該是如此意氣風發的年輕人對自己的認知。但看到他對待工作的態度是那麼認真、細緻、慎重,讓我重新審視了 Loco,但我已經不敢輕易對他做出判斷和評價,只能從更深入的交流中慢慢了解這個年輕的程式設計師。
98 年的全乾工程師
Q:嘗試用兩種不同的方式介紹自己。
沒有兩種,只有一種。
對外統一介紹文案:98 年的前爬蟲工程師、現全乾工程師、BUG 體質攜帶者、NightTeam(夜幕團隊)成員。知識面貌似算非常廣的那種,從基本的軟硬體到產品設計到運營再到安全、風控、區塊鏈、邊緣計算等各種領域都有涉獵,擅長將多領域知識整合起來進行輸出。
Q:所在公司和職位?
目前在一家處在區塊鏈行業中的創業公司——冪度 Midu,一開始是作為爬蟲工程師入職的,不過現在公司業務調整,其他的啥活也都幹過一些,所以一般對外我已經自稱是全乾工程師了。
Q:什麼時候開始接觸程式設計的,契機是什麼?
小學玩 DNF 的時候看到別人開外掛全屏輪子刷怪很牛,然後就學著用易語言寫外掛自己玩了…
不過有一說一,易語言寫外掛之類的東西是真的簡單,很多東西別人都給你封裝好做成模組了的,小學生看著教程都能自己寫出來,而且玩過金山遊俠之類的記憶體操作工具的話自己加一些功能都可以。
不過現在想複製這種操作肯定是不行的了,以前安全行業裡做反外掛、反逆向這些方面人的還不多,現在如果不是一個專門的團隊天天對抗都沒法做。而且由於警企聯動加上法律完善,做這種事情還很容易被抓 hhhh。
Q:小學就嘗試寫外掛了,當時有沒有特別自豪的感覺?這算是興趣的啟蒙嗎?
好像當時沒有特別自豪,因為主要是別人的封裝的好,心裡有 x 數 hhh。興趣的啟蒙可能更早吧,只不過不是程式設計相關的而已,在學寫外掛之前就已經有過研究 windows、bios 各種功能、嘗試寫指令碼實現一些效果的經歷了。
Q:掌握的技術棧?目前主要使用的程式語言是?
技術棧比較廣泛,平時喜歡折騰些東西,加上之前做寫爬蟲的時候反爬對抗搞得也很多,所以基本上啥都會接觸到,一個人從產品設計到出 Web+APP+ 桌面端的成品再順帶把運維、CI/CD 之類的全做了都沒問題…目前主要用 Python 和 Go,偶爾用用 Javascript(寫前端)和 Lua(寫 openresty、kong 的外掛)。
Q:做爬蟲與其他開發崗位有什麼不同麼?
做爬蟲這種逆向開發崗位的人通常思考問題的方式要與做正向開發的完全不同,如果你不懂得逆向思維的話你會很累。
而且做爬蟲會用到很多不同領域的知識點,如果知識面不夠廣,在碰到一些難搞的東西時你可能都想不到解決方案。當然這方面目前方法論也挺多的了,主流的一些操作一般都能找到對應的、統一的方法來解決。但是,總會有些能讓你感到匪夷所思的東西,這時候如果你能想到一些騷操作的話很可能就是降維打擊了。
Q:爬蟲現在很火,也有很多人想轉行做爬蟲,對此你有什麼看法?
我不建議轉行做爬蟲,特別是不懂技術的人和思維方式已經固定死了的人。實在有興趣最好先學一段時間試試,如果學習效果可以,也能解決一些有難度的問題再說。
Q:您在產品設計、安全、風控、區塊鏈這些領域都有涉獵,那麼從個人的角度來說最得心應手的是哪部分?
最得心應手的應該是大局觀和思維方式?畢竟在知識面廣了之後很多東西其實是可以直接想到的。
Q:目前接觸的技術層面比較多,以後會專注哪一方面?有什麼規劃嗎?
目前沒有專注某一方面的打算,因為比較傾向於給自己幹活,專注某一方面在這種情況下不太合適。
Q:工作中最常使用的幾個工具是什麼?好用的外掛推薦?
最常使用的就Jetbrains全家桶了吧,還有就是Xshell,爬蟲方面的一些工具之前寫在文章裡了,這裡就不提了。外掛方面基本上是用啥裝啥,目前沒有什麼感覺是必需品的開發相關的外掛。
Q:最近有沒有嘗試新的程式語言?
沒有,目前用的幾個程式語言暫時足夠了,其他的像C、Java之類的都是用的時候臨時對著文件寫,反正基本上是差不多的,不會有啥問題。
工作細緻謹慎,看重學習和能力提升
Q:分享一下你的工作流,有什麼個人的特別的工作習慣麼?
先弄清楚需求,然後大致看一遍做這個東西的麻煩點、耗時點在哪,在腦子裡列個清單,然後再對一些需要細化的東西提前用虛擬碼/文件/思維導圖的方式做一下設計,最後再開搞。
沒啥特別的工作習慣,這種工作流應該還是挺多人在用的,雖然麻煩點但是習慣了之後能做到對空填答案的感覺,做起來的時候會比較舒服。
Q:有什麼高效學習的方法麼?
高效學習方面,其實每個都有自己的方法,但核心的點其實還是多做、做自己想做的,用慾望(興趣、利益等)來驅動學習,只要你真的很想學,那自然就會很高效,也自然能記得住。
Q:目前為止最滿意的開發專案是什麼?
之前搞的一個公司用的爬蟲框架,特別針對公司需求設計了快速新增簡單難度的資訊網站、快速新增新的鏈(區塊鏈)的功能,對難搞的一些網站和 APP 也做成了模板化新增的處理,然後其他的監控、推送、開放 API 啥的基本操作也都做了,可以說是我做爬蟲幾年來弄過最完整的一個專案了。
但是,這玩意用了應該是才一兩個月就被迫吃灰了,因為搜尋引擎專案直接被砍掉了…
Q:工作之後有哪個瞬間讓你覺得很有成就感?又有哪個瞬間讓你“懷疑人生”?
成就感這東西不管是在工作之前還是工作之後,都始終是自己做了點什麼有意思的東西或者把什麼東西的流程搞通了的時候會出現。
懷疑人生的話,也就之前搞APP逆向的時候偶爾會懷疑人生,畢竟有些做安全的人搞的東西是真的噁心。
Q:一般通過什麼方式和渠道提升自己的能力?
我通常會是通過實際做一些東西的方式來進行學習(比如學 k8s 的時候就試著把之前寫的服務遷移到自己建的 k8s 叢集上面去,然後對其進行壓力測試嘗試解決實際碰到的問題)。
並且會在這個折騰的過程中,我會用一些思維導圖、知識圖譜之類的工具對了解到的知識進行整理。在水群、刷論壇的時候也會把看到的一些新奇事物記下來。很多時候在遇到一些問題時,這些被整理好的知識就會被想起來,然後就會有一種恍然大悟的感覺,接著這些知識就被融會貫通了。
這種學習方式我稱之為:廣度學習法。它是從上至下的,相比於很多人的那種從下至上的學習方式而言實用性會高很多,並且也不會那麼枯燥無味。
另外推薦一個最近發現的工具——roamresearch,這個工具和我之前想做的一個工具幾乎一模一樣,功能和相關的卡片式筆記理念和我使用的這種學習方式非常契合,有興趣的可以用用看。
Q:生活中有什麼愛好?平時會通過什麼方式釋放工作壓力呢?
寫文章、打遊戲、寫點自己用的工具、折騰些沒弄過的東西。
Q:如果可以重新選擇是否還會選擇這個職業 ?
如果是指爬蟲的話,會的。因為做垂直爬蟲的時候會需要大量的逆向開發,做得多了之後會對前端、後端、網路、安全甚至硬體等各種方面都有了解。並且在掌握了逆向思維之後結合已經瞭解到的東西,學新的東西時會非常快,思路也會比別人廣一些。
然後做爬蟲也會了解到很多相關產業的東西、認識一些做安全/灰黑產的人,能見到很多騷操作,一些騷操作換個用法其實就是別人平時想不到但效果非常好的。
社群經歷
Q:與思否的故事?
這個有點尷尬,基本沒啥故事…
不過思否的各項功能在我短暫的使用中感覺還是挺舒服的,能明顯感受到技術社群的簡約和功能性的感覺,不會像其他一些社群那樣不實用的東西花裡胡哨還一堆廣告。
Q:如何看待國內社群的環境和氛圍?
總體而言技術社群的環境和氛圍還是挺好的,基本都是就事論事,有人提出奇怪的問題的時候也會看到很多熱心人去幫忙解答。
但是像一些非技術類社群的那種會有很多噴子、槓精存在,比如之前就有個知乎的槓精連自己的邏輯都理不清楚就開槓,給他拆解分析了幾天都還是硬槓,最後忍無可忍把他拉黑了。結果沒過多久這人還開個小號專門寫了個回答扭曲事實繼續@我抬槓,就很莫名其妙。(而且這種人知乎是不管的,舉報也沒用)
Q:對社群有哪些建議和意見?
好好做技術社群,做好社群內容建設和言論管理。
Q:對程式設計初學者和懷抱夢想的年輕人有什麼建議?
不要為了找工作而學程式設計,最好是興趣驅動。我見過很多人就是為了找工作而學程式設計,實際自己沒啥興趣,平時也不會想著寫點什麼東西提升自己的效率,後面就只能發帖或者在群裡抱怨,挺難受的。
小編有話說:
Loco 的天賦是平常人羨慕不來的,雖然對自己的評價不是天才型,但小學就能自己寫外掛可以算相當厲害了,這樣的男生在小夥伴裡應該很受歡迎吧。
年紀輕輕就掌握眾多技術棧,也證明他是一個好學、有執行力的人。雖然工作上踏實努力,但也沒有磨平少年意氣,甚至會在網上與人「吵架」。
從與 Loco 的談話中我感受到,這才是一個年輕有才的人該有的樣子,充滿自信也腳踏實地。
歡迎有興趣參與訪談的小夥伴踴躍報名,《思否有約》將把你與程式設計有關的故事記錄下來。報名郵箱:mango@sifou.com