學校開設關於編程的課程明顯不足,我需要補充哪些課程或者自學哪些姿勢技能來提高自己的編程水平?
題主是金融工程學本科在讀學生,想利用在校時間提高自己的編程能力和水平。學校開設有C語言程序設計、資料庫原理與應用、數據結構三門課(分別在三個學期),但是感覺只學這些課程還達不到金融工程這一專業的要求。那麼我應該補充哪些課程(主要通過蹭課),或者自學哪些姿勢技能來充實自己的編程能力呢?
好無聊,吐會槽吧。。。(不想看理由的話請直接看結論)
扯那麼多王八犢子有個JB用,首先你要會「編程」, 也就是會用某種」語言「來說話。反正你將來也不是去當軟體工程師,寫程序主要就是做數據分析和實現一個功能。學C語言將來也不是去寫C語言的,但是利用C語言讓你學會如何編程總是好的。其實編程最基本就是如下兩個步驟:1 產生一個「程序化」的想法
2 如何用某種編程語言來實現你的想法舉個最簡單的例子,8皇后問題。 如果一點編程沒接觸過的人,肯定看到這個問題丈二和尚摸不著頭腦, 給他紙和筆都不知道應該按照怎麼樣的步驟去解這個題。 但是你會編程了,起碼能想到用二維的boolean數組來判斷兩個皇后是否衝突。
那麼好,想法你有了,你甚至知道遞歸了,來吧哥們,寫個遞歸吧,聲明個數組吧, 控制下循環吧。 你能實現你剛才的想法嗎?所以你沒有必要去蹭任何其他的課, 等你學數據結構和演算法的時候,你能用你學的C語言把學的各個數據結構都能輕鬆寫一遍, 看到8皇后隨便寫出來。起碼你的編程實現能力已經足夠了。
北京大學有個計算概論A的網課(coursera), 那個作業題目可以對應你不用太多演算法數據結構的,能做的不錯你的編程式控制制能力就達標了。作為一個金融工程的學生, 尤其你如果是個做研究的不是做開發的,需要用的就是那麼幾個常用語言, R MATLAB VBA PYTHON 神馬神馬的。 你學這些的時候,就是換了套語法,並且慢慢熟悉這個語言的特性而已(比如向量化啊)。這時候的實現能力多數體現在data manipulation上面,至於用別人的model,你是在調包,然後自己分析結果, 如果用自己的model,就是把自己的model實現一遍。 所以研究要不斷的深入,但是編程不一定有必要。
當然走入職場之前你還是要掌握幾門工業界的語言的,誠然如 @冼尼瑪 San LeiMa所說, 自學能力比較重要,我看不到任何需要為一門語言(金融工程用的)單獨開一個課程的必要。其實就是提前熟悉下, 這樣實習什麼的能立馬上手項目,不然老闆願意等,給你1個禮拜1個月的這門語言也熟悉了。 只是早熟悉比晚熟悉好。 這個熟悉一般就是如下幾個步驟:
1. 這個語言去哪下載? 怎麼配置在我的電腦上,有什麼好用的IDE,插件?
比如用R的人起碼知道去官網下載,輸入個1+1能返回2.用python的知道去下載個anoconda
2. 這個語言的語法(syntax) 省的做什麼都要查詢。 尤其是做數據清洗 處理的時候,早熟悉早幹活。 3 會用這個語言編程, 如果你有了剛才說的C語言的編程能力,這步基本可以跳過了。4 熟悉下這個語言常用的庫和包或者其他工具之類的。5 慢慢積累點這個語言做實際工作的經驗咯, 尤其是現在 R/MATLAB這種語言,就是個熟練過程, 看書你也記不住,函數那麼多。別想著去蹭課,也別被人忽悠想著精通C C++或者任何一門語言,那不是你乾的事。 好好「利用C來學編程」,而不是來學"C語言「,然後如樓上某人所說,盡一切努力提高你的GPA和英語成績,讀研找個好歸宿(比如美國TOP MFE)。其他都是扯犢子。
P.S. 如果不走正常老老實實學習然後找工作的道路,以上的話自行斟酌。更新,猛料。本來喵對語言沒啥挑剔的,來啥學啥。今天duang的一下找到真愛了:F#!入大FP教了!!
終於還是被人邀了:這個問題算是年經貼吧,只不過,去年這個來年經的人是絕望的黑喵我:
一個金融數學專業的弱學生,決心要從頭接觸計算機了,請問各位神礦們選什麼語言作為入門語言比較好? - 金融工程學
當時真的是無比務必的絕望,同班同學一個大摩工作過的印度人跟我說:「Rick,我知道你數學很好,也很努力。但也只是比一般人好而已了,你除非牛到發了N篇計算方面論文那種,不然這些東西你編不出來你的東西就是:a piece of shit,而且那些發文的數學家也都是代碼高手「
你知道那個打擊多大么?本科的尾巴,我一個人閉關兩個月,欣喜的從頭到尾硬推了BS鞅方法一遍,然後別人告訴你,你是屎你不值錢。你有什麼辦法?這個時代簡直就是CS的時代,任何專業,任何方面,不會編程遲早都會變成時代的垃圾被各個領域裡的」礦工「們給轟殺至渣。所以:
要麼死,要麼成為他們那麼目標有了,總得有個核心的方法論吧,什麼?沒有?編程的唯一方法論就是「實現」(多寫)
對,你要補充的所有東西都會從實現的過程中找到,補充的方法本身也去實現比如我是這麼學的:
第一個月:delta對沖是什麼東西?可以吃(編)么?,編一個吧?不會Oop怎麼辦,來個matlab吧,反正是寫數學式子寫一些就出來了。什麼?要寫一萬個?哦,聽說有個東西叫循環試試吧;什麼?大神告訴我在matlab用循環的都是媽的智障?哦,聽說有個東西叫矩陣化,好好玩,我們矩陣化幾個項目吧……
第五個月:什麼?聽說這個時代不會用python的都是媽的智障?哦, @李丞 大人不是寫了個python日記嘛,我搞下來學一學; 什麼?要搞一個python專用 IDE,IDE是啥又可以吃(編)么?哦這是筷子,搞一個;什麼?要學習各種包的用法?……
第八個月:什麼?要我用vba這坨屎? 啊?vba都不會寫的是媽的智障??那我只好編一下吧;什麼?沒有矩陣包!!!沒有對矩陣函數!!!!這是要我死么? 什麼? 這就叫Oop編程思想,我去你媽的Oop;什麼?好處在後頭?那我忍了繼續吧…………第十個月:什麼?C#?要我跟Oop肛正面了,銀價好好害怕嘛。哦一開始還是蠻簡單的嘛,什麼?方法?類?列表?好吧,都是一些工具,用用看吧;什麼?類能生孩子(繼承)? 卧槽,來幾個;什麼?類還能喜當爹(介面)?好吧好吧;卧槽,特么泛型又特么是什麼?什麼?搞不懂這些一輩子都是媽的智障?,我都能接受,你們繼續…………現在: @滿願石@親愛的龍哥 我跟你們講啊,前幾天我搞了一個矩陣包,是C#的矩陣包!Oop的矩陣包!我特么興奮死了!!裡面連chol都有!卧槽,我要干他娘的一炮於是,你一定會漸漸從一個不情願的「rapee」,變成一個自虐傾向嚴重的「M」謝邀。
最近收到很多類似的私信,大意都是:希望以後從事金融工程相關工作,但是感覺到自己的金融工程專業水平(數學編程金融知識等等)較差,如何提高。
雖然本屌並不是什麼大牛,然而作為一個長者,算是有那麼一點兒的人生經驗。既然接受了邀請,那本屌就好好的回答一下,順便可以為以後回復私信作一個備用。
========== 以下是正題 =========
題主在題目中說到:「感覺只學這些課程還達不到金融工程這一專業的要求」。首先恭喜你,你已經意識到問題所在了。
本屌可以這麼說:不僅是你,全國大部分的金融工程在校生(不管本科碩士博士)都會有題主你這樣的想法。為什麼?我覺得是由於如下幾點
- 脫節嚴重。這是根源,我國國內高校金融(工程)專業已經與金融(工程)實務界嚴重脫節,現在國內金融(工程)專業只負責培養嘴炮鍵盤俠。
- 學無致用。很多金融工程專業課,在講蒙特卡羅模擬的時候都是一筆帶過。作為一名低資歷期權研究員,我真想大呼一句________(此處請自行腦補)!實際上,很多期權並沒有解析解,都是通過蒙特卡羅模擬搞出來的。這麼重要的方法,我相信課堂上沒多少老師會詳細(留意是詳細)說的,自己回宿舍動手做過的,更是鳳毛麟角了。
- 沒有方向。現在業界最流行什麼品種的衍生品?如何根據行情去設計一款客戶賺錢、我們賺錢、領導滿意的期權?對沖的時候要是出現誤差,怎麼處理?這些問題,查文獻是看不到的,現在的文獻只會在方法論上搞來搞去(而且他媽的還經常搞錯)。而對於不搞學術的應屆生來說,這些問題恰好又是重要的。這些在學校能學到嗎?學不到。
好了,那該怎麼辦。
其實很簡單的,要擺脫上面三個問題,方法只需要一個:
正正經經找一份金融工程相關的實習,並且認認真真實習(而不是呆)夠三個月以上。親臨業界,
你才會知道,真正的金融工程實務到底是怎樣的。你才會知道,到底需要學一些什麼樣的知識,需要用什麼軟體。而且,更重要的是,你的編程能力將會突飛猛進。
為什麼?很簡單的,因為,領導交待的事情,必須要完成。「小冼,幫我做一個蒙特卡羅模擬亞式期權Delta對沖的程序,10000次,明早給我。」
很多事情還是要逼著你,你才會學得好的……很多同學會說:哎呀我太菜了我的能力配不上實習。
我想說,哪怕你的經歷和簡歷像屎一樣,也請鼓起勇氣投出去,不試試怎麼知道呢?況且,誰他媽一出生就會金融工程的?對於一間公司來說,你做過什麼,固然重要,但公司更看重的,是你的自學能力。舉個例子:
本屌碩士開始第一份實習的時候,連VBA要怎麼打開都不知道。直到今天,我可以用VBA調用Wind的實時數據,然後跑一個某App的二級市場的實時做市報價模型(不要被名稱嚇到了,其實挺簡單的)。這說明本屌很厲害嗎?並不是,只是因為工作要用到,所以我去學,而已。而另一方面,很久以前聽人說SQL對於金融工程來說很重要,然而本屌這麼多次實習,一次SQL都沒用過。想學最前沿的金融工程知識嗎?想知道理論怎麼與實際相結合嗎?
請到機構中去。
點贊數超過50,開啟吐槽學術界下的金融工程模式,並給出一個期權定價的實際應用例子。
======== 居然還真的超過50贊了 =========
======== 以下文字與題目無關 ========來了。
知乎上面有個風氣,喜歡鄙視知網。
我以前不解,現在總算懂了。
最近本屌要做關於亞式期權定價的研究,於是本能地上知網找文章。
結果發現一篇貌似很niubility的發表在某年會上的文章居然把幾何布朗運動下的蒙特卡羅模擬畫成這樣 ↓
幾何布朗運動下的蒙特卡羅模擬,其實長這樣 ↓
後來找到一篇不錯的文章,總結了亞式期權求解的方法。順便放個圖:(咦?好像混進什麼奇怪的東西?)嗯,大概就是這樣。
順便把文章也放一下。
亞式期權定價的比較研究
以上。- C++ 。有錢上Baruch,沒錢就擼一本C++ Primer 。這是萬里長征第一步,等你對泛型都比較熟悉了,看見各種指針都不頭暈了,就可以進行下一步了。此階段目測耗時100h.
- 數據結構。ZJU,THU 都有不錯的網課,隨便挑一個上。視頻看完,題目做個大半,先不求證明,只求實現,等你能熟練擼出一個可以用的堆排序,就可以進行下一步了。此階段目測耗時150h. 註:1和2的順序不能顛倒,最多同步進行,因為數據結構的實現要麼C++ 要麼Java,C雖然也有,但考慮到以後面試還是以C++ 為主,還是直接上C++ 吧。
- 隨機過程。之前是編程基礎,這一門是數學基礎。不廢話,中文英文都行,總之一定要好好學,好好學,好好學。此階段目測耗時100h。註:不要光看書,課後題都做,做題乃是我們這一類智商餘額不足的胖友們學數學最好的途徑。
- 金工教科書。Futures, Options and Other Derivatives. 沒的說,萬物的基礎。強擼一遍,此階段目測耗時100h.
好了,其他的先不管,以上內容都是本科生級別的,光是這些就要450小時(還是建立在你比較聰明的前提上),一天1.5小時就要300天,算一周學習5天,那就是60周。so,題主fighting!咱們一年後再見~
當然,也不能光顧著打擊題主。。另一條路子如下,題主可以考慮考慮,- 學Python. 這個資源就太多了,推薦edX 上MIT 的導論。過一遍,目測耗時100h.
- 利用Python 進行數據分析。這本書主要就是學Numpy 和Pandas,目測耗時80h.
- mongodb. 有了數據就得儲存,選個nosql 類型的資料庫先不用管什麼123 NF,增刪改查學會了再說,目測耗時20h.
- 隨便找個量化網站,別人策略參考參考。Voila!你也是能寫策略的人了!
謝邀
CUFE三學期的課程依次為 資料庫系統 C語言 演算法與數據結構 個人認為這樣的課程設置還是比較合理的,也是有一定的知識容量的。至於題主表示這些內容不能滿足金融工程的需求,這也是很正常的,我國金融工程本科階段的學習確實不能符合實際的需求,這門專業進行深造是相當有必要的。
在我的學習過程中,很多人都犯了一個錯誤,如~認為自己應該多學一點,於是開始去圖書館尋找專業書進行自我提升。結果很多人由於數學知識跟不上,導致學習無法進行;還有部分人三天打魚兩天晒網,一學期仍然碌碌無為。這是一個很慘痛的教訓,人總是高估眼前的收益,低估未來的收益。同時,當一件事做的不太理想時,我們喜歡用未來不確定的收益來麻痹自己。
金工這門學科,確實是師傅領進門,修行在個人。有自學能力很有必要,但是一方面要量力而行,因為金工這門學科作為一門交叉學科,每門課程可能都涉及不同階段不同方向的其他課程,因此在預習時不能量力而行,就很有可能半途而廢,浪費時間精力。另一方面,不要想著有什麼唯一正確的學習路徑,一個完全循序漸進的正確路線甚至是捷徑是不存在的,你不需要做對所有事情,你更需要做了才知道有沒有用。
言歸正傳,我的建議就是,老老實實打好基礎,先把學校安排的計算機課程學好。在學有餘力的情況下,我建議你在大學前兩年中認認真真學一門編程語言,C++ python皆可,C++我推薦C++primer python有一本python基礎教程第二版(封面是黃色和黑色)至於具體的學習方法,知乎這兩個話題的精華應該比我講的更好。Matlab R都不錯,但我更建議你大一大二先學c++ python的一個,儘可能學精一點。而Maltab R在大二下學期甚至更晚再入手也不算遲。很多時候,當我們自學並積累了一定的知識的時候,我們也會大概的知道以後的路怎麼走。所以建議你在大學低年級先打好基礎,做一些能力範圍的事情,當你較好地掌握一門編程語言的時候,你再多和大家交流交流,後面的路就更好走了。至於更高級的編程知識,我並沒有涉及,就不誤人子弟了。
我的這個回答可能很讓人失望,因為我並沒有講什麼乾貨,更多的是我在講一些教訓。但我個人認為我的建議應該沒有錯誤,踏踏實實地學習一門編程語言,比東一榔頭西一棒好太多。人的精力畢竟是有限的,熟練掌握多種編程語言的大神我確實見過,但更多的是據說掌握好幾種,但每種都是使用欠佳的人。
最後,如果你有了想法,請立刻行動。很讚賞題主早早地發現學習中的問題,希望你的學習熱情能夠被很好地引導。(最好刷GPA想辦法出國吧。。)
個人見解,如有錯誤歡迎各位指正。
以上Take it easy. 如果是賣方金工研究,就是會點matlab的作家,你學校裡面那些三腳貓的東四夠用了。
其他的方向就不好說了。面了些讀金工的, 從小本到研究生, 看他們的課表, 沒有啥大殺器, 學的課儘是裝逼用的, 覺得數學,編程, 金融都不深。 技能還要自學啊。。。 不怕千招會,就怕一招毒,不然在團隊里只是個替補
謝邀,其實我雖然專業是軟體工程,但目前只上過一個學期的C程課,所做的實踐也僅僅是老師留的作業而已。畢竟才大一,建議題主可以聽計算機科學導論之類的課(主要講授計算機硬體方面的知識),還有離散數學、演算法課等。
推薦閱讀:
※哪些學習數據結構與演算法的書籍值得推薦?
※物聯網工程這個專業到底怎麼樣?報考哪所學校的物聯網專業比較好呢?
※為什麼中文不能做變數名?
※對互聯網感興趣但數學不好,該怎麼選專業?