如何擁有技術領導力
看到標題中的 領導 兩個字眼,不要以為我準備談程序員如何轉行做管理。這里的技術領導力指的是 技術上的領先、技術上的優勢 ,而不是領導他人。
在談技術領導力之前,我們首先要相信, 做技術有前途 。如果我們內心都不相信做技術是一條不錯的出路,我們又怎么能專心向這個方向努力呢?現實是,我們可以在很多場合都能聽到程序員技術做不長,吃青春飯,商業模式比技術更重要,等等。這樣的言論聽多了,會干擾我們對未來做選擇,畢竟人活在當下,還要考慮未來。
我們先捋一捋 做技術是不是真的有前途 。
技術重要嗎?
現在網絡上充斥著 35歲危機 的話題,大意就是說程序員是編程的農民工,干的都是體力活,加班很嚴重。到了35歲,體力下降,自然競爭不過年輕人,由此推斷做技術沒有什么前途。更進一步是建議大家要有危機意識,要未雨綢繆,提前轉管理或是轉行。
這樣乍一想也對,從大學畢業到 35 歲,也就是 10 多年的時間。而現代人普遍壽命越來越長,活到 80 多歲是大概率的事情。這之后還有 50 多年的時間,除非暴富,否則是掙不到下半輩子夠花的錢的。想到凄慘的后半生,提前做一些準備也是對的。
其實看看國外,五六十歲程序員并不少見。我之前寫過一篇文章《 為啥你身邊沒有40+的程序員 》,對此現象進行了分析,這里再補充一下。
中國自改革開放以來,直到現在仍處于加速發展中。這個過程中,遍地機會,公司可以通過“野蠻開采”來實現自身業務的快速拓展和擴張。這就如同改革開放初期,生產家電,不需要太好的質量,只要能生產出來,就不愁銷售不出去,因為那時的中國,普遍處于物資匱乏的階段。
但是,這是常態嗎?
很顯然不是,如今家用電器市場競爭如此慘烈,沒有過硬的質量,根本就無法存活。這就倒逼廠家投入研發,不斷采用新科技提高競爭力,以至于中國人開始驚呼各個領域開始 內卷 。
有人說,理是這么一個理,但是現在就業市場上確實大部分招聘上都寫著 35 歲以下這個條件。這依然不會是一個常態,中國和中國的公司也不會這樣一直走下去。
首先,看看現在的阿里、騰訊、字節跳動、京東等互聯網公司,表面上是做電商、社交、媒體,實際上都是技術驅動公司。在競爭日益激烈的今天,如果不去發展自己的核心技術,提高技術領導力,不從早期的業務型公司轉變成為技術型公司,就會走下坡路。這方面,百度就是一個典型的例子,將自己定位成一個廣告公司,開始走下坡路。這幾年開始醒悟過來,發力人工智能、無人駕駛等新技術,重新走上技術驅動之路。
其次,現在的國際環境也逼迫著中國走向技術創新之路,比如之前采用拿來主義的芯片、操作系統、基礎軟件,等等,都得到國家的大力扶持。企業也開始明白,打造自主可控的產業鏈,才能抵御外在風險。這么些年來,華為是這方面的典型,其實阿里、騰訊、字節跳動等公司在操作系統、數據庫、云計算等基礎設施軟件上的投入也很大。這些基礎軟件的研發,都不是一朝一夕就能完成,相關人才也不是培訓機構能夠速成的,在這樣的氛圍下,還擔心以后老了競爭力下降么?
最后,如果進入一家公司,既不尊重技術,也不尊重技術人員,趕緊走人,在這樣的公司確實干不長久。
所以,無論是一個國家,一個公司,還是一個人,在今天這樣技術浪潮一浪高過一浪的形勢下, 擁有技術不是問題,而問題是有沒有擁有技術領導力 。
只有擁有 技術很重要 這樣的信念,我們才能在孤獨的技術之路上勇敢的走下去。
什么是技術領導力?
技術領導力不僅僅是呈現出來的技術,而是一種可以獲得絕對優勢的技術能力。
我們回顧一下,從蒸汽機時代,到電力時代,再到信息時代,科學技術推動生產力的發展,轉化為直接生產力的速度在加快。這其中,首先是 關鍵技術 的突破,可以讓我們建造很多更牛的工具。而這些工具促進了生產自動化,大幅提高生產效率。技術推動人從勞動密集型的工作中解放出來,去做更高層次的知識密集型的工作。
聚焦到 IT 領域,技術領導力是:
-
尊重技術,追求核心基礎技術。
-
追逐自動化的高效率的工具和技術。
-
開發抽象和高質量的可以重用的技術組件。
-
堅持高于主流的技術標準和要求。
看到這里,估計有很多人會打退堂鼓。我就一普通人,何德何能,能做出改變人類的技術革新?
我們要明白,這個世界是由少數天才推動的,比如牛頓、愛因斯坦這樣的絕世天才,多少年才會出現一個。但普通人一樣能推動社會進步,因為這世界的技術有兩種:
-
一種是像從馬車時代到汽車時代這樣的技術,也就是汽車的關鍵技術 —— 引擎
-
另一種則是工程方面的技術,而工程技術可能是讓汽車更安全、效率更高、更加舒適。
對于第一種,確實只有少數人才能完成發明或創造,但對于后者來說,所有的工程師都有機會,所以不妨礙我們擁有技術領導力。
如何擁有技術領導力?
作為一個軟件工程師,我們怎么讓自己擁有技術領導力呢?總體來說,可以從以下幾個方面努力:
-
扎實的基礎技術
基礎技術是各種上層技術共同的基礎。吃透基礎技術是為了更好地理解程序的運行原理,并基于這些基礎技術進化出更優化的產品。對于技術人員來說,基礎知識越扎實,走得就會越遠。
更重要的是,學好基礎技術,能讓你一通百通,更快地使用各種新技術。現在很多程序員抱怨技術更新太快,但是如果我們靜下心來分析,你會發現,只是表現形式很多,而基礎技術并不多。如果能做到觸類旁通,再多的新技術也不怕。
哪些才是基礎技術呢?可能看這個清單,又有不少人從入門到放棄。沒有辦法,這就是人性的弱點,只有克服了,才能讓自己更加強大。所以,不要擔心自己是不是編程的這塊料, 以大多數人的努力程度之低,根本輪不到拼天賦 。你至少在別人刷抖音、微博的時候,稍微多努力一些,就能超越大多數人。
下面是一些基礎技術的清單:
-
C語言
-
編程范式
-
算法和數據結構
-
計算機系統原理
-
操作系統原理和基礎
-
網絡基礎
-
數據庫原理
-
分布式技術架構
需要明白的是,上面這些基礎知識難以速成。如果能將所有技術都鉆研透,那是絕對的大牛。我們可以先從一兩項著手,認真研讀相關的書籍和論文,做一頭小牛。然后才是終身學習,慢慢成為大牛。無論怎樣,這些基礎技術值得你用一生的時間來學習,因為基礎上的技術和知識,會隨著閱歷和經驗的增加而有不同的感悟。
-
非同一般的學習能力
畢業生或者初入職場的新手經常會強調自己有很強的學習能力,畢竟這個階段沒有什么拿得出手的東西證明自己,但不是每個人都清楚學習能力是指哪些方面。
所謂學習能力,就是能夠很快地學習新技術,又能在關鍵技術上深入的能力。
現在的互聯網這么發達,搜索引擎如此強大,并不是說找到現成答案就是學習能力強。
一些提升學習能力的做法:
-
尋找優質的信息源。好的信息源就可以更快速地獲取有價值的信息,并提升學習效率。做技術的人應該認識到, Google 搜索引擎、Stack Overflow 比百度更優質。如果能到社區里去找作者或者其他人交流,收獲會更大。
-
與高手交流。程序員可以通過技術社區以及參加技術會議與高手交流,也可以通過參加開源項目來和高手切磋。
-
舉一反三的思考。
-
不怕困難的態度。
-
開放的心態。實現一個目的通常有多種辦法。帶有開放的心態,不拘泥于一個平臺、一種語言,往往能帶來更多思考,也能得到更好的結果。而且,能在不同的方法和方案間做比較,比較它們的優缺點,那么你會知道在什么樣的場景下用什么樣的方案,你就會比一般人能夠有更全面和更完整的思路。
-
堅持做正確的事
這里”正確的事“,并不是一種價值判斷,而是將精力集中在:
-
提高效率的事。
-
自動化的事。
-
掌握前沿技術的事。
-
知識密集型的事。
-
技術驅動的事。
計算機技術是一門實踐性非常強的學科,實踐的重要性怎么強調也不為過。學習知識,一定要實際用一用,可以是工作中的項目,也可以是自己的項目,不僅有利于吸收理解,更有利于深入到技術的本質。并可以與現有技術對比一下,同樣的問題,用新技術解決有什么不同,帶來了哪些優勢,還有哪些有待改進的地方。
最后,即使你以后走上技術管理崗位,或者架構師崗位,也不要放棄編程。不寫代碼,你就對技術細節不敏感,無法做出可以實踐的技術決策和方案。