国模叶桐尿喷337p人体,国产乱xxⅹxx国语对白,国产精品人妻无码久久久郑州,国产一区二区内射最近更新,国产一区二区三区不卡在线看

首頁 自媒自媒體大數(shù)據(jù)文摘正文

還糾結(jié)該從哪門編程語言學起?先來聊聊JavaScript

編譯 | Aileen,yawei,彭晗,蔣寶尚,錢天培

  大多數(shù)人學習編程的旅程都是從深夜的一次度娘搜索開始的。

  比如很多情況下會是搜索:“學習__(某種編程語言)”

  但是他們是如何決定他們想要學習的語言種類的呢?

  有些人這么想,“在硅谷,他們老用Java打趣?;蛟S我也該去學學?!?/p>

  或者是:

  “Haskell現(xiàn)在這么火熱,就Haskell吧?!?/p>

  還有一些人是這樣:

  “給GO 代言的那只地鼠萌萌噠,學Go吧?!?/p>

  Go的代言地鼠

  至于剩下的那群人,可能會搜索以下內(nèi)容:

  “我應(yīng)該先學習哪一門編程語言?”

  這問題被問得太多了,現(xiàn)在可都有專門的圖表供查詢答案了。

  圖表:“我該先學哪門編程語言?”答案自測

  決定你所學的第一門編程語言可能是一個有趣的過程----就像是玩“你是金庸小說里的哪個角色?”

  但如果你只是因為小時候喜歡玩泥巴,所以就去學Ruby的話,我可得提醒你,這可不是個小決定。(注:Ruby因其功能簡單但應(yīng)用靈活而常被比作橡皮泥)

  你將會花數(shù)百個小時來學習你的第一門編程語言(而且這也只是入門所需罷了),所以你需要慎重考慮以下幾點:

  這門語言的就業(yè)市場

  這門語言的長遠發(fā)展前景

  學習這門語言的難易程度

  你可以用這門語言開發(fā)什么項目(而且和你的朋友們分享,以便你能保持足夠的學習動力)

  每一年都會有新的編程語言涌現(xiàn)而出,隨之而來的是關(guān)于這些新語言的學術(shù)論文,以及網(wǎng)絡(luò)漫畫。

  一點也不夸張,就來看看這幅上個月新出的漫畫吧,畫的還不錯的:

  圖表:這幅漫畫通過描述一個王子救公主的故事調(diào)侃了每種編程語言的特點

  當談到第一門編程語言該學什么的時候,這選項可多了去了。將范圍縮小一點,這里是過去12年,與學習編程相關(guān)的最常見的谷歌搜索結(jié)果:

  圖表:一些學習編程語言相關(guān)的谷歌搜索的頻率變化趨勢

  Java的搜索頻率時高時低。

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

  但是藏在這些下面的一個小不點兒,在過去的幾年慢慢地在積累人氣。它就是Java。(作者把Java比作歐美兒童繪本the Little Engine That Could中努力向上的小火車。)

  在我談?wù)撨@些編程語言以前,讓我先澄清一下:

  客觀來說我不認為任何一種語言會優(yōu)于其他語言

  我贊成程序員應(yīng)該學會多門編程語言

  我認為首先他們應(yīng)該學好一種語言。而且——你能從我標題猜到——這種語言應(yīng)該是Java。

  讓我們先從學校如何教編程談起。

  計算機科學入門

  圖表:學生所寫程序質(zhì)量與學習時間的關(guān)系

  按照慣例,編程教學通常被歸在計算機科學的范疇下。而計算機科學則通常被看作是數(shù)學的延伸或者是與和電子工程學位的密不可分聯(lián)系。

  當然,你現(xiàn)在可能也聽過:

  “計算機科學教育不能讓任何人成為編程專家,這就好比光學習畫筆和顏料不能讓人成為畫家一樣?!?/p>

  ——Eric S. Raymond

  截止到2016年,很多大學仍然認為編程就是計算機科學的一部分,而計算機科學就是數(shù)學的一部分。

  因此,很多入門性的編程課程側(cè)重于低層次的抽象語言,比如C,或者是側(cè)重于數(shù)學運算的語言,如MATLAB。

  而計算機學院的老大們也依然持之以恒地根據(jù)年度編程語言排行榜來選擇他們的教學語言, 比如TIOBE Index,或者是這張IEEE的:

  圖表:各種編程語言受歡迎程度排行榜

  大多數(shù)排行榜看起來幾乎和十年前幾乎一模一樣。

  但即使在學術(shù)界,不同編程語言的地位也已發(fā)生了翻天覆地的變化。

  在2014年,Python取代了Java成為在美國頂尖計算機科學項目里最為流行的教學語言。

  圖表:美國頂尖計算機科學項目所用教學語言排行

  而另一個變化也必將會發(fā)生。

  因為如果你看看工業(yè)界實際使用的語言,情況則大不相同:

  圖表:在Stack Overflow2016年的程序員調(diào)查中,Java成為最受歡迎的編程語言

  超過半數(shù)的程序員使用Java。Java對web的前端開發(fā)尤為重要,并且對于相應(yīng)的后端開發(fā)也越來越重要。而且,它正迅速地擴展到游戲開發(fā)和物聯(lián)網(wǎng)領(lǐng)域。

  招聘啟事中提及Java的次數(shù)也多于除了Java外的其他語言:

  圖表:招聘啟事中每個編程語言被提及的頻率

  我們開設(shè)我們開源社區(qū)的Java課程也并非偶然。在過去的兩年中,超過5000人通過Free Code Camp得到他們第一份程序員工作。

  我提倡Java并不是因為我在教它。我教授Java是因為這是獲得第一份程序員工作最可靠的途徑。

  但是Java適合你么?它是否值得成為你的第一個編程語言?讓我們再來探討我之前提到的那些因素吧。

  因素一:就業(yè)市場

  如果你學習編程純粹是出于求知的好奇心,那么你可以跳過這個因素。但是如果你像大多數(shù)學習編程的人一樣,想要用這項技能去找工作,這會是一份十分重要的考量。

  正如我前面提到的,在招聘啟事中,Java是被提及最多的編程語言。Java則緊隨其后位列第二。

  但是Java的情況是這樣的:盡管它存在了將近20年,也只是最近才成為一個正式的編程工具。現(xiàn)今像Netflix,Walmart和PayPal這樣的公司已經(jīng)在用Java編寫他們所有的應(yīng)用程序了。

  因此,大量的公司正在招聘Java開發(fā)人員,但是在就業(yè)市場上并沒有這么多會Java的程序員。

  圖表:不同編程語言對應(yīng)崗位數(shù)量與程序員數(shù)量之比

  每一個Java崗位平均有2.7個Java開發(fā)者競爭。PHP和iOS的競爭也是同等激烈。

  但是對于每一個Java崗位,平均只有0.6個Java開發(fā)者來競爭。對于具備Java的開發(fā)者來說他們十分搶手。

  因素二:長遠發(fā)展前景

  平均每個Java項目的Pull requests是每個Java,Python或者是Ruby項目的兩倍。除此之外,Java的增長速度比其他流行語言都快。(譯者注:Github的使用者在對項目作出修改后需要通過pull requests來讓其他合作人審核。)

  圖表:Github每種編程語言所編寫項目的pull requests總量

  Java良好的發(fā)展環(huán)境還受益于來自Google,Microsoft, Facebook, and Netflix等公司大量的投資資金和天賦異稟的工程人才。

  例如,Type(一個靜態(tài)類型的Java的超集)有超過100個開源貢獻者,他們中很多都是微軟和谷歌的員工,并拿著工資的。

  對于Java來說,這種類型的公司間的合作就很少有了。甲骨文(通過對Sun Microsystems的兼并獲得了Java業(yè)務(wù))經(jīng)常對那些試圖擴展它的公司提出起訴。(譯者注;甲骨文公司,全稱甲骨文股份有限公司,是全球最大的企業(yè)級軟件公司,總部位于美國加利福尼亞州的紅木灘)

  因素三:學習難易程度

  圖表:這是一幅模仿XKCD的漫畫,描繪了學習各個編程語言的難易程度。

  (譯者注;XKCD被其作者蘭道爾·門羅定義為一部“關(guān)于浪漫、諷刺、數(shù)學和語言的網(wǎng)絡(luò)漫畫”,被網(wǎng)友譽為深度宅向網(wǎng)絡(luò)漫畫。)

  大多數(shù)程序員都同意高級腳本語言相對容易學習。 Java以及Python和Ruby都屬于這個類別。

  盡管在大學, 學生學到的第一門編程語言仍然是像Java和C ++這樣的語言,但這幾門語言可難學多了 。

  因素四:你可以用它構(gòu)建哪些項目

  這是Java真正牛逼的地方。 Java可以在任何具有瀏覽器的設(shè)備上運行(設(shè)備的瀏覽器是運行Java的平臺)。你可以使用Java構(gòu)建任何東西,并在任何地方分享它。

  因為Java的廣泛應(yīng)用,Stack Overflow的聯(lián)合創(chuàng)始人阿特伍德提出了著名的阿特伍德定律:

  “任何可以用Java來寫的應(yīng)用,最終都將用Java來寫?!?/p>

  每過一個月,阿特伍德定律的地位就更加穩(wěn)固。

  Java曾經(jīng)承諾:它在任何地方都能運行。 你可能還記得Java Applet。甲骨文在今年早些時候正式宣布了放棄Java Applet。

  Python也遇到了同樣的問題:“我怎么把我編寫的游戲分享給我的朋友?更好的是,有沒有一種方式,能讓我將這種游戲安裝在我的手機上,以至于我可以在學校通過手機向孩子們展示,而孩子們沒有必要安裝它?!?– 在放棄用Python作為教學語言后, James Hague如是說。

  與之成對比的是,我們開源社區(qū)的成員在Codepen的瀏覽器中編寫了一些app。您可以點擊并直接在瀏覽器中使用這些app:

  http://m.yongsiang.cn

  http://m.yongsiang.cn

  http://m.yongsiang.cn

  http://m.yongsiang.cn

  先學好一門編程語言,然后再學習第二門語言。

  如果你不停地從一種語言跳到另一種語言,你最終將什么都學不好。想要擺脫菜鳥階段,你就需要熟練掌握你的第一門語言,然后你學習第二門語言的時候就會變得很輕松。

  再之后,你可以擴大你的知識范圍,并通過學習大量的語言成為一個更全面的開發(fā)人員

   學習C語言能幫助你了解計算機內(nèi)存管理方式,而且C語言在高性能計算中非常有用

   C ++非常適合游戲開發(fā)。

   Python適合用于理科和統(tǒng)計學 。

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

  但是,你還是要先學習Java!

  好的,現(xiàn)在我要來挑戰(zhàn)不可能了!

  ——我將會回答一些來自評論區(qū)或是我預(yù)計大家會有的反對意見。

  反對一:Java難道不是運行地很慢嗎?

  從實用角度講,Java與高性能語言一樣快。

  它也幾乎和C ++,Java和Go等高性能語言一樣快。

  以下是新出爐的最全面編程語言速度比對的結(jié)果:

  圖表:各編程語言速度比對結(jié)果

  反對二:但Java不是靜態(tài)類型的

  像Python和Ruby一樣,Java是動態(tài)類型化的,這是很方便, 但你也很容易碰上麻煩。這里我想讓exampleArray成為一個數(shù)組。 我給它賦值,然后檢查它的長度 – 也就是它包含的元素的數(shù)量。

  exampleArray = [1, 2]

  -> [1, 2]

  exampleArray.length

  -> 2

  但是,之后我不小心將它設(shè)置成了一個字符串。

  exampleArray = “text”

  -> “text”

  exampleArray.length

  -> 4

  這些類型的錯誤總是在動態(tài)類型語言中發(fā)生。大多數(shù)程序員會及時檢查防止這些錯誤,并為可能的錯誤寫相應(yīng)的測試。

  如果你在學第一門編程語言的時候就想使用靜態(tài)類型,那么我仍然建議你先學習Java。 然后你就可以快速地掌握Type。

  “Type學起來是不簡單的,但如果你已經(jīng)會用Java了,那就容易多了?!?– AlexEwerlf就學習Type如是說

  反對3:但我真的想做一個手機app

  我仍然建議先學習Java。

  Java提供了一些用于專門制作手機app的工具,例如Angular Cordova和React Native。

  為了編出真正有趣的app,你可能需要用到一個適當?shù)暮蠖耍@就需要用到一個適合的Web開發(fā)框架,如Node.js + Express.js。

  此外,值得指出的是,手機app開發(fā)的黃金時期已經(jīng)到頭了。

  首先,雖然人們用著手機app,但所有開發(fā)人員工作中有近一半是Web開發(fā)。 相比之下,手機app開發(fā)的工作只有少的可憐的8%。

  圖表:2016年Stack Overflow調(diào)查中,49,525名程序員所從事的職業(yè)方向。

  做什么事都有會一個應(yīng)用程序來幫你”的宏偉愿景一直沒有實現(xiàn)。事與愿違,現(xiàn)在大多數(shù)智能手機用戶已停止下載新app了。

  當然 - 他們?nèi)匀皇褂胊pp。 但這些app主要是Facebook,Google地圖和其他少數(shù)幾個。因此,對手機app開發(fā)者的大部分需求集中在少數(shù)大型雇主身上。

  這些移動開發(fā)工作的前景難以預(yù)測。 而使用Java可以更輕松地開發(fā),維護以及推廣手機app 。因此,像Facebook和Google這樣的公司正大量投資使用Java開發(fā)app的更好的工具。

  截至2016年,幾乎所有的開發(fā)都是web開發(fā)。一切都涉及到web這個大平臺。在下一輪科技浪潮中即將出現(xiàn)的家用裝備,以及從學校接你孩子回家的新型汽車,都將被網(wǎng)絡(luò)連接在一起 。

  這意味著我們需要Java。

  反對#4:Java不是10天就被寫好的小玩意兒嗎?

  Java有一個離奇的歷史。

  你無疑會聽到人們開Java的玩笑,說這門語言來的太廉價了。(譯者注:Java是在10天內(nèi)被開發(fā)出來的。)

  好吧。很多人都喜歡找C ++的茬。 像Java一樣,即使被人討厭,C ++也已經(jīng)成功了,而且 它的應(yīng)用幾乎無處不在。

  所以,如果有人曾經(jīng)責難你怎么學了Java而不是某一門本周精選編程語言,只要記住創(chuàng)建C ++那家伙的名言:

  “世界上只有兩類編程語言:人們抱怨的和壓根沒人用的?!?/p>

  —— Bjarne Stroustrup

  原文來源:

  http://m.yongsiang.cn

  注:本稿件摘自入駐數(shù)據(jù)觀自媒體-大數(shù)據(jù)文摘,轉(zhuǎn)載請注明來源,百度搜索“數(shù)據(jù)觀”獲取更多大數(shù)據(jù)資訊。

責任編輯:王培

分享: