為什么很多人喜歡 Python?

我的工作是做系統(tǒng)需求分析,自己利用業(yè)(shang)余(ban)時間自學了python,感覺現在學python和想學python的人越來越多,作為一個入門的新手,我想結合自己的體會想說一下為什么python越來越受人喜歡。

python上手難度較低,因為python是一種動態(tài)腳本語言,它追求的pythonic讓未經過編程培訓的人感覺很親切,python的語法很貼近自然語言,很多python庫在設計的時候都號稱是“給人類使用”,比如requests庫,用這個庫來做curl上手起來簡直easy,簡潔,優(yōu)雅?,F在只要跟電腦打交道,會一點編程,很多時候能大大提升效率。奧巴馬不是都在學嗎

成熟的庫比較多,python理念是“用一種方法做事”,不講求完成任務的多樣性,只求更快、更準確、更優(yōu)雅的完成任務,所以用python相比其他語言解決問題的方式更簡單,讓人更有成就感,不是有那么句話嗎?“人生苦短,我用python”,很多時候其他語言都需要費勁實現的東西,在python中可能都已經有大牛給你折騰好了,你只需要用一下就行。

用途廣泛,從web、游戲、網絡、大數據、機器學習之類的都能看到python的身影,前段時間的那個引力波發(fā)現過程中據說有Python的事情。感覺除了移動app外,幾乎都能用來開發(fā),所以能干的事情多總歸是好的,誰不好什么時候就用上了。就比如我現在就在用python寫管理我自己用的各種系統(tǒng)驗證服務器,其中還用到了一些pandas的東西用來做大數據分析。

python的瓶頸在性能,但是按照現在硬件的水平,這個問題越來越不是主要矛盾了,除非你是對性能要求極其苛刻的任務,大多數情況下我們用python都能對付,另外相比較語言本身,代碼的優(yōu)化更值得每個程序員的關注。

還有就是:很多人關注起Python就是因為簡單易懂,做Web很方便。但在深入CS學科的很多高級主題時,Python能發(fā)揮出更加強大無比的力量。而這來自于Python是個好膠水。

坦白講,Python不算最好的膠水,至少Lua做膠水就比Python好,API好用。但Python再算上強大的標準庫、數據結構、友好的轉義后,就脫穎而出了。

在科學計算領域,NumPy和SciPy的存在解放了很多人的思想束縛。其底層C模塊,性能一流。

而當你需要一流的性能與一流的可調試性時,Python C模塊是最好的選擇。封裝雖然有些麻煩,但封裝后可以在Python里調用實在太方便。一些已有的C/C++應用也可以通過將函數封裝給Python調用,而極大的降低調試難度,提升單元測試覆蓋率。

2007年時我開始學Python的C模塊編程,并在博客中放出了我的筆記。那時寫了不少東西。封裝libpcap后,做網絡抓包,通信劫持,使得別人眼里,我儼然是個正經黑客。后來迷戀erlang期間,做了C node的Python封裝,使得Python與Erlang可以互發(fā)消息,組建集群。搞硬件開發(fā)期間,封裝了Cubieboard和RaspberryPi的GPIO、SPI等眾多外設的Python接口,調試速度快到了云邊。做USB通信期間,因為PyUSB不支持isochronous通信而自己重寫了個libusb的Python封裝,使得USB編程不再困難。做音視頻識別的日子里,做了v4l2的Python封裝,使得操作攝像頭的控制精度達到了最高。

相比于其他人,用上這些Python封裝后,迭代速度數十倍的提高帶來了系統(tǒng)進化速度的極大提高。比如我在音視頻識別的研究期間,因為NumPy和我自己的封裝,每天動則十幾次甚至幾十次的迭代,優(yōu)化算法的各種參數。使得我在不到兩年時間里,識別效果就超過可某大學教授12年的研究成果。識別速度更是超出對方兩個數量級。

