主流編程語言的“介紹”與“選擇”

来源:https://www.cnblogs.com/visionalsun/p/17938334
-Advertisement-
Play Games

前言: 編程語言本身沒有優劣之分,不同的語言適合不同的場景,文中說的建議,多是站在小白要就業的立場給出的建議。 正文 我們看這張導圖,這張圖右側是前端類的語言,左側是服務端的語言: 我們先說右側。 第一個就是 JavaScript,簡稱 JS。 我強調下他和 Java 是沒有關係的,只是名字類似。 ...


前言:

編程語言本身沒有優劣之分,不同的語言適合不同的場景,文中說的建議,多是站在小白要就業的立場給出的建議。

正文

我們看這張導圖,這張圖右側是前端類的語言,左側是服務端的語言:

 

我們先說右側。

第一個就是 JavaScript,簡稱 JS。

我強調下他和 Java 是沒有關係的,只是名字類似。

他的用途是前端開發,他負責網頁上的交互事件和交互數據,比如你在界面上做了點擊滑動的操作,這都是 JS 負責的,你能在界面上看到文章、視頻等數據,比如在知乎你能看到推薦的文章(數據),這也是 JS 負責的(通過 Ajax 調用後端介面獲取)。

建議:你要做前端,那隻有這一門語言能選擇,屬於必選項,JS 占了前端很大的比重,說白了做前端開發就是在搞 JS。

第二個和第三個都是原生 App 的開發語言

我對這兩個的建議就是不建議作為入行語言,

因為 App 開發分原生和混合:

原生開發擁有更好的流暢度,更豐富的動畫,但是一套 App 要分兩個版本,要兩組不同的人來維護。

而混合開發就是前端來做的,不需要分兩組,這幾年混合開發也在進步,考慮到成本問題,中小公司或者說這個項目沒有很高的要求,那一般會採用混合開發的方案。

所以說如果你是已經在做安卓或者 iOS 的,可以根據情況來斟酌,但作為想入行的小白,不建議以這兩個語言入門。

我們再看這張圖左邊的語言。這邊都是後端類的語言。

 

Node.js

Node.js 用途一般是後端開發,他其實就是 JS,只是 Node.js 多了操作文件和資料庫的語法,所以可以做後端,但是真用它做後端的公司很少很少。不適合作為第一門語言學,一般是做前端之後,把它作為瞭解後端的跳板。

PHP

PHP,用途也是 web 後端開發,他還有個頭銜是——“世界上最好的語言”。

不過以現在來說,這個世界上最好的語言可以說大勢已去~

PHP 在互聯網初期因為其輕量和快捷,適合中小型應用,再加上易學,所以在以前的互聯網很有統治地位,後來前後端分離了,公司也慢慢成熟,面對性能等問題其他語言有更好的解決方案,所以公司大多捨棄了 PHP,到了現在就算是初創公司做web後端的項目適合用 PHP,但是出於跟風或者為了拉投資畫餅,以及招人成本,也會選擇其他語言。

我認識的在一線工作的 PHP 程式員基本都轉前端、轉 Go 或者 Java 了,二線做Php還有在堅持的,新手不建議再從 PHP 入手,並不是它不好,語言沒有好壞之分,但是我們要考慮到我們要就業的事實。

Python

應該很多人在網上看過 Python 的廣告吧,比如 9.9 學 Python,下班早等。

它的用途伺服器開發,數據相關工作(採集分析,機器學習)。

Python 語法簡單易學,插件豐富,作為工具確實會方便很多人的日常工作。

如果你是以學習為目的,可以把 Python 當成第一門語言,因為更容易上手,能做的事兒也多,會體會到編程的趣味性,從而更積極的學習編程。

如果你是小白,以找工作為目的,我不建議你把 Python 當成第一門語言。因為 Python的主力還是人工智慧、數據處理這一塊,而這一塊對數學是有要求的。

雖然 Python 還能做後端啊,比如知乎和豆瓣的後端就是 Python,但是以後端來說 Python 的就業崗位是遜於java的。

當然也有可能你搜 Python 你還會說,老師這 Python 崗位數量也不少啊。

那是因為做數據相關的、做測試時候也需要懂 Python,招聘網站會把這些統計到 Python 工程師之下,這樣來說就多了。

總得來說,你以學習為目的,以 Python 為第一語言不會讓你自閉,因為他語法簡單,插件豐富的特點,能讓你學的輕鬆,並且能快速實現一些東西,讓你感受到編程的魅力,但是如果以工作為目的選擇第一語言,我不會把這一票投給 Python。

Golang

新晉的寵兒——Golang,說他新晉也不准確,他出來也有10年多了,只是相對其它語言比較年輕。

他的領域也是後端開發,對 Go 的建議嘛 emmm...

我個人認為,小白以找工作為目的,不適合把 Go 當成第一門語言。

因為同樣是服務端開發,Go 的生態和市場占有率不如 Java,而且 Go 主要集中在一線大廠,並不是每個人都有資格進一線大廠,而且中小公司在技術選擇上肯定是願意用 Java 而不是 Go,

一來 Java 的生態足夠豐富,二來員工容易招。所以我不建議把 Go 當成入門第一語言。

當然如果你學歷好,對自己的成長有規劃,或者目前還是大學階段不著急找工作,也可以選擇 Go。

如果你只是一般學歷,就要面臨就業還沒有熟悉能用來工作的語言,我認為這種情況,隨大流更好。

Java

Java——後端第一語言,縱然現在存在內捲嚴重,但是小白以找後端工作為目的的情況下,我認為 Java 仍然是不二選擇,因為生態足夠豐富,招聘需求大!

這幾年裡有人說 Python 會超過它,有人說 Go 會取代它,可事實證明 Java 還是那個 Java,還是那個後端一哥。

