進入門檻:高、低、中
在程式設計師中,你經常可以聽到「入門門檻」這個概念,這個概念反映了一個「初級」個體要在足夠的水平上掌握一門程式語言以編寫他的第一個正式程式並找到一份工作所需的努力程度。「入門門檻」由知識組成:- 語法特徵和語言的細微差別;
- 圖書館;
- 演算法和資料結構。
網路還是非網路?
網路
Web程式設計師可分為前端開發人員和後端開發人員。值得理解這些術語的含義。「前端」開發人員處理所謂的客戶端—使用者將看到的內容。「後端」是服務的軟體和硬體部分——在伺服器上運行。對於決定選擇哪種程式語言的前端開發人員來說,必須具備JavaScript及其框架:Angular JS、React 等。JS 方言不如其父親方言那麼流行,但也很有用:CoffeeScript、TypeScript。還有flash AS,之前有JScript和VBScript,但只有恐龍記得=)另外,你需要了解HTML和CSS。非網路(企業、桌面、行動)
我特地將這些程式語言歸類為一個名稱如此奇怪的類別。它們中的大多數可用於編寫企業、桌面甚至行動應用程式。 Python是一種易於理解的 OOLP,最近由於機器學習的發展而變得異常流行:它的追隨者廣泛使用 Python。ML在IT領域是一個相當年輕的領域,雖然已經收到了第一批成果,但在選擇程式語言時我不會急於進入這個行業。首先,你需要非常擅長數學。其次,流行浪潮可能與「區塊鏈」或「奈米技術」一樣。此外,正如您所記得的,Python 用於 Web 開發。 C++:經典,一切都是建立在「優點」的基礎上的。這種語言是所有流行的 OOLP 的鼻祖,初學者絕對應該關注它。許多流行的應用程式都是基於它的。但「搬起石頭砸自己的腳」的高機率和難以理解的語法否定了初學者掌握這種程式設計的可能性。 Kotlin - 時尚人士的 Java - OOP 和函數式程式設計的瘋狂組合。最近很受歡迎,因為經驗豐富的開發人員從 Java 切換到 Kotlin 顯著提高了他的工作效率。經驗豐富的開發人員會很快習慣這種語言。順便說一句,Scala 也是如此,但 Kotlin 在 Android 中更受歡迎。 Java對於初學者來說很容易學習。其中,感謝JavaRush:正是在這裡,我明白瞭如何選擇程式語言 =) Java 語法清晰,有可能“搬起石頭砸自己的腳”,但並不關鍵。物件導向還是流行?
程式方法
過程導向的方法涉及編寫由順序語句組成的程序,這些語句可以組裝成一個整體,以有效地解決特定範圍的問題。這些語言包括:C、PureBasic和Pascal。同樣給高中生和國中生帶來沮喪。還有一個比較年輕的GO。然而,熟悉過程語言對於潛在的開發人員來說非常有用。對我來說,沉浸在過程語言中與 Mathematica 系統(Wolfram)和大學研究活動有關。由於正確的演算法方法和簡單的程序,從程序的開頭到結尾線性移動,我能夠計算出與現代理論物理相關的值。正是由於這些「順序」語言,你開始明白,有時編寫程式碼比依靠自己更容易。學習 PPP 可以提供良好的演算法培訓,雇主在招募時幾乎總是希望在候選人身上看到這一點。IT 中一切事物和每個人的基礎都是建立在過程語言之上的,所以不要低估它們。順便說一句,決定選擇學習哪種程式語言的初學者常常認為多執行緒是 OOP 的專有特權。這是錯誤的。過程程式語言還允許您執行並行計算。物件導向的方法
那些從過程語言開始的人通常都對數學、演算法和資料結構有很好的了解(這是由於技術大學對這些知識領域的重視)。然而,在現代現實中,成功的程式設計師往往是那些很好地掌握了另一種程式設計方法——物件導向的人。OOP 思想使得建立真正的全球系統成為可能。 這種方法的獨特之處在於它與現實世界的相似性:- 各種物體既相互影響又相互獨立存在。
- 物件具有層次結構,並且能夠採用或改變其祖先的行為。
- 您可以使用抽象概念進行操作,但只有真正存在的物件才能互動。
例子 過程導向的語言是解決特定問題的工具。如果您的任務發生了變化,即使是很小的變化,您很可能必須花費時間和精力重寫所有演算法。 Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
最廣泛的文件庫:Oracle 官方文件、培訓入口網站、不斷開發的社群。開發過程中出現的大多數問題都可以在幾分鐘內找到答案,主要是了解要在搜尋引擎中輸入什麼內容 =)
-
人氣。
Java 是世界上最受歡迎的程式語言:除了上述的 Android 和 Web 開發人員之外,幾乎每個初次企業開發人員都用 Java 編寫。Enterprise是滿足大公司需求所必需的內部開發。
每年都有仇恨者預測“Java之死”,他們說:“甲骨文將停止支持它,總的來說你是在胡說八道。” 這是錯誤的!Java 的新版本承諾每六個月發布一次。可以在此處閱讀最新版本最重要的創新和功能。
對我來說,Java 8 中的 lambda 是一場革命和發現,更不用說新版本了!現在我正在做一個「逆行」項目,所以我不去深究創新,但Java存在的事實是事實。
-
安卓。
Android在過去 4 年裡自信地佔據了80% 以上的手機市場;電視、媒體播放器甚至汽車媒體系統都在這個作業系統下運作。此作業系統的開發主要是用Java 進行的。想像一下前景如何。當我找到 Android 開發人員的工作時,我開始感興趣:我正在開發的產品要多少錢?事實證明,每年的價格約為 5 美元。一個合理的問題出現了:這個辦公室的資金從哪裡來,薪水、餅乾、乒乓球桌、機器人和其他「好東西」?這是數量問題:我們的應用程式有 2000 萬用戶。
-
工資。
甜點是:Java 開發人員的薪水是業內最高的薪水之一。你學習程式設計是為了一個特定的目的:找到一份好工作。
程式語言的流行度
在選擇程式語言時,你需要考慮學習的最終目標-獲得第一份工作。為了評估不同語言的受歡迎程度,我造訪了一個受歡迎的招募入口網站,開始查看莫斯科各種要求的職缺數量。您可以在下面看到結果。爪哇: | 第277章 |
Python: | 227 |
php: | 188 |
C#: | 147 |
c++: | 131 |
紅寶石: | 40 |
標量: | 24 |
科特林: | 20 |
結果
初學者在選擇程式語言時應該注意以下幾點:- 流行度(Java始終佔據領先地位);
- 進入門檻(對於Java - 平均:雇主要求的能力範圍相當廣泛);
- 可用資料(沒有類似俄語JavaRush的門戶網站,因此,手掌去猜誰=));
- 應用領域:可以使用程式語言的行業越多,市場上需要的專家就越多。我已經談到了跨平台,但我不會厭倦重複它。
還有什麼要讀的: |
---|
GO TO FULL VERSION