1. 程式人生 > >程式設計師的核心競爭力是什麼?

程式設計師的核心競爭力是什麼?

程式設計師最核心的競爭力——「學習力」

如果有人問我:你在面試程式設計師時,最看中的是什麼能力?那我的答案一定是:學習力。

網際網路時代的技術來得快,去得更快。就像Flash這樣曾經雄霸天下多年的技術,都有被人人唾棄的一天。如果沒有足夠強的學習能力,就無法跟上變化,被淘汰只是遲早的事。想想看,你苦心鑽研多年引以為傲的技術,一夜之間就沒有用武之地了,難免會有一種「身體被掏空」的感覺。

學習力強的程式設計師敢大膽地體驗嘗試新技術,他們的技術棧始終在保持不斷地更新。他們能快速把握事物的本質,並判斷出它能用來做什麼,不能用來做什麼。

擁抱技術升級和革命,因為他們學習並掌握新技術的速度比其他人更快,所以他們永遠不用擔心失業。事實上,他們掌握的是「駕駛」和「學習駕駛」的技術,而不是「駕駛XX牌汽車」的技術。

而學習力差的程式設計師呢?為了繼續停留在舊技術的舒適區,他們往往會抵制新技術的推廣,甚至百般阻撓。因為那會使他們過去的經驗統統無效,只能和後來者站在同一起跑線上。

抱死一個框架好幾年,脫離了框架啥都幹不了的程式設計師實在太多了。事實上,這樣的人不能駕馭技術,反而是被技術給奴役了。

 

 

 

 

 

 

公司不是學校

面對這些因為「想學點技術」而換工作的求職者,評價他們「不思進取」貌似不太合適。但顯然他們的思維模式還是被學校洗腦的那一套,沒能真正地融入社會。也許他們認為,學習就是要由老師手把手帶著,而自己之所以學不到技術,就是因為沒遇到一個好leader,能替自己設計好成長路線,指出所有重難點,提供各種參考資料……

在中國傳統文化裡,不管是匠人還是武師,收徒都要找毫無根基的幼童。這一方面是為了保持師父的絕對權威,方便貫徹落實教學;另一方面是為了儘量延長學徒期,以考察徒弟的品性。拜師之後,徒弟便跟隨師父一起生活,經過數年的言傳身教,這才得以出師。

師父收徒的核心訴求,是「傳承」自己的技藝和名聲,希望徒弟日後能做出一番成就來光耀師門。這就要求徒弟流動性低、忠誠度高、歸屬感強。與其說是收徒,還不如說是在挑兒子,所以有句俗話叫作「一日為師,終身為父」。

然而公司是盈利性的商業組織,不是學校,更不是新手訓練營。公司招聘員工的核心訴求,是生產出實實在在、對得起薪水的價值,而不是傳承技藝。公司希望員工入職前就具備工作的能力,至少在經過短暫的培訓和指導後就能獨立開展工作,正所謂「能幹就幹,幹不了走人」。

一般情況下,為了使新人儘快進入工作狀態,公司會安排一位老員工來做一段時間的導師。但導師只有為你解惑的義務,卻沒有教你技術的責任。 因為導師自己手裡還有做不完的工作,帶新人又沒什麼利益可圖,憑什麼為你提供私人教練級的服務?能有耐心聽完你的問題,指點一下方向,就已經很不錯了。

學習是自己的事,沒有人能替你去做。這就跟吃飯一樣,誰真的關心你吃沒吃、飽沒飽?就算你的親人再怎麼關心你,也不能替你去吃。我們都知道,人不吃飯肯定是要餓死的,那你為什麼不去給自己找吃的,卻在埋怨沒有人給你嘴裡餵食呢?

 

 

 

 

程式設計師該怎麼學習技術?

學習技術最有效的方式是閱讀、實踐和交流。公司沒給你安排這方面的工作,那你自己都做了些什麼呢?八小時之外的時間都用在哪了?有沒有讀原始碼?有沒有看原版書?有沒有泡技術社群?有沒有嘗試最新流行的技術?有沒有嘗試把它們用在公司的專案上?有沒有主動去接觸行業裡使用這些技術的團隊和大牛?

