寫給即將學習編程的大學新生

寫下這篇文章,是由於我想和即將進入大學有意學習編程的同學談談關於編程的事,因爲你可能需要一些建議,來步入這個新的階段。

編程是非常有趣的一件事情,學會編程就像成爲魔術師,你可以創造任何你想創造的東西。在我出生到現在的這 20 年裏,除了文學,沒有比編程更吸引我的活動。就像 Zed Shaw 所說的,『編程作爲一項智力活動,是唯一一種能讓你創建交互式藝術的藝術形式。你可以創建項目讓別人使用,而且你可以間接地和使用者溝通。沒有其他的藝術形式能做到如此程度的交互性。電影領着觀衆走向一個方向,繪畫是不會動的。而代碼卻是雙向互動的。

一些困惑

但是當你開始接觸(我所在的)大學的計算機相關課程,你會發現,所謂的編程學習,無非是老師教一章內容,要求你用學到的語法去解一些數學題。於是很多人選擇放棄,認爲編程乏味無趣,用很長的課時學習,卻只能寫出簡單的四則運算,或者解數學題。

然而這並非編程的全部,因爲這恰恰能生動地表明編程語言只不過是一種工具,你可以用它來解數學題,也能做其它更有趣、更實用的程序。

在(我所在的)大學,計算機相關課程教 C/C++。有一次,一位大三的朋友問我說,『我學 C 學了一段時間,爲什麼我還是感覺很沒用?』我是這樣回答他的:

你學 C 學了一段時間感覺沒有用處並非你個人的問題,我無法跟你解釋爲什麼,不過我可以告訴你的是,Linus Torvalds 用 C 寫了 Linux 和 Git; Antirez 用 C 寫了數據庫 Redis. 你可能連 Git 是什麼都不知道,如何用 C 寫出這種水平的程序呢?

所以,當你學習 C/C++ 基礎後進入困惑期時,不要因爲用它寫不出實用的程序而止步不前,而應該開始接觸其它的編程語言。當你所學和所做的東西越來越多的時候,你慢慢就會發現,編程語言只不過是一種工具,重要的在於你想做什麼,用什麼語言合適去做(華軟的校內遊戲直播網站 SISE Game 就是例子,網站的後端用 Ruby on Rails 寫,但實時聊天是用 Node.js (JavaScript) ,因爲相對於 Ruby, Node.js 更加適合處理 WebSocket)。 你之所以感覺 C/C++ 沒用,是因爲你暫時還沒有足夠的眼界和能力去使用他去進行創造。

應該去學什麼?我的建議是一門嚴謹的強類型語言(如 Java)和一門愉快的腳本語言(如 JavaScript, Ruby, Python)。當然了,如果你想學一些能立竿見影的技能,你也可以寫寫前端(HTML, CSS)。

So, How?

對於應該如何去學習,我不打算在這裏論述,我只想列出一些有用的建議:

0. 無論你要學什麼,你讀的第一篇文章應該是《提問的智慧》

1. 用 Google 搜索技術相關的信息

2. 購買付費可靠的科學上網服務,不要吝嗇一頓飯的錢。

3. 不要害怕英文,英文非常重要。

幾乎所有最新的技術在剛出來的時候只有英文文檔,優質的 Tutorial 大多數也是英文的。

4. 參與一些質量高的社區,關注一些值得關注的人。

這一點很重要。學校所教的內容是陳舊、過時的(雖然這也許不是學校的錯),你必須和社區保持同步,不斷接觸和學習新的技術。AngularJS 發佈至今都有 6 年了,但在我們學校仍然在教 ExtJS,很多學生甚至畢業出來找工作的時候,連 AngularJS 都沒聽說過。

國內的 V2EX 和國外的 Hackernews 都是不錯的社區。

一些現狀

你並不能指望大學的課程或者大學老師能給你帶來什麼,一切都應該靠你自己。無論在多優秀或者多差勁的學校,學校本身能影響你的是輔助性的,而不是決定性的。在我的學校,幾乎都在打遊戲和應付考試,據我所知,即使是重點大學,這樣的學生也大有人在,我漸漸明白,『你今後人生的艱難,恰恰不是因爲你沒能考上一個滿意的學校,而是在這所學校裏,在一個能讓自己自由充分成長的黃金四年裏,把自己給荒廢了』採銅的回答

爲未來鋪路

如果你以後有意從事編程的相關工作,你應該要知道,在找工作時和其它競爭者拉開差距的,並非你從哪裏畢業,在學校當什麼幹部,而是你有足夠的能力,並且能清楚地讓別人看到你的能力。

讓別人看到你能力的方法是開源社區和博客,所以我建議你在學習的過程中,多爲開源做貢獻,甚至可以維護一個自己的開源項目。另外還可以把自己的所學記錄和總結到獨立博客中。一個好的 Github Account 和好的獨立博客是一份最好的簡歷。也許你也只有在大學這自由的四年纔能有時間做這兩件事情。

最後

我在廣州大學華軟軟件學院讀書已經有一年了,這一年裏我遇到過許多對現在對未來感到迷茫的朋友,他們對教育抱有希望,對知識懷有渴望。我曾經試圖做一些事情去改變現狀,但是效果都不大,該混日子的還是繼續混日子,到畢業後纔開始抱怨就業難。我呸,互聯網行業都缺人缺到什麼地步了你跟我說就業難?

不過,只要我還沒被學校開除,我還是會盡我所能地爲迷茫的朋友做一些事情。至於做些什麼,我還沒想好,我不知道應該怎麼做,如果你有好的建議,歡迎聯繫我。

如果你看完這篇文章,還有問題可以聯繫我的 Email: [email protected],只要你讀過《提問的智慧》,問的問題經過自己思考,我都會盡快地詳細地回覆。

你會編程。他們不會。這真他媽的酷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章