如何保持學習編程的動力

有人問我, Reddit 是什麼網站,我想了下說: 美國貼吧程序員

但話說回來,關注了一陣子我發現,Reddit 上的討論真要比貼吧不知道高到哪裏去了,甚至比很多知乎回答要有價值。並且感受下面的討論氛圍也更好些。編程

我在上面關注了 learnprogramming 節點,有很多文章挺有價值,因而翻譯過來分享給你們。上次翻過一篇:《我是如何在自學編程9個月後找到工做的》,是一個編程自學者的經驗之談。這兩天我又看到篇不錯的,主要討論的是自學編程中的一個廣泛問題: 如何堅持工具

除了翻譯,文中我還加了一些本身的見解(斜體字)。各位看後有什麼想法也歡迎在留言裏討論。學習

英文原文地址見文末。網站

    • *

嗨,Reddit 的各位老鐵,學編程真的很讓人崩潰。編碼

學編程如今看起來挺簡單,由於網上有豐富的各類資源。然而當你實際去學的時候就發現,仍是很難!人工智能

對我來講也同樣。但從某天起,我決定認認真真學編程一年。後來又過了一年,又過了一年又一年……我好像有點感悟。spa

若是你曾致力於學習一些重要的東西,就會知道在漫長的艱難時刻保持本身的積極性是多麼困難。你怎麼作呢?我說下個人經驗:翻譯

1. 去開發點真東西

不要只一味地跟着教程學。它們有助於對新事物進行概述,但在此以後你必須開發點本身的東西。設計

你固然能夠去開發另外一個 To-Do-List(待辦事項列表)的 App,但你想這麼作嗎?你不必定非要作那些別人口中的「入門必作項目」。

開發你本身想要的東西。相信你是一個富有創造力的人。設想一個能夠真正幫助你的小項目或 App,或者至少看起來很酷的項目,開發出來,而後把它放在網上,從別人那裏獲得一些反饋,修復 bug。幹就完事了。

你能夠把它做爲一個項目展現給潛在的將來僱主。沒人關心你是否又製做了一個 To-Do_List 的 App,但 他們會關心你是否有能力開發一個網站,把抽象而模糊的想法轉變成實際的產品

跳出思惟定式來考慮,你甚至都不用找工做。若是你作得更好些,徹底能夠本身開發一個 App 或網站,從中收取費用。或者作出一些酷炫的產品,在 Reddit 上傳播。你會成爲某方面的專家、找到客戶,成爲自由職業者。

好比我弄了個叫 Unbokeh 的網站,這裏有一堆模糊的背景圖片,你能夠用於設計和壁紙。我之因此這麼作是由於我喜歡模糊的壁紙,它們看起來很酷,並且我想提供一個其餘人可使用的資源。這不是一個百萬美圓的想法,但我爲此感到自豪。我學到了不少關於 Gatsby 和 GraphQL 的知識。 我把它發佈在 Twitter 上,不少人都喜歡它。

再說,在互聯網上展現你努力作出來的東西,自己不就是很棒的一種體驗嗎?

