先看再點(diǎn)贊,給自己一點(diǎn)思考的時間,微信搜索【沉默王二】關(guān)注這個有顏值卻假裝靠才華茍且的程序員闯睹。
本文 GitHub github.com/itwanger 已收錄,里面還有我精心為你準(zhǔn)備的一線大廠面試題担神。
對于很多初學(xué)編程的人來說楼吃,尤其是馬上要入學(xué)的大一新生來說,選擇哪門子編程語言實(shí)在是個痛苦的事。選擇對了孩锡,畢業(yè)后順利找到工作酷宵,完美走向職場;選擇錯了躬窜,畢業(yè)后受傷的才華無處安放浇垦,大學(xué)算是虛度光陰了。
前一段時間哈荣挨,我有個遠(yuǎn)房的親戚男韧,她家的小孩非要讓我指導(dǎo)一下。然后就帶了一本書來見我默垄,看了一下封面此虑,我驚呆了。
《易語言從入門到精通》口锭。這是哪門子編程語言朦前,我第一次見到!不敢怠慢鹃操,也擔(dān)心親戚說我孤陋寡聞韭寸,偷偷地搜了一下。易語言的創(chuàng)始人是吳濤组民,國內(nèi)為數(shù)不多的推崇中文編程語言的程序員大佬棒仍。
鄭重其事地說,我是個三觀很正的人臭胜,絕沒有半點(diǎn)虛情假意。但我實(shí)在不忍心看我這遠(yuǎn)房表弟誤入歧途癞尚,畢竟易語言即便是入門了耸三,甚至是精通了,將來也不一定能找到工作敖娇仪壮!
當(dāng)做興趣愛好學(xué)編程固然好,值得稱贊胳徽。我這表弟雖然學(xué)習(xí)不咋滴积锅,年紀(jì)輕輕,初中畢業(yè)养盗,但據(jù)親戚反饋缚陷,酷愛編程,酷愛計算機(jī)(也不確定是不是酷愛打游戲)往核。易語言這本書也是他自己在網(wǎng)上買的箫爷。
我有點(diǎn)擔(dān)心地問他:“能看懂嗎?”
表弟不假思索,信誓旦旦地回答:“能盎⒚硫痰!”
我隨手翻了翻這邊書,發(fā)現(xiàn)書簽已經(jīng)夾在第 202 頁窜护,我天吶效斑,真的有在看啊,看了將近一半了柱徙。
必須得負(fù)責(zé)任啊缓屠,我就對親戚和表弟說,“你看坐搔,要不咱換個編程語言吧藏研,比如說 Java!”
親戚一臉驚愕概行,“你說哈蠢挡?”
我只好無奈地將臉邁向我這表弟,只聽他娓娓道來:“J-A-V-A凳忙!”
“哎呀业踏,不錯啊,真的私底下有研究涧卵!”我心中暗暗佩服起來了我這表弟勤家。真看不出來,挺愛學(xué)的嘛柳恐。
“別看這本易語言了伐脖,當(dāng)做興趣學(xué)編程沒問題,可咱學(xué)習(xí)是為了啥乐设,就是為了以后能找份工作讼庇,雖然我說得比較俗氣。如果說確實(shí)對編程感興趣的話近尚,買點(diǎn) Java 方面的書讀一讀蠕啄。”我語重心長地建議戈锻。
表弟深以為然地點(diǎn)點(diǎn)頭歼跟。
之所以說這件事,就是想告訴同學(xué)們格遭,努力固然重要哈街,但選擇必須要對,一旦選擇錯了如庭,那很多努力都是白費(fèi)叹卷。
那撼港,這篇文章就是來給同學(xué)們提個醒,2020 年最牛逼的編程語言是什么骤竹?看完后你就知道該如何地去選擇了帝牡。
先來個簡要的概括:
Java,服務(wù)器端最好的編程語言
C++蒙揣,最通用的編程語言
C靶溜,迄今為止,最值得信任的編程語言
Python懒震,AI(人工智能)罩息、機(jī)器學(xué)習(xí)方向最佳的編程語言
JavaScript,客戶端最常用的腳本語言
C#个扰,微軟最強(qiáng)有力的面向?qū)ο缶幊陶Z言
Swift瓷炮,IOS 端最高效的編程語言
GO(Golang),可擴(kuò)展的編程語言递宅,谷歌出品
PHP娘香,世界上最好的編程語言,不办龄,最好用的 Web 編程語言
Ruby烘绽,數(shù)據(jù)科學(xué)方面最可靠的編程語言
為什么我會選擇這 10 門編程語言?可不是我收了這些編程語言的錢俐填,故意讓它們上榜的安接,我是有足夠多的理由的。
首先來看一下 TIOBE 排行榜英融,非常非常權(quán)威的榜單盏檐,下面這 14 個是活得比較久的,可以看得出驶悟,除了 SQL 換成了 GO糯笙,其他 9 門編程語言都在,并且長期霸榜撩银。
活得比較久,意味著這門編程語言的生命力比較頑強(qiáng)豺憔,生態(tài)系統(tǒng)比較完備额获,它們屬于叢林的王者——物競天擇,適者生存嘛恭应。它們活得久抄邀,并且活得好,那就意味著還能活得更好更久昼榛,是這個道理吧境肾?強(qiáng)者更強(qiáng)!
同學(xué)們盡管放心,我是負(fù)責(zé)任的——主要是這些編程語言的作者或者團(tuán)隊是負(fù)責(zé)任的奥喻,盡管開源 PHP 的官方團(tuán)隊已經(jīng)在 2019 年底徹底解散了偶宫,但 PHP 依然很堅挺,很牛逼环鲤。
下面讓我來詳細(xì)地說道說道這 10 門編程語言纯趋。
01、Java
Java 其實(shí)是 C++ 的一個替代品冷离,Sun 公司原本想開發(fā)一種比 C++ 更簡單的面向?qū)ο缶幊陶Z言吵冒,起初叫 Oak。結(jié)果沒想到西剥,隨著時間的流逝痹栖,因?yàn)?Java 更容易學(xué)習(xí),跨平臺瞭空,就導(dǎo)致 Java 的普及程度遠(yuǎn)遠(yuǎn)地超過了 C++揪阿。
說句不那么優(yōu)雅的話,就好像狗血劇里小三上位的橋段一樣匙铡。
在 Java 虛擬機(jī)的幫助下图甜,Java 可以無障礙的在 Linux、Windows鳖眼、Mac-OS 等多種操作系統(tǒng)下自由地穿梭黑毅,這使得它在企業(yè)級開發(fā)中非常受歡迎。
Java 可以做網(wǎng)站開發(fā)钦讳、做安卓開發(fā)矿瘦、做桌面級應(yīng)用開發(fā)(Eclipse、NetBeans 等等)愿卒、做游戲開發(fā)(我的世界)缚去。
來一發(fā) Java 版的 Hello World 吧:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
02、C++
C++琼开,從名字上就可以看得出來易结,它是 C 語言的親兒子,是對 C 語言的擴(kuò)展柜候,旨在為 C 語言創(chuàng)造出面向?qū)ο蟮墓δ堋?/p>
隨著時間的發(fā)展搞动,C++ 進(jìn)一步發(fā)展為具有最直接的內(nèi)存訪問和完整硬件控制的通用語言。正因?yàn)?C++ 提供了最廣泛的通用功能渣刷,就導(dǎo)致掌握起來有一定的難度鹦肿。
C++ 可以在所有的平臺上運(yùn)行,并且可以有效地利用任何類型的硬件辅柴,這使得它可以在資源受到限制的平臺上發(fā)揮最佳性能箩溃。
C++ 可以做游戲開發(fā)(星際爭霸瞭吃、魔獸爭霸),辦公軟件(微軟 Office)涣旨、操作系統(tǒng)(Windows)歪架、關(guān)系型數(shù)據(jù)庫(MySQL)、3D 引擎(Microsoft DirectX)开泽、嵌入式開發(fā)牡拇。
來一發(fā) C++ 版的 Hello World 吧:
#include<iostream.h>
using namespace std;
void main() {
cout<<"Hello World";
}
03、C
C 語言誕生于 1960 年穆律,作者團(tuán)隊對它只有一個要求:必須得通用惠呼,并且能夠有效地利用系統(tǒng)資源。因?yàn)樵谀莻€年代峦耘,每一個字節(jié)的內(nèi)存都是昂貴的剔蹋。
就像 C++ 那樣,C 也可以直接訪問內(nèi)存并且控制硬件辅髓。C 和操作系統(tǒng)緊密相關(guān)泣崩,程序員必須親自處理內(nèi)存的分配細(xì)節(jié),因此很難掌握洛口。盡管 C 語言誕生的很早矫付,但它仍然是目前最常用的編程語言之一。
C 語言的設(shè)計影響了眾多后來的編程語言第焰,比如說 C++买优、Ruby、PHP挺举、Python杀赢、Java、C# 等等湘纵。
C 語言可以做嵌入式開發(fā)(單片機(jī))脂崔,基于嵌入式操作系統(tǒng)的應(yīng)用軟件、驅(qū)動程序梧喷,高性能的 Web 服務(wù)器(Nginx)砌左,常見的緩存數(shù)據(jù)庫(Redis)、智能設(shè)備或者物聯(lián)網(wǎng)設(shè)備中的操作系統(tǒng)(路由器铺敌、攝像頭)等等绊困。據(jù)說,反正能想到的适刀,都可以用 C 做,就看會不會做煤蹭。
來一發(fā) C 版的 Hello World 吧:
#include<iostream.h>
void main()
{
printf("Hello World");
}
04笔喉、Python
Python 誕生于 1990 年取视,作者叫吉多·范羅蘇姆(Guido van Rossum,Python 之父)常挚∽魈罚可以說,所有的編程人員都喜歡 Python奄毡,因?yàn)樗膶W(xué)習(xí)成本很低折欠,但應(yīng)用的等級很高,比如說當(dāng)下非常有深度的人工智能吼过、機(jī)器學(xué)習(xí)锐秦、數(shù)據(jù)分析。
Python 的語法簡潔而優(yōu)雅盗忱,社區(qū)也非辰创玻活躍。但有一說一趟佃,Python 崗位對學(xué)歷的要求很高扇谣。
來一發(fā) Python 版的 Hello World 吧:
print("Hello World")
05、JavaScript
JavaScript 是 Brendan Eich(只用了 10 天時間就設(shè)計出來了闲昭,牛逼)在第一次瀏覽器大戰(zhàn)時為 Netscape(網(wǎng)景公司)開發(fā)的腳本語言罐寨。盡管一開始 JavaScript 的設(shè)計不夠優(yōu)良(畢竟時間短啊)序矩,但隨著時間的推移鸯绿,JavaScript 逐漸發(fā)展為一種高級的動態(tài)編程語言。
與其說我愛 Javascript贮泞,不如說我恨它楞慈。它是 C 語言和 Self 語言一夜情的產(chǎn)物。十八世紀(jì)英國文學(xué)家約翰遜博士說得好:'它的優(yōu)秀之處并非原創(chuàng)啃擦,它的原創(chuàng)之處并不優(yōu)秀囊蓝。'
以上 Brendan Eich 對 JavaScript 的評價,讀完是不是感覺好氣啊——竟然看不起自己的親生兒子令蛉,哈哈聚霜。
有大佬曾說,“JavaScript 是互聯(lián)網(wǎng)的膠帶珠叔⌒睿”這個稱贊非常高。HTML 負(fù)責(zé)結(jié)構(gòu)祷安, CSS 負(fù)責(zé)展示姥芥, 而 JavaScript 負(fù)責(zé)邏輯,網(wǎng)頁前端編程的三劍客形成了汇鞭。
ExtJS凉唐、prototype庸追、JQuery 這些基于 JavaScript 的框架更是把 JavaScript 推向了巔峰。隨著 Node.js 的出現(xiàn)台囱,JavaScript 這種客戶端的腳本語言竟然可以在服務(wù)器端立足了淡溯。
現(xiàn)在非常火熱的前端框架簿训,Vue.js 就是用 JavaScript 編寫的咱娶,可以這說,想從事前端開發(fā)工作的話强品,JavaScript 是必學(xué)的膘侮!
來一發(fā) JavaScript 版的 Hello World 吧:
<script>
alert('Hello World');
</script>
06、C#
一看名字择懂,就知道 C# 和 C/C++ 有著親密的關(guān)系喻喳,微軟把 C# 設(shè)計成具有面向?qū)ο蟮模?C 一樣的編程語言困曙。
最初表伦,C# 被看作是 Java 的復(fù)制品,它們之間有著驚人的相似之處慷丽,比如說繼承蹦哼、接口,以及與 Java 幾乎同樣的語法要糊,同樣需要先編譯后運(yùn)行纲熏。隨著時間的發(fā)展,以及微軟為之付出的巨大努力锄俄, C# 沉淀了豐富的類庫和框架局劲,開發(fā)人員可以在此基礎(chǔ)上快速地編寫各種基于 .NET 平臺的應(yīng)用程序。
隨著 Unity3D 的出現(xiàn)奶赠,跨平臺的 C# 終于可以大展拳腳了鱼填,在開發(fā)游戲方面的優(yōu)勢巨大,比如說編譯速度快毅戈、類庫充足苹丸。除此之外,要知道 C# 背后的大山是誰苇经,微軟白咐怼!
來一發(fā) C# 版的 Hello World 吧:
namespace HelloWorld
{
class Hello
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
07扇单、Swift
關(guān)于 Swift商模,直接來看蘋果官方給出的介紹吧:
Swift 是一種強(qiáng)勁而直觀的編程語言焚虱,它由 Apple 創(chuàng)造蚁吝,可用來為 iOS镀岛、Mac慨削、Apple TV 和 Apple Watch 開發(fā) app。它旨在為開發(fā)者提供充分的自由嫂沉。Swift 易用并且開源,只要有想法扮碧,誰都可以創(chuàng)造非凡趟章。
Swift 是一種快速而高效的語言,能夠提供實(shí)時反饋慎王,而且可以被無縫集成到現(xiàn)有的 Objective-C 代碼中蚓土,因此,開發(fā)者能夠編寫安全而可靠的代碼赖淤,并在節(jié)省時間的同時蜀漆,創(chuàng)造出非常豐富的 app 體驗(yàn)。
來一發(fā) Swift 版的 Hello World 吧:
print("Hello World")
08咱旱、Go
Go 的親爹是 Google确丢,又是一家互聯(lián)網(wǎng)巨頭,可以想象它未來的潛力吐限。
Go 語言的設(shè)計非常精致鲜侥,用起來也非常簡單,解決開發(fā)擴(kuò)展方面的能力也比較出眾诸典。關(guān)鍵是學(xué)習(xí)起來也非常容易上手描函,這些優(yōu)點(diǎn)促使 Go 語言的增長非常快狐粱。
國外如 Google舀寓、AWS、Cloudflare肌蜻、CoreOS 等互墓,國內(nèi)如七牛、阿里等都已經(jīng)開始大規(guī)模使用 Golang 開發(fā)其云計算相關(guān)的產(chǎn)品宋欺。 可以說前途非常光明轰豆。
來一發(fā) Go 版的 Hello World 吧:
package main
import "fmt"
func main()
{
fmt.Println("Hello World")
}
09、PHP
PHP 用來開發(fā) Web 應(yīng)用程序的歷史已經(jīng)超過 35 年了齿诞,可以說是老資歷了酸休。盡管最近流行度在下降,但瘦死的駱駝比馬大祷杈。
PHP 是最好的編程語言斑司,這個梗是從哪里來的呢?顯然不是吐槽大會!而是 PHP 的官方文檔宿刮!
PHP is the best language for web programming, but what about other languages?
下圖是 PHP 是最好的編程語言的確鑿證據(jù)互站。
2010 年前后,PHP 在 Web 開發(fā)中一直處于王者的地位僵缺,尤其是 WordPress 等內(nèi)容管理平臺的流行胡桃,再加上“扎男”的 Facebook(PHP 開發(fā)的)的烘托,更加鞏固了 PHP 在業(yè)界的地位磕潮。
我在 2013 年 底準(zhǔn)備回洛陽的時候翠胰,還學(xué)習(xí)了三個月的 PHP。時隔多年自脯,下面這本書還躺在我家的書架上積灰之景。
好了,來一發(fā) PHP 版的 Hello World 吧:
<?php
echo "Hello World";
?>
10膏潮、Ruby
Ruby 最初是一種面向?qū)ο蟮哪_本編程語言锻狗,但是隨著時間的流逝,它逐漸發(fā)展成為一種解釋性的高級通用編程語言焕参。它的學(xué)習(xí)曲線相當(dāng)平坦轻纪,非常有助于提高開發(fā)人員的生產(chǎn)力。
Ruby 的作者松本行弘曾說過一段非常經(jīng)典的話:
“ 人們特別是電腦工程師們龟糕,常常從機(jī)器著想桐磁。他們認(rèn)為:‘這樣做,機(jī)器就能運(yùn)行的更快讲岁;這樣做我擂,機(jī)器運(yùn)行效率更高;這樣做缓艳,機(jī)器就會怎樣怎樣怎樣校摩。’實(shí)際上阶淘,我們需要從人的角度考慮問題衙吩,人們怎樣編寫程序或者怎樣使用機(jī)器上應(yīng)用程序。我們是主人溪窒,他們是仆人坤塞。 ”
Ruby 正是基于這種理念產(chǎn)生的。網(wǎng)上有句話是這樣說的澈蚌,學(xué)習(xí) Ruby on Rails 能讓你看到 Web 框架頂端的景色摹芙。聽說,GitHub 官網(wǎng)是通過 Ruby on Rails 開發(fā)的(不準(zhǔn)確宛瞄,不知道有沒有同學(xué)可以確認(rèn)下)浮禾。
JavaEye 的創(chuàng)始人范凱曾說:
在我們國內(nèi),Ruby 是個小眾的編程語言,但在硅谷盈电,Ruby 很火蝴簇,被譽(yù)為云計算時代的 Web 編程語言。
當(dāng)然了匆帚,之所以把 Ruby 放在最后一位熬词,同學(xué)們一定懂我的意思。
最后吸重,希望同學(xué)們能夠從這 10 門編程語言中選擇一門自己喜歡的荡澎,深入研究,無論是哪門語言晤锹,我相信,只要你精通了彤委,就一定能夠找到自己心儀的工作鞭铆,如果你只是淺嘗輒止,那就不好意思呵呵了焦影。
我是沉默王二车遂,一枚有顏值卻假裝靠才華茍且的程序員。關(guān)注即可提升學(xué)習(xí)效率斯辰,別忘了三連啊舶担,點(diǎn)贊、收藏彬呻、留言衣陶,我不挑,奧利給??闸氮。
注:如果文章有任何問題剪况,歡迎毫不留情地指正。
如果你覺得文章對你有些幫助蒲跨,歡迎微信搜索「沉默王二」第一時間閱讀译断,回復(fù)關(guān)鍵字「小白」可以免費(fèi)獲取我肝了 4 萬+字的 《Java 小白從入門到放肆》2.0 版;本文 GitHub github.com/itwanger 已收錄或悲,歡迎 star孙咪。