第一部分:結緣計算機
1.你為什麼選擇計算機專業?你認為你的條件如何?和這些部落客比呢?
最開始選擇計算機純粹是個巧合。父親是數學老師,而聯考報名自主招生的時候恰好叛逆了那麼一回,誤打誤撞進入了武大的計算機系。與部落格F[1]和部落格G[2]中的幾位非科班出生的前輩不一樣,我有幸在大學裡接觸了這個時代最前沿的技術産業—IT産業。F部落格中的前輩讀《李開複自傳》看到這樣一個觀點:
一個人千萬不能年紀不大,就落後了時代,一定要學會用這個時代的先進技術,那就是計算機網際網路技術。
相比于他們來說,計算機專業出生的我已經赢在了起跑線上。大學四年武大給我的教育雖然跟前輩的北大青鳥比起來專業性略遜一籌,但是讓我從最基本的地方了解計算機。大學開設的課程像作業系統、嵌入式開發、計算機網絡、計算機組成原理等,雖然以後在确定下來的崗位上很難用得上,但是毫無疑問,這些知識讓我更加全面地了解這個系統,在碰到問題的時候能夠用更寬廣的思維去思考。
2.計算機是你喜歡的領域嗎?是你擅長的領域嗎?
學了這麼多年計算機,我一直覺得計算機很對我的胃口。計算機中很多内容諸如算法、資料存儲、資料挖掘等等内容不斷更新,既通俗又充滿挑戰。每一次跑完一個實驗或者完成一個項目都有無限成就感,這也是為什麼這麼多人會喜歡這個專業的一個重要原因。對我本人來說,我比較擅長算法以及機器學習技術,也是我的興趣所在。
3.你熱愛這一專業嗎?你對計算機的熱愛是怎樣的?僅僅是口頭的嗎?
從科班出生的各個大牛口中我明白了計算機這個行業最重要的還是鑽研進去的勁。我很喜歡這個專業,不僅僅是口頭的喜歡。這個專業首先是一個新興産業,它并沒有多少前人的積累或者既定的規則,有太多知識算法等待我們去發掘。去年陳天奇大神提出的xgboost算法,一經開源馬上受到廣泛關注和使用,遂在各大競賽中以優異的成績脫穎而出,成為了boosting算法發展的一個裡程碑。在這個行業中,發明一個算法,完成一個項目,寫出一個程式,無論是什麼方式,都能夠看到他們對這個社會的進步作出的改變。也正是如此,這些改變所帶來的成就感,以及對未來無限可能的向往,成為了我對計算機專業的牽絆。
第二部分:在計算機系裡學習
1.你對你的大學生活有什麼想要吐槽的地方嗎?你理想的大學教育應該是什麼樣子的?跟學校給你的有什麼差別?比較你在中國大學的經曆,你的老師和學校能做到和國外那樣嗎?如果不能,請分析一下為什麼。
對于我自己來說,在武大的學習并沒有多少黑點,但是在自己身上還是有很多需要檢討的地方。首先做過的項目并不多,作為一個計算機學院的學生,沒有多少動手實踐的經曆是一件非常不可思議的事情。理想的大學教育應該是老師能夠從實際應用出發,帶着我們從實際的項目中了解知識。看過外國很多著名大學的公開課,幾乎所有的老師都是通過一個實際的例子讓學生跟着動手去實踐,從中領略知識的真谛,相比之下,中國大學很多老師隻注重于把課本上的知識教給學生,考試考好拿到高分,我認為這是亟待改善的一點。
2.迄今為止,你寫了多少代碼,描述你做的最複雜的軟體項目/作業。
迄今為止,不敢說寫過多少代碼,隻能說是零零散散寫過一些項目,代碼量大概3萬。大學時候做的最複雜一個項目是寫自強app上武漢大學的研修室預定系統,當時剛剛接觸iOS,又是第一次接觸移動開發,大量的東西從頭開始學。項目中跟UI設計以及産品經理初次打交道,認識到了一個項目不隻是有程式員這麼簡單。從最開始設計到不斷疊代修改,一個很小的功能差不多花了一個暑假的時間,不是很大的項目但是印象很深。
3.科班出身和北大青鳥有什麼差別?
引用部落格D[3]中大牛的一段話。
多年以後,我才發現企業要的應屆畢業生就是一張白紙,這些白紙吸墨能力的高低決定你能否找到好的工作,而吸墨能力高則主要是基本功紮實、自學能力強的展現,并非我一直以為的豐富的“實習經驗”。
4.速成的教育訓練班和打基礎的大學教育還有mooc之間有差別嗎?
還是跟上一個問題一樣的回答,大學的基礎教育就像高中國中一樣,并不是說以後這個實體定理或者化學方程式能夠真的起什麼作用,一方面他向我們闡釋計算機這個物件的種種原理和邏輯關系,另一方面也告訴我們該怎麼去學習,這些内容都是一個俗稱教育訓練班不能給予的。
5.學線性代數和機率論的時候,你是否有過這樣的疑問“我們為什麼要學這麼多數學,這和我們的計算機有關系嗎”,你現在是否還有這樣的疑問?對這個問題,你有自己的解答了嗎?那麼其他學科呢?
對,我當時就有一模一樣的疑問。大三加入了實驗室開始看機器學習讓我更早地認識到自己的天真,即使當初這麼認真學的機率論以及線性代數,用到機器學習這些邏輯回歸,梯度下降,SVM等就經常百思不得其解,一個式子卡了很久也不知道怎麼推出來的。更别說現在火熱的神經網絡,深度學習,xgboost,都需要大量的數學知識沉澱才能夠融彙貫通的算法。這是我作為一個計算機專業的學生忽視的最大的一點,也正是因為如此,希望之後的學習能夠亡羊補牢,把數學知識重新撿起來,跟上技術的腳步。
第三部分:未來規劃
1.對于你未來在IT行業的發展,你有什麼樣的夢想或者未來想從事什麼樣的工作?你準備怎樣來規劃你技術道路,職業道路和社會道路?
對于未來,我不太想成為一名程式員,我希望我能夠帶着我的IT知識,走到各行各業中去。衆所周知,人工智能的發展已經把計算機技術帶上了一個前所未有的高度,但是其他行業諸如工業等,雖然或多或少受益了一些,但是跟計算機行業還相差甚遠,我希望計算機的發展不僅僅是能夠帶動這些一般行業,更能讓他們的技術跟得上計算機發展的步伐。未來的路很長,希望未來的我能把握住每一次機會,做到讓自己無悔。
2.實習經驗究竟有多重要?你準備如何積累實習經驗?你希望在企業内實習還是在實驗室做項目?
上面一個引用恰好也回答了這個問題。就我看來,實習的經曆是自己能夠增長閱曆,看看大城市的具體項目中人與人的分工以及合作的過程,這些閱曆是能夠增長自己的見識以及開闊視野的最有效途徑,在這個過程中,自身的思維方式也會随之發生變化。是以相對于企業來說,我更加覺得實習經驗對于個人本身更加重要。如果有機會,我也希望能夠進去企業好好實習一段時間來開闊我的視野。
第四部分:課程期望
1.你對這門課的期望是什麼?你打算平均每周拿出多少個小時用在這門課上?你願意為了一個你感興趣的項目、或得到實戰鍛煉而付出更多時間和精力(包括熬夜)嗎?
對這門課我希望學到一點有意思的并且感興趣的知識。正如前面所提到的,我覺得能夠在老師的指導下做一個讓我感興趣的項目是非常值得的,我肯定會為此付出精力。一般情況下,我打算每周畫半天到一天的時間在這門課上,是以我希望老師一周作業量不要太多,專注于上課的内容留下一點思考或者說實踐鍛煉是最好的。
[1] http://www.cnblogs.com/Tpf386/p/4798437.html
[2] https://news.cnblogs.com/n/531362/
[3] https://www.cnblogs.com/xiaozhi_5638/p/4485805.html
分析軟體
Games(遊戲)
首先我想說的是我最青睐的遊戲軟體,大多數遊戲軟體毫無疑問他們的目标都是盈利。遊戲軟體需要高成本的投入制作以及高次元的宣傳,宣傳力度之強以至于他們不太想投入精力去細化這些宣傳,這也是為什麼我們每次點開視訊總會彈出一些很蠢但是自己都會背的網頁遊戲廣告詞。第一次玩遊戲是在學前班的時候,但是電腦都不算普及,最火的網絡遊戲莫過于盛大公司的泡泡堂,這個遊戲簡單易上手,畫風可愛,遊戲性強。沒有經過多少特别的宣傳遍已經風靡大街小巷。這個遊戲雖然免費開放,但是玩到了一定程度,你不得不去花費現金去購買裡面的增值産品,因為如果不買,就得不到足夠的遊戲體驗,也會增加挫敗感。正是因為如此,現在大多數遊戲都采取了這種盈利模式。時下最熱門的手機遊戲王者榮耀,開發的成本并不算很高,但是每季度都有幾十億的營業額,如此高産的軟體也必然造就了工程師的高薪。
接觸這些遊戲大多數都是因為他們的宣傳,一個遊戲能從萬千世界中脫穎而出宣傳自然是不在話下。因為一個遊戲的上線時間早晚直接決定了他是否能夠生存,而測試遊戲需要海量的時間,這也導緻遊戲軟體通過鼓勵玩家回報的方式修複bug,而并不是一般軟體的自己測試。大一的時候曾經寫過一個簡單的博弈論算法小遊戲,整個過程大概花了兩個月,雖然是第一次做遊戲類的程式,但也着實體會到了寫遊戲的繁雜。而現在我已放棄這些遊戲,遊戲一旦“過氣”,玩家數量就會呈指數下降,最終穩定在一個很低的水準線上,這條線大多數是由一些鐵杆的老玩家組成的。雖然存在但也人去樓空。
Mobile Apps(手機應用)
手機應用是近年來使用頻率上升趨勢最明顯的一類軟體,随着智能機的普及,人們參與互聯生活也越來越友善。類似于遊戲,移動應用app目标也是在于盈利。一個好的app不僅能夠做到高額的受益,還能夠積累龐大的使用者群體以及良好的口碑。舉騰訊應用來說,移動QQ的收入自然不在話下,同時,龐大的使用者群體無疑為他們産品的廣告增添了巨大的價值。
第一次使用移動社交軟體還是在國中的時候,當時家裡新買了智能機,迫不及待地裝上了QQ,一心想着以後就可以更友善地跟朋友聊天了。QQ的最大特點是基本不需要使用者花錢,小的時候還一心想着,即使有Q币這類增值業務,但是像我這類不花錢依然用的很開心的人比比皆是,他們到底用什麼賺錢呢。慢慢地才知道,即使他們當時一分錢也沒有掙到,這些使用者群也是一筆龐大的财富。無論何種騰訊産品問世,在宣傳力度上就已經可以是碾壓同類産品的存在了,更何況他們的産品精益求精,很少有人能發現bug,這也是為什麼騰訊集中了中國一大部分高技術高素質的程式員們。5年後我相信這些軟體依然存在,甚至可能獨樹一幟,因為這個工具具有旺盛的生命力,并且能夠解決人類生存的最大需求,溝通。
Tools(工具軟體)
相比于上述兩種軟體,工具軟體則一般不以盈利為目的。當然,最近工具軟體收費的熱潮也慢慢襲來,但是我們所熟知的python、R等諸多工具都是面向大衆的免費軟體。很多時候他們的目的不在于盈利,有的可能是為了交流鞏固技術,有的為了積累使用者,有的甚至就是單純的開源供大家使用。這些軟體一般也是通過口碑宣傳,有時候聽到論壇或者小組中有人說了一句,其他人附和了一下就開始琢磨怎麼去搗鼓。第一次接觸工具軟體應該是大一剛來學C語言的時候,當時應老師的要求安裝的devc,雖然現在早就已經不用,不過這個工具确實是數一數二的良心好軟體,也為我算法啟蒙打下了良好的基礎,甚至現在一些算法比賽指定的編譯器還是他。
這些工具軟體中很大一部分可能真正的并沒有公司這一說,隻是一大群愛好者利用空閑的時間為這個工具添磚加瓦,比如著名的linux系統。當然現在很多工具也走向規範了,google公司的tensowflow作為時下深度學習火熱架構之一,擁有很強大的技術開發團隊以及精密的版本控制。其中的開發人員工資不敢預測,保守來說年薪應該也有1M刀了吧。
學這些工具當然是一件漫長的過程,他們不像其他app或者遊戲一樣簡單易上手,而是需要用已有知識去開發未知。很多時候當一個工具軟體被用用到了信手拈來的地步時,你已經成為了這個行業的專家了,最簡單的例子就是photoshop。這些軟體随着時間的推移注定是要被技術的洪流淹沒的。但他們其中很多也通過不斷疊代版本保證了生存,比如office等。
列舉你在使用上述軟體的時候觀察到的 “特殊”現象,它們和硬體有什麼不同? 這些能說明軟體的某些本質特性麼?
軟體和硬體最大的不同我覺得應該是軟體像是一個人的思想和靈魂,如果沒有軟體空有硬體這個驅殼毫無作用。軟體通過結合我們生活實際,在硬體及OS這些載體上發展延伸到生活中各個角落,切實解決生活所需。上述提到的這些軟體都是在日常生活中針對某一個需求所設計的,這也說明了軟體本質就是以計算機硬體為載體,滿足人們需求的産品。