因為最近Python實在是火得令人匪夷所思,所以我心血來潮,扒一扒這個紅遍大江南北的語言的黑歷史,哦不,輝煌的歷史,學習一下日進千粉的漲粉秘訣。
不查不知道一查嚇一跳,Python其實已經奔三了,而且是29歲的那種實實在在的奔三,比頭牌咖啡運營商Java、紅寶石專業(yè)代購Ruby還要老,所以Python看起來是新起之秀,其實是老當益壯。
上帝創(chuàng)造了世界,龜叔創(chuàng)造了Python。在1989年圣誕節(jié)期間,龜叔在家覺得很無聊。眾所周知,程序員的日常娛樂就是寫代碼,所以為了打發(fā)假期,龜叔決定開發(fā)一個新的腳本解釋程序玩一玩。

龜叔就是眾所周知的Python之父,Guido van Rossum,是一個土生土長的荷蘭人。我發(fā)現(xiàn)很多荷蘭人名字里面都有這個“van”,然后就去查了一下,發(fā)現(xiàn)這個“van”差不多就是“from”的意思,所以龜叔就是,“來自羅森的龜多”。
.jpg)
這種取名方式其實全世界都差不多,中國古代人名也經常帶上地名,比如石家莊趙子龍、保定張翼德、包頭呂布等。龜叔還是個不折不扣的學霸,媽媽嘴上“別人家的孩子”,1982年龜叔從阿姆斯特丹大學碩士畢業(yè),也就是荷蘭最牛逼的大學,而且還是數(shù)學和計算機雙學位。
.jpg)
龜叔給他的新程序取名叫Python,眾所周知,Python這個英文單詞是蟒蛇的意思,因為Python的圖標顯而易見就是一只藍色和一只黃色的蟒蛇搞在一起。但是龜叔取這個名字并不是因為他喜歡蟒蛇,而是他當時在追一個英國喜劇 Monty Python‘s Flying Circus,龜叔是這個英國喜劇團體Monty Python的狂熱粉絲,所以就理所當然地用了偶像團體的名字Python作為他新程序的名字,這是一個追星族的基本素養(yǎng)。
.jpg)
經過龜叔不懈努力,在1991年,第一個Python編譯器終于誕生了,我們又多了一種“Hello World”的方式。
Python底層是用C語言編寫的,這個很好理解,因為在那個我還沒有出生的年代,C語言就是老大哥,但是當時電腦配置很低,程序員就需要絞盡腦汁優(yōu)化程序,不然電腦跑不動。當時的龜叔,那時候應該還是龜哥,也不例外,每次他要用C語言實現(xiàn)一個功能,都要花費大量的時間,以至于追劇和把妹的時間大大減少。魯迅先生說,懶是人類進步的階梯,龜哥就很想發(fā)明一種簡潔的語言來節(jié)省程序員自閉敲代碼的時間。
.jpg)
于是,他想到了UNIX的解釋器shell,許多C語言上百行的程序,shell只需要幾行就解決了,但是,shell的本質是調用命令,并不是一個真正的語言。龜叔希望有一種語言,既能像C語言一樣功能齊全,又能像shell一樣輕松地編程。
這時候他想到了自己正在參與研發(fā)的ABC語言,這個語言名字取得這么童趣,一看就是給小白設計的,確實,ABC語言是專門用來教學的,所以讀起來通俗易懂。但是為啥這么一個易讀易用的語言沒能流行的,難道程序員們都陶醉在敲鍵盤的樂趣之中了嗎?龜叔進行了深刻的反思,得出ABC失敗的原因。
首先第一個,ABC開發(fā)資金被領導層撤掉了,沒錢還做毛線呀,有錢能使鬼推磨,沒錢別做白日夢。其次,這個ABC語言又太過于局限于新手了,小菜雞總有一天會變成大公雞,或者老母雞的,過于簡單的ABC語言就不夠耍了,所以受眾要廣,老少咸宜的東西才有發(fā)展前景。當然了,這個名字ABC取得也不夠霸氣,都不好意思在別人面前裝逼,眾所周知不能用來裝逼的語言不是好語言。兄弟,你有沒有聽說過ABC語言,這誰不會,啊波次的一哎服哥,這就沒法聊了對吧。
除了這幾點之外,ABC還有一個致命的缺陷,就是難于拓展,想加點新花樣進去就得進行翻天覆地的改動,這肯定要累死個人的。魯迅先生曾說過,失敗是成功他媽,于是龜叔吸取經驗和教訓,在進行Python編寫的時候,特別注意可拓展性。程序員可以直接用Python寫py文件作為拓展模塊,也可以深入底層寫C程序,引用到Python中使用,所以不管是一開始就學Python的純種Python程序員,還是之前有過C語言老底的程序員,都可以對Python進行自己想要的拓展。
Python最初的版本是龜叔在1991年2月發(fā)布的Python0.9.0,這個版本的Python就已經具有了類class、函數(shù)function、異常處理exception、包含列表list和字典dictionary在內的核心數(shù)據(jù)類型,以及模塊module為基礎的拓展系統(tǒng)。如果你現(xiàn)在看到這些感覺一臉懵逼,不要擔心,這些內容在我們之后的課程里都會為大家詳細講解。如果你覺得它們像親兒子一樣熟悉,那么你也可以選擇聽我們的課程復習一遍。
龜叔開始是單槍匹馬孤軍奮戰(zhàn)單打獨斗。后來Python得到龜叔同事的歡迎,他們參與到Python的改進中,構成Python核心團隊。1994年1月,Python新版本1.0發(fā)布,在這個版本中,新加入了眾所周知的lambda、map、filter和reduce。Python變得越加豐滿起來。美國宇航局NASA在1994年甚至把Python作為主要開發(fā)語言,都牛逼上天了。
當時龜叔維護了一個mailing list,Python的核心成員們就通過郵件進行交流,對Python進行拓展和改造。在這期間,python又發(fā)布了1.23456,到1.6版本的時候已經和python2非常接近了。2000年,Python2誕生。有意思的是,Python2最重要的一個變化并不是說功能變得多么牛逼,而是Python的發(fā)展方式。2000年5月,python核心成員們開始使用SourceForge進行開發(fā),也就是說從原來的mailing list的方式轉變?yōu)橥耆_源的模式,python社區(qū)開始建立起來,Python獲得了更加高速的發(fā)展。
.jpg)
但是Python早期在設計上有一些缺陷,比如Python2默認ASCII編碼方式,注意一下這個是讀(阿斯ki),不是ASC兔,它的全稱是American Standard Code for Information Interchange,后面II是英文縮寫,而不是羅馬數(shù)字2。Python2默認ASCII編碼,而不是Unicode,這導致中文日文韓文等等都不能正常使用。
那么,這個Unicode和ASCII又是啥呢?眾所周知,你和貓講話要用貓語,和計算機講話要用計算機語。傳說在計算機歷史的早期,以美國為代表的英語系國家主導了整個計算機行業(yè),所以當時只有英語能被翻譯成計算機語言,ASCII就是當時的翻譯官。但是,隨著越來越多國家的人開始使用計算機,ASCII能力有限,中文、日文、韓文什么的都翻譯不出來,因而涉及中文等其他字符時,Python2經常出現(xiàn)亂碼。
而Unicode編碼涵蓋了除了英語字符之外各種各樣的語言和特殊符號,是個萬國翻譯官。可能有人要問,既然Unicode這么牛逼,為啥python還要用ASCII呢?很多人可能都忘記了python其實年紀蠻大了,當初python都會打醬油的時候,Unicode還沒出生呢,所以python一直默認使用ASCII編碼。事實上,Python2中已經引入了Unicode,但是是作為一個新的數(shù)據(jù)類型unicode。程序員在寫文本的時候,經常會傻傻分不清楚,bug連天。
除此之外,python2中還有許多其他的問題,比如文本和二進制數(shù)據(jù)難以分清。比如說‘abcd’學過python3的朋友都知道這就是個abcd四個字母組成的字符串。但是,在python2中就不一定了,你也可以說這是97、98、99、100。眾所周知,一夫一妻制是全宇宙的發(fā)展方向,python字符串也應該有且僅有一種解讀。
由于python變得越來越流行,這些問題也變得越來越嚴重。從2004年開始,Python社區(qū)的大佬們終于按耐不住,決定對Python進行大刀闊斧的改革。
終于,2008年,Python3橫空出世。
.jpg)
在Python3下,文本數(shù)據(jù)和二進制數(shù)據(jù)劃清了界限,python程序員再也不會對字符串產生誤解。除此之外,python所有的文本數(shù)據(jù)自動支持Unicode編碼,使得多國語言的使用更加方便。Python3不向前兼容,堅決貫徹分手就要徹底。時光飛逝日月如梭,轉眼間Python3已經十年了,雖然還有許多老項目留戀舊情人,仍然和python2藕斷絲連,但是python3無疑是新入坑的猴子們較好的選擇。
官方宣布,從2020年1月1日起,停止Python2的更新,Python2正式成為歷史。
龜叔寫python的初衷就是解放全猿類,所以python最大的特點就是簡潔。
龜叔有一件T恤,上面寫著人生苦短,我用Python。Python相比于之前的C語言,將許多機器層面上的細節(jié)隱藏,讓程序員能花更多時間用于思考程序的邏輯,而不是具體的實現(xiàn)細節(jié),因而能為程序員節(jié)省大量的時間。
打個比方就是,你如果想造個汽車,用C語言就好比你要親自造輪子造方向盤等所有元件,但是用Python你就可以使用現(xiàn)成的輪子方向盤等等造汽車了。因此python可以大大節(jié)省程序員的時間,從此媽媽再也不用擔心我頭禿啦!
眾所周知,程序員發(fā)際線越靠后說明經驗越豐富。
比如VB.NET之父Alan Cooper,Java之父James Gosling,C++之父Bjarne Stroustrup,一望無際的頭頂一看就是博學多才,PHP之父Rasmus Lerdorf護城河的發(fā)型,JavaScript之父Brendan Eich,這使得如今視頭發(fā)如生命的豬精男孩女孩們對于計算機編程望而卻步。
而從Python之父Guido van Rossum的發(fā)量來看,學Python不會禿頭,所以Python理所當然就火熱了起來。
當然這只是一個玩笑,Python突然之間爆紅的原因主要得益于近年來機器學習大熱,而Python又是機器學習語言的不二之選,Python受到越來越多人的追捧。2011年1月,Python被TIOBE編程語言排行榜評為2010年度語言。2017年,IEEE Spectrum發(fā)布的研究報告顯示,在2016年排名第三的Python在2017年已經成為世界上最受歡迎的語言,C和Java分別居于第二和第三位,2018年Python仍穩(wěn)居榜首。
許多知名的公司、網(wǎng)站也都用python進行開發(fā)。Google和Dropbox自不用說,Python之父所在之處必有Python。實際上,Google Groups、Gmail、Google Maps、AlphaGo等都支持Python作為開發(fā)語言。Dropbox作為美國最大的在線云存儲網(wǎng)站,每天處理10億個文件的上傳和下載,也全部是由Python實現(xiàn)的。大家所熟知的BitTorrent、YouTube、Facebook、知乎、豆瓣等也都使用Python進行開發(fā)。此外,搜狐、騰訊、網(wǎng)易、百度、阿里、新浪、果殼等公司都在使用Python完成各種各樣的任務。

