當前位置:
首頁 > 最新 > 你選擇了哪門編程語言作為了你的武器?

你選擇了哪門編程語言作為了你的武器?

C/C++

一句話概括:大多數中國程序員的第一個語言

C 語言是面向過程語言在當代的魯殿靈光,常用於編寫操作系統。C++ 是 C 語言的一個超集,既有指針又有對象使它成為最複雜的語言。

C/C++ 的優勢:幾乎所有現代編程語言都脫胎於 C/C++,因此了解了 C/C++,就了解了關於編程語言的一切,非常有利於快速掌握其他各類編程語言。

C/C++ 的不足:據說 C/C++ 發明的時候為了提高入行門檻和行業收入水平刻意製造了學習難度。

C/C++ 的優勢:C/C++ 可以被嵌入任何現代處理器中,幾乎所有操作系統都支持 C/C++,跨平台性非常好。

C/C++ 的不足:儘管 C 語言體型小巧,可最常使用的 C++ 規模可觀且擁有大量極為複雜的功能交互方式,容易造成資源浪費。

職業路線:

(1)首推 Unix/Linux 等操作系統軟體的開發和嵌入式開發。

(2)Android ROM 的定製,以及 Android App 的 NDK 開發。

(3)用 Cocos2d-x 開發遊戲也是 C++ 程序員的好出路。

Java

一句話概括:最長壽的語言

Java 是最典型的面向對象語言。Java 不僅吸收了 C++ 語言的各種優點,還摒棄了 C++ 里難以理解的多繼承、指針等坑爹概念。今明兩年畢業的大學生大多是 Java 的同齡人(1995 年)。

Java 的優勢:Java 平台不斷迎來新功能,比如移動互聯網時代的 Android,大數據時代的 Hadoop,人工智慧時代的 TensorFlow。

Java 的不足:國內 Java 及其衍生技術的就業環境被培訓班破壞得太厲害,培訓班 HR 曾問我:「Android 不吃香了,你能推薦幾個Hadoop 講師嗎?」

Java 的優勢:Java 是世界上使用範圍最廣的語言——Java 環境安裝時那句 「3 Billion Devices Run Java」 誰沒見過?

Java 的不足:Java 佔用大量內存,並且啟動時間較長——搞 Android 的都被 Windows 系統中的 Android AVD 坑過。

職業路線:

(1)招聘網站上常見的 「招聘 Java 開發」 指的就是狹義的 Java 開發——基於 JavaEE 的後台開發,以前一度流行過 SSH 框架和SSM 框架,現在入門建議學習 SpringMVC 框架。

(2)在移動互聯網時代,Java 可用於 Android App 開發。但 Java 之於 Android 的地位可能被 Kotlin 取代,並且近年培訓班造成了低水平 Android 程序員的泛濫。

(3)在大數據時代,Java 可用於 Hadoop 的開發,前景非常廣闊,但可能有泛濫的趨勢。

(4)在人工智慧時代,Java 可用於 TensorFlow 深度學習的開發。

C#

一句話概括:自稱不是 Java 的 Java 語言

C#是微軟看到 Java 太火了而發明的和 Java 語法差不多的語言。

C#的優勢:C#的最大優勢在於全面集成.Net 庫,提供出色的功能與完美的庫訪問能力。

C#的不足:由於集成.Net 庫造成跨平台能力太差。

C#的優勢:VR 時代的到來讓 Unity-3d 開發者有很好的發展前景。

C#的不足:目前.Net 在國內就業環境不太好,收入較低。

職業路線:

(1)招聘網站上常見的 「招聘 C#開發」 和 「招聘.Net 開發」 指的都是狹義的 C#開發——基於.Net 框架的後台開發。

(2)Unity-3d 也用 C#作為開發語言,除了能開發 3D 遊戲,在 VR 時代也會大放光芒。

JavaScript

一句話概括:不是 Java 語言的語言。

