博客 / 詳情

返回

SegmentFault 社區專訪 justjavac:「懶惰」是程序員最大的美德

首先給大家介紹一下自己吧

大家好,我是 justjavac,一名前端工程師。熟悉我的人可能知道我還有一箇中文暱稱「迷渡」,取「霧失樓台,月迷津渡」之意,一般用在豆瓣或者其他非技術社區。凡是在技術類社區寫專欄或吐槽,都使用 justjavac 這個 ID。我不太會做自我介紹,大家還是直接在百度或 Google 搜索 「justjavac」 吧。

你對大家普遍稱呼你 JJC 有什麼感想?

哈哈,難道 JJC 除了 JustJavaC 的首字母縮寫,還有別的意思嗎?

耐克曾經為程序員做了一個紅極一時的廣告詞:「just do IT」,於是我就給自己起了一個網名 just。當時研究 Java 和 C 比較深入,就把 java 和 c 加在了後面,以防止重複,這就是 JustJavaC 這個暱稱的來源。因為 javac 也是 JDK 中的一個命令,所以很多人以為我的暱稱是 Just Javac 的縮寫,管我叫 JJ,對於這個稱呼,我還是有必要糾正一下的。

簡單談談你目前的工作吧

去年底從維基科技離職,今年正式加盟千行時線,負責 Hybrid App 技術棧的開發。千行時線是一家九零後的創業公司,在移動互聯網的大潮下,幫助傳統企業進行轉型,算是一家技術型和顧問型兩者合體的公司吧。我主要負責 PHP 的接口和 Hybrid App 的開發。

你的上一家公司維基科技和維基百科有什麼關係?

這個嘛,其實就是 Java 和 JavaScript 的關係,雷鋒和雷峯塔的關係,周杰和周杰倫的關係。

那就正式進入這次訪談的主題,講講你是如何走上編程的道路的

其實,我走上編程之路是命中註定的。從上小學起我就特別喜歡穿格子襯衣,果不其然,長大後成為了一名程序員。

我從小比較喜歡數學,小學時參加全國數學奧賽曾得過銀牌,也是那次奧賽第一次見到了電腦。當時只是遠遠地看別人用,在一個黑色的屏幕上,啪啦啪啦的打着字,和我想象中的黑客簡直一模一樣,感覺非常炫、非常酷,就是人長得醜了點。

至於我第一次使用電腦,是在初中。教學使用的是 Windows,大概是 Win98,因為在我的印象中,時不時就藍屏。

第一次編程用的是 BASIC 語言,當看到代碼中的 I = I + 1 時,簡直是三觀盡毀啊~ 我去!這是什麼鬼?誰能告訴我他們到底是怎麼相等的?難道是我打開的姿勢不對?後來也就慢慢入門了。和每一個初學者都類似,編的程序無非就是從1加到100,水仙花數,漢諾塔……

大概在初三的時候,我家買了第一台電腦,在這個電腦上編的第一個程序是 VBA,在 Excel 中處理我整個初三上半年的成績。當我正為能百分之百升入重點高中而高興時,發現了我編程生涯的第一個 Bug,導致我的成績多出了十幾分,不過即使再減掉十幾分,也是百分百可以考上的。

上高中後沒有開設編程課,主要是講講 WPS 和其他一些軟件的操作。於是我自帶 3.5 寸軟盤,安裝了 Pascal 編譯器,我還在書店買了一本 C 語言的書。

當我寫下 if (5>4>3) 時,居然得到了意想不到的結果,再一次三觀盡毀啊。當我晚上回家時,怎麼也找不到這本C語言書了,就這麼着,一本新書只看了三天,我也就這麼告別了C語言。當再次接觸C語言,就是大學了。

C語言的書丟了,那這個 5>4>3 的疑問也就不了了之了嗎?

沒有書,還有網啊,撥號上網——插網線,撥號,打開百度搜索,快速打開前幾個搜索結果,等頁面都打開完畢後,斷網,拔網線,再慢慢看。

