久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

業(yè)余愛好者如何學(xué)習(xí)編程

 quasiceo 2013-03-04

  因?yàn)?Aaron Swartz 的自殺,,這兩天看了不少關(guān)于他的報(bào)道以及他自己的博客,,對我觸動(dòng)最大的是盡管他一直在做技術(shù)相關(guān)的事情,但眼光和理想?yún)s遠(yuǎn)遠(yuǎn)超越了技術(shù),。他把技術(shù)當(dāng)作推動(dòng)自由和社會(huì)變革的工具,,所以 Twitter 簽名也是 "Applied sociologist", 而不是經(jīng)??梢栽诔绦騿T那里看到的 "Geek" 和 "Hacker" 等,。我非常欽佩他的社會(huì)理想和為之做出的努力,然后開始思考自己可以做些什么,,于是就有了這篇文章,。

  現(xiàn)在有關(guān)編程的書籍非常多,網(wǎng)上也有很多教程,,但大多都是針對職業(yè)程序員或者計(jì)算機(jī)專業(yè)的學(xué)生,,對那些只想實(shí)現(xiàn)一些自己想要的東西的業(yè)余愛好者幫助不大。業(yè)余愛好者并不想以編程為職業(yè),,也不想花太多時(shí)間去學(xué)習(xí)基礎(chǔ),,他們只是想盡快做出自己想要的東西。這樣的東西在專業(yè)程序員看來可能很爛,,但我覺得非常有意義,。會(huì)編程的人越多,信息流動(dòng)的渠道就越多,,做出好玩的東西的機(jī)率也越大,。

  我的技術(shù)水平一直不怎么樣,而且越來越業(yè)余,,不過正因?yàn)槿绱?,我非常能體會(huì)初學(xué)者的痛苦,或許寫這樣的東西正合適,。本文的目的是幫助業(yè)余愛好者掃清一些思想上的障礙,,分享一些我的經(jīng)驗(yàn),并不會(huì)涉及太多技術(shù)細(xì)節(jié),,畢竟每個(gè)人想做的東西和想學(xué)的編程語言都不同,,不過后面會(huì)給出一些學(xué)習(xí)資料。

  重要聲明:本文只針對那些不想以編程為職業(yè),,只想學(xué)習(xí)編程以便自己做東西的業(yè)余愛好者,。想要成為一個(gè)優(yōu)秀程序員的同學(xué)請看這篇經(jīng)典的《十年學(xué)會(huì)程序設(shè)計(jì)》。

  思想準(zhǔn)備:

  1. 編程不難,至少做出一個(gè)能用的東西不難,。別把它當(dāng)回事兒,。很多人之所以覺得編程很難是被專業(yè)術(shù)語和趾高氣揚(yáng)的程序員嚇到了。別擔(dān)心,,業(yè)余愛好者不需要對自己要求那么高,。

  2. 編程不需要數(shù)學(xué)基礎(chǔ)。沒錯(cuò),,就算你數(shù)學(xué)很爛也能做出東西,。大部分算法都已經(jīng)有成熟的解決方案,可以直接拿來用,,完全不用擔(dān)心,。我們的目的是做東西,不是研究算法和數(shù)學(xué),。

  3. 編程不會(huì)改變你的生活方式,。你完全可以學(xué)習(xí)編程而不接受和它有關(guān)的文化。不一定要崇拜某位大神,、閱讀技術(shù)新聞或者參與社區(qū),,也不一定要不修邊幅、熬夜工作,。如果愿意的話,,精裝打扮穿上最漂亮的衣服去編程也可以。反正不想成為職業(yè)程序員,,不用擔(dān)心因?yàn)椤覆幌癯绦騿T」而被鄙視,。

  4. 有很多友善的程序員。程序員給很多人的印象要么是邋遢,、木訥,、害羞的書呆子,要么是性格怪異,、智商極高的大神,,其實(shí)大部分程序員并不是那樣,只不過媒體和大眾更偏愛怪異的東西,。以 Linus 為例,,在他的自傳 《Just for Fun》 中提到:

  「Linux 不是靠犧牲寶貴的睡眠時(shí)間換來的。事實(shí)上,,如果你想聽真話,那我就要說,,我更喜歡睡覺,。」
