1. 程式人生 > >你技術這麼好,總要改變點什麼把!

你技術這麼好,總要改變點什麼把!

你技術這麼好,總要改變點什麼把!

這篇文章我很早就想寫了,工作至今(10年)我對於技術這個東西的體會也越來越多。今天觸發我動鍵盤敲字的是一個事情:我在準備做一個golang記憶體模型的ppt,準備節後給組內同學分享。但是過程中遇到問題,就谷歌了一下,搜出了我自己16年寫的一篇文章。。。我才記起來,16年我看雨痕大神的書的時候,研究過一陣子的記憶體模型。我越閱讀文章越尷尬,倒不是因為文章有錯誤,而是因為我對這段知識點沒有任何印象。於是,我和小白讀者一樣,重新和16年當時的我進行了知識的溝通。

於是我發了這麼一篇微博:

對於這個事情,我首先是很慶幸,慶幸自己當時還留下了自己閱讀的心得和文字。但是轉念一想,更多的是恐懼,恐懼的是,我不知道我現在頭腦裡面的技術知識,在幾年之後,又會在哪裡?唯一所幸我文筆還未輟,幾年之後的文章估摸大都還在我的部落格中。但是我頭腦裡面的東西呢?我還會記得多少呢?如果幾年後這些知識註定忘記,我現在還有必要學習麼?

技術焦慮

現在的技術圈子很火熱,任何技術點,任何知識,只要你肯搜尋,都能找到資料。但是現在技術圈確實有一個不好的地方,就是販賣焦慮。這種販賣焦慮的點並不在於形式,而是一種普遍的心態。特別是對於那種知識點比拼的心態:“xx知道的東西好多,好厲害!我要向xx學習”。我一直宣揚,這種心態千萬不要有。xx比你知識點多很多,但是不代表他比你強,比你厲害。程式設計師如何比拼強弱?要比拼的絕不是知識點的多寡,而是使用知識點的能力強弱。即如何使用你掌握的知識改變行業。

關於晨讀,各種賬號確實現在很經常發晨讀,晨讀這件事情,我自己也堅持了三年,現在開的群也在和幾個人堅持發。其實我自己也知道,晨讀這些內容恐怕沒有幾個人會看,大多數人恐怕就是瀏覽了下標題。晨讀這個事情,本質是好的,它對收集和傳送的人來說是最有利的,基本上收集和釋出的人至少需要大致看過這些文章,這對釋出的人是一種堅持學習的東西。而但是對於看的人,我自己也知道見仁見智。如果這些晨讀標題引起了自身的恐慌和焦慮,我覺得絕對是得不償失的。

前沿技術

聊聊前沿技術。不管你現在是學習什麼前沿的技術,大致一句話應該是沒有錯的,你所掌握的技術,在你有生之年,是會過時的。這種過時的生命週期是從後端向前端逐漸縮短的。我這裡的後端和前端的方向是以靠近真實使用者的距離計算的。比如資料庫,作業系統這種技術,距離使用者最遠,使用者基本不會感知,他們可能幾十年都不會過時,從mysql,linux大致就能看出來。再往前,中介軟體技術,快取等技術,大致十幾年把。再往前,後端服務技術,我認為生命週期應該是10年之內。再往前,前端技術,我覺得迭代週期應該是5年之內了。如果有工作超過10年的朋友,應該對我這個時間估計也會有所贊同的。迭代更新是伴隨著技術紅利的,這裡的技術紅利指的是新技術的培訓,人員更新,市場需求等。越是更新換代快的,越容易搶佔這個技術紅利。在這個技術紅利中,會有一波人才缺口流出,會有一波技術很強的人出現。但是,殘酷的是,這波人才缺口,很多情況下是通過淘汰只掌握過時的技術的人員空出來的。所以越靠近使用者側的技術人員越需要跟緊技術迭代的腳步,否則一不小心就會被淘汰。當然也不是說越往後端越舒服,技術迭代慢同時也代表坑位固定,因為在同技術領域沉澱很久的老人會把及格線帶的很高,所以基本需要沉澱比較久才能成為比較合格的人才。而且靠近後端的人才一旦遇到技術迭代,那麼可能是毀滅性的,究其原因,恐怕一個是深入後端技術比較慢,一個是新的後端技術坑更少。

