Android程序員最核心的競爭力是什麼?

進行社招面試時,有一個問題幾乎是必問的:程序員

你爲何要離開上一家公司?面試

其實這個問題主要是想試探一下求職者的核心訴求,並藉此預估一下他在本公司工做的穩定性。常見的答案也無非就是這麼幾種:對薪酬不滿意、幹得不爽,或者是想換個環境。小程序

然而,我遇到過好幾個初次跳槽的求職者給出的答案是:「在原來的公司學不到技術」。微信小程序

一聽到這個,我就不禁得嘆口氣:今天這一小時又算是交代了,這人基本上沒戲。由於根據個人經驗,這句話若是由工做不滿兩年的人說出來,很大機率這是個不會學習不會感恩又特別愛抱怨的人。微信

程序員最核心的競爭力——「學習力」

若是有人問我:你在面試程序員時,最看中的是什麼能力?那個人答案必定是:學習力架構

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

學習力強的程序員敢大膽地體驗嘗試新技術,他們的技術棧始終在保持不斷地更新。他們能快速把握事物的本質,並判斷出它能用來作什麼,不能用來作什麼。他們擁抱技術升級和革命,由於他們學習並掌握新技術的速度比其餘人更快,因此他們永遠不用擔憂失業。事實上,他們掌握的是「駕駛」和「學習駕駛」的技術,而不是「駕駛XX牌汽車」的技術。性能

而學習力差的程序員呢?爲了繼續停留在舊技術的溫馨區,他們每每會抵制新技術的推廣,甚至百般阻撓。由於那會使他們過去的經驗通通無效,只能和後來者站在同一塊兒跑線上。抱死一個框架好幾年,脫離了框架啥都幹不了的程序員實在太多了。事實上,這樣的人不能駕馭技術,反而是被技術給奴役了。學習

一樣是自行車,爲何山地車比公路車更普及更流行?除了皮實耐用價格低外,主要是由於它的經過性好,什麼泥地沙地都不在話下,上下馬路牙子跟玩同樣。而公路車呢?只能老老實實地跑在平路上。優化

公司不是學校

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

在中國傳統文化裏,無論是匠人仍是武師,收徒都要找毫無根基的幼童。這一方面是爲了保持師父的絕對權威,方便貫徹落實教學;另外一方面是爲了儘可能延長學徒期,以考察徒弟的品性。拜師以後,徒弟便跟隨師父一塊兒生活,通過數年的言傳身教,這才得以出師。

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

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

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

學習是本身的事,沒有人能替你去作。這就跟吃飯同樣,誰真的關心你吃沒吃、飽沒飽?就算你的親人再怎麼關心你,也不能替你去吃。咱們都知道,人不吃飯確定是要餓死的,那你爲何不去給本身找吃的,卻在埋怨沒有人給你嘴裏餵食呢?

爲何你學不到技術?

不少人在學習之路上已經飽嘗了痛苦的滋味,所以在離開學校以後。他們不到萬不得已,是決然不會去學習的。你不妨回顧一下,從參加工做以來到如今,本身哪段時間裏學習最認真,進步最明顯?

若是不出意外的話,應該就是你找到的第一份工做的試用期。由於不想失去本身經過努力爭取到的工做機會,因此你不得不逼本身打起十二份精神來學習,結果竟然以本身都沒法想象的速度掌握了工做必備的知識和技能。

然而,大多數人在本身的能力知足當前工做的要求以後,就喪失了學習的動力。下班以後要追劇,要玩遊戲,要打球,要談戀愛……爲啥我要學習?不學又不會失業!學這個有啥用?誰知道用得上用不上?等要用的時候再學唄!

其實,學不到技術最核心的緣由只有一個:動機不足。至於環境條件,只是影響學習效果的因素之一,但絕對不是最重要的因素。在一個惡劣的環境裏選擇放棄學習的人,不可能到了一個優越的環境裏就會去主動學習,由於在他心裏深處對學習是抗拒的。

難道說換上了Macbook Pro和4k顯示器,坐在數千元的人體工學座椅上,下班後就會有興趣看框架源碼了嗎?看電影、打遊戲不是更舒服一些?

在我看來,學習力的源泉就是好奇心,也就是對新知識的渴求,以及對探索未知的衝動。咱們的大腦是「用進廢退」的,若是不按期給它輸送新鮮的知識養分,它就會逐漸退化。有學習力的人一段時間不看書,不折騰點新玩意,大腦真的是會「餓」的。

程序員該怎麼學習技術?

有的求職者以爲本身沒學到技術,是由於公司不給機會,或者缺少條件:

「上次的H5讓小王作了,此次的微信小程序又給了小李……徹底沒我什麼事啊!」
「公司最大一張表才10W數據,根本用不着分庫分表啊!」
……

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

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

若是你是Android工程師,掌握了NDK和性能調優,就能秒殺90%的同行,不開玩笑。

問題是,你認爲你掌握了,可你真的掌握了嗎?

「讀源碼」是深刻學習開源技術的惟一途徑。只有理解了某個功能在底層是如何實現的,你才能真正把握它更適合用來作什麼,不能用來作什麼。正如不明顯汽車的構造和原理,咱們也能把車開好。而若是多少知道一點,開起來就會更駕輕就熟。當車出現問題時,也不至於徹底一籌莫展,只能蹲在路邊等待救援。

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

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

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

今年,我爲了幫助本身真正掌握Android開發的知識點,利用下班時間,歷時八個多月作出了一份《Android開發核心知識點筆記》,它也確實幫助加深了我對不少知識的瞭解。

但與此同時,這段時間你在幹什麼?學習了多少?如今2019年立刻就要過去了,在2020年以前我但願你們能夠仔細想想,在2019年這一全年裏,你提高了多少?

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

然而,所謂的機會,只屬於已經提早準備好的人。 不要等到工做都安排到你身上了再去學習。公司不是你的試驗田,你也不應拿用戶當小白鼠。公司不給你機會,那隻說明你尚未準備好。

後話

「吾生也有涯,而知也無涯 。以有涯隨無涯,殆已!」——《莊子·內篇·養生主第三》

技術世界就如同一片汪洋大海,細分領域真是多如牛毛。咱們只是站在其中一個小島上,怎麼肯定本身該朝哪一個方向進發呢?

學習技術不外乎如下兩個方向:

一、廣度:整個使用鏈條由哪些環節構成?每一個環節的做用是什麼?都有哪些相似的可替代方案?它們之間有什麼區別?各自優劣點是什麼?……

二、深度:這個「技術 / 產品」的本質是什麼?都能作什麼?運做原理是什麼?底層是如何實現的?能夠作怎樣的改進?……

無論你在作什麼工做,都應該先把本身天天都要用的核心技術作到必定深度,再去拓展廣度。 「什麼都知道一點,但都不甚瞭解」是最可怕的,它會讓你誤覺得本身已經很NB了。

學習,是一生的事。


感謝你們能耐着性子,看完我囉哩囉嗦的文章

在這裏我也分享一份本身收錄整理的Android學習PDF+架構視頻+面試文檔+源碼筆記,還有高級架構技術進階腦圖、Android開發面試專題資料,高級進階架構資料幫助你們學習提高進階,也節省你們在網上搜索資料的時間來學習,也能夠分享給身邊好友一塊兒學習

若是你有須要的話,能夠點贊+評論

相關文章
相關標籤/搜索