JavaScript 是一種動態類型、弱類型、基於原型的直譯式腳本語言,也是使用頻率最高的給 HTML 網頁增加動態功能的語言。外行最常鬧的笑話是以為它是 Java 語言的分支。

JavaScript 的優勢:作為腳本語言,JavaScript 可立即運行而無需等待伺服器響應,速度非常出色。

JavaScript 的不足:代碼在用戶電腦上運行,可能會被別有用心的壞人惡意利用。

JavaScript 的優勢:JavaScript 是動態類型語言,學習難度低。並且掌握了 JavaScript 語言就等於成為能同時開發網頁(HTML5)、後台(Node.js)、移動端(React Native、Weex)的全棧工程師。

JavaScript 的不足:JavaScript 過於依賴瀏覽器,在不同的瀏覽器上有不同的表現。

職業路線:

(1)首選 HTML5 的初心:網站和手機站的前端頁面開發。

(2)用 Node.js 或 Bmob 雲端代碼進行後台開發

(3)基於 React Native、PhoneGap、Weex、HBuilder、AppCan 進行移動開發,只需寫一遍代碼,就有 Android 和 iOS 兩個軟體

(4)微信開發:包括微信公眾號、微信小遊戲、微信小程序。不要把這個方向當成中國特色方向,國外的 Android 機也是需要 PWA開發的。

(5)如果以上四樣全能做到,那麼你就是全棧工程師。

SQL

一句話概括:資料庫離不開的語言

SQL 是一種專精於資料庫的特殊目的語言。用於存取數據以及查詢、更新和管理關係資料庫系統。

SQL 的優勢:存儲過程可以重複使用, 可減少資料庫開發人員的工作量,開發速度快。

SQL 的不足:和 Java 語言的大多數設計模式一樣,SQL 開發速度是靠犧牲運行速度換來的。

SQL 的優勢:SQL 可設定只有某此用戶才具有對指定存儲過程的使用權,安全性好。

SQL 的不足:不同資料庫系統之間的 SQL 不能完全相互通用,可移植性差。

職業路線:

(1)掌握了 SQL 可以從事 DBA(Database Administrator,即資料庫管理員),主要負責業務資料庫從設計、測試到部署交付的全生命周期管理。

Python

一句話概括:需要拿著遊標卡尺學習的語言

Python 是一款伺服器端解釋型開源非編譯腳本語言。它常被昵稱為膠水語言,能夠把用其他語言製作的各種模塊(尤其是 C/C++)很輕鬆地聯結在一起。

Python 的優勢:Python 學習簡單,被譽為 「最易學習的語言」

Python 的不足:Python 存在一些只在特定情況下才會出現(無法重現)的 bug

職業路線:

(1)用 Django 框架進行 Web 開發:和 Java 沒什麼兩樣。

(2)用 PIL 框架進行圖形處理

(3)物聯網:Raspberry Pi 等物聯網平台都選擇了 Python 作為開發語言

(4)Python 有一個無所不能的 Hack 庫,如果認為 「打工時不可能打工的」 就去當一個自由的黑客吧

PHP

一句話概括:世界上最好的語言

PHP 是一種通用開源腳本語言。語法吸收了 C 語言、Java 和 Perl 的特點,利於學習,使用廣泛,主要適用於 Web 開發領域。號稱 「世界上最好的語言」

PHP 的優勢:PHP 學習簡單,易於快速上手。

PHP 的不足:PHP 的運行速度比較慢。

PHP 的優勢:歷久彌新的 PHP 擁有龐大而活躍的官方社區,開發者面臨的大部分難題都有現成的解決方案,很多十幾年前的解決方案在當代也有指導意義。

PHP 的不足:PHP 的錯誤處理機制比較糟糕,以為 PHP 需要支持大量舊版本的功能。

職業路線:

(1)適合進行 Web 開發,配合 Node.js 效果更佳。

Objective-C 和 Swift

