{eval=Array;=+count(Array);}
對(duì)于很多外行人來(lái)說(shuō),想要轉(zhuǎn)行IT,最讓人頭疼的事情,一定是:
我該學(xué)什么?
選擇哪一門編程語(yǔ)言更好?
(小編今天就幫大家解決一下這個(gè)小問(wèn)題)
Java
Java作為一種程序設(shè)計(jì)語(yǔ)言,它簡(jiǎn)單、面向?qū)ο?、不依賴于機(jī)器的結(jié)構(gòu)、具有可移植性、安全性、兼容性、并且提供了并發(fā)的機(jī)制、具有極高的性能。
并且它最大限度地利用了網(wǎng)絡(luò),Java小應(yīng)用程序 (applet)可在網(wǎng)絡(luò)上傳輸而不受CPU和環(huán)境的限制。
另外,Java還提供了豐富的類庫(kù),使程序設(shè)計(jì)者可以很方便地建立自己的系統(tǒng)。
Java主要分成三個(gè)部分JavaSE、JavaME、JavaEE。JavaSE是JavaME和JavaEE基礎(chǔ),Java除了在企業(yè)應(yīng)用和大型網(wǎng)站中最被青睞外,很多游戲開(kāi)發(fā)也喜歡使用Java語(yǔ)言。目前最主流的大數(shù)據(jù)框架Hadoop的應(yīng)用主要就是用JAVA開(kāi)發(fā)的。
總結(jié):Java可用于網(wǎng)頁(yè)、 企業(yè)級(jí)開(kāi)發(fā)、 普通應(yīng)用軟件、 游戲后臺(tái)。
C和C++
C++是C發(fā)展來(lái)的。C++是面向?qū)ο蟮恼Z(yǔ)言,而C是結(jié)構(gòu)化的語(yǔ)言(面向過(guò)程)。
C的大部分(不代表所有)代碼在C++上都能應(yīng)用,而C++的代碼在C上不能應(yīng)用。
C語(yǔ)言是最早的第三代語(yǔ)言,它出現(xiàn)是為了代替運(yùn)行效率高但開(kāi)發(fā)效率低下的匯編語(yǔ)言,所以C語(yǔ)言是所有語(yǔ)言中效率最高的。
就目前來(lái)說(shuō), C語(yǔ)言主要用來(lái)開(kāi)發(fā)底層模塊(比如驅(qū)動(dòng),解碼器,算法實(shí)現(xiàn)), 服務(wù)應(yīng)用(比如web服務(wù)器)和嵌入式應(yīng)用(比如日常生活中的電器里的程序)。
C++也可以做這些,不過(guò)由于C++的復(fù)雜性和標(biāo)準(zhǔn)問(wèn)題, 人們還是更愿意使用C來(lái)做。 C++更適合比較復(fù)雜但又特別需要高效率的設(shè)施,比如大型游戲,一些基礎(chǔ)庫(kù),大型桌面應(yīng)用等等。
C語(yǔ)言是一個(gè)結(jié)構(gòu)化語(yǔ)言,它的重點(diǎn)在于算法與數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計(jì)首要考慮的是如何通過(guò)一個(gè)過(guò)程,對(duì)輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過(guò)程(事物)控制)。
C++首要考慮的是如何構(gòu)造一個(gè)對(duì)象模型,讓這個(gè)模型能夠契合與之對(duì)應(yīng)的問(wèn)題域,這樣就可以通過(guò)獲取對(duì)象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過(guò)程(事物)控制。所以C語(yǔ)言和C++的最大區(qū)別在于它們解決問(wèn)題的思想方法不一樣。
總結(jié):C主要用于系統(tǒng)底層, 驅(qū)動(dòng), 嵌入式開(kāi)發(fā)。C++用于游戲開(kāi)發(fā), 大規(guī)模, 高性能, 分布式要求的程序開(kāi)發(fā)。
C#
C#語(yǔ)言是由微軟公司發(fā)布的一種面向?qū)ο笄疫\(yùn)行在.NET Framework和.NET Core上的高級(jí)程序設(shè)計(jì)語(yǔ)言,它是完全開(kāi)源且跨平臺(tái)的。
它專為公共語(yǔ)言基礎(chǔ)結(jié)構(gòu)CLI所設(shè)計(jì),它由可執(zhí)行代碼以及運(yùn)行時(shí)環(huán)境所組成,可允許在不同的計(jì)算機(jī)平臺(tái)及體系結(jié)構(gòu)上使用各種高級(jí)的編程語(yǔ)言。
C#提供大量的功能支持與接入,讓功能開(kāi)發(fā)更加簡(jiǎn)單,并且它是基于C語(yǔ)言的旖旎可以將C#語(yǔ)言編寫的框架轉(zhuǎn)移到其他語(yǔ)言上去。
總結(jié):C#是windows開(kāi)發(fā)環(huán)境下的主要語(yǔ)言,它主要是基于.NET框架做web應(yīng)用,windows客戶端應(yīng)用,軟件開(kāi)發(fā),各類游戲開(kāi)發(fā)等。
JavaScript
首先聲明,Javascript與java沒(méi)有任何關(guān)系,JavaScript是一種屬于網(wǎng)絡(luò)的腳本語(yǔ)言,已經(jīng)被廣泛用于Web應(yīng)用開(kāi)發(fā),常用來(lái)為網(wǎng)頁(yè)添加各式各樣的動(dòng)態(tài)功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過(guò)嵌入在HTML中來(lái)實(shí)現(xiàn)自身的功能的。
總結(jié):JavaScript是瀏覽器的腳本語(yǔ)言,主要做網(wǎng)站的前端開(kāi)發(fā),展現(xiàn)各種酷炫的畫面。
PHP
PHP(PHP: Hypertext Preprocessor的縮寫,中文名:“超文本預(yù)處理器”)是一種通用開(kāi)源腳本語(yǔ)言。語(yǔ)法吸收了C語(yǔ)言、Java和 Perl的特點(diǎn),入門門檻較低,易于學(xué)習(xí),使用廣泛,主要適用于Web開(kāi)發(fā)領(lǐng)域。無(wú)數(shù)的網(wǎng)站后端都運(yùn)行著php代碼。
總結(jié):PHP主要是網(wǎng)絡(luò)前端,用于生成網(wǎng)頁(yè)。
Python
Python語(yǔ)言是非常簡(jiǎn)單易用的,由于具有豐富和強(qiáng)大的庫(kù),它又叫做作膠水語(yǔ)言,能夠把用其他語(yǔ)言制作的各種模塊很輕松地聯(lián)結(jié)在一起。所以它除了android應(yīng)用和操作系統(tǒng)基本什么都能干,非常的強(qiáng)大,而且也非常容易學(xué)。
總結(jié):Python,動(dòng)態(tài)解釋型,開(kāi)發(fā)效率高,開(kāi)源,靈活,入門門檻低。
文末送福利,給大家推薦幾個(gè)好用的編程自學(xué)網(wǎng)站
1. CodeAcademy
2.Coursera
3. edX
4. Udemy
5. aGupieWare
6. GitHub
謝謝邀請(qǐng)!
目前雖然世界上有600余種編程語(yǔ)言,但是廣泛流行的編程語(yǔ)言也就幾十種,下面看一下最新的TIOBE語(yǔ)言排行榜:
下面就以這份語(yǔ)言排行榜的前20名語(yǔ)言為例,說(shuō)一下這些編程語(yǔ)言的應(yīng)用場(chǎng)景。
Java語(yǔ)言是目前流行度非常高的編程語(yǔ)言,使用場(chǎng)景包括Web開(kāi)發(fā)、Android開(kāi)發(fā)、后端服務(wù)開(kāi)發(fā)、大數(shù)據(jù)開(kāi)發(fā)以及人工智能相關(guān)領(lǐng)域的開(kāi)發(fā)。Java語(yǔ)言的特點(diǎn)是性能穩(wěn)定且生態(tài)健全,號(hào)稱“互聯(lián)網(wǎng)普通話”,目前大型互聯(lián)網(wǎng)平臺(tái)往往采用Java語(yǔ)言來(lái)開(kāi)發(fā)后端服務(wù)程序。
C語(yǔ)言是面向過(guò)程語(yǔ)言,可以說(shuō)是編程語(yǔ)言界的常青樹(shù),特點(diǎn)是效率高,C語(yǔ)言可以編寫操作系統(tǒng)(Linux)以及一些底層平臺(tái)的開(kāi)發(fā)(容器),在物聯(lián)網(wǎng)相關(guān)領(lǐng)域有廣泛的使用。C語(yǔ)言比較鍛煉程序員的編碼能力,可以作為第一門編程語(yǔ)言來(lái)學(xué)習(xí)??匆幌耇IOBE發(fā)布的C語(yǔ)言流行圖:
C++語(yǔ)言是C語(yǔ)言的面向?qū)ο蟀姹?,C++可以用于構(gòu)建業(yè)務(wù)邏輯非常復(fù)雜的系統(tǒng),C++在執(zhí)行效率上繼承了C的高效性,所以目前C++在對(duì)效率比較關(guān)注的領(lǐng)域有廣泛的應(yīng)用,比如游戲開(kāi)發(fā)、多媒體開(kāi)發(fā)等領(lǐng)域。另外,C++在科學(xué)計(jì)算、網(wǎng)絡(luò)軟件開(kāi)發(fā)方面也有廣泛的應(yīng)用。
Python語(yǔ)言在近些年伴隨著大數(shù)據(jù)和人工智能的發(fā)展而得到了廣泛的使用,另外Python也是Web開(kāi)發(fā)的常見(jiàn)編程語(yǔ)言之一,Python的發(fā)展前景還是非常值得期待的,對(duì)于初學(xué)者來(lái)說(shuō),Python是比較容易上手的編程語(yǔ)言。
VB.NET是由VB發(fā)展而來(lái)的面向?qū)ο蟮木幊陶Z(yǔ)言,借助于微軟強(qiáng)大的生態(tài)環(huán)境,VB.NET幾乎可以做大部分場(chǎng)景的開(kāi)發(fā),由于VB有大量的歷史開(kāi)發(fā)者,所以VB.NET的應(yīng)用也比較普遍。
C#也是一款微軟打造的可移植的編程語(yǔ)言,C#與Java的應(yīng)用場(chǎng)景重合度比較高,在微軟的生態(tài)里C#的地位還是比較重要的。C#可以做Web開(kāi)發(fā)、移動(dòng)端開(kāi)發(fā)、后端服務(wù)開(kāi)發(fā)以及游戲開(kāi)發(fā)等。
JavaScript是Web前端開(kāi)發(fā)必須掌握的編程語(yǔ)言之一,隨著NodeJS的發(fā)展,JavaScript也正在從前端開(kāi)發(fā)走向后端開(kāi)發(fā)。JavaScript的發(fā)展前景還是不錯(cuò)的,畢竟JavaScript在其應(yīng)用場(chǎng)景中具備一定的優(yōu)勢(shì)地位。
PHP主要做Web開(kāi)發(fā)和服務(wù)端開(kāi)發(fā),PHP在Web開(kāi)發(fā)領(lǐng)域占據(jù)著大量的市場(chǎng)份額,尤其是中小型網(wǎng)站,PHP是Web開(kāi)發(fā)人員比較歡迎的編程語(yǔ)言之一。
SQL用于操作關(guān)系型數(shù)據(jù)庫(kù)的語(yǔ)言,SQL是學(xué)習(xí)數(shù)據(jù)庫(kù)必須掌握的編程語(yǔ)言。
Go語(yǔ)言是目前發(fā)展比較迅速的編程語(yǔ)言,致力于性能的提升,尤其是在多處理器的任務(wù)調(diào)度上,在云計(jì)算、大數(shù)據(jù)時(shí)代背景下,Go語(yǔ)言的發(fā)展還是非常值得期待的。
OC和Swift用于蘋果系統(tǒng)的開(kāi)發(fā),比如iOS下的App開(kāi)發(fā)就需要使用OC或者是Swift,推薦學(xué)習(xí)Swift。
Delphi是曾經(jīng)非常流行的編程語(yǔ)言,應(yīng)用場(chǎng)景集中在PC端軟件的開(kāi)發(fā)上,也可以開(kāi)發(fā)分布式軟件。
R語(yǔ)言是統(tǒng)計(jì)領(lǐng)域被廣泛使用的編程語(yǔ)言之一,R與Python在目前的數(shù)據(jù)分析領(lǐng)域有廣泛的應(yīng)用,在科學(xué)計(jì)算方面也有一定的優(yōu)勢(shì)。
Assembly language(匯編語(yǔ)言)是低級(jí)語(yǔ)言,應(yīng)用在底層硬件開(kāi)發(fā)領(lǐng)域,比如驅(qū)動(dòng)程序、嵌入式操作系統(tǒng)等都需要采用匯編語(yǔ)言來(lái)編寫。
Ruby是一個(gè)簡(jiǎn)潔的動(dòng)態(tài)編程語(yǔ)言,是由日本人開(kāi)發(fā)的,Ruby可以做Web開(kāi)發(fā)以及后端服務(wù)開(kāi)發(fā)。
MATLAB是一款商業(yè)軟件,在科學(xué)計(jì)算、大數(shù)據(jù)分析等領(lǐng)域有廣泛的應(yīng)用。
Perl語(yǔ)言是網(wǎng)絡(luò)運(yùn)維經(jīng)常采用的編程語(yǔ)言,Perl在網(wǎng)絡(luò)服務(wù)端可以做各種管理性操作,使用方便。
PL/SQL是專門面向Oracle數(shù)據(jù)庫(kù)的語(yǔ)言,是Oracle數(shù)據(jù)庫(kù)對(duì)Sql語(yǔ)言的一種擴(kuò)展,可以用來(lái)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。
VB是比較老的編程語(yǔ)言了,VB是微軟生態(tài)中的重要編程語(yǔ)言,在PC端有大量的應(yīng)用,VB.NET就是基于VB開(kāi)發(fā)的編程語(yǔ)言。
我從事軟件開(kāi)發(fā)工作多年,目前也在帶軟件開(kāi)發(fā)團(tuán)隊(duì),我會(huì)陸續(xù)在我們寫一些關(guān)于軟件開(kāi)發(fā)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會(huì)有所收獲。
如果有編程方面的問(wèn)題,也可以咨詢我,謝謝!
2
回答10
回答0
回答0
回答0
回答0
回答0
回答10
回答0
回答0
回答