此後在我的高中三年,我再也沒有在書店看到過編程類的書籍,畢竟在我們縣城很少有人買這種書。

大學的志願我填報了兩個:數學和編程。後來就來到了天津,正式踏上編程的不歸路。這時就不是編程玩了,而是系統的學習編程知識。也慢慢接受了 i=i+1 是賦值,多個數比較要用「與」:5>4 && 4>3。再一次讓我毀三觀的是 Python,居然可以寫 if 5>4>3,這簡直就是不按套路出牌啊。後來再細想,其實 5>4>3 才最符合我們的使用和理解習慣啊。就像格雷厄姆在《黑客與畫家》中説的那樣:程序其實是給人看的,只是機器恰好可以運行它。

最終我也未能完成學業,2009年輟學創業,又進了另一個深坑。這次訪談時編程之路,創業的成功和失敗就不多説了。

在編程過程中,或多或少會遇到一些問題,你有什麼解決問題的秘訣嗎?

看官方文檔,可以解決掉一半以上的問題。剩下的問題可以通過 Google,StackOverflow,SegmentFault。

問題分好多種,有的是屬於那種腦抽型的,比如拼寫錯誤,解決之後想抽自己倆耳光。這種我基本都是默默的記錄在 EverNote,畢竟家醜不可外揚。

有的屬於常見錯誤,比如對庫、接口、函數的使用錯誤,因為很多接口文檔寫的不是很清楚,還有一些文檔本來就有歧義,這樣在調用的時候就可能出錯,最常見的就是 Java 的日期類和日曆類。對於這種錯誤,我一般會整理在某個專欄上。

還有一些問題是對規範、對底層原理理解的不夠深入,比如 IEEE754 的浮點數規範,HTTP 協議規範,JSON 規範。這些規範也都有中文翻譯,我還是推薦程序員去讀讀。

有沒有寫過一些黑科技(狂拽酷炫屌炸天)的程序?

程序員最大的驕傲就是寫過什麼軟件,所以要想了解一個程序員就去他的 GitHub。

我這幾年面試程序員啊,大部分的簡歷都是做過 XXXX 系統,開發過 XXXX 網站,給 XXXX 政府做過 ERP。其實如果一個人熱愛編程,對編程感興趣,就不僅僅是為了完成工作任務,而是在業餘時間為自己的這份興趣付出了多少。

雖然在各種第三方 GitHub 排名網站上我的 star 數排到了全球前 50 名,但是乾貨卻不多。

按時間順序説説吧,ChromeSnifferPlus 是我維護了 5 年的一個項目,之前我也在 SF 上介紹過,一款 Chrome 瀏覽器的插件。當我們瀏覽一個非常炫酷的網頁時,我們總想知道這個網站到底使用了什麼技術,用到了哪些 javascript 庫,這個插件就是幹這個的。目前有全球的1萬多用户,由於大陸牆的存在導致這個插件的國外用户偏多。

Flarum 中文站:原文太長就不展開説了,可以看看原作者 Toby 的文章「The Flarum Story」,我翻譯了中文版 Flarum 的故事:我為什麼開發 Flarum

推薦一些書籍或者編程大殺器給大家唄

説到編程書籍,我正好在 GitHub 上維護了一個書單:免費的編程中文書籍索引,目前已經有近1萬個 star 了。

最後,有一本書必須推薦給每個程序員看看:《頸椎病的預防和治療》。

能談談你的新書《代碼之謎》嗎?

説來慚愧。

出書這事大概緣起 2012 年底吧,在這期間我還在翻譯另一個系列文章《12 JavaScript Quirks》。

我從大學時就開始寫博客,在 ITeye 和 CSDN。當時 ITeye 還沒有被 CSDN 收購,名字叫 JavaEye,主要以 Java 技術為主。《代碼之謎》系列的第一篇文章是「其實你不懂代碼」,發在了兩個平台和我的獨立博客上,也沒有太當回事,發完就忘了。

