四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

Web開發(fā):我希望得到的編程學(xué)習(xí)路線圖

  英文原文:Learning to Code: The Roadmap I Wish I Had Been Given

  對于一些沒有編程經(jīng)驗的人來說,一開始就學(xué)習(xí) web 開發(fā)會讓人覺得非常困難。因為你的能力處于初始階段(你根本不知道你缺少哪方面的知識),所以在你能夠建立一個任意復(fù)雜的網(wǎng)站之前,你可能會認(rèn)為你需要大概幾個月的時間來夯實計算機(jī)方面的基礎(chǔ)知識。

  其實并非如此!web 開發(fā)和 CS 是不同的,你完全可以在沒有太多計算機(jī)基礎(chǔ)的情況下開發(fā)學(xué)習(xí) web 開發(fā)。我這樣說,完全是根據(jù)我自己的經(jīng)驗。

  六個月前,當(dāng)我開始學(xué)習(xí) web 開發(fā)時,我還是一個法律學(xué)校的在讀學(xué)生,而且?guī)缀醪欢魏侮P(guān)于編程的東西——僅僅在開始學(xué)習(xí)的前幾個小時了解過一些基本知識。四個月后,我收到了來自 Pivotal Labs 的 offer,接著我離開了法律學(xué)校,搬到了舊金山。我非常的幸運(yùn)地遇到了一位極為優(yōu)秀的導(dǎo)師(從黑客學(xué)校獲得的收獲絕對不能忽視),所以我不認(rèn)為我的故事非常具有代表性。但是我認(rèn)為這很清楚的表明那些沒有計算機(jī)背景的人同樣可以成為 web 開發(fā)者,而且它所花費的時間可能比你想像的要少。

  這篇博文是為了嘗試幫助那些剛開始學(xué)習(xí) web 開發(fā)的人們。這里展示了一個大概流程,這個路線圖會“告訴你在最初的幾月里需要做什么”,它也是我最開始編碼所遵循的路線。

  寫這樣一篇博文的想法已經(jīng)在我腦海里有一段時間了,只是我認(rèn)為自己知之甚少,所以始終沒有提筆。在寫這篇文章時我還是覺得自己知道的不限,所以如果你在下面的文章中發(fā)現(xiàn)任何錯誤與不正確的地方,請一定幫我指正。

