怎樣從零開始成為優秀的程序員?
怎麼說呢?這個問題回答不慎,容易走兩個極端:太勵志了容易燉成雞湯;現實一點容易打消題主的積極性,沒準兒扼殺了未來的Pony和Robin,不過,作為一個負責任的知友,我還是要跟題主提出我苦苦思索了1000多秒的「優秀程序猿成長法則」。言歸正傳,高能預警。
合適的人在合適的時間做合適的事
合適的人:有的時候你不得不承認,要在一個特定行業做到優秀,天賦很重要。而編程恰恰就是這樣一種「特定」的行業。這裡的天賦是智商、情商、性格等多種個人因素疊加的結果。首先你智商不能太低吧,基本的邏輯思維還是要有的吧?其次你情商也不能太低吧,遇到bug不能退縮啊。性格外向點倒也無妨,但編程的時候總能靜靜的做幾個小時的美男子吧?如果你還有一定意志力、對搗鼓電腦樂此不疲那就更好了。不過,如果你不滿足這些先天條件,建議你還是不要以「成為優秀的程序猿」作為目標了,條條大路通羅馬,360行的狀元都是牛人,互聯網不是還有產品和運營崗位嗎?
最後,要特別聲明的是,天賦與高考成績關係不大。你就當這句話是在給你灌雞湯好了。合適的時間:曾經有一位而立之年的創業者苦於找不到合適的技術合伙人,問我:我現在開始自己學編程行不行?我問他:中國結你知道吧?他說:知道。我給了他一段紅繩和一張北京地圖,說:給你一刻鐘,你給我編一個西直門立交橋一樣的中國結出來。他廢寢忘食拼盡全力一天之後拿著成品過來找我,滿懷期待的說:我是不是可以學編程了?我指了指牆上的時鐘:時間早過了!
故事純屬娛樂,但是30歲想學編程的創業者是真。我沒有做過統計,但是我身邊優秀的程序猿初次全身心編程(hello world不算)的時間沒有高於24歲的。25歲以後,普通人的精力、學習能力甚至是智力都會開始下滑,加上娶妻生子各種社會上的壓力,實際上是不適合從零開始編程了。所以,還處在黃金年齡的90後們,要學編程的就趕緊了,錯過了這個時間一輩子都成不了優秀的程序猿了。
做合適的事:先問幾個問題,會翻牆嗎?上知乎嗎?用什麼查編程資料?編程筆記和總結做了多少?從培養良好的習慣做起,這是第一步。至於第二步, @肥肥魚整理的很全面了,網上大神的博客也有很多,開始動手編程吧。向著一萬小時努力吧。
類比於周總一貫的「話糙理不糙」,我這法則說起來抽象,道理也簡單:年輕人有天賦坐得住,在正確的方向上編一萬個小時。你有機會從零基礎成為優秀程序猿。
碼字不易,碼好更難,且碼且珍惜。如果覺得有道理,歡迎點贊哦~首先要看優秀怎麼定義,如果你說的是大師級別,那要靠天賦,可遇不可求。
如果你說的是行業內部的優秀,也就是搞好你自己那一畝三分地,只要有好的老師帶入門,再加上你自己努力,完全可以實現。特別是國內總體水平低,坐而論道的多,能真正動手寫漂亮代碼的少,大學教育本來就落後,出來工作個5年,剛剛有點領悟,就轉管理做PM了。在這種環境下,成為一個相對優秀的程序員不是難事。再說個經歷,我大學是計算機系的,考研的時候想轉行搞金融,去考研論壇上看了看金融碩士就業的評論。金融專業被黑得那個慘啊,說畢業後工作幾乎都是去拉貸款,沒啥前途。當時信以為真,放棄了這個想法。後來發現和我同期換專業的筒子,人家不是基金公司就是銀監會保監會,風生水起。所以說,自己的路自己選,別太在意別人的意見。for(;;){
practice();
}
在問這個問題時希望你去嘗試著編譯一個簡單的程序。當你遇到不懂的時候你能做到去網上下載源碼學習;當你滿心歡喜的看著自己寫出來的程序在電腦上運行突如其來的大片英文錯誤和異常時,你不去罵這該死的程序而是耐心的調試;等等...
簡單的事情重複做,這是做程序最基本的。希望你在進入這一行前能發現自己是否真的感興趣而不是一時腦熱。
共勉!到cmu虐一通
practice makes perfect!
我也是在成為程序猿的路上,一起努力吧!
首先要成為一名程序員。
推薦閱讀:
※2014 年有哪些值得推薦的年度 Android 遊戲?
※受互聯網影響,傳統服裝批發市場會不會消失?
※有哪些計算機術語的翻譯,讓你第一次學的時候感到十分彆扭?
※網易味央在高安開建第二座豬場,如果網易招你去養豬,你所學的專業可以做出什麼創新?