到了第二天晚上我打開電腦刷微博,突然就看到了好幾條私信,是圖靈教育的陳冰老師發來的。再次之前我就知道陳冰老師,他策劃出版的《大話設計模式》估計不少程序員都看過,也被噹噹評為終身五星級圖書。但是沒想到陳冰老師會給我發私信,我打開看了看,好像是説我的代碼之謎系列不錯,要找我出書什麼什麼的。

於是我又打開博客看了看,把我自己都嚇了一跳,才一天的時間訪問量就過萬了。後來的連續幾天都被推薦到了首頁,現在這篇文章在2個平台上的訪問量分別是18萬和27萬。

其實在之前也有不少出版社聯繫我出書,我都拒絕了。但是這次陳冰老師的私信,我有點心動了,於是答應了陳冰老師。

但是天有不測風雲,後來有一天陳老師給我打電話,説他離職了。當時我的內心就糾結的,陳冰老師一走,我的書的策劃和初版任務就交給了別人。通過幾次的交談,我決定取消協議,暫時先不出了。

書雖然不出了,但是還在一直寫。也許有一天我會放到把這本書做成電子版,分享給大家。

哪些好的習慣程序員值得擁有?

懶惰。

有一些程序員很懶,懶到任何事情都交給機器去做。而另外一些則很勤奮,每天都孜孜不倦得做着重複單調的工作。之前我也一直是一個勤快的人,不過我一直努力變懶。

不要一級一級地打開資源管理器尋找想要的文件,寫個腳本吧。自動搜索到想要的文件,或者更進一步,自動用 sublime 打開。編輯完了,還要自動打開比對工具去解決衝突。在機器面前,自己才是主人,不是僕人

要習慣用命令行而不是鼠標要動腦,要時刻思考自己的工作方式,改進自己的工作過程,讓自己處在一個高效節能的工作氛圍中,而不要浪費了自己的體力、精力、時間。

在你的編程生涯中有沒有遇到什麼有趣的事?

我清楚的記得第一次上電腦課的時候的一件糗事。

當時學校硬件條件有限,兩個人公用一台電腦。當時有一個拍蒼蠅的遊戲比較火,但是我倆都不會進入這個遊戲,於是壯着膽子問老師「怎麼打開遊戲啊?」。

老師看了我倆一眼,拿起鼠標告訴我們怎麼從開始菜單中一級一級的找到遊戲,怎麼雙擊進入。完事後不忘囑咐一句「上課可別玩遊戲啊」。

等老師一走,我倆就打開遊戲,一個人玩,一個人看着老師,玩的不亦樂乎。沒多久老師就過來了,我小聲告訴他「老師來了!老師來了!」。

這時他慌了,「媽呀,怎麼退出啊?光問了怎麼打開,沒問怎麼關閉」。

最後,毫無懸念,我倆被老師批評一頓。從那之後學會了神奇的 ESC 鍵。

現在 ESC 也依然是我使用頻率非常高的一個鍵:輸入法打錯了拼音,想全部刪除,不用反覆按 Backspace 鍵,只需要按一次 Esc 鍵。上網時輸錯了網址,按 Esc 停止加載。填寫表單時有錯別字,按 Esc 清除。彈出框時,Esc 等於取消按鈕。

你當初選擇放棄學業後悔過嗎?

如果我沒有記錯的話 SegmentFault 的高陽也是輟學生,我猜他應該也不會後悔當初的決定吧。這種事本來就沒有對與錯,自己選擇的路,跪着也得走完。

但是我還得告誡各位莘莘學子一句話:「比爾蓋茨之所以成為世界首富,不是因為他輟學了;馬雲成為中國首富,不是因為他醜」。我在我的博客中也經常會寫「學歷代表過去,能力代表現在,學習能力代表未來」,一個人的成就和輟不輟學沒有關係,而是和自己的努力程度有關。


據説,關注二維碼的同學,運氣都很不錯

justjavac

本文參與了 SegmentFault「我的編程之路」計劃,歡迎正在閲讀的你也加入,一起分享。
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.