爲打破外界對程序員簡單平面的偏見,一系列程序員訪談正在進行中。html
第一個接受訪談的程序員 Gemini,在 SegmentFault 主要負責 Android 移動端開發,然而做爲移動端工程師,他最喜歡的語言倒是 JavaScript。喜歡一語驚人的他,在訪談中貢獻了這篇文章的標題——「程序員的使命是讓程序員失業」。前端
如下是訪談內容。程序員
咱們生活中的不少東西,都正在被計算機取代。對於年輕人來講,網上課程,電子郵件都不是新鮮事。然而若是你從 2016 年往回看歷史,會發現計算機對人類社會已經形成了巨大的改變。計算機對整個社會的就業結構產生深遠的影響,致使不少工做的需求直線降低,好比電話銷售員。個人計算機教授曾經說過:當你在考慮就業方向時,最好考慮一個因素,你的工做未來是否有可能被自動化程序代替,計算機對咱們的生活產生的影響可能高出你的預料。僅僅幾個搜索引擎巨頭主導了你大部分狀況下獲取的信息內容,從而影響你的思惟。編程
「這是計算機的時代,是程序員的時代」,當被問到對計算機和互聯網的展望時,Gemini 給了確定地評價,「計算機和互聯網行業的投資熱毫不是泡沫」。咱們如今可能處於與工業革命帶來的影響力相匹配的計算機革命時代當中。然而對程序員的將來,他說:「我認爲程序員的使命是寫出一個能夠自動寫出全部程序的程序,從而致使全部程序員失業。曾經不少程序員被僱傭來寫程序讓 Photoshop 處理過的圖片能在網頁中顯示,然而有一個程序員寫出了能自動轉換成 html 格式的腳本,致使這個工做再也不有人工需求,部分程序員被轉崗。」後端
「程序員不只應致力於讓程序員失業,也應致力於讓全部人失業。」服務器
Gemini 補充道,「我認爲程序員不僅限於寫代碼來實施項目,真正使命在於使用機器來代替人力,利用人工智能促進社會生產力的發展。互聯網企業改變了一個又一個傳統企業,倒逼他們進行產業改革或者制度改革。電子商務行業完全顛覆了傳統的零售業,Uber 等 O2O 打車行業引起社會對出行行業的思考,這些改變與顛覆讓咱們生活充滿想像力,讓人們充滿動力」,Gemini 談到了程序員自身的命運,「程序員做爲一個新興行業,在不斷探索過程當中,由於本身不斷創新的一個本能,必將顛覆本身,‘失業’只是目光短淺狀況下看到的結果,人類社會的進步一直都伴隨着腥風血雨。」至於達到終極目標後,失業的人們應如何生活,我相信社會學家等會提出設想。 前端工程師
圖右的 HACKer 爲 Gemini架構
「Mark Zukerberg 在大學裏寫出了 Facebook, 我大學時期就也寫了一個相似 Facebook 的社交程序。我和一個學長合做,不是爲了盈利或其餘緣由,只是純粹地以爲咱們也能寫出這個程序。當時雲服務器還不廣泛,咱們只能把服務器架構在學校實驗室電腦上。」Gemini 如此描述他參與的第一個大型項目。至於我的的第一個程序,則是他高一的時候寫的一個社交屬性的論壇。他說道:「在論壇上,我能夠發表文章,而後能夠查看朋友的留言。我高一時費了很長時間把服務器架設在本身電腦上,我還一直開着電腦,爲了讓論壇持續在線,就這件事被我父母講了不少遍。」學習
「我最喜歡的語言是 JavaScript」。動畫
Gemini 學習和使用過不少語言。當被問到計算機語言的我的喜愛時,他的回答是 JavaScript。「JavaScript 能時刻保持新鮮感,功能更新得很快,」他解釋道,「JavaScript 讓前端工程師有更大的潛能,能作一些後端工程師的工做,另外我對 JavaScript 的將來發展也很看好。我就是喜歡這門語言。」他最後加上一句。對於其餘計算機語言,Gemini 認爲「一些 Java 程序員可能會有些教條主義的傾向。Java 相對來講是一門歷史較爲悠久的語言,程序員在學習這門語言時,會學到許多 Design Pattern 的知識。某些 Java 程序員在寫程序時,可能會受影響,而後寫出很複雜的代碼來解決兩三行代碼就能解決的問題。Design Pattern 是一把雙刃劍,」他解釋說,「開個玩笑的話,一行代碼能運行的事情,讓 Java 程序員來寫,可能寫得又臃腫又冗長。」
關於新手如何學習的建議,Gemini 說道:「官方網站是我最推薦的學習渠道,由於官網是更新最快的,其餘途徑好比經過看教學視頻的話,由於視頻製做週期較長,可能形成到學習到過時技術的狀況。當 Android SDK 已經更新到 Ice Cream Sandwich 時,不少視頻還在講 Android Gingerbread 的開發。」他還提到對於客戶端開發者來講,他認爲高等數學是很是值得認真學習的一門課。「客戶端開發者在製做動畫的時候,會須要數學知識來模擬物體運動軌跡等,微積分等數學知識會用到。」
Gemini 同時是個酷愛技術的人。「若是有新的技術點等出現,我會放在腦子中的 to-do-list 裏,而後等到空閒時間來研究學習。我喜歡看新功能的源代碼,瞭解這些酷炫的效果是如何實現的。」源代碼公開是一個熱議話題,當問到對源代碼公開的我的觀點時,Gemini 說到:「雖然對程序員是一件好事,可讓程序員研究源代碼,但我並不認爲全部軟件的源代碼必須公開,源代碼公開涉及到知識產權等各類問題。同時,我有一個請求,若是軟件是閉源的話,我但願該公司可以儘快處理好 bug,既然他們不容許外部開發者經過研究源代碼來幫助修復 bug」。
當被問到身爲開發者的我的感覺的時候,Gemini 感慨道,「程序員和產品經理是天生的冤家。」
不少狀況下,好的設計效果和漂亮的代碼不可同時兼得。好的代碼能讓程序員有舒心的感覺,可是不必定有好的用戶體驗。有一種能減輕此矛盾的方法,就是開發者兼任程序設計的職位,當這兩種職位由同一我的擔當時,前文提到的矛盾貌似就能夠解決。不少獨立的遊戲開發者,同時設計遊戲場景,以及代碼實現。然而 Gemini 認爲,這樣的狀況仍是會致使矛盾。「這樣的狀況下程序員有兩個目標,一個是但願本身的產品能有更多用戶,另外一個是寫代碼寫得舒心。然而大部分狀況下很難用漂亮的代碼來實現漂亮的界面,從而吸引更多的用戶。」他評論道,「即便是一我的承擔兩種工做,這份工做自己就存在矛盾,可是一旦解決這個矛盾,那它必定就是一種被稱爲‘完美’的藝術。」
至於在 SegmentFault 的現任客戶端工做,Gemini 表示很是有成就感。「我在 SegmentFault 待了一個月,就寫出了 SegmentFault for Android,這是一個值得我本身驕傲的做品,我在其中融入了不少我想表現的東西,包含一些新奇的技術,以及做爲一個 Android Developer 最愛的 Material Design。SegmentFault 團隊給予了我最大的自由度讓我表現本身,它讓我感受到了公司對一個技術人的信任,和對待技術的尊重。」
最後一個問題是:你對中國將來互聯網的發展有什麼展望?
「我但願中國能出現 Google 這樣的爲了研發科技而研發科技的公司。」他說到,「我我的以爲國內的一些程序員有時候有些功利,專一與有可見利益的項目,而不是爲了我的的信念而去編寫程序。Google X 的不少科研項目是在短期內沒有可見利益的,然而這些項目對科技和社會的發展有很重要的意義。」
-EOF-
若是你們有任何問題,或者就某一話題想討論,請在評論區留言給 Gemini~
// 看破紅塵清新文藝的編程女紙 Lily,憤世嫉俗逗逼無窮的編程噴子 PepperPepper:Lily,咱們是何方妖怪?Lily:咱們都是萌萌噠美帝大二在讀生,如今在 SegmentFault 實習中。Pepper:咱們倆最近打什麼醬油?Lily:咱們要製做一個訪談系列,爲打破外界對程序員簡單平面的偏見,他們其實都是有血有肉有思想的創造家。