思否有約丨張京:無悔當初永遠攀登

2020-06-12     segmentfault官方

原標題:思否有約丨張京:無悔當初永遠攀登

本期對話嘉賓:@張京

訪談編輯:芒果果

本想學醫的張京誤打誤撞進入清華大學學了計算機,又機緣巧合的趕上了信息技術「騰飛」的那幾年,他的「前半生」似乎就是一個教科書般的模板。

從小就是「別人家」孩子的張京順利考入了清華,在行業風口找到了體面的工作,一切都那麼順利。但生活卻不總是盡如人意,37 歲時張京被裁員了,經過很長一段時間才調整好心態,但從那以後他似乎開啟了人生下半場的大門,變得更加坦然了。

如今已過不惑之年的張京對於當初的選擇只淡淡的說了一句:「沒什麼後悔的。」

內容提要:

1.行業中有經驗的工程師越來越多,而程序語言對於從業人員的約束越來越少,編程本身帶來的樂趣越來越多。

2.編程會改變一個人的思維習慣,如果想要改變世界,先要從改變自身做起,編程培養的就是這樣的思維方式。

3.要有意識:這是我的代碼,我要對此負責。

學計算機是水到渠成

Q:什麼時候開始接觸編程的,契機是什麼?

我運氣略好,初中就開始接觸編程了,那時候我們用的還是一款叫作Laser310的機器,在上面寫Basic。

Q:計算機是你最初的夢想嗎?

其實我小時候的夢想是當個化學家,高考報志願的時候第一次填的是想報北醫,想當醫生,開刀動手術,後來班主任說你這個成績完全可以考清華啊,為什麼要報北醫?我看了看清華的科系都是工科的啊,什麼機械電力的我都不感興趣,只有一個計算機,可能和我初中時摸過的有關,我知道這東西可以用來玩遊戲,就這麼著稀里糊塗地上了計算機系。正好趕上了信息技術的紅利期吧,沒什麼後悔的。不過想想,其實如果當初選擇了學醫,可能也不錯哦。

Q:如果可以重新選擇是否還會選擇這個職業

如果可以重新選擇,大機率還是會選擇目前這個職業,比較宅,又總能接觸到新技術,這兩點比較符合我的性格。唯一的期望是希望自己年輕時可以更努力一些,鑽研技術更深入一些,如果 vue 是我寫的就好了,哈哈。

Q:您說如果 vue 是您寫的就好了,那麼這方面您做過哪些嘗試嗎?

我覺得編程從本質上來講是一種寫作,沒有哪個程式設計師不希望自己寫作的作品能夠得到更多人的認可,所以開源社區為廣大程式設計師提供了這樣的一種可以使你的作品廣為人知的機會。

如果你真的想寫一個框架的話,網上有很多這樣的教程,從 0 到 1,從 hello world 開始寫作自己的第一個框架,學習 AST 樹,學習編譯原理,假以時日,逐漸就會變成一套符合你認知的全新的框架,在這個過程中你會學到很多東西。但是光把框架寫出來是不夠的,如果想讓它流行的話,還需要有社區建設,市場推廣等等非技術要素,而我的時間經常不夠,所以常常是拿起來又放下,最後時間長了就束之高閣了。等以後有時間吧,再自己從頭認真地寫點東西,可能是組件,可能是框架,不為了流行,只是為了提高和挑戰一下自己。

工作就是隨遇而安

Q:選擇目前就職公司的原因?

沒有什麼特別的原因吧,只是一份技術崗的工作而已,我始終把自己定位為一個普通的程式設計師,經歷的年頭長一些,略有些經驗,喜歡鑽研解決大家搞不定的問題,這麼些年一直是這麼過來的。

Q:目前主要使用的程式語言是?最近有沒有嘗試新的程式語言?

