編程語言怎麼選?
大家好, 我是小神仙。
今天和大家聊下初學者,編程語言應該怎麼選?
以及學了這些語言之後都能找到什麼樣的工作?
相信大家在剛接觸編程語言的時候,肯定都會聽到以下的這些名詞哈。
什麼 Java ,C++ , C 語言,前端,後端, Go 語言,Python,還有前端對吧。
我自己是在研究生的時候纔開始認真寫代碼的,剛開始聽到這麼多種類的編程語言的時候也是一臉懵逼,不知道這些具體是幹什麼的。
也不知道自己適合什麼,選什麼語言是最好的選擇。
也不知道自己以後能找到什麼樣的工作。
那首先給大家科普下編程語言。
如果從發展歷史來說的話,編程語言可以分爲三個時代。
機器語言——-》彙編語言———》高級語言。
我們現在基本上所有的學習都是直接去學習高級語言,一些 CS 專業的人可能會安排一些彙編的課程(但是由於我沒上過哈哈,不知道具體是怎麼上的。
機器語言
第一代計算機語言稱爲機器語言。機器語言就是 0/1 代碼。計算機只能識別 0 和 1。
在計算機內部,無論是一部電影還是一首歌曲或是一張圖片,最終保存的都是 0/1 代碼,因爲 CPU 只能執行 0/1 代碼。
機器語言太難記憶了,也沒人能看得懂。
你想想如果你在那個時候是一個程序員,你每天都在打的字符是 0 和 1,真的是比現在的 CRUD 還痛苦吧。
對比之下,還是珍惜現在的搬磚時光吧。
彙編語言
彙編語言就是將一串很枯燥無味的機器語言轉化成一個英文單詞。比如說:add 1, 2;
add 就是一個英文單詞,這樣看起來就稍微有一些含義了,即 1 和 2 相加。這個就是彙編語言。如果直接用機器語言編寫的話,這幾乎是無法實現的。
通過專門的軟件就可以將這些英文單詞轉化成 0/1 代碼並由計算機執行,這種專門起翻譯的作用的軟件叫作編譯器。
這些英文單詞和與它們對應的 0/1 代碼之間的對應關係,以及語言的語法,在編寫這個軟件的時候就已經寫在裏面了。
我們只要通過編譯器就可以將這些都轉化成 0/1 代碼。這樣大大方便了我們對程序的編寫。
高級語言
彙編語言之後又出現了第三代語言。第三代語言又叫 “高級語言”。
C 語言, Fortran, Basic ,Pascal , C++, Java, C#, Python, Golang 等等。
這些語言也是我們現在用來乾飯的本領!感謝計算機的發展,不然現在連搬磚的機會都沒有呢。
對應的工程師的崗位就有 彙編工程師,高級語言工程師。
我們現在基本找工作找的都是高級語言的開發。
如果從前後端的分類來說呢。
大概可以分爲前端語言,和後臺語言。
那還要給大家說下前端,後端是吧。
前端
前端呢,主要是和用戶打交道的地方,主要是渲染數據和頁面。
比如我們可以看到的淘寶頁面呀,微信的 APP 呀,以及我們平時點進去的一些小程序,活動頁面等,這些頁面和交互都是由前端工程師們去實習的。
如果你對這種可視化的東西比較感興趣,那你可以嘗試着去學習前端知識,成爲一個前端工程師。
後端
後端呢,主要就是邏輯的控制和數據的存儲了,比如淘寶的用戶信息呀,訂單信息呀,都是需要去存儲和關聯的。
後端對一個產品來說很重要,就是很多時候沒有很漂亮的界面呈現,初學者學起來會有些覺得枯燥。
比較典型的就是學習 C 語言,學了很久但是發現還是隻能在一個黑乎乎的終端玩一玩。
如果你對這種後臺服務感興趣的話,可以試着去成爲一個後臺開發工程師。
說完了前端和後臺之後,我們再來聊聊分別的編程語言。
首先來聊下後臺的編程語言。
c, c++ , Java,python , php 這些都可以做後臺。但是各自的適用場景可能是有些不太一樣的。
1
首先來說下 Java 語言吧。
我自己本身是在公司從事 Java 後臺開發的。
Java 在整個互聯網是有很大的市場的,而且 Java 有一個很強的生態,比如我們知道的 Spring 全家桶, 微服務框架對吧。
所以 Java 語言工程師的需求量是非常大的,國內的一線互聯網公司,以及各自銀行,小型互聯網公司,傳統企業等都能看到 Java 技術棧的身影,所以你如果學習 Java 的話,基本上是不愁找工作的,前提是你學習。當然不是說你學了就一定能找到工作。
其次,Java 在整個大數據生態當中佔據着很重要的地位,像 Spark,Flink,Kafka 等等這些框架,你都能用 Java 去使用和二次開發。
如果你未來想從事大數據方向或者是後臺方向的話,學習 Java 是一個很不錯的選擇。
2
再來說下 C 語言。
C 語言算是很多 CS 專業必修的課程了,C 語言的話可以用來做嵌入式的開發,以及操作系統的開發。
因爲 C 語言直接和操作系統打交道,所以可以操作的東西就很多,很多對性能要求極高的東西還就真的只能用 C 語言來做。
不過 C 語言也是真的難學,指針那塊就把很多人勸退了。
我的建議是如果時間充裕的情況下,可以把 C 語言好好學習下。
但是如果時間不夠又着急找工作的話,那就還是學 Java 或者 Python 這種快速好上手的。
3
然後我們講下 C++。
C++ 應該也是算用戶比較多的一個語言,像騰訊和百度的很多技術棧都是 C++ 的。
雖然現在有很多業務部門都開始轉 GO 語言了,但是不可否認 C++ 的地位還是在的,畢竟老的系統還是要維護的。
C++ 也是比較難學的。
學 C++ 的時候要理解的難點不僅僅只是語言的特性和語言的實現本身,還要去理解內存佈局,變量生命週期,系統級別 API 實現原理等等這些。
主要可以用來做後臺開發,搜索引擎開發,遊戲開發這些。
我個人覺得 C++ 是一個越老越喫香的行業。
4
接着是 Python。
Python 也是這幾年很火的一個語言了,主要是可以用來做數據分析,爬蟲,後臺開發,機器學習等等。
Python 相比於其他語言來說,學習的門檻會稍微低一些,比較適合一些轉專業的同學去學習。
就業崗位還是很不錯的,像數據分析這一塊每年的需求量也是很大的。
Python 還能做 Web 應用開發,像豆瓣網就是用 Python 實現的。
Python 還能做自動化的運維, 人工智能領域等等。
5
最後說下 Golang 語言。
GO 語言是一種類 C 的語言,如果有 C 語言的基礎,來學習 Go 的話,是一件很簡單的事情。
GO 語言也是可以用來做後臺服務,因爲其語言特性所以天生支持高併發的場景。
騰訊的很多新業務現在都是基於 Go 語言開發的了。
我們知道的 Docker ,K8s 這些都是基於 GO 語言開發的。
Google , FaceBook,百度,騰訊,京東,小米這些公司也都在使用 Go 語言。
就目前的趨勢來看,Go 語言的前景還是很不錯的。
前端的編程語言
前端的編程語言就留到下次講拉,大家想看的話記得留言呦~
基本的編程語言和就業方向就給大家介紹到這裏啦~
其實語言之間固然有差異,但是隱藏在語言背後的編程思維方式沒有差別。
如果你精通了一門語言再去學其他語言,很快就可以上手。
晚上下班之後就會回覆下大家的消息。
我以前上學的時候很迷茫,不知道自己要做什麼,走了一些彎路,現在上班了,偶爾也還是會覺得迷茫。
不過還好那個時候有些學長學姐的幫忙,不然現在應該也沒有在深圳。
按照我媽媽的設想,我應該在銀行做個櫃員或者當個高中老師吧。(我覺得這樣的生活也很好哈哈,不像現在這麼卷。
所以很感謝那個時候幫助我的人,現在也想多分享一些出來,可能沒多少人看到,但是也算是除了工作之外的一點點有意義的事情吧。
如果大家有問題的話,可以來我的公衆號加我微信或者直接下面微信私信我。
好了,以上就是這篇文章的全部內容拉。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/PZ5O44wUb3X7w8xgYr_-EQ