一句話概括:被培訓班害苦了的語言

Objective-C 和 Swift 都是 OS X 和 iOS 系統上的專用語言。Objective-C 在三年前是國內收入最高的語言,從去年開始大量培訓班輸出了一大堆 「三年經驗」 的速成 「iOS 工程師」 成了脈脈匿名區的笑話。

Objective-C 的優勢:蘋果提供了豐富的工具和庫以便開發者使用 Objective-C 開發軟體。

Objective-C 的不足:Objective-C 擁有自己獨特的編程方法思路,與其他編程語言思路差別較大。

Swift 的優勢:隨著時間推移,Swift 在 iOS 和 OS X 軟體中占的代碼比例會越來越多。

Swift 的不足:版本更迭太快,不同版本差別過大,近年發生過幾次 「從精通到重新入門」 的情況。

Objective-C 和 Swift 的優勢:因為僅需要在少數平台上運行,不容易遇到兼容性問題。

Objective-C 和 Swift 的不足:這倆語言的就業環境被培訓班徹底毀了,現在才開始學這兩種語言可能會有像 2007 年 6000 點時入市的散戶的結局。

職業路線:

(1)這兩種語言都是專為 iOS 和 OS X 服務的,入行前記得先準備一台蘋果電腦和蘋果開發者賬號。近年培訓班造成了低水平Objective-C 和 Swift 程序員的泛濫。

Kotlin

一句話概括:運行在 JVM 但不是 Java 的語言

Kotlin 是最新問世的一個基於 JVM 的編程語言,專用於開發 Android。

Kotlin 的優勢:和 Java 的互操作性極佳。其他 JVM 語言都實現了自己語言的標準庫。而 Kotlin 則使用 Java 的標準庫,只是對其進行了擴充。更輕巧,Apk 更小。

Kotlin 的不足:同時可能也繼承了 Java 比較坑爹的東西。

Kotlin 的優勢:因為弱化了數據類型,學習成本較 Java 低。

Kotlin 的不足:能且僅能在 Android Studio 3.0 上運行,這點有點像易語言。

職業路線:

(1)只能用來開發 Android。即使你想干點別的,除了 Android Studio 3.0 還有別的編譯器嗎?

今日話題:

你熟悉和正在使用的是哪一種語言?

你認為哪一種是最好的語言?

快在留言區說出你的選擇吧~

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CU技術社區 的精彩文章:

TAG:CU技術社區 |

您可能感興趣

作為程序員,你在編程時吃了哪些數學的虧?
如果要把一句話作為紋身,你會選哪句?
無為即無所作為?你錯讀了老子!
作為歌壇的神話,張學友拍了這麼多經典作品,能放演員一條活路嗎?
夢回《西遊記》十大兵器,你會選哪件作為你的武器
「作為吃貨,為了美食你都幹了哪些「傻事」?
作為「梅西式」程序員,我要跳槽了
為什麼要選擇熊作為實驗品?為什麼不選其他七武海?
為什麼明星公司會選擇Go作為編程語言?
這種東西被稱作「毀娃神器」,作為家長,你還敢讓孩子玩嗎?
如果可以穿越爐石傳說,你願意選擇哪些卡牌作為你的夥伴?
作為一個新手,如何選擇合適的眼線產品呢?看這裡了!
為什麼東方選擇筷子作為餐具,西方選擇了刀叉?兩者有什麼不同嗎?
情人節?作為舞者你的機會來了!
地下城與勇士:作為遊戲中的紅眼玩家來說,這些武器你會選擇誰?
為什麼會選擇易烊千璽作為導師?《這就是街舞》總導演給出這樣的答案
作為女性,這些你了解嗎?
作為物理治療師,那些年教授的「謊言」,你判斷出來了嗎?
不管《愛情公寓》評價怎麼樣?作為演員陳赫做到這點夠了?
為什麼越來越多的人不再使用音樂作為自己的手機來電鈴聲了呢?