目前主要使用的程式語言是Java和Python,偶爾也會用Go和Java。最近不怎麼嘗試新的程式語言,我個人感覺語言這條路大約在十年前就已經走到頭了,萬變不離其宗,不論什麼語言無非都是 if/for 這種結構,也並沒什麼不好,夠用就行了。

Q:目前為止最滿意的開發項目是什麼?

最滿意的項目已經下線了,那是 2000 年的時候用 Java 寫的一個網頁遊戲,名字叫做「戰神」,是一個策略型遊戲,玩家選擇自己國家的發展路徑,生產糧食,煉鐵,兵器什麼的,通過打仗掠奪土地,有點類似於文明的文字版吧,不過簡單的多。大概只用了一個月時間就完成了主幹的開發,後面兩個月改改bug就上線了,結果一下子註冊了一百多萬用戶,同時在線的有一萬多人,伺服器只有兩台,也沒有集群的概念,很快就抗不住了,但是光有用戶沒用,廣告收入上不來,買不起伺服器,那時候也沒有阿里雲之類的,只能就這麼湊合著,玩家來了一批又走了一批,耗了兩年多吧,最後就關停了。

那時候公司在一個酒吧的樓上,每天下午五點多的時候樓底下就開始有客人了,有時候我們會下去買點啤酒喝喝,喝完了再上樓去寫代碼或者開會,基本上就是在這種狀態下完成的開發,雖然好像加班的時間挺多,但挺快樂的。

Q:掌握哪些語言?有哪些學習工具?

我從業比較早吧,很多語言都狗熊掰棒子,當時用的時候熟悉,後來逐漸扔掉了。我用過的語言包括:彙編、C、C++、C#、VB、Perl、Java、PHP、Java、Python、go 等等,我覺得最有用的學習工具就是:英語。不管什麼語言,直接動手寫 hello 就是最快的方法,遇到問題用 google 搜索 stackoverflow 總能在第一時間找到答案,所以不管別人如何說,作為軟體工程師,第一應該學好的就是英語。只有學好英語,你才能在技術的海洋里無障礙地遨遊。

Q:有什麼個人的特別的工作習慣麼?

特別的工作習慣大約就是代碼潔癖吧,不論是誰的代碼,不論是我寫的還是別人寫的,拿到手的第一件事是先按照代碼規範給它格式化掉,必須弄成完全一致的格式,哪怕花再多的代價也要先弄整齊了,然後才能思考,否則看著就彆扭,腦子完全不能動了呢。

人會在某個的時刻「長大」

Q:進入這個行業已經多少個年頭了?您覺得行業發生了哪些變化?

基本上從畢業之後就從沒離開過這個行業,算起來到現在有25年多了。我能切身感受到的變化是在這個行業中有經驗的工程師越來越多,而程序語言對於從業人員的約束越來越少,編程本身帶來的樂趣越來越多。我記得剛參加工作的時候,老專家老前輩非常少非常難得,基本上公司里全都是20歲出頭的毛頭小伙子,那時候正是中國IT產業高速發展的時期,機會太多而人才太少,那時候也是年輕人的我最大的苦惱是出了問題沒有人能幫你,網際網路上的技術論壇也遠沒有現在這樣發達,出了問題只能自己一個人琢磨,前路完全是未知的,也不知道做法到底對不對。

現在的技術信息比以前要多很多,一方面大家尋找問題的答案不再像以前那麼困難,另一方面如果出問題,也有更多的經驗豐富的專家可以幫助大家。程式語言方面的進化是大量簡潔語言變得越來越流行,不管是JS還是Python以及Go都有這個趨勢,追求的方向是:不管什麼類型,變量抓起來就能用,不要跟我談類型,別講什麼private/public,聽不懂也不想聽,Go甚至已經簡化到你連import都不用寫了,隨便抓起個第三方函數來就用,它會自動給你補足頭部的import庫。在這樣一片完全自由完全隨意的世界裡,編程不再是一件苦惱的工作,而是充滿樂趣的探索,所以我覺得現在的年輕人生活在一個非常幸福的年代,對大家的要求就是一定要大膽大膽再大膽,只要你敢想,沒有什麼是做不到的。