Learning to Code

  四個部分

  這里大致列出了長短不一的四個部分知識要點,在你學(xué)習(xí)的前幾個月里你需要掌握這些要點。

  1)  web 框架的基礎(chǔ)知識(如 Ruby on Rails),又名“包含網(wǎng)站模塊及它們之間的連接結(jié)構(gòu)”。

  2)  前端開發(fā),又名“如何使內(nèi)容出現(xiàn)在正確的位置上,而且在瀏覽器中表現(xiàn)得好看”。

  3)  版本控制,又名“如何使用免費易用的軟件,使程序員能夠有組織地保存他們的程序版本。這樣他們就不用擔(dān)心修改代碼所帶來的版本混亂,同時也能夠很好地與其它程序員協(xié)同開發(fā)”。

  4)  部署,又名“如何真正地將你的網(wǎng)站放到互聯(lián)網(wǎng)上”。

  我把這幾個部分標(biāo)記為 1 到4,但這并不意味著它們之間存在任何特定的順序。你可以同時學(xué)習(xí)這些東西。

  第一部分:選擇一種 web 框架,并開始學(xué)習(xí)它

  在這個部分所需要花費的時間很像這種模式,即“選擇一種 web 框架”=>“大概 10 分鐘之內(nèi)”。“學(xué)習(xí)這種框架”=>“很多很多個(快樂的)小時”。

  現(xiàn)在有很多的 web 框架可供選擇。而我要討論的是 Ruby on Rails,它是我所知道的最好的框架,因為到處都有關(guān)于它的優(yōu)秀的資源。

  那么,什么是 web 框架?我的理解是這樣的:有框架之前,人們在決定做一個新的網(wǎng)站時,往往每次都需要添加一些相同的東西到新的網(wǎng)站。由于這些都是一些重復(fù)無聊的工作,所以程序員開發(fā)出了框架(例如 Rails),這些框架能夠把很多重復(fù)性的工作移到 web 開發(fā)之外。人們喜歡說,Rails 代表“約定優(yōu)于配置”。它的意思是,假如你想按照約定的方式開發(fā),那么 Rails 會使 web 開發(fā)變得簡單。

  相關(guān)的資源:

  我刻意只選擇了無數(shù) Rails/Ruby 資源的一小部分來說,因為可選擇的資源實在太多了。

  I、閱讀 Michael Hartl’s精彩且免費的確 Rails 教程。一個提示:Hartl 的教程雖然非常的清晰全面,但你也不可能輕松的完全理解里面的所有內(nèi)容。細(xì)細(xì)地去品味它,一旦你發(fā)現(xiàn)一些不能理解的東西時,你一定要弄清楚。如果你發(fā)現(xiàn)自己只是盲目地去復(fù)制/粘貼它的代碼,只是為了完成而完成教程,那么請你停下來。當(dāng)遇到不懂的知識點時,立即去下面的資源中查找:

  ● Google。有些人在博客或論壇上寫的內(nèi)容可能正是你想知道的東西。當(dāng)你遇到任何問題時首先去查找 Google。

  ● Stack Overflow。在那里程序員回答問題的速度絕對讓人吃驚(我的問題往往都在一個小時內(nèi)得到答案)。

  ● Railscasts。Ryan Bates 擁有超過 300 與 Rails 相關(guān)的線上直播主題。非常驚人的資源。

  ● Rails Guides。這些真正的專業(yè)指南是由 Rails 的核心團(tuán)隊成員所寫。這些里面的東西需要時間去消化理解(因為里面的大多數(shù)內(nèi)容都是給有經(jīng)驗的程序員準(zhǔn)備的),但是還是有一些介紹性的東西可以拿來學(xué)習(xí)。

  II、在進(jìn)行I學(xué)習(xí)的同時,Hartl 將告訴你 Rails 的工作原理。但是如果你不懂 Ruby,那么太多的 Rails 會讓你覺得像在變魔術(shù)。這里列出了你在學(xué)習(xí) Ruby 時應(yīng)該用到的一些資源,你應(yīng)該按照資源列出的順序來學(xué)習(xí)它們:

  ● 前往 Codecademy 學(xué)習(xí)編程的基本元素(循環(huán),數(shù)據(jù)結(jié)構(gòu))。目前 Codecademy 教程是用 Javascript 講的,不過沒關(guān)系——反正無論如何你也是要學(xué) Javascript 的,況且現(xiàn)在的重點主要是熟悉編碼的基本要素。(強(qiáng)烈建議:如果你想讓學(xué)習(xí)更有挑戰(zhàn),登錄 projecteuler.NET,然后用自己所學(xué)的東西來解決上面的一些問題)。

  ● 閱讀瀏覽這個優(yōu)秀的 Ruby 教程。當(dāng)你閱讀它時,打開你的終端(如 Mac 上的 iterm),打開 irb(the interactive ruby shell),并立即開始實踐你正在學(xué)習(xí)的語法。(搜索“terminal”和“irb”,如果你壓根不知道它們是什么。)

  ● 在做上述工作的同時,下載并閱讀 Ruby Koas。它是一系列豐富有趣的練習(xí),這些練習(xí)涵蓋了大多數(shù) Ruby 的基礎(chǔ)知識。

  ● 最后,閱讀 Eloquent Ruby。Eloquent Ruby 適合那些對編程已經(jīng)達(dá)到某種程度的人,所以在你讀完 Koans 和 Ruby 教程之前不要去讀它。Eloquent Ruby 將不僅告訴你 Ruby 的工作原理,還會告訴你應(yīng)該如何使用 Ruby(例如,Ruby 程序員決定的方式就是最好的實踐方式)。

  第二部分:學(xué)習(xí)前端的東西

  對于“前端”和“后端”不完整/不準(zhǔn)確的定義可能會是這樣的:web 開發(fā)中的“后端”是指你存儲和組織網(wǎng)站數(shù)據(jù)的地方。例如 Yelp 這樣的網(wǎng)站要存儲很多東西:它的用戶和用戶的個人資料、大量的餐廳信息、哪個用戶對一個特別的餐廳做了什么評價,等等。

  Yelp 把這些信息存儲服務(wù)器上,這些服務(wù)器就是分布在不同地方的大型計算機(jī)。當(dāng)你搜索“Pizza in San Francisco”,你的計算機(jī)會發(fā)送一個請求到 Yelp 的服務(wù)器,Yelp 服務(wù)器收到后回發(fā) HTML 形式的請求信息(Yelp 每次都以這種方式來指示服務(wù)器的行為方式)到你的瀏覽器,瀏覽器會被渲染(例如:將 HTML 分離成文本和圖片,然后讓這些圖片和文本在瀏覽器窗口中以正確的方式顯示出來)。這后面的一部分—有關(guān)數(shù)據(jù)應(yīng)該如何出現(xiàn)在用戶窗口的指令(而不是什么數(shù)據(jù)應(yīng)該被回送)—就是“前端”。

  相關(guān)的資源:

  ● 在 w3schools 上學(xué)習(xí) HTML 和 CSS。編注:謝謝下面的一些評論者指出了 w3schools 的不足。大家可以轉(zhuǎn)到 w3Fools 獲取一些更好的資源列表。HTML 是一種標(biāo)記語言,用來管理頁面的結(jié)構(gòu)。例如,需要有一個頁頭,后面要跟一個段落。CSS 則決定這個頁面顯示出來的樣式。例如,頁頭的字體大小為 18,跟著的段落中文字內(nèi)容為藍(lán)色。

  ● 學(xué)習(xí) Javascript。Javascript 決定了頁面上的元素如何表現(xiàn)。例如,頁頭開始時會被隱藏,但當(dāng)用戶點擊某個按鈕時又會漸漸地顯示在頁面上。這里有一個非常優(yōu)秀的 Javascript 框架稱之為 jQuery,它基本上適合每個人使用,而且學(xué)習(xí)起來有趣直觀。這里有一個小型的教程,你可以從這里開始學(xué)習(xí):http://docs.jquery.com/Tutorials

  第三部分:學(xué)習(xí)版本控制(如:Git)

  大致地說,版本控制系統(tǒng)使程序員能夠在任何時間點及時的保存(正式命名為“提交”)他們的代碼。當(dāng)一個項目結(jié)束時,一個程序員可能已經(jīng)積累了數(shù)百或數(shù)千份這樣的代碼備份。

  我之前并沒有意識到版本控制的重要性。當(dāng)我在寫一篇文章時,我并沒有把我對文章做的每一次修改保存到 Word 文檔中。當(dāng)我寫代碼時,情況會有所不同嗎?

  事實證明,答案至少是兩方面的。首先,程序員寫代碼時往往會導(dǎo)致意想不到的問題。當(dāng)問題發(fā)生時,我們可以很輕松地回滾到上一個正常工作的代碼版本。然后,程序員經(jīng)常工作于同一個項目中。在這種情況下,他們需要能夠很輕松地合并他們的代碼。類似 Git 這樣的版本控制系統(tǒng)(目前最流行的)可以很容易地做到以上兩點。

  相關(guān)的資源:

  Hartl 會向你介紹 Git,但他不會解釋得太多。要了解更多,去這里:

  ● Git 介紹:由 Github 的人員建立(這是一個了不起的網(wǎng)站,它讓程序員很容易地共享代碼并協(xié)同工作—你應(yīng)該最先訪問 Github 去學(xué)習(xí))。

  ● Git 進(jìn)階:感謝評論者 Polygonchorus 提供的這個網(wǎng)站,看起來真的很棒。

  ● Git 指南:新穎且簡單。在這里可以學(xué)習(xí)基本的命令。

  ● Git 的社區(qū)圖書:一個很好的參考資料,你可能不需要從頭到尾的通篇閱讀它。

  第四部分:學(xué)習(xí)如何部署(如 Heroku)

  當(dāng)你開發(fā)網(wǎng)站時,絕大多數(shù)時間你都會在你的開發(fā)環(huán)境中去驗證檢查—換句話說,就是在你自己的電腦上,而不是在互聯(lián)網(wǎng)上。

  擁有這樣一個開發(fā)環(huán)境的理由很簡單:將你的代碼上載到一個遠(yuǎn)程服務(wù)器需要一定的時間(例如,上載到互聯(lián)網(wǎng)中一個實際的服務(wù)器上)。由于你的網(wǎng)站正處于開發(fā)階段,你需要不斷地檢查你的網(wǎng)站,而每次當(dāng)你上載新的代碼時,你都需要 20-30秒去等待服務(wù)器的響應(yīng),然后才能看到新代碼運(yùn)行的效果,這確實很煩人。

  當(dāng)你覺得準(zhǔn)備好了,你可以很容易地使用 Heroku 來部署你的代碼(Hartl 說明了怎樣去部署)。這里是在 Rails3 環(huán)境下設(shè)置 Heroku 的相關(guān)信息:http://devcenter.heroku.com/articles/rails3。如果你想建立一個自定義的域名,Heroku 也提供了一個延伸的教程:http://devcenter.heroku.com/articles/custom-domains

  關(guān)于此路線圖的一些重要想法

  以上的這個資源足夠你學(xué)習(xí)幾個月的,但它們不會帶你走得更遠(yuǎn)。我只是希望,在學(xué)習(xí)過那么多知識之后,你能夠從自己建立的項目中學(xué)習(xí)提高。下面是一些離別的想法:

  選擇一個能激發(fā)你興趣的想法,并在你覺得準(zhǔn)備好之前就付諸于實踐。我甚至建議你在完成 Hartl 教程之前就開始你自己的項目。工作于自己的項目,是讓你迷上 web 開發(fā)最容易的方法。

  我在這里提到了一些優(yōu)秀的學(xué)習(xí)資源,當(dāng)你要建立一個自己的網(wǎng)站時,這些資源只涵蓋了很小一部分知識。時刻保持查閱未知知識點的習(xí)慣,不用擔(dān)心—即使是最好的程序員也需要這樣做。

  你會經(jīng)常地遇到 bug 和其它一些問題。這可能會讓人沮喪,但你要盡量保持冷靜,并系統(tǒng)地去思考。記住實踐是解決問題的最佳方法,同時記錄下那些經(jīng)常出現(xiàn)的 bug。當(dāng)問題出現(xiàn)時,思考問題出現(xiàn)的可能路徑(類似這樣的推理過程:OK,我的用戶無法正確登錄。這可能由什么原因造成?嗯…這可能是A、B或C造成的。如果是A,我可能會想到…)。寫出來或者大聲說出來,如果這樣有幫助的話。千萬不要只是坐在那里,盯著代碼,并希望能夠頓悟。

  與其它程序員一起工作,并向他們學(xué)習(xí)。與其他人一起編碼并討論代碼,我覺得這是最快最有趣的學(xué)習(xí)方式(我非常推薦結(jié)對編程)。當(dāng)然,你能夠做的對自己最好的事情可能是去黑客學(xué)校

  祝你好運(yùn)!

  —————————————-

  有些評論指出,由于 web 開發(fā)只是編程的一個子集,本文標(biāo)題用“學(xué)習(xí) web 開發(fā)”取代“學(xué)習(xí)編程”可能更好。他們的觀點非常對,所以我希望本文的標(biāo)題不會誤導(dǎo)人們認(rèn)為 web 開發(fā)就是編程的全部(其實還有很多,很多我們不懂的東西)。這么理解吧,web 開發(fā)仍然是編程的一個子集,所以那些學(xué)習(xí) web 開發(fā)的人同時也在學(xué)習(xí)如何編程。

  編譯:伯樂在線 – 肖翔

it知識庫Web開發(fā):我希望得到的編程學(xué)習(xí)路線圖,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 男微信头像| 遥远星际| 女生宿舍2在线| 爱情电影网aqdy| 詹瑞文| 欧布奥特曼年代记| 封顶仪式| 夜色斗僵尸| 王若晰的个人资料| 我的吸血鬼学姐| 天河电影演员表| ab变频器中文说明书| 男女视频在线播放| 六年级五单元作文| 徐若| 乐队的夏天 综艺| 吴薇| 美式壁纸| 汤图片大全高清图片| 神迹电影| 源代码 电影| 净心神咒原文| 2 broke girls| 监视韩国电影播放| 色在线免费观看| 抖音 网页版| 志村大爆笑| 电子版租房合同免费下载| 色戒在线视频观看| 地板鞋编织方法的视频教程| 鹰与枭全部演员表| 韩国电影金珠| 适度水解奶粉有哪些| 爱奴记| 家书1000字| 五年级下册数学期末试卷人教版| 斯科特阿金斯主演所有电影| 轻舞飞扬| 洗衣机水满了还在进水维修视频| 我们的时代 电视剧| 大秦帝国第一部免费观看46集|