大約12年前,我在一個很小的電腦上寫了我人生中的第一個程序。個人第一個程序,跟其餘不少人同樣,就是在電腦屏幕上打印出「Hello, World!」。隨着歲月的流逝,我已經熟悉了幾十種編程語言,建立了許多應用程序,目前能夠掌握各類編程語言和開發角色。php
基於這些經驗和個人思考,以及閱讀的編程書籍和文章,收看的技術講座、主題演講和教程–這裏是我對程序員新手的三個基本建議。程序員
Elon Musk 是一些數十億美圓公司(如 Paypal、SpaceX 和 Tesla Motors)的CEO和CTO,他很是精通航空航天、機械、電子和軟件工程等技術,並在這些領域頗負盛名。在Reddit上關於他的 Ask-Me-Anything 討論中,他被問到:「…對於學習你有哪些建議?你是如何作好這些的呢?」。編程
他的回答是:「確保你瞭解基本原則,即軀幹和分支,在你進入細節以前」。編程語言
要成爲一名優秀的程序員,學習基本概念,並學好它們是很重要的。編程的藝術在一步步的延伸,缺少這些重要的基本原則可讓程序員失去,當他們面對更高級的主題時。學習
Aristotle(亞里士多德),希臘著名的哲學家和科學家,曾經說過:「對於那些咱們在能作到以前必須學習如何作的事情,咱們須要邊作邊學 (For the things we have to learn before we can do them, we learn by doing them.)」。網站
編程就像數學;最好的方法就是在問題和失敗中不斷的實踐–關鍵是如何有效的從失敗中走出來。翻譯
要有效地學習,你須要考慮一個潛在的編程項目和工做。也許一個應用程序,一個網站,一個遊戲,甚至是一個朋友的想法。花時間研究相似的想法,應該採起哪些方法以及應該如何開始。3d
經過這種方法,你不只能學會編程 -,也能學會如何把你的想法變成現實,這自己也是一種技巧。教程
我常常說:「不要問你能Google到的問題」。經過這種方式使得我能夠在正確的時間問正確的問題,而且當須要的時候我能夠花費本身的時間來研究一個主題。遊戲
搜索是一種藝術–程序員天天都在這樣作。程序員應該目標明確,有策略的解決問題,並能在成本和收益之間找到合適的平衡點。
例如,若是你經過搜索5分鐘就能解決一個問題,那麼你應該避免花費5個小時來弄明白它–若是你能確保有其餘程序員也遇到了一樣的問題,在網上提問尋找答案,並收到了大量不一樣的解決方案。有些人可能會說,本身解決問題能夠獲得鍛鍊並從中獲得知足感。然而,個人經驗告訴我,我經過這種「聰明的」方法,能夠學到更多。
在成爲一名優秀程序員的路上還有不少的經驗要學習,可是我認爲在早期掌握這些基本的技巧是很是必要的,而且會對未來長期的學習路途有重要的影響。