乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?

       長(zhǎng)沙7喜 2016-11-15

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      大多數(shù)人學(xué)習(xí)編程的計(jì)劃開始于某一天的深夜谷歌搜索。

      搜索的內(nèi)容通常類似于“學(xué)習(xí)__”(自行腦補(bǔ)空格)

      但是他們是怎樣決定搜索哪種語(yǔ)言的呢?

      “在硅谷他們總是對(duì) Java 開玩笑。我想我應(yīng)該學(xué)習(xí) Java”

      或者

      Haskell?,F(xiàn)在是如此之熱。Haskell。

      或者

      Go 語(yǔ)言的地鼠 logo 真 tm 可愛。

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      然后我們剩下的人可能會(huì)搜索:

      我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言?

      幾乎沒有問(wèn)題會(huì)普遍到要用信息圖表來(lái)展示。

      但下圖列舉了一堆這樣的問(wèn)題:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      圖片來(lái)源 (http:///startcoding)

      決定你的第一個(gè)編程語(yǔ)言是一個(gè)有趣的過(guò)程,有點(diǎn)像 “你屬于昆汀·塔倫蒂諾的哪個(gè)角色?”的人格測(cè)驗(yàn)。

      但是,在你以小孩玩泥巴的心態(tài)跑去學(xué)習(xí) Ruby 之前,給你提個(gè)醒:這個(gè)賭注相當(dāng)高。

      它可能會(huì)耗費(fèi)你上百個(gè)小時(shí)去練習(xí),但你遠(yuǎn)遠(yuǎn)不會(huì)勝任你第一個(gè)編程語(yǔ)言。

      因此,你要考慮以下因素:

      • 語(yǔ)言的就業(yè)市場(chǎng)

      • 語(yǔ)言的長(zhǎng)期前景

      • 語(yǔ)言的學(xué)習(xí)難度

      • 你在學(xué)習(xí)期間能構(gòu)建什么樣的項(xiàng)目(并且與朋友分享,讓你保持動(dòng)力)

      每年都會(huì)產(chǎn)生新的編程語(yǔ)言,和這些編程語(yǔ)言的新學(xué)術(shù)論文,以及新的網(wǎng)絡(luò)漫畫。

      不信你看上個(gè)月的這篇佳作:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      當(dāng)你選擇第一個(gè)編程語(yǔ)言時(shí),選項(xiàng)有很多。為了進(jìn)一步縮小選擇,這里是過(guò)去 12 年來(lái)最常見的,與學(xué)習(xí)編程有關(guān)的谷歌搜索:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      Java 起起伏伏。

      Python 逐漸上升為最受歡迎的選擇。

      但是躲在下面是一個(gè)小火車頭,在過(guò)去幾年的流行度慢慢地上升。而這個(gè)小火車頭就是 JavaScript。

      在談?wù)撨@些編程語(yǔ)言之前,我先澄清:

      • 我并不是要論證任何一種語(yǔ)言在客觀上比任何其他語(yǔ)言好

      • 我認(rèn)為開發(fā)者們最終不應(yīng)該只學(xué)習(xí)一種語(yǔ)言

      • 我要論證的是應(yīng)該先學(xué)好一門語(yǔ)言。你應(yīng)該已經(jīng)從標(biāo)題中顛倒的文字猜出來(lái)了,這門語(yǔ)言就是 JavaScript。

      那就正式開始吧,首先我們來(lái)探索一下目前學(xué)校教授編程的方法。

      計(jì)算機(jī)科學(xué) 101

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      大學(xué)一直是以計(jì)算機(jī)科學(xué)的名義來(lái)教授編程的,而計(jì)算機(jī)科學(xué)通常被看做是數(shù)學(xué)的延伸,或者是電氣工程學(xué)位的周邊學(xué)科。

      當(dāng)然,你可能已經(jīng)聽說(shuō)了:

      “計(jì)算機(jī)科學(xué)教育遠(yuǎn)遠(yuǎn)不能像學(xué)習(xí)畫筆和顏料可以使人成為一個(gè)專業(yè)畫家那樣,使人成為一個(gè)專業(yè)的編程者。”- Eric S. Raymond

      截止到 2016 年,很多大學(xué)仍然把編程當(dāng)成計(jì)算機(jī)科學(xué),把計(jì)算機(jī)科學(xué)當(dāng)成數(shù)學(xué)。

      結(jié)果是許多入門級(jí)的編程課程專注于低層次的抽象語(yǔ)言,如 C,或聚焦于數(shù)學(xué)編程的語(yǔ)言,如 MATLAB。

      而系主任通常會(huì)指著編程語(yǔ)言的年度排行榜,如 TIOBE指數(shù),或者來(lái)源于 IEEE 的結(jié)果(如下圖),堅(jiān)持保留這些課程。

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      大多數(shù)這些排行榜就跟10年前幾乎一模一樣。

      但近幾年還是發(fā)生了一些變化,甚至在學(xué)術(shù)屆。

      在 2014 年,Python 超過(guò) Java 成為美國(guó)頂尖的計(jì)算機(jī)科學(xué)課程最流行的教學(xué)語(yǔ)言 。

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      并且另一改變也即將... 最終... 發(fā)生。

      因?yàn)槿绻憧纯磸臉I(yè)人員實(shí)際使用的編程語(yǔ)言,你會(huì)發(fā)現(xiàn)它的畫面是醬嬸的:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      JavaScript 是目前最受歡迎的語(yǔ)言,Stack Overflow 在 2016 年的調(diào)查顯示,調(diào)查的回應(yīng)者中有 49,397 的開發(fā)者使用 JavaScript。

      超過(guò)一半的開發(fā)者使用 JavaScript。 它對(duì)前端 web 開發(fā)非常重要,而且在后端開發(fā)中的使用程度也日益增長(zhǎng)。在游戲開發(fā)和物聯(lián)網(wǎng)等領(lǐng)域的使用也迅速擴(kuò)張。

      JavaScript 在招聘信息中被提到的次數(shù)也超過(guò)了除 Java 以外的其他編程語(yǔ)言:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      數(shù)據(jù)來(lái)源于世界上最大的招聘信息收集者,Indeed.com

      我們建立關(guān)于 JavaScript 課程的開源社區(qū)(Free Code Camp)絕非偶然。在過(guò)去的兩年里,超過(guò) 5,000 個(gè)人使用 Free Code Camp 找到他們的第一份工作。

      我并不是因?yàn)榻?JavaScript 才宣傳它。我教 JavaScript 是因?yàn)?JavaScript 是開發(fā)者找到第一份工作的最佳之路。

      但是 JavaScript 適合你么?它值得成為你第一個(gè)編程語(yǔ)言么?讓我們來(lái)探究一下前面提到的因素。

      因素 #1:就業(yè)市場(chǎng)

      如果你學(xué)習(xí)編程純粹出于求知欲,那么請(qǐng)?zhí)^(guò)這個(gè)因素。但是如果你像大多數(shù)學(xué)習(xí)編程的人一樣,想利用這個(gè)技能找到一份工作,那么這是一個(gè)重要的考慮因素。

      就像我之前提到的,Java 在招聘公告上提到的次數(shù)超過(guò)其他編程語(yǔ)言。JavaScript 緊隨其后,排名第二。

      但關(guān)于 JavaScript 的一個(gè)事實(shí)是:盡管 JavaScript 已經(jīng)存在了 20 多年,它只在最近幾年才被當(dāng)作真正的工具,如 Netflix,Walmart,和 PayPal 等公司愿意用 JavaScript 構(gòu)建整個(gè)應(yīng)用程序。

      因此,很多公司開始雇傭 JavaScript 開發(fā)者,但是在就業(yè)市場(chǎng)中這樣的開發(fā)者很少。

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      數(shù)據(jù)來(lái)源:Indeed.com

      對(duì)每一個(gè)公開的 Java 職位,有 2.7 個(gè) Java 開發(fā)者競(jìng)爭(zhēng)。PHP 和 iOS 就業(yè)競(jìng)爭(zhēng)同樣激烈。

      但是對(duì)于每一個(gè)公開的 JavaScript 職位,僅有 0.6 個(gè) JavaScript 開發(fā)者。對(duì)于具有 JavaScript 技能的開發(fā)者來(lái)說(shuō),這是一個(gè)賣方市場(chǎng)。

      因素 #2: 長(zhǎng)期遠(yuǎn)景

      平均一個(gè) JavaScript 項(xiàng)目收到的 pull request 是 Java,Python,或 Ruby 項(xiàng)目的兩倍。而在這一點(diǎn)上,JavaScript 比其他的編程語(yǔ)言增長(zhǎng)的更快。

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      數(shù)據(jù)來(lái)源:GitHub 2016 10月的調(diào)查情況

      JavaScript 的生態(tài)系統(tǒng)也得益于公司的大量投資資金和工程人才,如谷歌,微軟,臉譜,和 Netflix 公司。

      例如:TypeScript(一種 JavaScript 的靜態(tài)類型的超集)已經(jīng)有超過(guò) 100 個(gè)開源貢獻(xiàn)者,他們中很多人是微軟和谷歌的員工。

      很難在 Java 上發(fā)現(xiàn)這種公司間的合作。通過(guò)收購(gòu) Sun Microsystems 擁有 Java 的 Oracle 公司經(jīng)常起訴試圖擴(kuò)展 Java 的公司。

      因素 #3: 學(xué)習(xí)難度

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      圖片來(lái)源:XKCD 的滑稽漫畫。

      大多數(shù)程序員都會(huì)同意高級(jí)腳本語(yǔ)言相對(duì)易學(xué)。JavaScript就屬于這一類,就像 Python,Ruby。

      盡管大學(xué)仍然把 Java,C++ 作為第一類語(yǔ)言用來(lái)教學(xué),但它們顯然學(xué)習(xí)難度更高。

      因素 #4: 你可以使用學(xué)習(xí)的語(yǔ)言創(chuàng)建的工程

      這才是 JavaScript 的最大亮點(diǎn)。JavaScript 能運(yùn)行在任何一個(gè)有瀏覽器的設(shè)備上,就需要一個(gè)瀏覽器。基本上你可以用 JavaScript 構(gòu)建任何東西,并能隨時(shí)隨地分享。

      由于 JavaScript 的普及,Stack Overflow 的創(chuàng)始人 Jeff Atwood 創(chuàng)造了他目前著名的法則:

      任何可以用 JavaScript 編寫的應(yīng)用,最終都會(huì)使用 JavaScript 編寫。

      而且隨著時(shí)間的發(fā)展,Atwood 法則越來(lái)越有說(shuō)服力。

      Java曾經(jīng)一樣承諾過(guò)在任何地方運(yùn)行。你也許記得 Java Applets。Oracle 已經(jīng)在今年早些時(shí)候正式地停掉了它們。

      Python 也遭受了同樣的問(wèn)題:

      “我如何才能給我的朋友這個(gè)游戲呢?更好的是,是否有一種方法可以讓我把這個(gè)放在我的手機(jī)上,這樣我可以給學(xué)校的孩子們展示,而不需要他們安裝呢?唔…”——James Hague 在 《讓 Python 退休成為教學(xué)語(yǔ)言》中寫到。

      相比之下,這里有構(gòu)建在瀏覽器里的應(yīng)用程序,它們由開源社區(qū)的成員在 CodePen 上創(chuàng)建。您在瀏覽器中就能點(diǎn)擊并且使用這些應(yīng)用程序:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      1970 年代風(fēng)格的 Simon game

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      Conway’s Game of Life

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      Star Wars-themed Wikipedia Search

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      A roguelike dungeon crawler game

      先學(xué)好一門語(yǔ)言。再學(xué)習(xí)第二個(gè)語(yǔ)言

      如果你不停地從一種語(yǔ)言跳到另外一種語(yǔ)言,你不會(huì)走的太遠(yuǎn)。

      為了打破這種限制,你需要學(xué)好第一個(gè)語(yǔ)言。這樣你的第二種語(yǔ)言會(huì)更加容易。

      接下來(lái),你就能學(xué)習(xí)更多語(yǔ)言,從而接觸更多方面的知識(shí),成為一個(gè)更全面的開發(fā)者:

      • C 是學(xué)習(xí)計(jì)算機(jī)實(shí)際管理內(nèi)存方式的絕佳語(yǔ)言,并在高性能計(jì)算方面極為有用。

      • C++ 因?yàn)橛螒蜷_發(fā)而偉大。

      • Python 在科學(xué)和統(tǒng)計(jì)方面棒呆了。

      • 如果你想在大型科技公司工作,Java 很重要。

      但是首先你得學(xué)習(xí) JavaScript。

      Ok,現(xiàn)在我要去嘗試那些不可能?——?我要試著預(yù)料評(píng)論部分的可能出現(xiàn)的異議。

      異議 #1: 但是 JavaScript 不是很慢么?

      在大多數(shù)實(shí)踐意義上,JavaScript 是和其他高性能語(yǔ)言一樣快的語(yǔ)言。

      在數(shù)量級(jí)上,JavaScript (Node.js) 比起 Python,Ruby,PHP 不知道快到哪里去了。

      而且它幾乎與高性能語(yǔ)言如 C++,java,Go 一樣快。

      這里有最近最全面的綜合的跨語(yǔ)言平臺(tái)的基準(zhǔn)值:

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      異議 #2: 但是 JavaScript 不是靜態(tài)類型

      跟 Python,Ruby 一樣,JavaScript 是動(dòng)態(tài)類型的語(yǔ)言,這樣會(huì)很方便。但你可能會(huì)陷入困境。在這里我想把examplearray認(rèn)為數(shù)組。設(shè)置它的值,然后檢查其長(zhǎng)度?-?含義是它包含元素的數(shù)目。

      exampleArray = [1, 2]-> [1, 2]exampleArray.length-> 2

      但是隨后我不小心把它指定為字符串。

      exampleArray = “text”-> “text”exampleArray.length-> 4

      這些錯(cuò)誤會(huì)在動(dòng)態(tài)類型語(yǔ)言中的一直存在。大多數(shù)開發(fā)人員只是通過(guò)檢查到位,以防止這些錯(cuò)誤,并且相應(yīng)地編寫測(cè)試。

      如果你一定要在第一個(gè)編程語(yǔ)言中包含靜態(tài)類型,那么我仍然推薦優(yōu)先學(xué)習(xí) JavaScript。合影你就可以很快地學(xué)會(huì) TypeScript。

      “Typescript 有一個(gè)學(xué)習(xí)曲線,但是如果你已經(jīng)了解 JavaScript,那么 TypeScript 的學(xué)習(xí)曲線會(huì)非常平滑?!?—— Alex Ewerl?f 在 TypeScript 寫到。

      異議 #3: 但我真的想做一個(gè)移動(dòng) app

      但是我仍然建議優(yōu)先學(xué)習(xí) JavaScript。

      1. JavaScript 具有開發(fā)本地移動(dòng)應(yīng)用 app 功能的工具,如 Angular Cordova和 React Native。

      2. 為了讓你的移動(dòng)應(yīng)用程序?qū)崒?shí)在在做任何有趣的東西,它可能會(huì)需要一個(gè)適當(dāng)?shù)暮蠖?,需建立一個(gè)合適的 Web 開發(fā)框架,像 Node.js + express.js。

      而且,值得指出的是,移動(dòng)應(yīng)用開發(fā)的最好的日子可能即將到來(lái)。

      對(duì)于初學(xué)者,開發(fā)者中幾乎一半的工作是 web 開發(fā),和使用移動(dòng) app 的人們一樣多。相比之下,只有 8% 的工作涉及移動(dòng)應(yīng)用程序開發(fā)。

      程序員應(yīng)該先學(xué)哪種編程語(yǔ)言?——答案不是PHP

      49,525 人的職業(yè),統(tǒng)計(jì)數(shù)據(jù)基于 2016 Stack Overflow 的調(diào)查響應(yīng)人數(shù)。

      “只有一個(gè)應(yīng)用程序”的宏偉愿景并沒有通過(guò)。相反,大部分智能手機(jī)的擁有者已經(jīng)停止下載新的 app。

      當(dāng)然,他們?nèi)匀皇褂?App。通常是臉譜,谷歌地圖,還有其他的。大部分對(duì)移動(dòng) app 開發(fā)者的需求集中在一些大的雇主。

      那些移動(dòng)開發(fā)工作的前景很難預(yù)測(cè)。多方面的發(fā)展,維護(hù)和部署移動(dòng)應(yīng)用程序使用 JavaScript 更容易。這樣的公司如臉譜和谷歌都在大力投資使用 JavaScript 開發(fā)更好的工具。

      截至 2016,幾乎所有的開發(fā)都是 Web 開發(fā)。每一個(gè)接觸的大平臺(tái)都是“網(wǎng)絡(luò)”。在下一個(gè)設(shè)備的浪潮中,你會(huì)在家里交談時(shí),汽車可以接孩子放學(xué) -?網(wǎng)絡(luò)將會(huì)把他們鏈接在一起。

      而這就是 JavaScript 的意義。

      異議 #4: 難道 JavaScript 不是只花了 10 天寫出來(lái)的玩具語(yǔ)言么?

      JavaScript 有一段詭異的歷史。

      毫無(wú)疑問(wèn),這是人們以 JavaScript 開玩笑的代價(jià)。

      同樣,人們對(duì) C++ 既愛又恨。盡管存在這種恨,但就像 JavaScript 一樣,C++ 成功了,而且現(xiàn)在到處都在使用它。

      所以,如果有人因?yàn)槟阍趯W(xué)習(xí) JavaScript 而不是“本周精英語(yǔ)言”而嘲笑你,你只需要記住創(chuàng)造 C++ 的那個(gè)人一句名言:

      “只有兩種編程語(yǔ)言:一種是被人罵的,一種是沒人用的?!?—?Bjarne Stroustrup

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多