新聞中心
寫(xiě)下這篇文章,是由于我想和即將進(jìn)入大學(xué)有意學(xué)習(xí)編程的同學(xué)談?wù)勱P(guān)于編程的事,因?yàn)槟憧赡苄枰恍┙ㄗh,來(lái)步入這個(gè)新的階段。

編程是非常有趣的一件事情,學(xué)會(huì)編程就像成為魔術(shù)師,你可以創(chuàng)造任何你想創(chuàng)造的東西。在我出生到現(xiàn)在的這 20 年里,除了文學(xué),沒(méi)有比編程更吸引我的活動(dòng)。就像 Zed Shaw 所說(shuō)的,『編程作為一項(xiàng)智力活動(dòng),是唯一一種能讓你創(chuàng)建交互式藝術(shù)的藝術(shù)形式。你可以創(chuàng)建項(xiàng)目讓別人使用,而且你可以間接地和使用者溝通。沒(méi)有其他的藝術(shù)形式能做到如此程度的交互性。電影領(lǐng)著觀眾走向一個(gè)方向,繪畫(huà)是不會(huì)動(dòng)的。而代碼卻是雙向互動(dòng)的。』
[[139796]]
一些困惑
但是當(dāng)你開(kāi)始接觸(我所在的)大學(xué)的計(jì)算機(jī)相關(guān)課程,你會(huì)發(fā)現(xiàn),所謂的編程學(xué)習(xí),無(wú)非是老師教一章內(nèi)容,要求你用學(xué)到的語(yǔ)法去解一些數(shù)學(xué)題。于是很多人選擇放棄,認(rèn)為編程乏味無(wú)趣,用很長(zhǎng)的課時(shí)學(xué)習(xí),卻只能寫(xiě)出簡(jiǎn)單的四則運(yùn)算,或者解數(shù)學(xué)題。
然而這并非編程的全部,因?yàn)檫@恰恰能生動(dòng)地表明編程語(yǔ)言只不過(guò)是一種工具,你可以用它來(lái)解數(shù)學(xué)題,也能做其它更有趣、更實(shí)用的程序。
在(我所在的)大學(xué),計(jì)算機(jī)相關(guān)課程教 C/C++。有一次,一位大三的朋友問(wèn)我說(shuō),『我學(xué) C 學(xué)了一段時(shí)間,為什么我還是感覺(jué)很沒(méi)用?』我是這樣回答他的:
你學(xué) C 學(xué)了一段時(shí)間感覺(jué)沒(méi)有用處并非你個(gè)人的問(wèn)題,我無(wú)法跟你解釋為什么,不過(guò)我可以告訴你的是,Linus Torvalds 用 C 寫(xiě)了 Linux 和 Git; Antirez 用 C 寫(xiě)了數(shù)據(jù)庫(kù) Redis. 你可能連 Git 是什么都不知道,如何用 C 寫(xiě)出這種水平的程序呢?
所以,當(dāng)你學(xué)習(xí) C/C++ 基礎(chǔ)后進(jìn)入困惑期時(shí),不要因?yàn)橛盟鼘?xiě)不出實(shí)用的程序而止步不前,而應(yīng)該開(kāi)始接觸其它的編程語(yǔ)言。當(dāng)你所學(xué)和所做的東西越來(lái)越多的時(shí)候,你慢慢就會(huì)發(fā)現(xiàn),編 程語(yǔ)言只不過(guò)是一種工具,重要的在于你想做什么,用什么語(yǔ)言合適去做(華軟的校內(nèi)游戲直播網(wǎng)站 SISE Game 就是例子,網(wǎng)站的后端用 Ruby on Rails 寫(xiě),但實(shí)時(shí)聊天是用 Node.js (JavaScript) ,因?yàn)橄鄬?duì)于 Ruby, Node.js 更加適合處理 WebSocket)。 你之所以感覺(jué) C/C++ 沒(méi)用,是因?yàn)槟銜簳r(shí)還沒(méi)有足夠的眼界和能力去使用他去進(jìn)行創(chuàng)造。
應(yīng)該去學(xué)什么?我的建議是一門(mén)嚴(yán)謹(jǐn)?shù)膹?qiáng)類(lèi)型語(yǔ)言(如 Java)和一門(mén)愉快的腳本語(yǔ)言(如 JavaScript, Ruby, Python)。當(dāng)然了,如果你想學(xué)一些能立竿見(jiàn)影的技能,你也可以寫(xiě)寫(xiě)前端(HTML, CSS)。
So, How?
對(duì)于應(yīng)該如何去學(xué)習(xí),我不打算在這里論述,我只想列出一些有用的建議:
0. 無(wú)論你要學(xué)什么,你讀的第一篇文章應(yīng)該是《提問(wèn)的智慧》
1. 用 Google 搜索技術(shù)相關(guān)的信息
2. 購(gòu)買(mǎi)付費(fèi)可靠的科學(xué)上網(wǎng)服務(wù),不要吝嗇一頓飯的錢(qián)。
3. 不要害怕英文,英文非常重要。
幾乎所有最新的技術(shù)在剛出來(lái)的時(shí)候只有英文文檔,優(yōu)質(zhì)的 Tutorial 大多數(shù)也是英文的。
4. 參與一些質(zhì)量高的社區(qū),關(guān)注一些值得關(guān)注的人。
這一點(diǎn)很重要。學(xué)校所教的內(nèi)容是陳舊、過(guò)時(shí)的(雖然這也許不是學(xué)校的錯(cuò)),你必須和社區(qū)保持同步,不斷接觸和學(xué)習(xí)新的技術(shù)。AngularJS 發(fā)布至今都有 6 年了,但在我們學(xué)校仍然在教 ExtJS,很多學(xué)生甚至畢業(yè)出來(lái)找工作的時(shí)候,連 AngularJS 都沒(méi)聽(tīng)說(shuō)過(guò)。
國(guó)內(nèi)的 V2EX 和國(guó)外的 Hackernews 都是不錯(cuò)的社區(qū)。
一些現(xiàn)狀
你并不能指望大學(xué)的課程或者大學(xué)老師能給你帶來(lái)什么,一切都應(yīng)該靠你自己。無(wú)論在多優(yōu)秀或者多差勁的學(xué)校,學(xué)校本身能影響你的是輔助性的,而不是決定性的。在我的學(xué)校,幾乎都在打游戲和應(yīng)付考試,據(jù)我所知,即使是重點(diǎn)大學(xué),這樣的學(xué)生也大有人在,我漸漸明白,『你今后人生的艱難,恰恰不是因?yàn)槟銢](méi)能考上一個(gè)滿(mǎn)意的學(xué)校,而是在這所學(xué)校里,在一個(gè)能讓自己自由充分成長(zhǎng)的黃金四年里,把自己給荒廢了』(采銅的回答)。
為未來(lái)鋪路
如果你以后有意從事編程的相關(guān)工作,你應(yīng)該要知道,在找工作時(shí)和其它競(jìng)爭(zhēng)者拉開(kāi)差距的,并非你從哪里畢業(yè),在學(xué)校當(dāng)什么干部,而是你有足夠的能力,并且能清楚地讓別人看到你的能力。
讓別人看到你能力的方法是開(kāi)源社區(qū)和博客,所以我建議你在學(xué)習(xí)的過(guò)程中,多為開(kāi)源做貢獻(xiàn),甚至可以維護(hù)一個(gè)自己的開(kāi)源項(xiàng)目。另外還可以把自己的所學(xué) 記錄和總結(jié)到獨(dú)立博客中。一個(gè)好的 Github Account 和好的獨(dú)立博客是一份最好的簡(jiǎn)歷。也許你也只有在大學(xué)這自由的四年才能有時(shí)間做這兩件事情。
最后
我在廣州大學(xué)華軟軟件學(xué)院讀書(shū)已經(jīng)有一年了,這一年里我遇到過(guò)許多對(duì)現(xiàn)在對(duì)未來(lái)感到迷茫的朋友,他們對(duì)教育抱有希望,對(duì)知識(shí)懷有渴望。我曾經(jīng)試圖做 一些事情去改變現(xiàn)狀,但是效果都不大,該混日子的還是繼續(xù)混日子,到畢業(yè)后才開(kāi)始抱怨就業(yè)難。我呸,互聯(lián)網(wǎng)行業(yè)都缺人缺到什么地步了你跟我說(shuō)就業(yè)難?
不過(guò),只要我還沒(méi)被學(xué)校開(kāi)除,我還是會(huì)盡我所能地為迷茫的朋友做一些事情。至于做些什么,我還沒(méi)想好,我不知道應(yīng)該怎么做,如果你有好的建議,歡迎聯(lián)系我。
如果你看完這篇文章,還有問(wèn)題可以聯(lián)系我的 Email:[email protected],只要你讀過(guò)《提問(wèn)的智慧》,問(wèn)的問(wèn)題經(jīng)過(guò)自己思考,我都會(huì)盡快地詳細(xì)地回復(fù)。
『你會(huì)編程。他們不會(huì)。這真他媽的酷。』
來(lái)源:http://www.jianshu.com/p/3bfc5185a390
本文名稱(chēng):寫(xiě)給即將學(xué)習(xí)編程的大學(xué)新生
當(dāng)前網(wǎng)址:http://fisionsoft.com.cn/article/djpjpss.html


咨詢(xún)
建站咨詢(xún)