Q:從業至今經歷過什麼難忘的事情嗎?內心發生了什麼變化?

2009年的時候我被裁員了,那一年我37歲。那時候還沒有現在這樣人人都知道的程式設計師35歲危機,現在回想起來,我是真真正正地體驗過了,所以作為過來人可以給年青人講講。

我覺得裁員對人心理上最大的打擊是否定你的價值,儘管那並不是你的錯,但你總是會不由自主地去和別人比較:為什麼被裁的是我,為什麼不是他?是不是我哪裡做的不好?是不是我選錯了道路?其實什麼都不是,只是因為2008年美國次級貸危機影響了全球經濟而已,就像今年的新冠疫情影響了就業一樣。

我清楚地記得簽完離職補償書出來的那天是三月的一個晴天,我走出公司大門,突然覺得心裡空空的一片,不知道該到哪裡去,工作十五年了,從來都是我辭公司的職,除了請假以外沒有一天是在工作的日子一個人走在大街上無所事事,感覺自己就像一個曠課的小學生一樣。一開始的時候還很自信,覺得憑著自己的學歷,經驗,很快就能找到工作,但是隨著面試一次次碰壁,自我價值一天天被否定,我覺得這可能是最難過的心理關。

一開始的時候你會想,怎麼著我也得找個和原來工資差不多的吧,過不了多久,你就開始降低標準,但你降低標準之後依然找不到工作,這時候你開始恐慌,直到最後基本徹底放棄希望,開始認清現實:高薪的職位本來就少,經濟危機下機會就更少,不可能輪得到你;你說你退而求其次,我就當個普通職員,掙個普通工資不行嗎?不行,因為如果要掙普通工資的話,社會上比你年輕的人有的是,普通崗位是留給年輕人的,任你經驗,任你努力,都是沒有用的,你發現你處在一個尷尬的境地,並且這種狀態可能要持續很久,不知道有多久。

最後的轉變是在你心態徹底發生轉變之後才來的,當你可以坦然接受一切,不再和自己較勁之後,不只是薪資職位高低,而是坦然接受一切,不論有沒有工作你都能接受,哪怕一個人流浪街頭,你都只是努力地無怨無悔地生活,這時候人生的下半場才真正開始。

Q:這份職業收入如何?有什麼理財竅門?

收入主要就是靠工薪吧,錢不要亂花,業餘時間學習學習如何理財,努力使自己的年化收益率達到10%左右是比較適合程式設計師的,本身你從事這個職業就是圖穩,如果不是的話,直接去創業不是更合適,所以不要去追求過高的收益,風險不適合工程師。

Q:生活中有什麼愛好?如何緩解工作壓力?

小愛好看電影,大愛好旅遊吧。每周看幾部電影可以適度舒緩壓力,每年和家人一起旅個游基本就滿血復活了(不過今年可能夠嗆了,暑假準備呆在家裡刷劇吧)。

與思否的故事

Q:您都玩過哪些社區?

我一直比較喜歡回答問題,最早時是在一個叫experts-exchange的網站上回答問題,攢了不少積分,後來這網站出於營利目的開始收費,我就不怎麼上去了。後來就在stackoverflow上混,常想著中國怎麼就沒有一個這樣的技術問答網站呢,後來就發現了segmentfault,先開始是回答問題,後來覺得思否這個markdown編輯器不錯,就開始用這個來寫文章,到現在還是養成了用思否寫文章的習慣,用其它的所有的markdown都不好使,就思否這個好用,特別是這個從剪貼板粘貼圖片的功能非常實用,不論是自己建站還是用別人家的都沒有思否這個好用,需要任意圖片,只要截屏粘貼就夠了,非常便捷。

Q:您是如何與思否相遇的呢?

