程式設計學習之路:痛並快樂著
亞里士多德半身像
“你知道的越多,就會發現你不知道的更多”
——亞里士多德
我的程式設計之路開始於一個名叫 learn HTML 的手機app,有時心血來潮我會開啟它做幾個小任務,然後就好幾個月都不碰它了。
有一天我又坐下來像往常一樣開始玩這個app,完成了幾個小任務,新學了一點HTML。
但這一次——我也不知道為啥——我停不下來了。
連續好幾個小時,我完成了app裡一個又一個任務。
就在那一天我意識到,我真的喜歡學習程式設計。
從我開始玩learn HTML這個app已經過去一年了。從那時起,我已經進行了不少web開發實踐。
與這篇文章的許多讀者一樣,我是完全自學的。我利用業餘時間學習怎樣敲程式碼,在網上和本地圖書館裡查閱各種資料。
我仍然有很多東西需要學習,但我想給大家分享一路走來最重要的心得:web開發者必須不斷學習新事物。
我早就知道建立網站需要掌握三個基本工具。首先是HTML。然後我得用CSS來美化它。美化完之後,我還得新增(互動)功能,這意味著要學習JavaScript。
一旦我掌握了這三種工具,我就能建立一些酷炫的網站,找到一份優越的工作然後開始數錢——就像我的同事們奉承我時說的那樣。
對嗎?
錯。
web開發絕非易事。磨鍊專業技能是需要時間的,你需要掌握大量的知識。這很容易讓人迷茫。
通過學習HTML我懂得了網站的結構,理解了網站是如何運作的。接著我就想讓它看上去美觀一些,於是我開始學習CSS。
CSS是第一個讓我走上歪路的東西。
不是那種歪路。
我學了一點設計,又學了一點使用者體驗。我發現設計並不只是創造一些審美上令人愉悅的東西,而是要給使用者一種既有趣又易懂的瀏覽體驗。
培養設計敏感度與學習特定的技術(比如盒模型)一樣重要。如果你的網站體驗不好,使用者很可能直接關閉視窗。
所以我一直在不斷尋找設計靈感。我一般在這些地方找:
更不要提學JavaScript了。我不得不去學習電腦科學基礎概念、各種框架、庫、工具,還有演算法等等。很快我就發現自己身處絕望的沙漠。
我發現自己一直在不停地原地兜圈子,要不就是走上了偏僻小路。不管我學什麼,這條路看起來都沒有盡頭。
我簡直要瘋了。
我不停的問自己:“什麼時候我才能學會所有我需要的東西?”
這真是我最重要的領悟。這個問題的答案非常簡單,從一開始就擺在我眼前了:
永遠不會有那一天。
我終於接受了這個事實,我永遠有新的東西要學。
身為一名開發者必須終身學習,永不止步。這個領域在不斷地進化,需要學習的新事物也會繼續出現。
我明白了我不能放鬆警惕,我必須每週都抽出時間來學習新事物——甚至是每天。
我還意識到我必須不斷地提出問題,經常踏入新的學科,並深入鑽研已經學過的學科。
我會把每天所學記好筆記,並在第二天開始學習之前複習。
人在不斷接收新資訊的時候很容易遺忘,我認為每天覆習對自學來說非常重要。
倒不是有必要時時刻刻處於web開發的最前沿,而是保持狀態。堅持學習能讓我保持跟得上節奏的狀態。
開發者社群大有幫助
我剛開始學習程式設計的時候,總是一個人敲程式碼。我的朋友沒有一個會程式設計,也沒有一個對程式設計感興趣的。我連一個開發者也不認識。
軟體開發這扇新世界的大門已經向我敞開,可我卻找不到一個可以說話的人。
但自從我有了twitter賬號以後一切都變了。我在YouTube上看視訊的時候認識了一些令我景仰的開發者們,於是我開始follow他們的Twitter賬號。
我最先follow的一位是npm的聯合創始人/營運長Laurie Voss (@seldo),然後是npm的CEO,Isaac Schlueter (@izs)。
然後我又開始follow他們follow的人們,我進入了一個新世界。我被邀請加入了一個社群,社群裡都是志趣相投的小夥伴,他們每天都在激發我的靈感。
現在我已經follow了一大波開發者,強烈推薦以下幾位:
還有很多人。我的Twitter賬號是 @salsaflocka,你可以看到所有我follow的人,然後自己選擇要follow哪些。
另外強烈推薦大家加入Free Code Camp的開源社群。
Free Code Camp自稱是一個讓大家學習程式設計並無私幫助他人的友好開源社群。
我經常上他們的論壇,在那裡獲取了大量的資訊。
他們聲稱自己是一個友好的開源社群也並非虛言。我在那裡遇到的每一個人都既禮貌又熱心。
Reddit(譯者注:一個國外社交新聞網站)上也有許多開發者。戳這裡,就能找到關於這個社群的一切資訊。
我認為這兩個資源對程式設計初學者來說是非常有用的。
剛開始加入Stack Overflow和GitHub的時候,我著實被這開發者世界的兩大支柱嚇住了。但我在其他社群感受到的溫暖幫助我熟悉了開發者社群這種交流環境,然後加入了這些更大的社群。
加入本地的開發社群讓我獲益良多。儘管第一次聚會我就不得不開車1小時去參加,但這次經歷帶給我的收穫是無法估量的。
我意識到開發者們大多都是樂於助人的熱心好人!
冒牌者症候群——每個開發者都必須面對的真實感受
學習一門新技術總會帶來一種不足之感。剛開始學習程式設計時,我感覺每一個人都比我專業得多。
無論我學了多少,我都找不到那種我正在成為一名真正的程式開發者的感覺。
這種感覺就是所謂的冒牌者症候群。
直到今天我仍然被這種感覺所困擾,但我漸漸發現幾乎每個人都有這種感覺。
沒有哪一個開發者是冒牌的。我們都只是在和其他人一起學習和成長。
我會盡可能無視腦海中那個讓我質疑自己能力的小小聲音。
如果你正在開發程式,那麼你就是一個程式開發者。就這麼簡單。
我才剛開始做一些兼職工作,可能算不上經驗豐富的專家,但這能夠積累經驗。
只要我還願意學習,我就走在了正確的道路上。
我認為戰勝冒牌者症候群的最佳方式就是把自己會的東西教給他人。
這一點再怎麼強調也不為過。每個人都會知道一些其他人不知道的東西,放心大膽地分享你擁有的資訊吧。
我會盡可能地分享在開發者社群學到的一切。這是讓我們共同成長,變得更加強大的唯一方法。
總有人不學程式設計,這沒什麼不對!
對我來說,這是一個更加艱難的新發現。
他們總是隨波逐流,並不操心將來會發生什麼。
這些人喜歡談論他們那些“沒出息的工作”和“毫無價值的學歷”。我不能理解為什麼這些人對現狀如此不滿,卻看不到花點業餘時間學習程式設計的好處。
這個領域對於我所生活的社會中的大多數人都是很容易進入的。幾乎每個人都可以學習程式設計,為什麼他們就是不願意試一試呢?
我花了不少時間才明白,不是每個人都能享受一天好幾個小時坐在顯示器前,就為了試圖搞清楚為什麼程式不能執行。
不是每個人都喜歡堅持不懈地學習新事物。
也不是每個人都能努力習慣技術氛圍。
儘管軟體開發的需求一直很大,但仍然有很多人不當程式開發者,這也是有原因的。現在只有相對較少的一部分人能夠花時間去成為專業的開發者,根本不能滿足需求。
因為這是一個可能會很枯燥、無趣且學習困難的領域,不是每個人都有足夠的耐心。
但我還是很感激那些有興趣成為這個社群一份子的人們,他們會戰勝那些不可避免的挫折。
作為軟體開發者我們責任重大。我們生活的世界是建立在技術之上的。我們具備塑造這個世界的能力,並且已經在日常生活中進行實踐了。
總有人不學程式設計,這沒什麼不對。我只是很慶幸我學了,也慶幸還有許多人也學了!
這一年對我來說真是時光飛逝,我從未想過自己能學到這麼多東西。
學習web開發讓我的生活有了方向。在此之前我從未真正對未來抱有如此具體的期待和目標。
但現在,在我接到新客戶的時候,學到新技巧的時候,身為一個web開發者做著有意義的工作的時候,我心中充滿了興奮。
如果你是一個程式開發新手,堅持下去吧。也許看起來需要付出很多努力,但我敢保證一切都是值得的。
如果你進行程式開發的時間和我一樣,或者比我還長,那麼我要感謝你成為了一名軟體開發者,你對這個社群整體的貢獻讓程式開發變得更加容易。
感謝你閱讀此文!新的一年讓我們繼續愉快地程式設計吧!
相關文章
- 《超級肉肉哥:永恆》GI 評測 8 分:痛並快樂著
- 碼農晉升為技術管理者後,痛並快樂著的糾結內心
- 程式設計師節快樂程式設計師
- 快樂Node程式設計師的10個習慣程式設計師
- 使用Google Guava快樂程式設計GoGuava程式設計
- 程式設計師的快樂生活程式設計師
- 快樂指南:程式設計師版程式設計師
- 黑馬程式設計師前端學習之路程式設計師前端
- 程式設計師保持天天快樂的6個習慣程式設計師
- 程式設計師的燈下黑:沒學會快樂程式設計師
- 總結我的BAT公司PHP面試,淚並快樂著BATPHP面試
- 程式設計師保持快樂活躍的6個好習慣程式設計師
- 1024!程式設計師節快樂!程式設計師
- 女程式設計師們!節日快樂!程式設計師
- Python學習之路——類-物件導向程式設計Python物件程式設計
- .Net程式設計師安卓學習之路6:等待條程式設計師安卓
- 程式設計也快樂第3期SQL程式碼程式設計SQL
- Windows 10即將“被訂閱”:關於訂閱制的痛並快樂Windows
- 程式設計師如何祝自己生日快樂程式設計師
- 程式設計師的快樂:那些小細節程式設計師
- 讓程式設計快樂起來的過程程式設計
- .Net程式設計師安卓學習之路1:登陸介面程式設計師安卓
- 跟著“健哥”學程式設計(十七)程式設計
- 程式設計師快樂器之JAVA程式碼生成工具程式設計師Java
- 跟著 Github 學習 Restful HTTP API 設計GithubRESTHTTPAPI
- 設計師學習HTML/CSS之路-07HTMLCSS
- 大資料學習之路(跟著大神學習一波)大資料
- 學習三個月,快樂小四年——感謝風變程式設計Python課程!程式設計Python
- 金融民工學習風變程式設計後的開掛之路程式設計
- 一枚iOS程式設計師學習JavaWeb之路(三)-EhCacheiOS程式設計師JavaWeb
- 華為大佬:做一個快樂的程式設計師程式設計師
- 調查:是什麼讓程式設計師快樂?程式設計師
- 《Ruby基礎教程(第4版)》:快樂程式設計程式設計
- 在程式設計中體驗純粹的快樂程式設計
- 程式設計師歌曲《程式設計師偏頭痛》程式設計師
- 程式設計學習MarkDown學習程式設計
- 【設計模式】第十篇:外觀模式,開著小破車的快樂設計模式
- 四大遊戲程式設計網站,邊玩遊戲,邊學Python,拒絕枯燥快樂程式設計遊戲程式設計網站Python