作為一個C/C++工程師,聊聊對Python的看法
前言
首先說明,這不是軟文。僅僅是個人看法,同時也會仍然堅(jiān)持C/C++,畢竟要吃飯。
近年來以及最近想必大家總能看到Python的身影,有的是頻繁報(bào)道Python制霸編程語言排行榜,有的是總能看到各種Python的培訓(xùn)課程,作為主要使用其他語言的你,恐怕心里很難不會有悸動。那么應(yīng)該如何看待Python?
說說排行榜
TIOBE 編程語言排行榜說明的是編程語言的流行程度,它主要根據(jù)搜索引擎中被搜索的頻次來進(jìn)行排名。
近幾年排名如下:
個人感覺有點(diǎn)像高考報(bào)名大家都說哪個專業(yè)火差不多,主要突出的是某種語言的“火熱”程度,而非好與不好。近年來,Python的排名確實(shí)不斷上升,但你是否該學(xué)習(xí)它,肯定不是看這個排名,所以不要被這個排名忽悠,而要看看它的什么特點(diǎn)讓它如此火熱,它的這些特點(diǎn)能否吸引你?畢竟C/C++/Java常年居于前列,它們可什么都沒說。
Python應(yīng)用領(lǐng)域
通常一門語言都有它“擅長”的領(lǐng)域,選擇合適的工具做適合它的事情是非常重要的。
可以說的Python的特點(diǎn)很多,比如:
- 簡單容易上手--提升學(xué)習(xí)開發(fā)效率
- 豐富的庫--更大程度避免重復(fù)造輪子
- 跨平臺
而由于這些特點(diǎn),它通常在應(yīng)用在以下領(lǐng)域:
- 網(wǎng)絡(luò)爬蟲
- 人工智能
- web開發(fā)
- 系統(tǒng)運(yùn)維
- 自動化測試
- 數(shù)據(jù)分析
- 云計(jì)算
- …
這些領(lǐng)域,如爬蟲,人工智能,web開發(fā)用其他語言可不可以?完全可以,但是Python有著極高的開發(fā)效率以及豐富的庫支持,你只需要專注你的事情本身即可。
但是人工智能,云計(jì)算等底層用的是什么?有效率問題時,用的又是什么?高并發(fā)的時候用的是什么?不過話又說回來,你有多少時候需要考慮這些呢?
總歸一句話,每一種語言有它適合的領(lǐng)域,另外也和公司本身的技術(shù)積累有關(guān)。
要不要學(xué)Python
當(dāng)然要!無論你是嵌入式還是后臺開發(fā),個人認(rèn)為Python都是值得學(xué)的,即使你是非開發(fā)類工作,也建議你學(xué)一學(xué),但沒有必要花過多精力刻意去學(xué)。
寫一個小工具使用Python會比你使用C/C++快得多。而Python也可以快速幫你處理各種繁瑣的數(shù)據(jù)。
記得剛?cè)ス镜臅r候,部門里用Python的極少,但是慢慢地,幾乎組里每個人都用Python做一些事情,當(dāng)然不是因?yàn)槭虑殡s,而是它在做一些小功能或工具或者做一些自動化測試的時候非常方便。
學(xué)什么語言好
我覺得問這個問題之前,先定義什么叫好?學(xué)起來簡單,容易上手,工作好找,錢還多叫好?我也想知道。所以當(dāng)有人強(qiáng)調(diào)Python多么火,又是多么簡單,工作多么高薪的時候,你一定要先喝杯涼水冷靜一下。
不過某種語言處于時代的浪潮,行業(yè)的浪潮還是有可能的,但是又有多少人能預(yù)測到浪潮的到來,又真的能站在浪潮之巔呢?
所以這個問題我也不知道,不過我覺得可以從以下幾個方面考慮:
- 準(zhǔn)備進(jìn)入的行業(yè),金融?通信?電商?
- 了解語言的適用場景,如底層開發(fā),后臺,web開發(fā),大數(shù)據(jù)等等
- 了解語言的特點(diǎn),如上手難易程度
- 了解自身的基礎(chǔ)情況,如是科班還是非科班,基礎(chǔ)如何?
- 崗位的需求量
- 崗位的需求難度
作為一個普通人,那種既簡單輕松,又有高回報(bào)的,想想就好了,想到了也告訴我們。
實(shí)際上上面這些就像計(jì)算機(jī)中經(jīng)常見到的時間換空間或者空間換時間,有時候就是兩難全。
對于我個人來說,如果讓我大學(xué)時重新來一次,大概會更加關(guān)注操作系統(tǒng),基本算法,計(jì)算機(jī)網(wǎng)絡(luò)等內(nèi)容,而不傾向于某種具體語言。
而如果說非要加一門語言,那么也是基于C/C++,而非其他語言,因?yàn)镃/C++似乎和這些基本原理更“親”。
怎么學(xué)
已會其他語言,相信你已經(jīng)知道該如何學(xué)習(xí)了。這里有一個簡明Python教程,適合快速瀏覽語法。地址:https://bop.mol.uno/
對于純小白,想用Python提高工作效率的,可以看看《python編程快速上手 讓繁瑣工作自動化》這本書,里面講解非常細(xì)致到位,當(dāng)然也可以根據(jù)自己的情況通過視頻教程或者培訓(xùn)課程進(jìn)行學(xué)習(xí)。
這里我作為一個Python小白,就不多說,歡迎學(xué)習(xí)Python的朋友補(bǔ)充。
語言只是其中的一部分
語言的使用雖然是工作中關(guān)鍵的部分,但卻是很小的一部分,尤其是當(dāng)你已經(jīng)熟悉語言本身之后,你的瓶頸可能不是語言本身,而是像網(wǎng)絡(luò),操作系統(tǒng)等基本問題和設(shè)計(jì)模式,方法論等更進(jìn)一步的內(nèi)容。
但是不建議:
- 什么都會,但沒有一門熟悉的語言
- 只專注語言本身
- 只接觸一種語言
記得別忘了你的主用語言修煉,如C,C++。
不局限于技術(shù)
作為一個技術(shù)人,很多時候?qū)夹g(shù)過于執(zhí)著而忽略了其它方面的擴(kuò)展,自己就是如此,其實(shí)多接觸其它方面,多與人交流,能擴(kuò)展自己的思維,一定程度上對自己技術(shù)之路也是有幫助的。這方面自己做得不太好,與君共勉吧。
總結(jié)
反正也是隨便說說,回頭看一下,好像有點(diǎn)亂了,按照習(xí)慣,還是總結(jié)一下吧。
- Python值得位開發(fā)者學(xué)習(xí),快速上手,提高效率
- 了解語言的基本特點(diǎn)和其使用場景
- 內(nèi)心不要拒絕其他語言
- 不要覺得XXX就是好
- 不過當(dāng)我用學(xué)C++的時候,真實(shí)感受到,C語言果然簡潔!
- 人生苦短