對于各個領域的研究者,我是真心推薦Python的。用上NumPy和SciPy,你就擁有了極致的性能,頂級的可調式性,和產品級的穩(wěn)定性。而這也使得Python的這套組合成為科學計算領域唯一能與matlab競爭的選擇。

自己多問下為什么學python

如果一門語言沒有改變你的編程思維,那么它不值得你去學習”。如果這么說,我們大學的時候,學習了c,c++,java,C#,算是值得學習么?很多時候是不值得,我覺得我們大學的課程就是用java,c#,c++把"C程序設計"又上了一遍.

這是因為,學校的老師會C和java之類的,所以要跟著規(guī)矩開這門課,(這也就是為什么,許多學校還在教vb,),這也就是為什么,你所以為的一樣就是大家都有For都有while,都有switch..都有Class...都有int 都有float,所謂的不一樣就是用C有指針,java沒有,這就是為什么教育是失敗的,這也就是為什么,我目前認識的幾個編程大牛

python的優(yōu)點:簡單 我所說的簡單,是相比于象C和C++這樣的語言,你為了編程,要學習許多偏底層的東西.在比如,你在學習一個新的編程范式,或者想要馬上做個例子看看,試驗某個API,如果你是寫java的,你不得不去寫一個main,寫一些構造,即使有IDE這樣的東西,能夠為你帶來代碼生成器,而我做得就是寫一段“腳本”,或者打開python交互式解釋器就行了。

自己認識的python朋友出去工作,工資比較高,然后自己又剛剛好是會python所以選擇學習python,這樣的人比較危險但是也比較有激勵,還有就是覺得python比其他開發(fā)語言好用。

學完python前景會咋樣

其實我個人是很看好python未來的就業(yè)前景的,因為我認識太多的工程師都已經在學python,很多都是月收入大幾萬的

我個人也并非一直用python。前些年主要用c/c++以及java開發(fā)一些通信,移動系統(tǒng),互聯(lián)網通信。近3年開始才轉向python。坦白的說,這可能與你相處的公司以及環(huán)境不大一樣。隨便舉個例子,google的protocol buffer協(xié)議一出來就具有c++/python/java三種語言支持。google的廣告系統(tǒng)早在03,04年左右就一并對python進行了webservice支持,大部分涉及基礎核心系統(tǒng)的公司,都開始對python進行了擴展支持。甚至開源社區(qū)的postgresql數據庫,除了自身的ansi SQL,pgsql,pg/TCL,PG/PERL之外對python進行了內嵌支持,唯獨卻沒有呼聲很高的java。在FREEBSD(MIT)/LINUX(GPL)平臺上,對java可能排斥性比較大,但綜合而言,目前python發(fā)展還沒有java那種普及,主要是python大部分工作仍然是在較為深入地系統(tǒng)層和框架層做設計開發(fā),例如django,SQLAlchemy,fail2ban,mail郵件系統(tǒng),twisted等等。這部分對于那種習慣應用前輩們框架的編碼人員而言,缺乏創(chuàng)造力的他們根本無法適用這種開發(fā)。尤其在python涉及一些系統(tǒng)層面需要有較強的c/c++能力,這部分人在國內要么就累得要死沒時間,要么就啥都不會就會拷貝代碼,而國內公司也鮮有主動去做這部分基礎勞動的,大多都是等別人做好了在直接拿來用,所以造就了任何技術性的東西出來,國內都是先等等看,然后抄襲應用。

大環(huán)境如此,但千萬誤認為先等等看吧。對于一個技術人員而言,缺乏對新技術的渴望與熱情,這是一種非常危險的事情。我工作8年了,按照國內很多的人的說法早已不做代碼了,但又一次在聽一個老外的演講,他說他50多歲仍然每天堅持寫代碼,了解最新的動態(tài),所以他才能做到他們公司的首席科學家,因此它才能時刻指導項目團隊前進并保證項目的質量。他坦言對于一個不寫代碼并且不了解最新的技術動態(tài)的技術人員或者技術團隊的負責人而言,這種團隊也就足夠做作小項目,一旦壓力和項目過大,就會有很多問題漏出來。