我特意查了一下,我在思否社區回答的第一個問題是在2015年2月春節前的一天,具體原因想不起來了,可能是在網上搜索答案時發現思否社區的吧。當時也正好是在一個職業的轉換期,所以開始在思否上記錄平時工作中遇到的以及解決過的技術問題,因為有些技術問題解決步驟較多,如果不及時記錄,時間長了就會忘記,同時這種記錄對於有類似問題的同行也會有所幫助,於是就開始經常逛思否了。我覺得思否對我最大的吸引力是交互,有問有答,它不像其他論壇類的社區,以博客為主,底下一堆人點贊或者評論,我覺得思否最大的價值是以問題為中心,有人遇到了技術上難以解決的問題,來這裡求幫助,同時回答問題的人可能恰好也遇到過或者解決過類似問題,或者雖然沒有遇到過這個問題,但是在解決問題的過程中自己也學到不少東西,技術工作的實質就是不斷解決各種問題,所以這種以問題為中心的技術社區是比較適合技術人群的。

Q:對思否有什麼建議?

建議的話,我覺得付費問答這塊的邏輯可能與我們理解的不太一樣,應該是提問者發出懸賞,回答者揭榜的方式,如果這樣的話可能熱度會更高一些,也不一定是物質獎勵,或者以聲望值懸賞也是可以的。另外還應該提倡鼓勵大家對問題和答案養成順手點贊的習慣,有時候看到一個答案或者問題中的代碼對你有幫助,教你學到了一些東西,隨手就應該點一下贊,這樣會更多地鼓勵大家積極提問和積極回答。

對程初學者和懷抱夢想對年輕人提些建議吧

Q:越來越多的年輕人進入這個行業,您覺得會帶來什麼改變?行業又該做出什麼改變呢?

有一個說法是:編程會改變一個人的思維習慣。我覺得這不是一件壞事。無論程序如何多樣,最基本的要求是你必須要講邏輯。所以越來越多的年輕人加入這個行業,哪怕只是呆一兩年最後又離開,但這個過程對你思維方式的塑造是永久的,它會使我們整個國家的年輕一代越來越理性,能夠更加客觀公正地看待這個世界。如果程序出了問題,是程序的錯還是你的錯?通常來講,肯定是你的錯,所以你在看待這個世界的時候也會不由自主地代入這樣的邏輯,如果想要改變世界,先要從改變自身做起,編程培養的就是這樣的思維方式。

但這並不是說未來我們只能適應這個行業的各種明規則潛規則而不能改造它,恰恰相反,行業是由一個一個血肉鮮活的個人組成的,不存在脫離了人的行業,所以我們在從業過程中所做的任何貢獻,或者哪怕是從業這件事本身其實就已經在改變這個行業,包括 35 歲歧視,包括 996,如果你相信它,願意遵守它,那最終你就將成為它其中的一分子,但如果你不相信,並且用腳投票去反對它,那它最終就無法成為規則。行業塑造我們,而我們也在改變行業,歷史就是在這樣的雙向碰撞中滾滾向前的。

Q:從您這 25 年的經驗中,可以總結一些給年輕人的忠告嗎?

我覺得這是一個很好的職業,希望你能夠像我一樣或者比我還甚地熱愛這個職業,唯其熱愛,才能狂熱,這是一個永遠有未知數永遠值得攀登的行業,它不只是通訊,它的本質是人類如何思考,代碼反映的是人的思想,正如作家雖然死了,但是他的思想留在書中,我們的思想留在了自己寫下的一行行代碼當中,所以從落筆的第一刻起,要有意識:這是我的代碼,我要對此負責。

我有酒你有故事麼?

歡迎有興趣參與訪談的小夥伴踴躍報名,《思否有約》將把你與編程有關的故事記錄下來。

報名郵箱:[email protected]

文章來源: https://twgreatdaily.com/zh/Mto-p3IBfGB4SiUwO8N5.html

Flutter 知識點

2020-08-10