【Crossin 注】這個觀點我也說過無數遍:等你有了必定基礎以後,必定要找項目去作,從你身邊着眼,想一想有沒有能用編程解決的問題,而後在解決問題的過程當中提高能力。若是你僅僅想找本教程看,你會發現越看問題越多,你不知道書上說這些到底有什麼用。這實際上是弄反了因果。我在編程教室裏堅持發佈有趣或實用的案例,也是從這個出發點考慮的。(公衆號「Crossin的編程教室」對話欄回覆關鍵字 項目

2. 找點工做/項目

我學編程的最喜歡的方法之一就是讓別人付錢給我學習。若是你願意爲此多投入一些努力,你能夠在像 UpWork 這樣的平臺上得到一些小單子,在學習的同時就能賺到一些錢。

你沒必要是專家,只須要足夠的相關知識就能夠完成工做。若是你學會適當推銷本身一下,別人並不會太在乎你是不是初學者:你只須要證實你能夠完成工做。因此,若是你像我前面告訴你的那樣,作點本身的項目,你就已經有經驗了。

我經過電子郵件聯繫本地商家,幫他們從新設計網站,從而學會了如何開發 WordPress 主題。我從爲另外一個小企業構建官網首頁中學會了 JavaScript。我經過爲一家初創公司製做一些頁面的過程當中提高了對 React 的理解。

你無法作徹底超越你技能樹以外的事。但 適當地挑戰本身能力的上限,並承擔一個實實在在的項目,你會取得重大進展

這些項目不會讓你發大財,但真實世界的項目能夠給你帶來頗有價值的經驗。

【Crossin 注】這一點是上一點的延續,選定個方向,先作本身的項目,熟悉了以後就去接點正兒八經的項目。國內也有一些平臺,好比豬八戒網,V2EX 上有時也會有人發單,我這邊偶爾也會有,我都會發布在 bbs 的接單區和幾個學習羣裏。說實在話,一開始想成功接單並不容易,但你不妨能夠嘗試給親戚朋友同事社團等作點義務勞動,幫他們作個網站啥的,機會都是慢慢積累出來的。我本身第一次用 Python 就是同窗介紹的網站開發項目。這種有點壓力的狀態絕對比你本身無目的地看書效率高多了。

3. 在 Twitter 上創建聯繫

上 Twitter 對我來講是頗有幫助的一件事,全部的開發人員都在這兒。你能夠關注大票的開發者,獲取靈感、開發有趣的東西,關注業內大牛,瞭解新的工具和技術。一旦你的首頁時間線充滿了有趣的行業文章以及關於 JavaScript 的談論,那你將會更有動力去堅持學習。轉發一些對你有啓發的文章、分享不錯的代碼片斷,你也會成爲開發社區的一員。

固然,不要浪費太多時間。 您能夠在這裏瞭解更多信息,成爲社區一員,但不要分心。

對我來講,一個重要的動力是加入 #100DaysOfCode 的挑戰。規則很簡單:天天至少寫一小時代碼,並天天發佈帶有進度的推文。你會不想終止連續記錄。#CodeNewbie 是另外一個與其餘 Twitter 同好者聯繫的好標籤。

這感受很好,由於你來到了一個社區,裏面都是和你同樣學習編程的人。發佈你正在研究的有趣事情,和別人互相關注,詢問他們正在作的事情,結交朋友。若是你加入了這樣的社羣,養成寫代碼的習慣就變得容易許多。很快這就會成爲你我的的一部分:你如今就是一名開發者,這就是你天天作的事情。

【Crossin 注】國內不太能上這個網站……微博其實學習氛圍很淡,但像 V2EX、SegmentFault、OSChina 等社區裏也不乏大量開發者,多去逛逛有好處。在學習社區這件事上,我認可編程教室到目前爲止作得並不算好,咱們曾經創建了不少羣,但由於無力管理,最後大多荒廢了。接下來,我會在這點上作些嘗試,可能也會組織相似 100DaysOfCode 的挑戰,爭取能給各位初學者提供一個氛圍良好的社羣。

4. 幹就完事了

最後,這徹底取決於你。你只須要作出承諾並完成它。

要明白,這是個長期的過程。也許你會在 Twitter 上看到關於某人學了 3 個月就找到六位數的工做這種雞湯故事,很勵志吧?並且他還僅僅 18 歲(這種故事裏老是 18 歲)。但這只是特例,不是常態。若是你想經過學習編程來改善你的生活,你不應總想着這些快速成功的案例。

若是你想找份工做或開發出殺手級產品,你將不得不努力工做。 你看到的全部成功故事都只是結果,而不是那以前漫長而乏味的過程 。當你艱難到要放棄的時候,它給你鼓勵,但你不能沉迷於此。相信我,這種狀況會不停出現。

不要半途而廢 。若是你真的對編程沒興趣,那沒辦法。但若是你願意投入時間和精力,以及一點點血、汗和淚,你總能作出點東西。如今就回去繼續學習吧。

【Crossin 注】少說多作,每一個程序員都是一行行代碼堆出來的。不要再糾結哪一個語言好、哪一個教程好、該用哪一個版本。你花一個週末就能夠走進大門了,不必不停在門前糾結。這是個長期的過程,不要想着一蹴而就,也不用擔憂一個選擇就走錯路。學習沒有彎路,每一步都算數。
做者:
ericnmurphy
原文地址:
https://www.reddit.com/r/learnprogramming/comments/9rjhm0/how_to_actually_stay_motivated_to_learn_how_to/
做者博客:
https://ericnmurphy.com/motivation/

文章下面有些評論也說得不錯:

fckdUpLion:
紀律>動力。把事情給作了,別等待動力。

Metabyte2:
動機是一個神奇的東西。 天天留出一兩個小時,並養成在那個時間編碼的習慣。 幾個星期後,它將成爲常態。

blackiechan99:
雖然我有了動力,但動機很快就會由於其餘事情而消失。
我減了100磅,動力在幾周內就沒了。 紀律纔是並且是惟一持久有效的東西。 編碼也是如此。
動力在一開始有用,而後過渡到紀律。 若是你真的想要,你就會實現:)

WulfMarius:
說實話,我不喜歡「寫代碼」這個說法,這就像是「寫書」和「打字」:一我的寫書的過程是在打字,但你顯然不可能經過打字課程忽然成爲一個做家。由於寫書的實質不是打字,而是建立內容。
寫代碼是開發軟件的表現,但實際上以前的活動更重要得多,好比理解你想要解決的問題,提出解決這個問題的方法,將這個解決方案分解成能夠實際編碼的部分,考慮的侷限性和後果等。
有些人會忽略這些,而掙扎在代碼之中,由於他們並不真正理解他們試圖解決的問題和/或他們設計的解決方案。當我問爲何他們把某個語句放進去的時候,他們根本沒法解釋。我想說:難怪大家說無法保持學習的動力,你都不知道你在寫什麼,換做我也不想學了!
因此,只是跟着教程裏寫幾行代碼讀取文件這種小技巧根本對編程沒什麼幫助。

════

其餘文章及回答:

如何自學Python | 新手引導 | 精選Python問答 | Python單詞表 | 人工智能 | 嘻哈 | 爬蟲 | 我用Python | 高考 | requests | AI平臺

歡迎搜索及關注: Crossin的編程教室

相關文章
相關標籤/搜索