對于新人而言,無論學習什么技術,都要以鼓勵的姿態(tài)出現。太多用薪水和你個人所看到的現狀去衡量一門技術,那絕對是欠缺眼光的。任何一門技術,一旦有人學習,他有可能逐漸成為這個領域的專家,即便再濫再沒有人用的開發(fā)語言技術,他也有可能就是明日的奠基者或者大師。

自己如何確定目標

在生活中學會不斷挖掘自己的潛力。我們都是一個普通人,可能并不清楚自己到底在哪方面占有優(yōu)勢。所以,學著在生活中找到自己的優(yōu)勢,并根據優(yōu)勢選擇一定的就業(yè)方向。

不隨波逐流。不要看周圍的人做什么,自己就做什么,也許別人做的并不適合你。別人的優(yōu)勢很可能會成為你的劣勢。所以,堅定自己的想法,讓自己知道那些方面適合自己,自己可以勝任。

不斷嘗試可能成為自己的優(yōu)勢。你不知道什么適合自己,所以才要大膽、勇敢地嘗試。找到一種可以屬于你的獨特的優(yōu)勢。

堅定信念。一旦你堅定了自己的信念,就不要被別人的意見或是諷刺或是嘲笑所干擾。別人不是你,不懂的你在想什么,不清楚你開始這件事的源頭。你的事情,不了解你的人,沒有資格輕易評說。

不茫然,不多想。別讓太多的事干擾到你奮斗下去的信念。夢想不容許太多的雜念。那些雜念只會讓你的心愈來愈脆弱,多為一個人考慮,到頭來,傷害的還是自己。

選擇自己學習方法

每個人都有適合自己的方法,有的人去選擇自學,有的人選擇看視頻學習,有的人選擇報名培訓班,那在這個時候,你就要自己考慮清楚,到底那樣對的幫助是最大的,個人覺得是跟著培訓班最好的,畢竟人家的實戰(zhàn)項目多,我們學軟件開發(fā)的都知道實戰(zhàn)項目對于學好一門語言是 很重要的。

學習python有那些誤區(qū)

具體里面的誤區(qū)非常的多,那些就不需要我去寫出來,我給你說的一般都是心態(tài)的問題,首先一個覺得自己會java和c++,然后我學習python就很牛,但是你要知道語言是有很多相同的地方,但是不是通用,一定要自己學習的仔細。還有一種就是覺得我不會英語,我要先去把英語學習好在來學python。因為自己想還壞主意然后學習,這樣的都是容易找進誤區(qū)的。

怎么樣才能學好python

學好python你需要一個良好的環(huán)境,一個優(yōu)質的開發(fā)交流群,群里都是那種相互幫助的人才是可以的,我有建立一個python學習交流群,在群里我們相互幫助,相互關心,相互分享內容,這樣出問題幫助你的人就比較多,群號是304加上050最後799,這樣就可以找到大神聚合的群,如果你只愿意別人幫助你,不愿意分享或者幫助別人,那就請不要加了,你把你會的告訴別人這是一種分享。

感覺寫的好,對你有幫助,就點個贊唄,別光只收藏哈.~( ̄▽ ̄)~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,001評論 25 709
  • 本文把程序員所需掌握的關鍵知識總結為三大類19個關鍵概念,然后給出了掌握每個關鍵概念所需的入門書籍,必讀書籍,以及...
    dle_oxio閱讀 11,384評論 6 244
  • TITLE: 編程語言亂燉 碼農最大的煩惱——編程語言太多。不是我不學習,這世界變化快! 有時候還是蠻懷念十幾、二...
    碼園老農閱讀 5,592評論 2 35
  • 自打參加工作以后,我最討厭的節(jié)日就是春節(jié)。一是我們家傳統(tǒng)是自己掙錢了就再也不給收紅包了,我還得給弟弟妹妹發(fā)紅包。不...
    左左和右右126閱讀 308評論 3 0

友情鏈接更多精彩內容