程式員,你的核心競争力真的是技術嗎?
對于工作,人人心中都會有一杆秤。我擅長做什麼,我不擅長做什麼,心中都清清楚楚。那麼各位程式員們問問自己,你的核心競争力是什麼?超過90%的人都會說,肯定是技術啊。
不過,我并不完全認同。我認為程式員的核心競争力應該是學習能力、思考力以及獨立解決問題的能力。當然,前提是你得有強悍的技術背景,這是毋庸置疑的,否則你連敲門磚都沒有。
現在,網際網路時代的技術來得快,去得更快。技術淘汰的速度也很快,3年不學習新東西,就很可能落伍了。倘若你沒有足夠強的學習能力,就無法跟上時代的變化,是以你被淘汰也是注定的。曾經你苦苦鑽研的技術,突然就被時代給重新整理掉了,那很難想象自己心态時怎樣,心裡可能空落落的吧!覺得不可思議,可這個社會就這麼戳心。
為什麼将學習能力排在程式員的核心競争力中呢?一般人都有學習能力吧,沒什麼特别的呢,不過學習能力分為主動型和被動型。被動學習的程式員思維容易處于固化,他們最多隻想解決眼前迫不得己的問題,而吸收的知識點也隻有一星半點兒,但是主動學習的程式員,敢大膽嘗試新技術,他們不斷學習新的技術能力。除此之外,他們還能夠快速掌握事物的本質,并深入了解這個東西可以用來做什麼,和不能做什麼。是以他們學習并掌握技術的速度比其他人快,并且也容易接受新的知識與思維的洗禮。
這樣的好處在于學習能力高的人,轉身即可有機會變成上司,也可以去做管理者,甚至百萬,千萬富翁。而那些學習能力差的程式員呢?他們是會抵制新技術的推廣,不想接受再次從頭學習技術的過程,想要留在舊技術的舒适區,抱着一個點想輕松吃飽幾年。可是你會發現,這些都會被技術反噬,舊的技術用不上,新的技術幹不了,隻能原地踏步,要麼隻能抱着舊技術做一天和尚撞一天鐘,要麼被淘汰。總之,哪個結果都不是好的結果。
除了學習能力,還有就是思考力和獨立解決問題的能力。如果能夠敏銳的抓住工作中的問題,并經過自己的思考,分析問題、解決問題,那麼通過這種良性積累,成長空間是很大的。一般,優秀程式員和普通程式員遇到問題的反應是不一樣的,程式員所遇到的問題,不外乎是對bug的分析、定位、以及思考。比如很多性能或邏輯上非緻命的bug,可能在某一個場景會突然爆發,就像Facebook“洩露門”一樣, bug的出現影響力可能是十分巨大的。是以優秀的程式員往往都會有這樣的“敏銳度”,以便減少這種危機,提高自己的代碼品質,和處理事情的效率。當然這個能力也不是一蹴而就的,需要長年累月的積累、悟性和主動性。而普通程式員的處理方式就夠簡單粗暴了,他們啥也不管,隻負責敲代碼,上司給他們一個任務需求,他們可以快速得敲完,但從不去深入思考工作的效率和結果,當然這也就拉開了程式員之間的差距。
對于程式員來說, Java、C++、PHP、Spark、Scala、Qt、Node.js、Hadoop等等,這些都算是資源層面的能力。而那自主學習、思考力等能力,則是應用流程方面的能力,同時也是核心競争力。這些才能夠快速整合你的知識,使得你高效率解決實際的問題。
上述提到的幾點,也隻是幫助程式員找努力的方向,關鍵還是需要去實踐與學習,付出了多少汗水,終究會有回報的。是以,當你學習使用某一技術時,着眼點應該放在如何運用它來解決問題,如何在解決問題中淬煉自己的應用流程。這才是打造核心競争力的正确姿勢。