我應該先學哪種程式語言?

親愛的tl80,關於如何學習程式碼,我已經決定試一試。問題是,我不知道從哪裡開始。對我這樣的初學者來說,最好的程式語言是什麼?...
Illustration for article titled Which Programming Language Should I Learn First?

親愛的tl80,關於如何學習程式碼,我已經決定試一試。問題是,我不知道從哪裡開始。對我這樣的初學者來說,最好的程式語言是什麼?

簽名,可能是編碼員

親愛的,這可能是初學英語的人最常問的問題之一,也是教育工作者爭論的問題。問題是,你可以問十個程式設計師什麼是最好的語言,讓你的腳濕,你可以得到十個不同的答案有成千上萬的選擇。你開始使用哪種語言,不僅取決於它對初學者的友好程度,還取決於你想從事的專案型別,你為什麼對編碼感興趣,也許還取決於你是否想過以此為生。以下是一些考慮和建議,以幫助您做出決定。

你為什麼要學編碼?

取決於你想做什麼或做什麼,你的選擇可能已經為你準備好了。例如,要建立一個網站或webapp,你應該學習HTML和CSS,以及JavaScript和PHP的互動性。如果你的重點主要是/僅僅是構建一個移動應用程式,那麼你可以直接學習Objective-C for iOS應用程式或者如何使用Java for Android(以及其他東西)程式設計。

如果你想超越一個特定的專案或專業,或者想學習一堆語言,最好從學習程式設計的基本概念和如何“像程式設計師一樣思考”開始。這樣,不管你的第一門程式語言是什麼,你可以將這些技能應用到學習新技能上(可能只需21分鐘)。甚至孩子們的編碼應用程式也可以從一開始就很有用。例如,我上的第一門正式程式設計課程(除了四年級的基礎課程)是哈佛大學的CS50,你可以免費選修。馬蘭教授從Scratch開始這門課程,Scratch是一個為孩子們設計的拖放式程式設計環境,它教你編碼基礎知識和邏輯,同時幫助你創造一些很酷的東西,然後他繼續教你C。

多年來,我們為學習程式碼提供了其他一些優秀的資源,例如互動式課程Codecademy,但即使使用這些資源,您仍然需要選擇從哪種語言開始。因此,讓我們看看比較流行的語言和最推薦的入門語言之間的區別。

最常推薦給初學者的程式語言

大多數“主流”程式語言,如C、Java、C#、Perl、Ruby和Python,都可以完成與其他語言相同或幾乎相同的任務。例如,Java可以跨平臺工作,用於web應用程式和applet,但是Ruby也可以做大型web應用程式和Python應用程式,類似地執行在Linux和Windows上。soaworld指出,由於許多語言都是以彼此為模型的,因此使用它們的語法或結構通常幾乎相同,因此學習一種語言通常有助於學習其他語言。例如,要列印“Hello World”,Java和C#在語法上類似於Perl和Python:

Illustration for article titled Which Programming Language Should I Learn First?

然而,它們的不同之處在於設定和進入的容易程度。SOA世界繼續:

嘿,順便說一句,如果你仔細看這些例子,你會發現有些是簡單的,有些是複雜的,有些在行尾需要分號,而有些則不需要。如果你剛剛開始程式設計,有時最好選擇沒有很多語法(或邏輯)規則的語言,因為這樣可以讓語言“走出自己的路”。如果你曾經嘗試過一種語言,並且真的很難適應,那就試試更簡單的一種吧!

下麵是最流行的程式語言的快速比較:

c:訓練你寫高效的程式碼

C語言是應用最廣泛的程式語言之一。這有幾個原因。正如著名的程式設計師和作家喬爾斯波爾斯基所說,C對於程式設計來說就像學習基本解剖學對於醫生一樣重要。C是一種“機器級”語言,所以你將學習一個程式如何與硬體互動,併在最低硬體級別學習程式設計的基本原理(C是Linux/GNU的基礎)。你學習了除錯程式、記憶體管理、計算機如何工作等高階語言(如Java)所沒有的知識,同時也為你編寫其他語言的高效程式碼做好了準備。C是許多其他高階語言的“祖父”,包括Java、C#和JavaScript。

