這張圖,是在一位有十多年開發經驗的資深前輩博客里看到的,覺得很有趣,分享之~ 這位大神的博客是:http://coolshell.cn
理論是可行的,當你剛開始學習C++,到第21天的時候出門千萬要小心,哈哈。
看完您就明白,學習是沒有任何捷徑的,21天你可以掌握基本語法,但是如何去設計、架構、優化需要花十年或者更多的時間去探索,古人所說:“書山有路勤為徑,學海無涯苦作舟”;
其實任何一門技術,不論是音樂、編程還是畫畫,如果沒有超過十年的培養,都無法達到傑出的可能;
即使是4歲就顯露出音樂天賦的天才莫扎特,他也用了超過十三年的時間才寫出了世界級的音樂;
無欲速,欲速則不達。做開發最忌諱浮躁和速成~
舉個栗子:
在柏林音樂學院,有一個班的學生曾被做過調研,報告指出:這個班的每個學生都是從相同的年齡開始練習音樂的(五歲的時候)。在開始的幾年里,每人每周都是練習2-3個小時。但到八歲的時候,練習的強度開始出現差異。在這個班中,水平最牛的人慢慢開始比別人練得更多——在九歲的時候牛人每周練習6個小時,十二歲的時候,每周8個小時,十四歲的時候每周16個小時,並在成長過程中牛人練習得越來越多,到20歲的時候,牛人每周練習超過30個小時。20歲,這些優秀者在其生命中練習音樂總共超過10,000 小時!與之對比,其它人平均只有8,000小時的練習,而未來只能留校當老師的人,只有4,000 小時的練習。
《道德經》講:其生也有涯,其學也無涯,以有涯伴無涯,殆矣。很多人知道前兩句,不知道后兩句;
這句話中的“學”,是指學習一個全新的事物,意思是說:人的一生都在學習,但生命卻是有限的,唯有選定一個方向,不斷深入學習,十年后你才會成為這個領域的專家;不要隨意改變方向,如果換了新的方向,你用寶貴的年華換來的積累就付之一炬,換來換去,人生已到暮年。
雖然你可以半年掌握Java,但在這之后你還要花時間學習各種設計模式,以及學習隨時都可能出現並廣泛流行的新技術,比如Android、大數據;如果是做J2EE方向的則要學習各種框架,Spring、Struts、Hibernate;如果做大數據則要學 hadoop、Spark,以及Scala語言。
佛家講:一門深入,長時熏修。
雖然要學的東西很多,但這些都是為同一個方向服務的,只要選定了方向,長時間堅持,念念不忘,必有回響~ 有限的時間就能創造無限的可能。
一開始你可能會覺得一門深入會有點困難,畢竟知道得越多越會感覺到自己的無知,幸好有一張C++學習的自信心曲線圖,這張圖可以讓你看到樂觀的未來(適用所有語言):
最初,你掌握了基本語法,可以輕易的寫出一些小代碼,此時你的信心爆棚,以為自己真是個天才~!
但當你深入接觸到一些稀奇古怪、相當底層、晦澀難懂的復雜知識點后,學習自信心就會大幅下降、受挫、沮喪、懷疑自己,甚至開始靠人品編程,這個過程可能會持續一兩年,毅力不足的童鞋可能就不想再學了;
但如果此時能找份軟件開發的工作並繼續深入,就會突然開竅:原來C++的世界不能亂來,要遵循一定的規則和方法~
最后通過大量的錯誤不斷總結和反省,自信心又會慢慢建立起來,經過多年歷練才能完全恢復自信~ 這個恢復的過程可能要四五年,曾經,我的一位C++老師對我說:“我C++已經學了四年,到現在還在學~”那年他正在讀博士。
Linux之父Linus說:C++是一門很恐怖的語言,但比他更恐怖的是,許多不合格的程序員在使用C++。