「看文件」其實是最快的學習方法。對於自己工作中常用到的技術,抽時間把官方文件通讀一遍(其實篇幅都不大),絕對收穫滿滿。沒事的時候多翻翻自己使用的框架/系統/平臺的API,看看有哪些自己不知道或者沒用過的功能,想想這個功能可以用來做什麼,能不能解決現存的問題,或者優化當下的解決方案。

如果你是前端工程師,通讀HTTP協議和ECMAScript標準,就能秒殺95%的同行,不開玩笑。

「讀原始碼」是深入學習開源技術的唯一途徑。只有理解了某個功能在底層是如何實現的,你才能真正把握它更適合用來做什麼,不能用來做什麼。正如不明白汽車的構造和原理,我們也能把車開好。而如果多少知道一點,開起來就會更得心應手。當車出現問題時,也不至於完全束手無策,只能蹲在路邊等待救援。

你一個框架用了N年了,卻連一行原始碼都沒讀過?如果它是你女朋友,估計早該分手了。

「折騰」是學習任何技術的必經之路。在有保護的環境下進行大量的試錯,是最高效的學習方法。現在虛擬機器技術已經那麼成熟,VPS也很便宜,你為什麼不分分鐘弄一個,然後在上面花式作死呢?

聽說過無數次 rm -rf / 的事故,可你居然一次都沒試過?知道輸出啥樣子麼?

公司給你提供的最有價值的東西,就是實戰的機會。 你所學習的技術,最終需要通過工作來變現。你有機會接觸到真實的資料,瞭解真實的使用者,觀察真實系統是怎樣運轉的,積累真實的經驗……

然而,所謂的機會,只屬於已經提前準備好的人。 不要等到工作都安排到你身上了再去學習。公司不是你的試驗田,你也不該拿使用者當小白鼠。公司不給你機會,那隻說明你還沒有準備好。

記住,學習是一輩子的事。

程式設計師最核心的競爭力——「學習力」

如果有人問我:你在面試程式設計師時,最看中的是什麼能力?那我的答案一定是:學習力。

網際網路時代的技術來得快,去得更快。就像Flash這樣曾經雄霸天下多年的技術,都有被人人唾棄的一天。如果沒有足夠強的學習能力,就無法跟上變化,被淘汰只是遲早的事。想想看,你苦心鑽研多年引以為傲的技術,一夜之間就沒有用武之地了,難免會有一種「身體被掏空」的感覺。

學習力強的程式設計師敢大膽地體驗嘗試新技術,他們的技術棧始終在保持不斷地更新。他們能快速把握事物的本質,並判斷出它能用來做什麼,不能用來做什麼。

擁抱技術升級和革命,因為他們學習並掌握新技術的速度比其他人更快,所以他們永遠不用擔心失業。事實上,他們掌握的是「駕駛」和「學習駕駛」的技術,而不是「駕駛XX牌汽車」的技術。

而學習力差的程式設計師呢?為了繼續停留在舊技術的舒適區,他們往往會抵制新技術的推廣,甚至百般阻撓。因為那會使他們過去的經驗統統無效,只能和後來者站在同一起跑線上。

抱死一個框架好幾年,脫離了框架啥都幹不了的程式設計師實在太多了。事實上,這樣的人不能駕馭技術,反而是被技術給奴役了。

 

 

 

 

 

 

公司不是學校

面對這些因為「想學點技術」而換工作的求職者,評價他們「不思進取」貌似不太合適。但顯然他們的思維模式還是被學校洗腦的那一套,沒能真正地融入社會。也許他們認為,學習就是要由老師手把手帶著,而自己之所以學不到技術,就是因為沒遇到一個好leader,能替自己設計好成長路線,指出所有重難點,提供各種參考資料……

在中國傳統文化裡,不管是匠人還是武師,收徒都要找毫無根基的幼童。這一方面是為了保持師父的絕對權威,方便貫徹落實教學;另一方面是為了儘量延長學徒期,以考察徒弟的品性。拜師之後,徒弟便跟隨師父一起生活,經過數年的言傳身教,這才得以出師。

師父收徒的核心訴求,是「傳承」自己的技藝和名聲,希望徒弟日後能做出一番成就來光耀師門。這就要求徒弟流動性低、忠誠度高、歸屬感強。與其說是收徒,還不如說是在挑兒子,所以有句俗話叫作「一日為師,終身為父」。

然而公司是盈利性的商業組織,不是學校,更不是新手訓練營。公司招聘員工的核心訴求,是生產出實實在在、對得起薪水的價值,而不是傳承技藝。公司希望員工入職前就具備工作的能力,至少在經過短暫的培訓和指導後就能獨立開展工作,正所謂「能幹就幹,幹不了走人」。

一般情況下,為了使新人儘快進入工作狀態,公司會安排一位老員工來做一段時間的導師。但導師只有為你解惑的義務,卻沒有教你技術的責任。 因為導師自己手裡還有做不完的工作,帶新人又沒什麼利益可圖,憑什麼為你提供私人教練級的服務?能有耐心聽完你的問題,指點一下方向,就已經很不錯了。

學習是自己的事,沒有人能替你去做。這就跟吃飯一樣,誰真的關心你吃沒吃、飽沒飽?就算你的親人再怎麼關心你,也不能替你去吃。我們都知道,人不吃飯肯定是要餓死的,那你為什麼不去給自己找吃的,卻在埋怨沒有人給你嘴裡餵食呢?

 

 

 

 

程式設計師該怎麼學習技術?

學習技術最有效的方式是閱讀、實踐和交流。公司沒給你安排這方面的工作,那你自己都做了些什麼呢?八小時之外的時間都用在哪了?有沒有讀原始碼?有沒有看原版書?有沒有泡技術社群?有沒有嘗試最新流行的技術?有沒有嘗試把它們用在公司的專案上?有沒有主動去接觸行業裡使用這些技術的團隊和大牛?

「看文件」其實是最快的學習方法。對於自己工作中常用到的技術,抽時間把官方文件通讀一遍(其實篇幅都不大),絕對收穫滿滿。沒事的時候多翻翻自己使用的框架/系統/平臺的API,看看有哪些自己不知道或者沒用過的功能,想想這個功能可以用來做什麼,能不能解決現存的問題,或者優化當下的解決方案。

如果你是前端工程師,通讀HTTP協議和ECMAScript標準,就能秒殺95%的同行,不開玩笑。

「讀原始碼」是深入學習開源技術的唯一途徑。只有理解了某個功能在底層是如何實現的,你才能真正把握它更適合用來做什麼,不能用來做什麼。正如不明白汽車的構造和原理,我們也能把車開好。而如果多少知道一點,開起來就會更得心應手。當車出現問題時,也不至於完全束手無策,只能蹲在路邊等待救援。

你一個框架用了N年了,卻連一行原始碼都沒讀過?如果它是你女朋友,估計早該分手了。

「折騰」是學習任何技術的必經之路。在有保護的環境下進行大量的試錯,是最高效的學習方法。現在虛擬機器技術已經那麼成熟,VPS也很便宜,你為什麼不分分鐘弄一個,然後在上面花式作死呢?

聽說過無數次 rm -rf / 的事故,可你居然一次都沒試過?知道輸出啥樣子麼?

公司給你提供的最有價值的東西,就是實戰的機會。 你所學習的技術,最終需要通過工作來變現。你有機會接觸到真實的資料,瞭解真實的使用者,觀察真實系統是怎樣運轉的,積累真實的經驗……

然而,所謂的機會,只屬於已經提前準備好的人。 不要等到工作都安排到你身上了再去學習。公司不是你的試驗田,你也不該拿使用者當小白鼠。公司不給你機會,那隻說明你還沒有準備好。

記住,學習是一輩子的事。