也就是說,與其他語言相比,C語言的編碼更嚴格,學習曲線更陡,如果你不打算開發與硬體介面的程式(例如,使用裝置驅動程式或作業系統擴充套件),學習C語言將增加你的學習時間,也許是不必要的。Stack Overflow對C和Java作為第一語言進行了很好的討論,大多數人都指向C。然而,就我個人而言,雖然我很高興接觸到C語言,但我認為它不是一種非常適合初學者的語言。它會教會你紀律,但在你做任何有用的事情之前,你必須學很多東西。而且,因為它太嚴格了,你可能會像這樣沮喪:

Illustration for article titled Which Programming Language Should I Learn First?

java:最實用的語言之一

Java是第二流行的程式語言,也是斯坦福大學著名的(免費的)CS程式設計入門課程中教授的語言。java強制使用現代語言中的面向物件的原理(OOP),包括C++、Perl、Python和PHP。一旦你學會了Java,你就可以很容易地學習其他OOP語言。

Java具有使用歷史悠久的優點。有很多“樣板”的例子,它已經教了幾十年了,它被廣泛用於許多目的(包括Android應用程式開發),所以它是一種非常實用的學習語言。你不會像使用C那樣獲得機器級的控制,但是你可以訪問/操作最重要的計算機部分,比如檔案系統、圖形和聲音,這些都是可以在任何作業系統上執行的非常複雜和現代的程式。

蟒蛇:有趣又易學

許多人推薦Python作為最好的初學者語言,因為它簡單但功能強大。該程式碼易於閱讀,並強制執行良好的程式設計風格(如縮排),而不必對語法過於嚴格(如記住在每行末尾新增分號)。Ariel Computing的Patrick Jordan比較了用各種語言(BASIC、C、J、Java和Python)編寫簡單指令碼所需的時間,並確定不應忽略其他語言,Python:

需要更少的時間、更少的程式碼行和更少的概念來達到給定的目標。[…]最後,用Python程式設計很有趣!有趣和頻繁的成功培養了學生的信心和興趣,這樣學生就可以更好地繼續學習程式設計。

SOA說Python對於那些想熟悉Linux(或者已經熟悉Linux)的初學者來說是絕對必須的。由於Pinterest和Instagram等熱門網站的廣泛採用,Python的受歡迎程度今天也在迅速上升。

javascript:用於直接跳入和構建網站

JavaScript(與Java關係不大)需要最少的設定,因為它已經內建在web瀏覽器中。O'Reilly Media建議您從JavaScript開始,因為它有一個相對寬容的語法(您可以用JavaScript鬆散地編寫程式碼),您可以從程式碼中立即看到結果,並且您不需要很多工具。在我們自己的“學會編寫程式碼”夜校中,我們使用JavaScript向您展示變數和函式如何工作等基本知識。如果你想為web**很酷的互動式東西,JavaScript是一項必備技能。

選擇你的道路

最後一個要考慮的問題是,你是否願意把編碼作為一種愛好,變成一種職業。Dev/Code/Hack分解了不同的工作角色以及您應該為他們學習的技能:

後端/伺服器端程式設計師:通常使用以下幾種語言之一:Python、Ruby、PHP、Java或.Net。有資料庫知識。可能有一些系統管理知識。

前端/客戶端程式設計師:HTML、CSS、JavaScript。可能有設計技巧。

移動程式設計師:Objective-C或Java(對於Android)。移動網站的HTML/CSS。可能具有伺服器端知識。

3D程式設計師/遊戲程式設計師:C/C++,OpenGL,動畫。可能有很好的藝術技巧。

高效能程式設計師:C/C++,java。可能有數學或定量分析方面的背景。