Python作為當代最受歡迎的語言,功能當然是非常強大的。你不僅可以批量下載喜歡的日本電影,還可以和朋友一起打飛機,最重要的是還可以賺錢哦,從此升職加薪,當上CEO,贏取白富美,走向人生巔峰!是不是想想就很激動呢?
在之后的課程中,我們會帶領大家從零開始入門Python編程,終于可以做一個擁有一頭濃密秀發(fā)的程序員啦!
量化金融分析師(簡稱AQF,Analyst of Quantitative Finance)由量化金融標準委員會(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領域的專業(yè)水平證書。 >>>點擊咨詢AQF證書含金量
.png)
課程適合人群:
金融工程/數(shù)學專業(yè)背景的同學/工作人士,希望進一步學習Python編程以及在量化投資的實戰(zhàn)應用;
非金融工程專業(yè)背景的同學/工作人士,希望迅速成為寬客;
金融相關人員,希望學習如何系統(tǒng)的做量化策略;
個人投資者,希望系統(tǒng)學習掌握量化投資相關的實務技能,從模型開發(fā),回測,策略改進,搭建穩(wěn)定的量化交易系統(tǒng)。
量化金融分析師AQF核心課程體系:
1、《量化投資基礎》
主要涵蓋了量化投資領域的必備知識,包括:基本面分析、技術分析、數(shù)量分析、固定收益、資產組合管理、權益、另類投資等內容。
2、《Python語言編程基礎》
包含了Python環(huán)境搭建、基礎語法、變量類型、基本函數(shù)、基本語句、第三方庫、金融財務實例等內容。旨在為金融財經人提供最需要的編程方法。
3、《基于Python的經典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對交易模型、波動擴張模型、Alpha模型、機器學習(隨機森林模型、主成分分析)、深度學習(人工神經網(wǎng)絡)等內容。
4、《量化交易系統(tǒng)設計》
旨在學習量化交易系統(tǒng)的具體知識,包括過濾器,進入信號,退出信號,倉位管理等詳細內容,并指導學員設計涵蓋個人交易哲學的量化交易系統(tǒng)。
5、《量化實盤交易》
旨在為解決實際量化交易策略搭建過程中的一些問題提供較優(yōu)解決方案。 >>>點擊咨詢AQF相關問題
掌握Python及量化投資技能,我們能做什么?
1、熟悉中國主要金融市場及交易產品的交易機制;
2、熟知國內外期貨交易、股市交易的異同點和內在運行機制;
3、掌握經典量化交易策略細節(jié)及其背后的交易哲學;
4、掌握金融、編程和建模知識基礎,擁有量化交易實盤操作能力;
5、具備獨立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設計的基本框架,以及風險管理和資產組合理論的實際運用;
7、掌握從策略思想——策略編寫——策略實現(xiàn)餓完整量化投資決策過程;具備量化投資實戰(zhàn)交易能力。
.png)
更多內容推薦閱讀:
2019年量化金融分析師(AQF)全國統(tǒng)一考試報名簡章
Wind、Excel和Python三大金融技能兼修,下一個金融分析大神就是你
咨詢電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號:量化金融分析師
完善下表,48小時內查收aqf備考資料
(如果沒收到資料,可以點我咨詢)


.png)