「在那個(gè)時(shí)候,只要一想到姑娘,,Linux 系統(tǒng)就變得不再重要了,。在某種程度上,今天也還是這樣,?!?/p>

  瞧,這位大神其實(shí)大部分時(shí)間和普通男性差不多,,更喜歡「睡覺」和「姑娘」,。所以,如果真的遇到了無法解決的問題,,完全可以大膽地去請教專業(yè)程序員們,,一般都可以得到答復(fù)。

  5. 習(xí)慣無知,。無論學(xué)習(xí)什么東西,,往往越深入就越覺得自己無知。這樣的無知本身并不是壞事,,它可以讓你保持謙虛,,但千萬不要被它嚇得不敢繼續(xù)前進(jìn)。及早適應(yīng)無知的感覺,,你并不需要全知全能才能做出東西,,如果覺得困難,可以試著假裝自己擅長編程 ,。

  如何開始:

  首先,,完整閱讀這篇文章:《你第一要做的是開始去做》(這篇文中翻譯自 The first step is to start )。

  如文中說的那樣,,不要以「基礎(chǔ)不夠」,、「知識不全」等借口停下來,一開始甚至可以先在紙上勾勒出想要的東西,。當(dāng)然,,完全不懂編程肯定無法開始真正的創(chuàng)造,但學(xué)習(xí)的時(shí)候不要抱著「先專心學(xué)習(xí),,學(xué)好本領(lǐng)再回來做」的念頭,。正確的做法是:只學(xué)那些最基礎(chǔ)的東西,然后立刻著手去做,,遇到不會(huì)的地方再去學(xué),。

  沒有技術(shù)背景的人學(xué)習(xí)編程很容易被錯(cuò)綜復(fù)雜的技術(shù)體系嚇到,網(wǎng)上的教程中也經(jīng)常會(huì)出現(xiàn)「一定要讀這本書,,非常經(jīng)典」,、「最好先有 XX 基礎(chǔ)再看這篇教程」之類的警告,,結(jié)果有時(shí)候會(huì)出現(xiàn)這樣的情況:本來你只打算學(xué)習(xí)編寫網(wǎng)頁 ,結(jié)果幾天后莫名其妙地開始苦讀《精通正則表達(dá)式》,。為了能夠?qū)W⒂谧约合胱龅臇|西,,要十分警惕「學(xué)習(xí)」這件事情。盡量學(xué)習(xí)最少的東西,,然后把時(shí)間都花在創(chuàng)造上,。當(dāng)想要學(xué)習(xí)的時(shí)候,慎重考慮它是否會(huì)讓你偏離目標(biāo),,或者繞太遠(yuǎn)的路,。這樣做肯定會(huì)導(dǎo)致基礎(chǔ)不夠好,但我們是業(yè)余愛好者嘛,,能盡快做出東西就行了,。如果你真的非常在意基礎(chǔ),說明你可能更想成為職業(yè)程序員,,請返回參考前面的重要聲明,。

  沒有人天生就會(huì)編程,在做東西的過程中會(huì)不斷學(xué)到新的知識,,然后就會(huì)發(fā)現(xiàn)自己之前的代碼很愚蠢,。這個(gè)時(shí)候你可能會(huì)很想推倒重來,或者從頭改進(jìn)之前的代碼,。要抑制住這種沖動(dòng),,不然就會(huì)掉入代碼優(yōu)化的無底洞。事實(shí)上,,幾乎所有的專業(yè)程序員都會(huì)對半年前自己的代碼感到不滿,,而且一開始代碼質(zhì)量不好完全沒有問題。舉個(gè)例子,,假如要在網(wǎng)頁上顯示 10 次 "I love you.",,你并不知道如何使用循環(huán),于是就復(fù)制粘貼了 10 次 "I love you",。這樣的做法或許很笨,,但是你做出了想要的效果,對于業(yè)余愛好者來說,,完成一個(gè)東西要比代碼質(zhì)量重要得多,,不要為了這種笨方法而感到羞愧。

  如何解決問題:

  在創(chuàng)造的過程中肯定會(huì)遇到很多問題,,對于初學(xué)者來說,,大部分的問題都是語法或者拼寫問題,只要仔細(xì)檢查代碼就可以解決,,少數(shù)摸不著頭腦的問題也可以用 Google 找到答案,。很多非 IT 行業(yè)的人平時(shí)都只是搜索中文,,可能并不覺得 Google 比百度要好,但當(dāng)你開始學(xué)習(xí)編程,,就會(huì)立刻發(fā)現(xiàn) Google 比百度好用得多,一般都可以在搜索結(jié)果第一頁找到想要的東西,。使用 Google 搜索的時(shí)候,,請嘗試用英文描述問題,或者直接把出錯(cuò)信息直接粘貼到搜索框,。

  如果實(shí)在搜索不到解決辦法(這種情況對業(yè)余愛好者來說極為少見,,請善用 Google),可以去 Stack Overflow 提問,。提問的時(shí)候請注意描述好自己的問題,,把錯(cuò)誤信息以及相關(guān)的代碼都寫進(jìn)去。 Stack Overflow 的氛圍相當(dāng)好,,應(yīng)該很快就會(huì)有人回答你的問題,。比較不方便的地方是你必須使用英文提問,沒辦法,,因?yàn)轭愃频闹形纳鐓^(qū)并不存在,。如果執(zhí)意要去中文社區(qū)提問,那么我真誠地建議你使用女生頭像和昵稱,,可以有效提高回復(fù)率,,呵呵。

  有關(guān)編程的一個(gè)惱人的地方是,,就算看書之后覺得自己掌握了,,真正寫的時(shí)候還是經(jīng)常會(huì)出錯(cuò)。它只能通過實(shí)踐來掌握,,所以需要很多耐心,。當(dāng)你被折磨得想要放棄的時(shí)候,或許可以換一種角度,,以此為契機(jī)掙脫過去那么多年的學(xué)院派教育,。想一想吧,我們在學(xué)校里待了那么長時(shí)間,,幾乎所有的學(xué)習(xí)路徑都是「先閱讀,,再應(yīng)用」或者「只閱讀,不應(yīng)用」,,是時(shí)候體驗(yàn)一下如何在應(yīng)用中學(xué)習(xí)了,。

  面對批評:

  有些人做出想要的東西之后就已經(jīng)很滿足,但有些人可能會(huì)想要展示一下自己的作品并獲取一些意見,。因?yàn)闃I(yè)余,,所以當(dāng)專業(yè)程序員看到這樣的作品之后可能會(huì)非常不屑,,甚至大肆批評。這個(gè)時(shí)候不要自卑或害怕,,因?yàn)樗麄儗ψ髌返牧私舛际瞧娴?。他們只是一味拿專業(yè)的技術(shù)標(biāo)準(zhǔn)來衡量,不清楚你只是想做出一個(gè)東西,,不清楚你只是業(yè)余時(shí)間在做,,不清楚你在整體上的考量和妥協(xié)。作為這個(gè)作品的創(chuàng)造者,,你才是專家,,如果按照他們的要求,你可能永遠(yuǎn)都做不完,。

  之所以提到這一點(diǎn),,是覺得業(yè)余愛好者大都是自己一個(gè)人慢慢自學(xué),被打擊一下說不定就完全放棄了,,那樣實(shí)在可惜,。對于專業(yè)程序員的批評,如果有用就記下來,,下次不要再犯就好,,沒有必要?dú)怵H或者把之前的東西重寫一遍。從無到有實(shí)現(xiàn)了自己的創(chuàng)意已經(jīng)很了不起,,不需要對專業(yè)程序員有什么交代,。

  注意事項(xiàng):

  1. 不要過度關(guān)注編程語言的優(yōu)劣。很多編程語言都可以達(dá)到相同的目的,,選中一個(gè)之后把它用好就是了,。和別人爭辯哪個(gè)編程語言更好是很多職業(yè)程序員的一大愛好,是他們生活的一部分,。我們是業(yè)余愛好者,,只要求工具夠用,不需要像他們那樣一定要用「最好的」語言,。

  2. 用不著關(guān)注國內(nèi)的 IT 紅人和八卦,。對學(xué)習(xí)編程和做東西沒有任何益處。(補(bǔ)充:這條可能帶了個(gè)人情緒,,請自行判斷,,但我關(guān)注了那么久覺得確實(shí)沒有任何益處。,。,。 >_<)

  3. 不要自稱 "Geek","Hacker" 或其它什么東西,。當(dāng)開始給自己貼標(biāo)簽的時(shí)候,,就會(huì)試圖表現(xiàn)得像那類人,,束縛自己的同時(shí)還會(huì)做出許多愚蠢的事情。我們要做的事情很簡單,,就是掌握技術(shù)并做出能用的東西,,沒有必要給自己貼任何標(biāo)簽。事實(shí)上,,能做出東西的人比自稱 "Geek" 或 "Hacker" 的人稀有得多,。

  4. 利用開源代碼。感謝開源事業(yè)的蓬勃發(fā)展和無數(shù)程序員的無私奉獻(xiàn),,使我們可以學(xué)習(xí)和使用別人的代碼。當(dāng)需要一些功能時(shí),,可以先去找一下是否已經(jīng)有開源的實(shí)現(xiàn),,沒有必要自己從頭寫。

  5. 先找到自己想做的東西,。不要為了學(xué)習(xí)編程而學(xué)習(xí),,那樣就算記住了很快也會(huì)忘掉。如果實(shí)在找不到什么想做的,,可以考慮給一些公益組織義務(wù)做一個(gè)網(wǎng)站,,鍛煉技能的同時(shí)還可以關(guān)心一下社會(huì)。

  6. 保持初心,。業(yè)余愛好者擁有的最寶貴的財(cái)富就是初學(xué)者的心,,也正是因?yàn)檫@份初心,才讓代碼質(zhì)量問題變得并不那么重要,??上У氖牵S著技術(shù)越來越熟練,,初心會(huì)漸漸消失,,做東西的時(shí)候首先考慮的不是結(jié)果而是實(shí)現(xiàn)方式,當(dāng)初那個(gè)滿腦子想法苦于不能用技術(shù)實(shí)現(xiàn)的人不見了,,取而代之的是一個(gè)精通技術(shù)卻乏味的人,。所以,作為業(yè)余愛好者,,應(yīng)該把「完成作品」和「保持業(yè)余」作為首要目標(biāo),,如果精通技術(shù)的代價(jià)是失去初心,那就不要精通好了,,反正并不想以此為生,。

  學(xué)習(xí)資料:

  由于我的工作大部分是 web develop, 所以這里給出一些不錯(cuò)的相關(guān)資料。如果你想要做一個(gè)簡單的網(wǎng)站或者 app, 那么這些知識夠用了,。也歡迎補(bǔ)充好的入門資料,,我會(huì)不斷更新,。(之所以沒有推薦其它方面的資料,是因?yàn)槲也]有相關(guān)的經(jīng)驗(yàn),,不知道其中優(yōu)劣,。編程可做的東西非常多,比如 Arduino 硬件編程,,有興趣的可以去找一下資料,,也歡迎補(bǔ)充。)

  1. Head First HTML 與 CSS,、XHTML ,。在大學(xué)圖書館偶爾看到過這本書的英文版,很喜歡,。本書非常適合初學(xué)者,,里面很多插圖,寫得也很有趣,。

  2. A Beginner’s Guide to HTML & CSS 一個(gè)很好的在線學(xué)習(xí) HTML & CSS 基礎(chǔ)的網(wǎng)站,。

  3. An Advanced Guide to HTML & CSS HTML & CSS 進(jìn)階,里面還包含了 jQuery 的學(xué)習(xí),。

  4. 笨方法學(xué) Ruby. 這本在線電子書是 Learn Ruby The Hard Way 的繁體中文翻譯,,也是 Zed Shaw 寫的 Learn XXX The Hard Way 系列中的一本,之所以推薦 Ruby 是因?yàn)槲液芟矚g這門語言,。本書非常注重實(shí)踐,,全書由 52 個(gè)習(xí)題構(gòu)成,當(dāng)你完成這些習(xí)題的時(shí)候就已經(jīng)寫了很多代碼了,。我覺得書中后面的一些習(xí)題(比如讀寫文件)可以先跳過,,用到的時(shí)候再去學(xué)習(xí)。

  5. Codecademy 備受推崇的在線學(xué)習(xí)編程網(wǎng)站,,而且有中文界面,,非常推薦。

  6. Code School 和 Codecademy 類似的在線學(xué)習(xí)網(wǎng)站,,評價(jià)不錯(cuò),。

  最后再次提醒一下,如果你選擇了學(xué)習(xí)編程,,以后很長一段時(shí)期內(nèi)業(yè)余時(shí)間都會(huì)被占據(jù),,而且期間會(huì)體會(huì)到很多痛苦。但是當(dāng)完成第一個(gè)作品的時(shí)候,,你就會(huì)發(fā)現(xiàn)之前的痛苦都是值得的,,它們是創(chuàng)造不可或缺的一部分。

  后記:想要寫這篇文章的時(shí)候激情滿滿,覺得自己在做好事,,但寫的過程中一直誠惶誠恐,,非常擔(dān)心文中業(yè)余愛好者可能面臨的問題都是自己臆想出來的。畢竟在這個(gè)行業(yè)待的時(shí)間不算短,,早就變成了一個(gè)乏味的職業(yè)人士,。如果你是一個(gè)想學(xué)習(xí)編程的業(yè)余愛好者,歡迎留言告訴我哪些擔(dān)心是不必要的,,以及漏掉了哪些東西,,我會(huì)及時(shí)修正或補(bǔ)充。

 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多