Dataquest 這個(gè)網(wǎng)站上提供了一系列和數(shù)據(jù)分析相關(guān)的python教程,從python基本語法到data analysis的基本函數(shù)砚著,到PANDAS包的使用方法次伶,到machine learning里常用的Python指令,甚至還有手把手教你玩Kaggle稽穆,簡(jiǎn)直不能更貼心~當(dāng)然這個(gè)只是入門級(jí)教程冠王,高級(jí)技巧就一點(diǎn)點(diǎn)的在實(shí)戰(zhàn)項(xiàng)目里積累吧~
不管學(xué)習(xí)什么新的東西,效率最低但是又不可或缺的環(huán)節(jié)就是看教科書了秧骑。雖然看書的過程可能會(huì)很無聊版确,但是過一遍書至少能對(duì)整個(gè)知識(shí)框架有個(gè)大體的把握。我最早知道 Python 還是在《黑客與畫家》這本書中看到的乎折,書里面有一章節(jié)是講編程語言的绒疗,作者很推薦把 python 作為學(xué)習(xí)編程的入門語言。我當(dāng)時(shí)是把《簡(jiǎn)明 Python 教程》給過了一邊骂澄,后來又看了一遍《深入python》嗽仪,這里特別推薦《深入 Python》,除了介紹 python 的基本特性之外义屏,還介紹了諸如函數(shù)編程、正則表達(dá)式溃蔫、處理 HTML 和 XML等高級(jí)用法。除了看書琳猫,上公開課也是挺不錯(cuò)的伟叛,視頻教學(xué)本來就比自己啃教科書有意思,而且完成課程作業(yè)也能鍛煉動(dòng)手編程能力脐嫂。我上過兩門不錯(cuò)的公開課统刮,一門是萊斯大學(xué)在 Coursera 上開的《Python交互式編程導(dǎo)論》,一邊學(xué) python账千,一邊寫些小游戲侥蒙,肯定不會(huì)覺得無聊;另一門就是 MIT 在 edX 上開的《計(jì)算機(jī)科學(xué)及python編程導(dǎo)論》匀奏,它是 MIT edX系列課程(XSeries)中的第一課鞭衩,系列課程共兩門,除了這門課以外還有《計(jì)算思維及數(shù)據(jù)科學(xué)導(dǎo)論》娃善,不過第二門就沒有上過了论衍。《簡(jiǎn)明 Python 教程》《深入 Python》《Python交互式編程導(dǎo)論》《計(jì)算機(jī)科學(xué)及python編程導(dǎo)論》另外会放,我和題主的情況有點(diǎn)像饲齐,也不是學(xué)計(jì)算機(jī)專業(yè)的,并且同樣對(duì)自己的專業(yè)不感興趣咧最,以后也是想從事與數(shù)據(jù)科學(xué)相關(guān)的工作捂人。我目前的狀況都是在自學(xué),上公開課矢沿,看教科書滥搭,跟大牛們的技術(shù)博客。
現(xiàn)在信息更新的非车肪ǎ快速瑟匆,又迎來了大數(shù)據(jù)的時(shí)代, 各行各業(yè)如果不與時(shí)俱進(jìn)栽惶,都將面臨優(yōu)勝劣汰愁溜,知識(shí)是不斷的更新的,只有一技之長(zhǎng)外厂,才能立于不敗之地冕象。
學(xué)習(xí)Python編程語言,是大家走入編程世界的最理想選擇汁蝶,在初期入門階段就可以自己動(dòng)手做一些實(shí)用的小項(xiàng)目渐扮,這樣會(huì)極大的增進(jìn)我們學(xué)習(xí)編程的 熱情论悴。
很多朋友都是零基礎(chǔ),沒有過編程的經(jīng)驗(yàn)或者一知半解墓律,在選擇編程語言的時(shí)候面臨著眾多選擇膀估,不知道哪種語言才是適合自己去深入學(xué)習(xí)的。 現(xiàn)在全世界大約有幾百萬以上的Python語言的用戶耻讽,大家可以看一下我在百度指數(shù)截圖的趨勢(shì)圖片察纯,其實(shí)通過玩蛇網(wǎng)LEO多年學(xué)習(xí)和使用Python的經(jīng)驗(yàn),發(fā)現(xiàn)大家選擇Python做為編程開發(fā)語言齐饮,主要有以下幾種原因:
首先捐寥,Python編寫代碼的速度非常的快笤昨,而且非常注重代碼的可讀性祖驱,非常適合多人參與的項(xiàng)目。它具備了比以前傳統(tǒng)的腳本語言更好的可重用性瞒窒,維護(hù)起來也很方便捺僻。與現(xiàn)在流行的編程語言Java、C崇裁、C++等相比較匕坯,同樣是完成一個(gè)功能,Python編寫的代碼短小精干拔稳,開發(fā)的效率是其它語言的好幾倍葛峻。
再者,Python支持多平臺(tái)開發(fā)巴比,用它編寫的代碼可以不經(jīng)過任何轉(zhuǎn)換就能在Linux與Windows系統(tǒng)任何移植术奖,在蘋果OS系統(tǒng)也沒有任何兼容性的問題. 不單單是你自己編寫的代碼具有可移植性,就連系統(tǒng)提供的一些GUI圖形化編程轻绞、數(shù)據(jù)庫操作采记、網(wǎng)頁網(wǎng)絡(luò)編程接口都可以耗不費(fèi)力的移植到任何系統(tǒng)中。
還有政勃,最重要的一點(diǎn)是Python有非常豐富的標(biāo)準(zhǔn)庫(Standard Library)唧龄,標(biāo)準(zhǔn)庫連Python安裝程序已經(jīng)直接安裝到你的系統(tǒng)當(dāng)中去了,無需另外下載奸远。 標(biāo)準(zhǔn)庫的這些模塊從字符串到網(wǎng)絡(luò)腳本編程既棺、游戲開發(fā)、科學(xué)計(jì)算懒叛、數(shù)據(jù)庫接口等都給我們提供超級(jí)多的功能應(yīng)用丸冕,不需要我們自己再去造輪子了。
哪些人適合學(xué)習(xí)Python芍瑞?
1.編程菜鳥新手:非常喜愛編程晨仑,以后想從事相關(guān)工作,但是零基礎(chǔ),不知道入門選擇什么編程語言的朋友洪己,其實(shí)是最適合選擇Python編程語言的妥凳。
2.網(wǎng)站前端的開發(fā)人員:平常只關(guān)注div+css這些頁面技術(shù),很多時(shí)候其實(shí)需要與后端開發(fā)人員進(jìn)行交互的;
3.一些工程師以前在做很多SEO優(yōu)化的時(shí)候答捕,苦于不會(huì)編程逝钥,一些程序上面的問題,得不到解決拱镐,只能做做簡(jiǎn)單的頁面優(yōu)化艘款。 現(xiàn)在學(xué)會(huì)Python之后,你和我一樣都可以編寫一些查詢收錄沃琅,排名哗咆,自動(dòng)生成網(wǎng)絡(luò)地圖的程序,解決棘手的SEO問題益眉,本站站長(zhǎng)Leo有10年個(gè)人站長(zhǎng)和SEO經(jīng)驗(yàn)晌柬,有興趣的朋友,互相交流一下郭脂。
4.在校學(xué)生:想有一技之長(zhǎng)年碘,或者是自學(xué)編程的愛好者,希望快速入門展鸡,少走彎路屿衅,都可以選擇Python語言。
5.Java程序員:現(xiàn)在有很多Java程序在轉(zhuǎn)到Python語言莹弊,他們都被Python代碼的優(yōu)美和開發(fā)效率所折服涤久,你還等什么呢!
以上列舉了一些學(xué)習(xí)Python語言的原因和選擇的理由箱硕,當(dāng)然還有更多的因素決定大家是否學(xué)習(xí)Python拴竹。
無論是學(xué)習(xí)任何一門語言,基礎(chǔ)知識(shí)剧罩,就是基礎(chǔ)功非常的重要栓拜,找一個(gè)有豐富編程經(jīng)驗(yàn)的老師或者師兄帶著你會(huì)少走很多彎路, 你的進(jìn)步速度也會(huì)快很多惠昔,無論我們學(xué)習(xí)的目的是什么幕与,不得不說Python真的是一門值得你付出時(shí)間去學(xué)習(xí)的優(yōu)秀編程
語言。
誰會(huì)成為AI 和大數(shù)據(jù)時(shí)代的第一開發(fā)語言镇防?這本已是一個(gè)不需要爭(zhēng)論的問題啦鸣。如果說三年前,Matlab来氧、Scala诫给、R香拉、Java 和 Python還各有機(jī)會(huì),局面尚且不清楚中狂,那么三年之后凫碌,趨勢(shì)已經(jīng)非常明確了,特別是前兩天 Facebook 開源了 PyTorch 之后胃榕,Python 作為 AI 時(shí)代頭牌語言的位置基本確立盛险,未來的懸念僅僅是誰能坐穩(wěn)第二把交椅。
不過聲音市場(chǎng)上還有一些雜音勋又。最近一個(gè)有意學(xué)習(xí)數(shù)據(jù)科學(xué)的姑娘跟我說苦掘,她的一個(gè)朋友建議她從 Java 入手,因?yàn)?Hadoop 等大數(shù)據(jù)基礎(chǔ)設(shè)施是用 Java 寫的楔壤。
無獨(dú)有偶鹤啡,上個(gè)月 IBM developerWorks 發(fā)表的一篇個(gè)人博客,用職位招聘網(wǎng)站indeed 上的數(shù)據(jù)做了一個(gè)統(tǒng)計(jì)揉忘。這篇文章本身算得上是客觀公正端铛,實(shí)事求是疲眷,但傳到國(guó)內(nèi)來禾蚕,就被一些評(píng)論者曲解了本意,說 Python 的優(yōu)勢(shì)地位尚未確立换淆,鹿死誰手尚未可知几颜,各位學(xué)習(xí)者不可盲目跟風(fēng)啊倍试,千萬要多方押寶,繼續(xù)撒胡椒面不要停蛋哭。
在這里我要明確表個(gè)態(tài),對(duì)于希望加入到 AI 和大數(shù)據(jù)行業(yè)的開發(fā)人員來說躁愿,把雞蛋放在 Python 這個(gè)籃子里不但是安全的沪蓬,而且是必須的∫荼ⅲ或者換個(gè)方式說,如果你將來想在這個(gè)行業(yè)混梆砸,什么都不用想辫樱,先閉著眼睛把 Python 學(xué)會(huì)了。
當(dāng)然鸡挠,Python不是沒有它的問題和短處搬男,你可以也應(yīng)該有另外一種甚至幾種語言與 Python 形成搭配,但是Python 將坐穩(wěn)數(shù)據(jù)分析和 AI 第一語言的位置备埃,這一點(diǎn)毫無疑問褐奴。
我甚至認(rèn)為敦冬,由于 Python 坐穩(wěn)了這個(gè)位置,由于這個(gè)行業(yè)未來需要大批的從業(yè)者堪遂,更由于Python正在迅速成為全球大中小學(xué)編程入門課程的首選教學(xué)語言萌庆,這種開源動(dòng)態(tài)腳本語言非常有機(jī)會(huì)在不久的將來成為第一種真正意義上的編程世界語。
討論編程語言的優(yōu)劣興衰一直被認(rèn)為是一個(gè)口水戰(zhàn)話題践险,被資深人士所不屑。但是我認(rèn)為這次 Python 的上位是一件大事捏境。
請(qǐng)?jiān)O(shè)想一下垫言,如果十五年之后,所有40歲以下的知識(shí)工作者蚌成,無分中外,從醫(yī)生到建筑工程師芹缔,從辦公室秘書到電影導(dǎo)演瓶盛,從作曲家到銷售惩猫,都能使用同一種編程語言進(jìn)行基本的數(shù)據(jù)處理,調(diào)用云上的人工智能 API拌阴,操縱智能機(jī)器人奶镶,進(jìn)而相互溝通想法厂镇,那么這一普遍編程的協(xié)作網(wǎng)絡(luò),其意義將遠(yuǎn)遠(yuǎn)超越任何編程語言之爭(zhēng)摄乒。
目前看來残黑,Python 最有希望擔(dān)任這個(gè)角色梨水。
Python 的勝出令人意外茵臭,因?yàn)樗秉c(diǎn)很明顯旦委。它語法上自成一派,讓很多老手感到不習(xí)慣摩钙;“裸” Python 的速度很慢查辩,在不同的任務(wù)上比C 語言大約慢數(shù)十倍到數(shù)千倍不等;
由于全局解釋器鎖(GIL)的限制功舀,單個(gè)Python 程序無法在多核上并發(fā)執(zhí)行身弊;
Python 2 和 Python 3 兩個(gè)版本長(zhǎng)期并行,很多模塊需要同時(shí)維護(hù)兩個(gè)不同的版本帖汞,給開發(fā)者選擇帶來了很多不必要的混亂和麻煩涨冀;
由于不受任何一家公司的控制麦萤,一直以來也沒有一個(gè)技術(shù)巨頭肯死挺 Python 壮莹,所以相對(duì)于 Python 的應(yīng)用之廣泛,其核心基礎(chǔ)設(shè)施所得到的投入和支持其實(shí)是非常薄弱的涝滴。
直到今天胶台,26歲的Python 都還沒有一個(gè)官方標(biāo)配的 JIT 編譯器诈唬,相比之下, Java 語言在其發(fā)布之后頭三年內(nèi)就獲得了標(biāo)配 JIT 赡矢。
另一個(gè)事情更能夠說明問題阅仔。Python 的 GIL 核心代碼 1992 年由該語言創(chuàng)造者 Guido van Rossum 編寫八酒,此后十八年時(shí)間沒有一個(gè)人對(duì)這段至關(guān)重要的代碼改動(dòng)過一個(gè)字節(jié)丘跌。
十八年唁桩!直到2010年耸棒,Antoine Pitrou才對(duì) GIL 進(jìn)行了近二十年來的第一次改進(jìn)与殃,而且還僅在 Python 3.x 版本中使用。這也就是說米奸,今天使用 Python 2.7 的大多數(shù)開發(fā)者悴晰,他們所寫的每一段程序仍然被26年前的一段代碼牢牢制約著逐工。
說到 Python 的不足泪喊,我就想起發(fā)生在自己身上的一段小小的軼事。我多年前曾經(jīng)在一篇文章里聲明自己看好 Python哈扮,而不看好 Ruby蚓再。
大概兩年多以前摘仅,有一個(gè)網(wǎng)友在微博里找到我,對(duì)我大加責(zé)備,說因?yàn)楫?dāng)年讀了我這篇文章膳犹,誤聽讒言签则,鬼迷心竅渐裂,一直專攻 Python钠惩,而始終對(duì) Ruby 敬而遠(yuǎn)之篓跛。
結(jié)果他Python 固然精通坦刀,但最近一學(xué) Ruby鲤遥,如此美好,如此甜蜜混坞,喜不自勝究孕,反過來憤然意識(shí)到场钉,當(dāng)年完全被我誤導(dǎo)了逛万,在最美的年華錯(cuò)過了最美的編程語言。我當(dāng)時(shí)沒有更多的與他爭(zhēng)辯得封,也不知道他今天是否已經(jīng)從Python后端忙上、大數(shù)據(jù)分析闲坎、機(jī)器學(xué)習(xí)和 AI 工程師成功轉(zhuǎn)型為Rails快速開發(fā)高手腰懂。
我只是覺得,想要真正認(rèn)識(shí)一件事物的價(jià)值慷彤,確實(shí)也不是一件容易的事情底哗。
Python 就是這樣一個(gè)帶著各種毛病沖到第一方陣的賽車手,但即便到了幾年前涕癣,也沒有多少人相信它有機(jī)會(huì)摘取桂冠属划,很多人認(rèn)為 Java 的位置不可動(dòng)搖候生,還有人說一切程序都將用 JavaScript重寫唯鸭。
但今天我們?cè)倏茨扛龋琍ython 已經(jīng)是數(shù)據(jù)分析和 AI的第一語言,網(wǎng)絡(luò)攻防的第一黑客語言柿估,正在成為編程入門教學(xué)的第一語言陷猫,云計(jì)算系統(tǒng)管理第一語言绣檬。Python 也早就成為Web 開發(fā)娇未、游戲腳本、計(jì)算機(jī)視覺镊讼、物聯(lián)網(wǎng)管理和機(jī)器人開發(fā)的主流語言之一狠毯,隨著 Python 用戶可以預(yù)期的增長(zhǎng)褥芒,它還有機(jī)會(huì)在多個(gè)領(lǐng)域里登頂锰扶。
而且不要忘了,未來絕大多數(shù)的 Python 用戶并不是專業(yè)的程序員罕偎,而是今天還在使用 Excel颜及、PowePoint蹂楣、SAS痊土、Matlab和視頻編輯器的那些人赁酝。
就拿 AI 來說,我們首先要問一下衡载,AI 的主力人群在哪里痰娱?如果我們今天靜態(tài)的來談這個(gè)話題藤乙,你可能會(huì)認(rèn)為 AI 的主力是研究機(jī)構(gòu)里的 AI 科學(xué)家坛梁、擁有博士學(xué)位的機(jī)器學(xué)習(xí)專家和算法專家划咐。
但上次我提到李開復(fù)的“AI紅利三段論”明確告訴我們,只要稍微把眼光放長(zhǎng)遠(yuǎn)一點(diǎn)政鼠,往后看三至五年公般,你會(huì)看到整個(gè) AI 產(chǎn)業(yè)的從業(yè)人口將逐漸形成一個(gè)巨大的金字塔結(jié)構(gòu)官帘,上述的 AI 科學(xué)家僅僅是頂端的那么一點(diǎn)點(diǎn),95% 甚至更多的 AI 技術(shù)人員酗捌,都將是AI 工程師胖缤、應(yīng)用工程師和AI 工具用戶阀圾。
我相信這些人幾乎都將被Python 一網(wǎng)打盡稍刀,成為 Python 陣營(yíng)的龐大后備軍账月。這些潛在的 Python 用戶至今仍然在技術(shù)圈子之外,但隨著 AI 應(yīng)用的發(fā)展剧劝,數(shù)百萬之眾的教師讥此、公司職員萄喳、工程師蹋半、翻譯减江、編輯、醫(yī)生份企、銷售司志、管理者和公務(wù)員將裹挾著各自領(lǐng)域中的行業(yè)知識(shí)和數(shù)據(jù)資源俐芯,涌入 Python 和 AI 大潮之中,深刻的改變整個(gè) IT,或者說 DT (數(shù)據(jù)科技)產(chǎn)業(yè)的整體格局和面貌贸营。
為什么 Python 能夠后來居上呢钞脂?
如果泛泛而論捕儒,我很可以列舉 Python 的一些優(yōu)點(diǎn)刘莹,比如語言設(shè)計(jì)簡(jiǎn)潔優(yōu)雅点弯,對(duì)程序員友好抢肛,開發(fā)效率高。但我認(rèn)為這不是根本原因熬芜,因?yàn)槠渌恍┱Z言在這方面表現(xiàn)得并不差涎拉。
還有人認(rèn)為 Python 的優(yōu)勢(shì)在于資源豐富曼库,擁有堅(jiān)實(shí)的數(shù)值算法毁枯、圖標(biāo)和數(shù)據(jù)處理基礎(chǔ)設(shè)施叮称,建立了非常良好的生態(tài)環(huán)境,吸引了大批科學(xué)家以及各領(lǐng)域的專家使用娱节,從而把雪球越滾越大肄满。但我覺得這是倒因?yàn)楣砬浮槭裁雌?Python 能夠吸引人們使用汇陆,建立起這么好的基礎(chǔ)設(shè)施呢毡代?
為什么世界上最好的語言 PHP 里頭就沒有 numpy 教寂、NLTK孝宗、sk-learn因妇、pandas 和 PyTorch 這樣級(jí)別的庫呢?為什么 JavaScript 極度繁榮之后就搞得各種程序庫層次不齊狡忙,一地雞毛灾茁,而 Python 的各種程序庫既繁榮又有序北专,能夠保持較高水準(zhǔn)呢拓颓?
我認(rèn)為最根本的原因只有一點(diǎn):Python 是眾多主流語言中唯一一個(gè)戰(zhàn)略定位明確描孟,而且始終堅(jiān)持原有戰(zhàn)略定位不動(dòng)搖的語言。相比之下缠导,太多的語言不斷的用戰(zhàn)術(shù)上無原則的勤奮去侵蝕和模糊自己的戰(zhàn)略定位僻造,最終只能等而下之嫡意。
Python 的戰(zhàn)略定位是什么?其實(shí)很簡(jiǎn)單汽畴,就是要做一種簡(jiǎn)單耸序、易用但專業(yè)、嚴(yán)謹(jǐn)?shù)耐ㄓ媒M合語言坎怪,或者叫膠水語言罢坝,讓普通人也能夠很容易的入門,把各種基本程序元件拼裝在一起搅窿,協(xié)調(diào)運(yùn)作嘁酿。
正是因?yàn)閳?jiān)持這個(gè)定位,Python 始終把語言本身的優(yōu)美一致放在奇技妙招前面男应,始終把開發(fā)者效率放在CPU效率前面闹司,始終把橫向擴(kuò)張能力放在縱向深潛能力之前沐飘。長(zhǎng)期堅(jiān)持這些戰(zhàn)略選擇游桩,為 Python 帶來了其他語言望塵莫及的豐富生態(tài)。
比如說耐朴,任何一個(gè)人借卧,只要愿意學(xué)習(xí),可以在幾天的時(shí)間里學(xué)會(huì)Python基礎(chǔ)部分筛峭,然后干很多很多事情铐刘,這種投入產(chǎn)出比可能是其他任何語言都無法相比的。
再比如說蜒滩,正是由于 Python 語言本身慢滨达,所以大家在開發(fā)被頻繁使用的核心程序庫時(shí)奶稠,大量使用 C 語言跟它配合,結(jié)果用 Python 開發(fā)的真實(shí)程序跑起來非臣癖椋快锌订,因?yàn)楹苡锌赡艹^ 80% 的時(shí)間系統(tǒng)執(zhí)行的代碼是 C 寫的。
相反画株,如果 Python 不服氣辆飘,非要在速度上較勁,那么結(jié)果很可能是裸速提高個(gè)幾倍谓传,但這樣就沒人有動(dòng)力為它開發(fā) C 模塊了蜈项,最后的速度遠(yuǎn)不如混合模式,而且很可能語言因此會(huì)變得更復(fù)雜续挟,結(jié)果是一個(gè)又慢又丑陋的語言紧卒。
更重要的是,Python 的包裝能力诗祸、可組合性跑芳、可嵌入性都很好,可以把各種復(fù)雜性包裝在 Python 模塊里直颅,暴露出漂亮的接口博个。很多時(shí)候,一個(gè)程序庫本身是用 C/C++ 寫的功偿,但你會(huì)發(fā)現(xiàn)盆佣,直接使用 C 或者 C++ 去調(diào)用那個(gè)程序庫,從環(huán)境配置到接口調(diào)用械荷,都非常麻煩共耍,反而隔著一層,用其python 包裝庫更加清爽整潔养葵,又快又漂亮征堪。
這些特點(diǎn)到了 AI 領(lǐng)域中,就成了 Python 的強(qiáng)大優(yōu)勢(shì)关拒。Python 也借助 AI 和數(shù)據(jù)科學(xué)佃蚜,攀爬到了編程語言生態(tài)鏈的頂級(jí)位置。Python 與 AI綁在一起着绊,對(duì)它們來說谐算,無論是電子商務(wù)、搜索引擎归露、社交網(wǎng)絡(luò)還是智能硬件洲脂,未來都只是生態(tài)鏈下游的數(shù)據(jù)奶牛、電子神經(jīng)和執(zhí)行工具,都將聽命于自己恐锦。
對(duì)編程語言發(fā)展歷史缺乏了解的人可能會(huì)覺得往果,Python 的戰(zhàn)略定位是犬儒主義和缺乏進(jìn)取心的。但事實(shí)證明一铅,能同時(shí)做到簡(jiǎn)單而嚴(yán)謹(jǐn)陕贮、易用而專業(yè),是很難的潘飘,而能夠堅(jiān)守膠水語言的定位肮之,更是難上加難。
有的語言卜录,從一開始就是出于學(xué)術(shù)而非實(shí)用的目的戈擒,學(xué)習(xí)曲線過于陡峭,一般人很難接近艰毒。有的語言筐高,過于依賴背后金主的商業(yè)支持,好的時(shí)候風(fēng)光無限丑瞧,一旦被打入冷宮凯傲,連生存下去都成問題。
有的語言嗦篱,設(shè)計(jì)的時(shí)候有明確的假想場(chǎng)景,要么是為了解決大規(guī)模并發(fā)幌缝,要么是為了解決矩陣運(yùn)算灸促,要么是為了做網(wǎng)頁渲染模板,一旦離開這個(gè)場(chǎng)景涵卵,就各種不爽浴栽。
更多的語言,剛剛?cè)〉靡稽c(diǎn)成功轿偎,就迫不及待的想成為全能冠軍典鸡,在各個(gè)方向上拼命的伸展觸角,特別是在增強(qiáng)表達(dá)能力和提升性能方面經(jīng)常過分積極坏晦,不惜將核心語言改得面目全非萝玷,最后變成誰都無法掌控的龐然大物。
相比之下昆婿,Python 是現(xiàn)代編程語言設(shè)計(jì)和演化當(dāng)中的一個(gè)成功典范球碉。
Python 之所以在戰(zhàn)略定位上如此清晰,戰(zhàn)略堅(jiān)持上如此堅(jiān)定仓蛆,歸根結(jié)底是因?yàn)槠渖鐓^(qū)構(gòu)建了一個(gè)堪稱典范的決策和治理機(jī)制睁冬。
這個(gè)機(jī)制以 Guido van Rossum (BDFL,Pythoners 都知道這是什么意思), DavidBeazley, Raymond Hettinger 等人為核心看疙,以 PEP 為組織平臺(tái)豆拨,民主而有序直奋,集中而開明。只要這個(gè)機(jī)制本身得以維系施禾,Python 在可見的未來里仍將一路平穩(wěn)上行脚线。
最有可能向 Python 發(fā)起挑戰(zhàn)的,當(dāng)然是Java拾积。Java 的用戶存量大殉挽,它本身也是一種戰(zhàn)略定位清晰而且非常堅(jiān)定的語言。但我并不認(rèn)為 Java 有很大的機(jī)會(huì)拓巧,因?yàn)樗举|(zhì)上是為構(gòu)造大型復(fù)雜系統(tǒng)而設(shè)計(jì)的斯碌。
什么是大型復(fù)雜系統(tǒng)?就是由人清清楚楚描述和構(gòu)造出來的系統(tǒng)肛度,其規(guī)模和復(fù)雜性是外生的傻唾,或者說外界賦予的。而 AI 的本質(zhì)是一個(gè)自學(xué)習(xí)承耿、自組織的系統(tǒng)冠骄,其規(guī)模和復(fù)雜性是一個(gè)數(shù)學(xué)模型在數(shù)據(jù)的喂養(yǎng)下自己長(zhǎng)出來的,是內(nèi)生的加袋。
因此凛辣,Java大多數(shù)的語言結(jié)構(gòu)對(duì)于大數(shù)據(jù)的處理和 AI 系統(tǒng)的開發(fā)顯得使不上勁,你強(qiáng)的東西這里用不上职烧,這里需要的東西你做起來又別扭扁誓。而 Python 在數(shù)據(jù)處理方面的簡(jiǎn)潔強(qiáng)悍早就盡人皆知。對(duì)比兩個(gè)功能相同的 Java 和 Python 機(jī)器學(xué)習(xí)程序蚀之,正常人只要看兩眼就能做出判斷蝗敢,一定是 Python 程序更加清爽痛快。
大概在 2003 或者 2004 年的時(shí)候足删,我買過一本 Python 的書寿谴,作者是一位巴西人。他說自己之所以堅(jiān)定的選擇 Python失受,是因?yàn)樗r(shí)候經(jīng)常夢(mèng)到未來世界將由一條大蟒蛇(蟒蛇的英文為python)統(tǒng)治讶泰。我當(dāng)時(shí)覺得這哥們好可憐,做個(gè)夢(mèng)都能夢(mèng)到這么恐怖的場(chǎng)景拂到。但今天來看峻厚,也許他只是像黑客帝國(guó)里的程序員安德森一樣,不小心穿越到未來谆焊,并且窺探到了世界的真相惠桃。
最后:自己多問下為什么學(xué)python
如果一門語言沒有改變你的編程思維,那么它不值得你去學(xué)習(xí)”。如果這么說辜王,我們大學(xué)的時(shí)候劈狐,學(xué)習(xí)了c,c++呐馆,java肥缔,C#,算是值得學(xué)習(xí)么汹来?很多時(shí)候是不值得续膳,我覺得我們大學(xué)的課程就是用java,c#收班,c++把"C程序設(shè)計(jì)"又上了一遍.
這是因?yàn)榉夭恚瑢W(xué)校的老師會(huì)C和java之類的,所以要跟著規(guī)矩開這門課摔桦,(這也就是為什么社付,許多學(xué)校還在教vb,),這也就是為什么邻耕,你所以為的一樣就是大家都有For都有while鸥咖,都有switch..都有Class...都有int 都有float,所謂的不一樣就是用C有指針,java沒有兄世,這就是為什么教育是失敗的啼辣,這也就是為什么,我目前認(rèn)識(shí)的幾個(gè)編程大牛
python的優(yōu)點(diǎn):簡(jiǎn)單 我所說的簡(jiǎn)單御滩,是相比于象C和C++這樣的語言,你為了編程熙兔,要學(xué)習(xí)許多偏底層的東西.在比如,你在學(xué)習(xí)一個(gè)新的編程范式艾恼,或者想要馬上做個(gè)例子看看,試驗(yàn)?zāi)硞€(gè)API,如果你是寫java的麸锉,你不得不去寫一個(gè)main钠绍,寫一些構(gòu)造,即使有IDE這樣的東西花沉,能夠?yàn)槟銕泶a生成器柳爽,而我做得就是寫一段“腳本”,或者打開python交互式解釋器就行了碱屁。
自己認(rèn)識(shí)的python朋友出去工作磷脯,工資比較高,然后自己又剛剛好是會(huì)python所以選擇學(xué)習(xí)python娩脾,這樣的人比較危險(xiǎn)但是也比較有激勵(lì)赵誓,還有就是覺得python比其他開發(fā)語言好用。
學(xué)完python前景會(huì)咋樣
其實(shí)我個(gè)人是很看好python未來的就業(yè)前景的,因?yàn)槲艺J(rèn)識(shí)太多的工程師都已經(jīng)在學(xué)python俩功,很多都是月收入大幾萬的
我個(gè)人也并非一直用python幻枉。前些年主要用c/c++以及java開發(fā)一些通信,移動(dòng)系統(tǒng)诡蜓,互聯(lián)網(wǎng)通信熬甫。近3年開始才轉(zhuǎn)向python。坦白的說蔓罚,這可能與你相處的公司以及環(huán)境不大一樣椿肩。隨便舉個(gè)例子,google的protocol buffer協(xié)議一出來就具有c++/python/java三種語言支持豺谈。google的廣告系統(tǒng)早在03,04年左右就一并對(duì)python進(jìn)行了webservice支持郑象,大部分涉及基礎(chǔ)核心系統(tǒng)的公司,都開始對(duì)python進(jìn)行了擴(kuò)展支持核无。甚至開源社區(qū)的postgresql數(shù)據(jù)庫扣唱,除了自身的ansi SQL,pgsql,pg/TCL,PG/PERL之外對(duì)python進(jìn)行了內(nèi)嵌支持,唯獨(dú)卻沒有呼聲很高的java团南。在FREEBSD(MIT)/LINUX(GPL)平臺(tái)上噪沙,對(duì)java可能排斥性比較大,但綜合而言吐根,目前python發(fā)展還沒有java那種普及正歼,主要是python大部分工作仍然是在較為深入地系統(tǒng)層和框架層做設(shè)計(jì)開發(fā),例如django,SQLAlchemy,fail2ban,mail郵件系統(tǒng),twisted等等拷橘。這部分對(duì)于那種習(xí)慣應(yīng)用前輩們框架的編碼人員而言局义,缺乏創(chuàng)造力的他們根本無法適用這種開發(fā)。尤其在python涉及一些系統(tǒng)層面需要有較強(qiáng)的c/c++能力冗疮,這部分人在國(guó)內(nèi)要么就累得要死沒時(shí)間萄唇,要么就啥都不會(huì)就會(huì)拷貝代碼,而國(guó)內(nèi)公司也鮮有主動(dòng)去做這部分基礎(chǔ)勞動(dòng)的术幔,大多都是等別人做好了在直接拿來用另萤,所以造就了任何技術(shù)性的東西出來,國(guó)內(nèi)都是先等等看诅挑,然后抄襲應(yīng)用四敞。
大環(huán)境如此,但千萬誤認(rèn)為先等等看吧拔妥。對(duì)于一個(gè)技術(shù)人員而言忿危,缺乏對(duì)新技術(shù)的渴望與熱情,這是一種非常危險(xiǎn)的事情没龙。我工作8年了铺厨,按照國(guó)內(nèi)很多的人的說法早已不做代碼了缎玫,但又一次在聽一個(gè)老外的演講,他說他50多歲仍然每天堅(jiān)持寫代碼努释,了解最新的動(dòng)態(tài)碘梢,所以他才能做到他們公司的首席科學(xué)家,因此它才能時(shí)刻指導(dǎo)項(xiàng)目團(tuán)隊(duì)前進(jìn)并保證項(xiàng)目的質(zhì)量伐蒂。他坦言對(duì)于一個(gè)不寫代碼并且不了解最新的技術(shù)動(dòng)態(tài)的技術(shù)人員或者技術(shù)團(tuán)隊(duì)的負(fù)責(zé)人而言煞躬,這種團(tuán)隊(duì)也就足夠做作小項(xiàng)目,一旦壓力和項(xiàng)目過大逸邦,就會(huì)有很多問題漏出來恩沛。
對(duì)于新人而言,無論學(xué)習(xí)什么技術(shù)缕减,都要以鼓勵(lì)的姿態(tài)出現(xiàn)雷客。太多用薪水和你個(gè)人所看到的現(xiàn)狀去衡量一門技術(shù),那絕對(duì)是欠缺眼光的桥狡。任何一門技術(shù)搅裙,一旦有人學(xué)習(xí),他有可能逐漸成為這個(gè)領(lǐng)域的專家裹芝,即便再濫再?zèng)]有人用的開發(fā)語言技術(shù)部逮,他也有可能就是明日的奠基者或者大師。
自己如何確定目標(biāo)
在生活中學(xué)會(huì)不斷挖掘自己的潛力嫂易。我們都是一個(gè)普通人兄朋,可能并不清楚自己到底在哪方面占有優(yōu)勢(shì)。所以怜械,學(xué)著在生活中找到自己的優(yōu)勢(shì)颅和,并根據(jù)優(yōu)勢(shì)選擇一定的就業(yè)方向。
不隨波逐流缕允。不要看周圍的人做什么峡扩,自己就做什么,也許別人做的并不適合你障本。別人的優(yōu)勢(shì)很可能會(huì)成為你的劣勢(shì)教届。所以,堅(jiān)定自己的想法彼绷,讓自己知道那些方面適合自己,自己可以勝任茴迁。
不斷嘗試可能成為自己的優(yōu)勢(shì)寄悯。你不知道什么適合自己,所以才要大膽堕义、勇敢地嘗試猜旬。找到一種可以屬于你的獨(dú)特的優(yōu)勢(shì)脆栋。
堅(jiān)定信念。一旦你堅(jiān)定了自己的信念洒擦,就不要被別人的意見或是諷刺或是嘲笑所干擾椿争。別人不是你,不懂的你在想什么熟嫩,不清楚你開始這件事的源頭秦踪。你的事情,不了解你的人掸茅,沒有資格輕易評(píng)說椅邓。
不茫然,不多想昧狮。別讓太多的事干擾到你奮斗下去的信念景馁。夢(mèng)想不容許太多的雜念。那些雜念只會(huì)讓你的心愈來愈脆弱逗鸣,多為一個(gè)人考慮合住,到頭來,傷害的還是自己撒璧。
選擇自己學(xué)習(xí)方法
每個(gè)人都有適合自己的方法透葛,有的人去選擇自學(xué),有的人選擇看視頻學(xué)習(xí)沪悲,有的人選擇報(bào)名培訓(xùn)班获洲,那在這個(gè)時(shí)候,你就要自己考慮清楚殿如,到底那樣對(duì)的幫助是最大的贡珊,個(gè)人覺得是跟著培訓(xùn)班最好的,畢竟人家的實(shí)戰(zhàn)項(xiàng)目多涉馁,我們學(xué)軟件開發(fā)的都知道實(shí)戰(zhàn)項(xiàng)目對(duì)于學(xué)好一門語言是 很重要的门岔。
學(xué)習(xí)python有那些誤區(qū)
具體里面的誤區(qū)非常的多,那些就不需要我去寫出來烤送,我給你說的一般都是心態(tài)的問題寒随,首先一個(gè)覺得自己會(huì)java和c++,然后我學(xué)習(xí)python就很牛帮坚,但是你要知道語言是有很多相同的地方妻往,但是不是通用,一定要自己學(xué)習(xí)的仔細(xì)试和。還有一種就是覺得我不會(huì)英語讯泣,我要先去把英語學(xué)習(xí)好在來學(xué)python疲陕。因?yàn)樽约合脒€壞主意然后學(xué)習(xí)木羹,這樣的都是容易找進(jìn)誤區(qū)的屯断。
怎么樣才能學(xué)好python
學(xué)好python你需要一個(gè)良好的環(huán)境步咪,一個(gè)優(yōu)質(zhì)的開發(fā)交流群,群里都是那種相互幫助的人才是可以的拳锚,我有建立一個(gè)python學(xué)習(xí)交流群假栓,在群里我們相互幫助,相互關(guān)心霍掺,相互分享內(nèi)容匾荆,這樣出問題幫助你的人就比較多,群號(hào)是304050799抗楔,這樣就可以找到大神聚合的群棋凳,如果你只愿意別人幫助你,不愿意分享或者幫助別人连躏,那就請(qǐng)不要加了剩岳,你把你會(huì)的告訴別人這是一種分享。