所以如果你面臨就業沒有能夠開發的語言,且又想做後端,你就學 Java。

C 語言

C 是底層語言,能做操作系統、嵌入式、網路安全,但是不是學會了 C 你就會以上的事情,C 只是一個工具,你還要搭配相應的知識與工具。比如你想做嵌入式,你還需要瞭解數字電路、模擬電路、Linux 等

建議:C 語言能夠讓你更加深刻的認識記憶體和編譯原理,還有程式思想,數據結構,瞭解程式的每一個細節,夯實基本功,所以優秀的程式員都會學習 C 語言。但多數程式員的開發語言不是它,因為它偏向底層,而多數程式員做的事情偏應用層。

所以你不會 C 語言你也能做程式員,電腦也分層,就像你開車並不需要會修車一樣,只是 C 語言能讓你讓你瞭解的足夠深,能讓你有希望在技術道路上走的更長遠。

C++

C++ 也是偏底層的語言,用途:桌面軟體開發、游戲開發。

建議:其實建議和C語言差不多,C++ 崗位不多但是精,不少大廠需要性能的業務是由 C++ 來做,比如微軟、位元組的廣告系統都是 C++ 來做的。

如果你是本專業的大一,學 C/C++ 這類偏底層的語言,是能夠打好你的基本功的;

如果你面臨就業,還是選擇 Java、或者前端更合適。

C 和 C++ 也是院校電腦專業基本都教的,雖然工作可能用不上,但是學的是程式思想和數據結構,你可以理解打好基本功。

C#

最後一個 C#,這個我瞭解的不多,我去招聘軟體上看了看,它的崗位主要分佈在游戲開發、後臺、工具開發等方面。

建議:C# 在國內就業市場確實行情不佳,在 Unity 3D 上比較有發展前景,其他領域前景不明。

C# 還經常和 .Net 連在一起,不過 .Net 不是編程語言,嚴格來說 .Net 是一個平臺,支持很多語言,C# 是支持的最好的,所以在大多數語境下,.Net 工程師等於 C# 工程師。

 

總結:

如果你是零基礎要就業的情況下,前端方向肯定是 JS(唯一的選擇),後端方向最建議 Java。

如果你在學校以學習為目的,把學校教的基本功打好,然後從 Python、JS、Java 選擇一個來學習,在我看來從 Python 或者 Java 選擇了一個,然後 JS 基本也不會繞過去,因為你做了個工具,你肯定還想展示出來嘛,展示的事兒就是前端就需要用到JS了。

其實我也很建議大家大學時候就開始自學,時間多,做出小工具後的成就感能讓你繼續學下去,很有可能你大學幾年能把前端後端(其中一門語言)都學會,再搭配良好的計科基礎知識,很有希望進大廠,就算進不去大廠,那這個時候的你也不會為找不到工作發愁。

相反,如果你大學沒有自學,那你就算是電腦專業,你畢業也基本找不到工作,別提什麼實習,實習也是要的能幹活的,大多數電腦專業的同學自己到底幾斤幾兩能不能幹活心裡都應該有數吧。

到時候只能參加培訓,進入大廠的機會減少(因為失去了校招),而且還要交錢學習,不過你如果真的錯過了大學自學,到了畢業才開始學,那培訓反而成了性價比高的選擇了。

業務捋定方向,設計決定發展。 —— SA 系統架構設計師(System Architect)
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 一、組件是什麼 回顧以前對組件的定義: 組件就是把圖形、非圖形的各種邏輯均抽象為一個統一的概念(組件)來實現開發的模式,在Vue中每一個.vue文件都可以視為一個組件 組件的優勢 降低整個系統的耦合度,在保持介面不變的情況下,我們可以替換 ...
  • DataGear專業版 1.0.0 已發佈,歡迎試用! http://datagear.tech/pro/ DataGear 支持採用原生的HTML、JavaScript、CSS製作數據可視化看板,也支持導入由npm、vite等前端工具構建的前端程式包。得益於這一特性,可以很容易製作基於three. ...
  • 項目中用到了很多echart圖表,進行了簡單的組件封裝,主要包含以下功能: 創建圖表實例,渲染圖表 支持傳入自定義函數,可拿到圖表實例,實現個性化功能 支持配置更新後圖表自動刷新,可配置是清空後再刷新 loading狀態控制 resize時圖表更新 支持餅圖預設高亮功能 實現 資源引入 echart ...
  • react-native工程打包成apk 1. 生成簽名密鑰 使用jdk自帶的keytool生成密鑰 以管理員身份運行如下命令 keytool -genkey -v -keystore my-test3-key.keystore -alias my-key-test3 -keyalg RSA -ke ...
  • 使用XML文件配置SSM整合。 缺點:xml解析低,降低項目響應效率。 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="ht ...
  • 訂單履約系統的概念模型 訂單:客戶提交購物請求後,生成的買賣合同,通常包含客戶信息、下單日期、所購買的商品或服務明細、價格、數量、收貨地址以及支付方式等詳細信息。 子訂單:為了更高效地進行履約,大訂單可能會被拆分成多個子訂單,子訂單會根據商品類型、配送地址、倉庫位置或供應商等因素進行拆分。 發貨單: ...
  • SSM整合就是將MVC三層架構和框架核心API組件交給SpringIoC容器管理! 一般需要配置兩個IoC容器進行三層架構組件管理。 容器名 盛放組件 web容器 web相關組件(controller,springmvc核心組件) root容器 業務和持久層相關組件(service,aop,tx,d ...
  • 代理模式(Proxy Design Pattern)在不改變原始類(或叫被代理類)代碼的情況下,通過引入代理類來給原始類附加功能。通過GPT來一探原理。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...