入門門檻:高、低、中
程序員經常談論“入門門檻”——這個概念反映了任何給定的“初級開發人員”要充分掌握編程語言以編寫他或她的第一個正式程序並找到工作所需的工作量。“入門門檻”包括以下知識:- 語言的句法特性和細微差別
- 圖書館
- 算法和數據結構。
網絡還是非網絡?
網絡
Web程序員可以分為前端開發人員和後端開發人員。您應該了解這些術語的含義。前端開發人員參與客戶端,即用戶看到的內容。“後端”是關於操作和存儲數據——在服務器上運行的服務的一部分。對於決定學習哪種編程語言的前端開發人員來說, JavaScript和 JavaScript 框架(Angular JS、React 等)是必不可少的。JS 方言,如 CoffeeScript 和 TypeScript,不像它們的母體那樣流行,但它們也很有用。還有Flash AS,以前還有JScript和VBScript,不過只有恐龍才記得這個=)除此之外,你還需要懂HTML和CSS。 許多初學者認為 JavaScript 和 Java 幾乎是一回事。不要混淆這些語言。JS舊稱“LiveScript”,只是因為“Java”這個詞的流行而得現在的名字。對於Web 後端開發人員,PHP、Python、Ruby、Perl 和 Java 是合適的。在這裡我想重點介紹 PHP(我們稍後會討論其他語言)。PHP是最容易學習的語言之一,入門門檻低。根據對知名 Web 開發人員的一項調查,Ruby 正在緩慢但穩步地流行起來——它因其簡潔和美觀而受到喜愛。非網絡(企業、桌面、移動)
我特意將以下編程語言以一個奇怪的名稱歸入此類。您可以使用它們中的大部分來編寫企業、桌面甚至移動應用程序。 Python是一種易於理解的面向對象的編程語言,最近由於機器學習(ML) 的增長而變得異常流行:ML 開發人員廣泛使用 Python。 毫升是 IT 中一個相當新的領域,雖然我們已經看到它取得成果,但在選擇編程語言時我不會急於進入這個行業。首先,您需要對數學有出色的理解。其次,流行的浪潮可能會像“區塊鏈”或“納米技術”那樣過去。也就是說,您可能還記得 Python 用於 Web 開發。 C++: 一種經典語言,一切都建立在“plus-plus”運算符之上。這種語言是所有流行的面向對象編程語言的始祖,初學者一定要注意它。許多流行的應用程序都是使用它編寫的。但是“搬起石頭砸自己的腳”的絕好機會和難以理解的語法使初學者掌握這個編程巨齒象的可能性為零。 科特林,就像潮人的 Java,是 OOP 和函數式編程的瘋狂組合。它最近很流行,因為有經驗的開發人員從 Java 切換到 Kotlin 可以顯著提高他或她的工作效率。經驗豐富的開發人員會很快熟悉這種編程語言。順便說一句,同樣的事情也適用於 Scala,但 Kotlin 在 Android 世界中很流行。 Java對於初學者來說很容易學習。特別是在CodeGym的幫助下=) Java 語法是可以理解的,儘管存在“搬起石頭砸自己的腳”的風險,但這並不重要。面向對像還是流行?
程序方法
面向過程的方法涉及編寫一個由順序語句組成的程序,這些語句可以組合成一個統一的整體,以有效地解決一組特定的問題。這些語言包括C、PureBasic和Pascal。也就是說,給高中生和本科生帶來絕望的語言。還有比較年輕的GO語言。也就是說,熟悉過程語言對潛在的開發人員非常有用。我沉浸在過程語言中來自 Wolfram Mathematica 系統和大學研究。正確的算法和簡單的程序,從程序的開始到結束呈線性移動,使我能夠計算出與現代理論物理學相關的值。這種“順序”編程語言只是幫助您理解有時編寫手動執行計算的代碼更容易。學習面向過程的編程 (POP) 可以提供良好的算法培訓,雇主幾乎總是希望在求職者身上看到這種培訓。絕對是 IT 中的一切都建立在過程語言的基礎上,所以不要低估它們。順便一提,決定學習哪種編程語言的初學者通常認為只有 OOP 語言支持多線程。這不是真的。過程編程語言也允許並行計算。面向對象的方法
那些從過程語言開始的人通常精通數學、算法和數據結構(由於技術大學對這些領域的重視)。儘管如此,今天的現實是,成功的程序員通常是那些掌握了不同的編程方法的人:面向對象範式。OOP 思想讓您構建真正的全球系統。這種方法的一個特點是它與現實世界的相似性:- 不同的對象相互影響,又相互獨立存在。
- 對象具有層次結構,可以採用或更改其祖先的行為。
- 您可以使用抽象概念,但只有實際存在的對象才能交互。
例子 面向過程的語言是解決特定問題的工具。如果您的任務發生變化,即使變化很小,您也可能不得不花費時間和精力來重寫所有算法。 想像一個程序,它描述了一家銷售汽車和卡車的汽車經銷店,包括新舊汽車。在過程語言中,您需要定義函數來處理每個實體的數據輸入或輸出:一輛新車、一輛新卡車、一輛二手車和一輛二手卡車。OOP 提供什麼?使用面向對象的方法,我們只需要定義一個 Vehicle 基類來存儲所有車輛類型共有的特徵:
以及接收和發送信息的方法。然後我們創建繼承 Vehicle 類特徵的對象:Car 和 Truck。它們包含專門針對這些類型車輛的信息,以及輸入/輸出方法。 經銷商的管理層突然決定通過提供摩托車來擴大陣容。在過程方法下,我們必須為新舊摩托車重新創建所有邏輯,而 OOP 語言讓我們可以簡單地創建一個新的 Motorcycle 類,該類繼承 Vehicle 超類的所有特徵並包含特定於摩托車的改進。 如果我們添加各種車輛會發生什麼?程序實現比 OOP 需要更多的工作。更重要的是,陣容越大,涉及對象的操作就越少。 |
- OOP 涉及獨立開發單個模塊,允許程序員或團隊選擇聯繫和信息交換的方法和邊界。
- 分成小模塊的代碼比單一的程序更容易閱讀。因此,局外人可以快速理解您的代碼,同樣,您可以在必要時加入新項目。
- 可以更改一個類而不影響另一個類的交互,但這樣的更改會影響子對象的層次結構。一旦掌握了這種方法,擴展和修改程序就變得微不足道了。
-
跨平台。
由於 Java 虛擬機 (JVM),Java 無處不在。這種語言的主要優點之一是它的跨平台特性:無需考慮要添加哪個庫或特定處理器的體系結構。“一次編寫,隨處運行”。
-
文檔。
有一個龐大的文檔庫:官方 Oracle 文檔、培訓門戶和不斷發展的社區。開發過程中出現的大多數問題的答案都可以在幾分鐘內找到。最主要的是了解要輸入搜索引擎的內容 =)
-
人氣。
Java 是世界上最流行的編程語言:除了前面提到的 Android 和 Web 開發人員之外,幾乎每個企業開發人員都使用 Java 進行編寫。企業是指企業內部發展所必需的大企業的需要。
每年,仇恨者都預測“Java 已死”。他們說,“ Oracle 將停止支持它。您完全是在浪費時間。 ”這不是真的!他們承諾每六個月發布一次新版本的 Java。
對我來說,Java 8 中的 lambda 表達式是革命性的,是一種啟示,更不用說新版本了!我目前正在從事一個“遺留”項目,因此我不會深入研究最新的創新,但 Java 仍然存在是事實。
-
安卓。
在過去的 4 年裡,Android 一直佔據著80% 以上的手機市場份額。電視、媒體播放器,甚至汽車信息娛樂系統都運行在這個操作系統上。這個操作系統的應用程序開發主要發生在 Java 中。想像一下正在打開的前景。當我找到一份 Android 開發人員的工作時,我想知道我開發的產品值多少錢?事實證明,價格約為每年 5 美元。這就引出了一個問題,“那麼這個辦公室、工資、小吃室、乒乓球桌、機器人和其他津貼的錢從哪裡來?答案在於數量:我們的應用程序有 2000 萬用戶。
-
工資。
而現在錦上添花的是:Java 開發人員的薪水在業內名列前茅。畢竟,您計劃學習編程是為了一個特定的目的:找到一份好工作。
編程語言的流行
有官方的信息來源,所以讓我們求助於他們。據TIOBE統計,截至 2019 年 10 月,Java 排名第一。在PYPL排名中,Java 排名第二,遙遙領先於 JS,與新潮的 Python 不相上下。結論
初學者在考慮選擇編程語言時,應該注意以下幾點:- 流行度(Java一直佔據領先地位)
- 入門門檻(對於 Java,中等:雇主需要相當廣泛的技能)
- 可用資料(歡迎來到 CodeGym =))
- 應用領域:使用編程語言的領域越多,市場上需要的專家就越多。我已經提到了 Java 如何支持跨平台開發,但我不厭其煩地重複它。
GO TO FULL VERSION