不管是中途放棄,還是抽不出時間,最終都要把學到的東西落實到應用中去。
近年來,許多人對學習程式設計產生了興趣。
畢竟網上有海量的程式設計資源。
但是學習程式設計並不容易。以下就是一些我們在學習中會面臨的挑戰
1. 每天都找不到合適和足夠的時間
有其他的事情要做,不能專心學習程式設計。
你可能有乙份兼職或者乙份全職工作,或者要居家照看孩子。關鍵是很難抽出空來。那麼,你如何每天呼出時間來學習程式設計呢?
有些人可能會說:「如果你肯下功夫,總能找到時間。」說實話,我同意。
所以問題就變成了:「你每天應該花多少時間學習程式設計?」如果每天只能抽出半個小時,那還能學到東西嗎?
這個問題只有你自己才能回答。每天應該學多久的程式設計,這個很難有確切的答案。有些人建議時間不要太長——15分鐘就夠了。
另一方面,我也聽說過有些人在一年左右的時間每天學習9到10個小時的程式設計,取得了驚人的進步。所以如果你想找到點動力,可以參考一下這個。
底線在於:只有你自己知道你每天可以抽多少時間出來學習程式設計,並養成習慣。freecodecamp的創始人quincy larson曾在twitter上說:
不在於某一天突飛猛進,而是每天都循序漸進。
你可以自己去找找資源,看看那些在技術領域工作了十幾年的資深開發人員是怎麼做的,儘管這個不一定是絕對標準,但會讓你知道如何為自己設定乙個現實的、可持續的學習計畫。
2. 在「沒有取得長足進步」和「精疲力竭」之間找到平衡點
就我個人而言,我在這方面掙扎了很久。
當時有幾天,我就是沒法理解書中的乙個**片段。我非常疲憊,以至於不得不強行讓自己冷靜下來,去陽台深呼吸。
從那時起,我就一直提醒自己不要用力過猛,以免物極必反。
學習程式設計並不容易。你需要集中注意力——尤其是當你學習新東西的時候。這是一種精神上的負擔,有時候你無法弄清楚——為什麼你寫的**沒法奏效,或者為什麼它就奏效了。
我發現,每當我真正專注於正在解決的問題時,我的效率非常高,同時也非常放鬆——當我發現乙個需要解決的問題的時候,當我在網上找到了解決辦法的時候,當我試了各種各樣的辦法想看看哪個能奏效的時候,以及當我解決了所有問題的時候,我很享受整個過程。
在演算法學習中,我們遇到的很多東西都是非常複雜的(資料結構和演算法等等),每當我學習編碼時,我都會應用「50/50規則」。
我用50%的時間來做困難的任務,學習概念和演算法等等。另外50%的時間我就幹自己最有興趣的活兒。所以我在日程學習中保持了一種平衡。
所以,坦率地說,你需要熱愛自己的工作。我們來看看下一點。
3. 熱愛自己的工作
雖然聽起來很老套,但這是事實。如果你熱愛自己正從事的工作和方向……你就不需要從外界的認可獲得動力。
這種滿足感是無法偽造的。
4. 記得在完成了別的工作後,繼續堅持學習程式設計
事實是,當涉及到自學時,你永遠都沒法心無旁騖地學習。
我們在生活中都扮演了各種各樣的角色——可能是丈夫,或者妻子,或者父母。你需要照顧家庭,或者工作,或者完成學業。
當我們還有其他角色,哪兒有時間去學習程式設計呢?
有時候你的確做不到一直堅持學習。我最長的不學程式設計的時間是兩個月。
但在那之後,我立即又撿起了程式設計的學習。我發現自己忘記了很多學過的東西。當你拿起同一本書,卻不知道如何繼續讀下去時,你可能會感到沮喪。「天啊,難道我真的要重頭來過,再學一次嗎?」
這就是你必須堅持到底的時候了。
你需要告訴自己:「好吧,第乙個小時的學習可能很慢,效率也不高。不過沒關係,我明天再多學點就可以補上了。」
但粉飾也沒用,只能繼續前進。你可以發洩,但是只要發洩完了,就趕緊繼續學習。
5. 無論如何,保持動力
自學是很不一樣的。當你自學程式設計的時候,身邊沒有人跟你一道。沒有同學,沒有社交,成功了也沒有喝彩。大多數時候,你都是乙個人。大多數時候,你都是孤獨的。
所以你需要找到某種動力來保持前進。
我一直在看這個**——r/macsetups,因為那裡有很多開發人員。他們用強大的硬體來建立自己想要建立的軟體。沒有比這更值得的了。
要獎勵自己,讓它成為一種習慣。
獎勵可小可大。可以是一天結束後洗個熱水澡,也可以是喝杯冷飲。告訴自己你做得很好。
6. 不要「為了學習而學習」,要去面試,去實踐,去參加工作
在學習程式設計時,我們有時會偏離正道。我覺得有時候你只是想偷懶——一種希望通過整天坐在電腦前就不必面對真正的挑戰的偷懶。
別偷懶,別忘了,你要成為乙個開發人員。
不要陷入「我正在學習,這已經足夠好了,等我準備好了,我再去找工作」的誤區。
坦率地說,找活兒幹是我們最應該做的事情。你可以聯絡潛在客戶,哪怕是為家人和朋友免費建立**也行。
下次你去面試的時候,你就能展示自己都做了哪些工作,這會給你的簡歷增光添彩。第一步總是最難的,但無論如何你都必須邁出這一步。
所有這些都是你在成為一名開發者的路上將要面對的挑戰。承認它們,以正確的態度面對它們——所有的挑戰只會讓你變得更強、更好。
最後,要享受學習程式設計的過程,享受你正在構建的東西,無論是你的專案還是你自己的未來。
為什麼人人都要學程式設計
如果你對 猩球崛起 這部電復印象深刻,你一定不會忘記黑猩猩凱撒是如何一步一步從猩猩變成和人類相似,甚至智力超越大部分人類的智慧型生物。其中人類是如何判斷出猩猩的智力達到和人類相似的水平呢?那就是漢諾塔的遊戲,如果在一段時間內,可以達到了15步就完成遊戲,那麼就認為猩猩的智力已經達到人類的水平。為什麼...
為什麼人人都要學程式設計
如果你對 猩球崛起 這部電復印象深刻,你一定不會忘記黑猩猩凱撒是如何一步一步從猩猩變成和人類相似,甚至智力超越大部分人類的智慧型生物。其中人類是如何判斷出猩猩的智力達到和人類相似的水平呢?那就是漢諾塔的遊戲,如果在一段時間內,可以達到了15步就完成遊戲,那麼就認為猩猩的智力已經達到人類的水平。為什麼...
學習的時候為什麼有些東西先背下來就好
在學習的時候,往往會遇到一些知識開始我們要先背下來。首先,我們剛接觸一些知識的時候很難做到對這個領域理解深刻,開始時我們要做到不牴觸的把作為該領域基石的原理定理背下來,方便不斷的回味理解,即便是最後理解深刻了,也基本是拿著結論解決問題,這些結論還是要背下來固化到大腦的 隨時可以說出一些結論,但是具體...