看題主列的這些無非:語言、框架、資料庫。
作為一個寫了14年程式的老頭子可以很負責任的告訴你:別整這些沒用的。
任何一個卓越的程式設計師,掌握任何一門語言、任何一個框架、任何一種資料庫系統的時間都不應該超過三天。
因為電腦科學裏面,萬變不離其宗,最核心的只有:演算法、數據結構、體系結構。
深入理解了相關的核心原理、思想以及常見系統以後,你看什麽新玩意都應該能夠瞬間抓住本質,吸收理解並且運用自如。
如果你想成為行業裏面的個中好手或者頂尖專家,可以多關註:硬體架構、作業系統原理、編譯原理、分布式系統。
這些能讓你真正深刻理解電腦科學的核心。而其他任何東西、知識,都是從這些裏面衍生出來的。而且這些,說實話,魅力無窮,比其它東西有趣多了。
除此以外,一個最卓越的程式設計師、或者工程師吧,並不是因為技術最好,而是因為有領導能力,以及對所在行業的深刻見地。
比如如果你在行動網際網路領域,那麽卓越的程式設計師是這樣的:
- 能夠充當半個產品經理,站在產品的層面思考問題、設計程式。能夠與產品、品質部門出色的完成溝通。
- 優秀的領導能力。能夠凝結團隊力量,獲得團隊的肯定與支持,確定技術方向。領導能力並不是說你一定是經理或者老板,而是在團隊中,大家認可你的技術實力以及為人,自然而然的願意聽你的。
- 對行動網際網路行業特點、趨勢有深刻的理解。知道競爭對手的優勢劣勢,清楚自家產品的價值和業務流。
行業經驗這個事情,太重要了。電腦說到底只是工具,離不開具體的行業套用。所以熟悉具體行業又精通電腦的人,才是最或缺的復合型人才。
----------------------------
以上這些很可能題主早都已經了解了,那就當我廢話了吧。
再來聊聊感覺進步很慢這件事。
在我的職業生涯裏面,也無數次感覺進步很慢,碰到了上升的瓶頸。怎麽回事呢?
其實,學習任何東西都跟練長跑一樣,跑到某個公裏數的時候,你會精疲力盡感到再也跑不下去了。這恰恰是你的身體極限快要被突破的時候。此時,堅持下去,再慢再難也堅持下去。
很快你會發現步子開始輕盈了,前進的速度也變快了。那麽恭喜你突破了現在的瓶頸,朝下一個極限出發吧。
-------------------------------
補充下回答:
看到評論裏面有些朋友還在糾結框架幾天掌握的問題,請不要太較真了。每個人對框架的套用程度不同,以我個人的套用程度和體驗來看,三天足夠了。
而且我說的三天,不同人學習效率、空閑時間、上手速度、基礎和經驗、套用需求都不一樣,真的沒辦法比較。
有的人可以全神貫註、廢寢忘食,排除一切幹擾,三天學會一個新東西也不是什麽奇怪的事情。有的人擠不出時間,自己本來忙的就不可開交,註意力沒辦法集中,學習效率可想而知。
所以請明白我的重點,是不要花過多時間精力在追逐新語言、新框架上。這些都是表面的東西,況且現在的新框架層出不窮,三天兩頭就換一撥新潮流、新的技術棧,幾乎已經淪為了某些群體個人喜好、個人崇拜的玩具,我認為對於想踏踏實實掌握電腦科學精髓的人來說,並不值得花過多時間追逐。
作為卓越的程式設計師,首先看清楚方向,弄明白技巧、技能、思想之間的差別以及孰輕孰重,然後就是多一點點堅持,並不需要多少特別的技術上的指導,我認為已經足夠了。