是不是所有的技術迭代都是好的呢?我的觀點是肯定的。新技術的出現一定是為了解決某種痛點,或者填補某種空缺才會出現的。但是,大家往往忘記了,技術是為了解決問題的,有很多公司由於體量,技術人員儲備等條件,根本不存在所謂的痛點,但是也莫名其妙引入了各種時髦新技術。技術都不是銀彈,使用新技術,一定要承擔新技術帶來的成本和新痛點。衡量一個新技術引入公司的決策是否正確的標準,恐怕應該是業務是否得到提升。這裡說的業務提升,兩個方面,一個成本側減少,一個收益側增加。在我看來的很多公司,對於新的技術往往是為了革新而革新,所帶來對公司業務上的傷害,恐怕更多於舊的技術。所以架構師的價值,特別是業務架構師的價值我認為體現在這裡,對整個公司或者部門的業務,人員水平有一定判斷,選擇合適的技術,有時候,甚至於拒絕新技術的引入也是一個成功的決定。

技術人員的發展路線

可以再聊聊技術人員的發展路線。我認為技術人員的發展路線有兩條,一條是改變技術行業,一條是改變業務行業。

改變技術行業的人,這類人我認為現在在中國應該是比較少數的。改變技術行業的人基本上恐怕究其一生,最多隻能改變一個、至多兩個技術行業。這種人,我認為可能必須有熱衷於某個技術行業的覺悟。基本上我覺得各個語言的創造者,追隨者算是這類人,各種資料庫,大型開源專案的創造者、追隨者算是這類人。這類人比如mysql的精深專家,基本需要在mysql這個領域沒有什麼解決不了的問題,而且對這個領域有持續的貢獻能力。但是我這十年所見,確實遇到的非常少(可能是我的有限的個人經歷所致)。

成為改變業務行業的人,我覺得應該是現在大多數的接觸程式設計師所應該追求的。我們之所以有工作,是公司在某個行業希望有所建樹,有所作為,所以僱傭你來做這份工作。如果你不能讓公司在這個行業有所發展,那麼恐怕,你很快會被公司淘汰。所以,這點是我對所遇到的工作幾年之後有職業迷茫的年輕人說的,千萬不要為了追求新技術而輕易換行業。任何業務,都有技術可以改變的地方,只是你沒找到而已,沒找到的原因,恐怕就在於你的浮躁。並不是人人都有機會追求各種高併發的CURD,但是人人都有機會踏踏實實寫一些CURD,只要這些CURD在某個行業,某個領域確實是起到了作用,對公司起到了正面收益,那麼你的工作就是值得的。程式碼無分貴賤,能讓程式碼起價值的,就是你怎麼使用這個程式碼改變你所在的業務行業。

所以,對於大多數業務行業的程式設計師來說,在幾年期間,選擇一個你喜歡的(或者你很看好的)行業,用各種技術來嘗試,改變它,對自己也並不需要設限。就和實驗室裡面做實驗的科學家一樣。或許最後可能失敗,但是所積累下來失敗的經驗,才是你真正的財富。而且據我觀察,如果在某個行業真的長期沉浸思考的人,最後它自己就會變成這個行業的稀缺資源。各個公司所謂的技術總監,大都需要有這種特質。技術總監做的管理工作,在這個視角看來,是組織一批技術人員用技術改變行業。

總結

希望這篇文章能對剛工作幾年,覺得工作無聊的,稍有焦慮的朋友們有點作用。總之,我的出發點是對於年輕的程式設計師來說,年輕就是資本。但是把年輕放在追逐各種新技術上而樂此不彼,真是很大的浪費。況且很多都是幾年後就註定會淘汰的技術,先明確自己的發展方向,如果是業務型技術人員,你的主線,應該是多思考分析自己的業務,自己的知識結構,甚至於團隊,再決定自己的時間投入。

所以,不要羨慕知道很多知識點的人,而是要羨慕用這些知識點改變了世界的人