不過,最終沒有一種方法可以開始學習程式碼。最重要的是透過“撓癢癢”來學習基礎知識,也就是說,透過解決你想解決的問題或你想建立的東西來學習。正如程式設計很糟糕的部落格所說:

你學的第一門程式語言可能是最難學的。選擇一些小而有趣的東西讓這少了一個挑戰,多了一個冒險。從哪裡開始並不重要,只要你繼續寫程式碼,繼續讀程式碼。也別忘了測試一下。一旦你有了一門你滿意的語言,學會一門新的語言就不是什麼了不起的事了,你會在學習的過程中學到新的技能。

一旦你決定了,前面提到的便當將建議你需要的資源和課程後,你已經學習了你的第一語言。

愛你,生活駭客

  • 發表於 2021-05-22 07:49
  • 閱讀 ( 53 )
  • 分類:網際網路

你可能感興趣的文章

你將來應該學習哪種程式語言?

有了幾十種行業標準程式語言和數百種其他活動語言來考慮,挑選最好的程式語言學習可能會很困難。如果你要投入數千小時的時間學習和實踐,你希望結果是值得的。 ...

  • 發佈於 2021-03-11 19:38
  • 閲讀 ( 56 )

關於arduino你一直想知道的10件事

... 7我應該選arduino還是raspberry pi? ...

  • 發佈於 2021-03-13 02:49
  • 閲讀 ( 53 )

最適合新手的ruby互動介紹

...題。對於初學者來說,這兩種語言都很簡單。但也許你對先學哪種語言有點困惑。如果你傾向於魯比,這裡有一個偉大的嬰兒步驟,你可以採取。 ...

  • 發佈於 2021-03-13 09:52
  • 閲讀 ( 49 )

如何透過閱讀每日新聞來學習一門新語言

... 你想學哪種語言? ...

  • 發佈於 2021-03-13 22:32
  • 閲讀 ( 43 )

10種最常見的程式設計和編碼錯誤

... 我應該用JavaScript在我的應用程式中編寫程式碼,還是應該使用類似的框架節點.JS還是快車?我應該使用Python、Scala還是Ruby進行開發?C還是C++?哪種框架最好?對於資料庫...

  • 發佈於 2021-03-18 04:48
  • 閲讀 ( 52 )

最糟糕和最難避免的程式語言就像瘟疫一樣

...在深入研究它們之前,您必須回答一個非常困難的問題:我應該學習哪種程式語言? ...

  • 發佈於 2021-03-21 17:33
  • 閲讀 ( 50 )

透過本課程建立一個網站來學習web開發

...程式語言、幾十個框架和庫,所以沒有明確的路線圖。你應該按什麼順序學哪一個? ...

  • 發佈於 2021-03-27 04:04
  • 閲讀 ( 42 )

想成為一個遊戲開發者嗎?這個包教你

...地方開始。對很多人來說,最棘手的事情是知道在哪裡。我應該使用哪個遊戲引擎?我應該學習程式語言嗎?如果是的話,哪種程式語言最適合遊戲開發? ...

  • 發佈於 2021-03-29 16:17
  • 閲讀 ( 49 )

我應該買哪種天氣預報?

Synology提供了過多的NAS型號可供選擇,但如果您不確定所有的區別是什麼,那麼選擇可能會有點令人眩暈。以下是一些你應該知道的事情,以幫助你縮小你的理想選擇。 我們是滑學NAS產品的大粉絲,主要是因為它們非常容易設...

  • 發佈於 2021-04-06 11:03
  • 閲讀 ( 58 )

杜比數碼和dts有什麼區別,我應該關心嗎?

就像音樂一樣,環繞聲平臺有多種標準。大多數高階家庭音響系統支援的兩大系統是杜比數字和DTS(標準所有者的縮寫,最初稱為數字影院系統)。但是這兩者有什麼區別呢? 什麼是杜比數字和dts(dolby digital and dts)? 杜比和DTS...

  • 發佈於 2021-04-08 00:24
  • 閲讀 ( 46 )
addgkrqskl
addgkrqskl

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