當前位置:
首頁 > 最新 > 學長來信57:給學弟學妹的一封信

學長來信57:給學弟學妹的一封信

註:SDUTACM從2010年開始有了第一批畢業生(2006級隊員),到今年即將畢業的2014級隊員,已經有很多參加過ACM集訓的隊員在IT行業工作、實習或繼續讀書深造。很多隊員經常和我聯繫,給我、SDUTACM和學弟學妹帶回很多好的意見和建議。雖然他們已經離開或即將離開學校,但是他們一直在關注SDUTACM,仍然在陪伴著我們成長。

今天發表自動化2011級本科計算機2015級研究生趙世華的一封來信,世華學長現在已經拿到滴滴出行的正式入職Offer,在北京工作。希望他的來信能給大家帶來思考和幫助。謝謝世華!

期待能收到更多學長學姐的來信!

========學長來信57=========

給學弟學妹的一封信

2011級自動化本科2015級計算機研 趙世華

2017-01-11投稿2017-09-23修訂2018-02-27再修訂 於北京

跟學弟學妹們分享一下,從學習計算機課程到現在互聯網行業實習的一些經驗,希望能對跟我情況相似的同學有幫助。

學習計算機課程:

我本科是自動化專業,研究生跨考的計算機。與大多數考研的同學不同,我沒有考本科的專業,對計算機感興趣,當時對行業做了一番調研後,決定跨考計算機,對沒接觸的一些課程開始自學。身邊的同學都很奇怪,哈哈。

當時本科的專業主修單片機,用C語言寫單片機的應用程序,學習了C語言,發現自己對C語言很感興趣,主要表現就是比學其他課程更用心,學起來更快,C語言是當時所有課程中唯一一門認認真真聽了每一節課的課程。當時不知道ACM,也不知道行業是怎麼個樣子,就一本C語言書,每一個例子都自己寫一寫。因此C語言基礎比較好。後來結合硬體寫過一些彙編。

跨考計算機時,兩門專業課,計算機組成原理和數據結構,跟計算機專業學生不同的是,我覺得計算機組成原理簡單,而數據結構比較難。後來也是把數據結構那本書讀了好幾遍,每一頁每一句都看,也不知道哪些是重點,硬生生的扛過來了。就這樣,正式進入了計算機學院。

所以我的感悟就是,興趣就是最大的動力,當發現自己喜歡一個方向的時候,上網查一查這個行業活力怎麼樣,問問相關的老師是最快最直接的方法。堅定了方向,就掐著點起早貪黑的學習吧。非計算機專業,但熱愛編程打算將來從事互聯網行業的師弟師妹們,在本科階段能在ACM中歷練是一件很幸運的事,多跟老師交流,可以了解很多正確的學習方法。同時要注意一些課程的自學,蹭課也行。

研究生階段的學習與實習

因為我是本校的,大四結束之後的暑假就直接來報道了。我的導師根據我的情況,推薦我去ACM培訓,正好當時是夏季集訓。到了ACM發現,有些學弟學妹很厲害,氣氛一直很緊張,每天都在寫程序、調試程序。C語言部分由於基礎還行,很快就完成了。到了數據結構部分,速度慢了,真正的開始應用數據結構,對於之前的自學,收穫頗豐。做完數據結構部分,自己的代碼能力和調試能力真正建立起來。下面是一年前剛開始實習時寫的一段感悟。

ACM中的感悟:(當時參加ACM暑假集訓的一些想法)

1、編程能力,調試能力。當清楚一個問題以後,要有自己的想法,然後去寫程序。因為我進ACM培訓的目的不是競賽,所以相比結果我更看中實現的過程。所以一定要自己來,有問題就問,但不能參考。調試程序的過程就是帶來提高的地方。

2、不投機取巧。一些典型的數據類型都要自己實現,不去調用已經封裝好的方法(我當時不會調,嘿嘿)。當接觸實際項目時,那些東西一學就會,然而演算法的思想和實現能力以及調試演算法的能力不是所有人都具有的。

3、要意識到的一個問題。因為在ACM我自始至終都在用C,目前實習C也是主力。跟做題相比,工程上的程序要求更嚴格。有些問題在做題時會被忽視,比如說在做題時,malloc後你可能沒有內存分配失敗檢測的習慣,甚至沒有free的習慣。這些在工程上是致命的。

4、數據結構。這個太重要了。現在實習在寫一個程序時,我會在心中搭好框架,比如將問題抽象為圖,或者在內存中維護幾條鏈表,或者幾種結構搭配。剩下的就看編程的功底了。

5、回顧與積累。在ACM中我接觸的高級題目不多。但是數據結構部分做了兩遍,C的做了三遍。演算法的實現能力就是這樣建立起來的。然後學習機器學習的時候,就有能力去實現簡單的機器學習演算法。這樣學習起來很有效率。所以一些重要的題目要做好記錄和總結。

6、習慣養成。在ACM中會養成寫代碼的習慣。每天寫寫代碼,不能讓手指閑著,即使沒有任務,也可以做一些總結。

實習崗位的感悟:(當時室內定位演算法崗位實習的一些感悟,主要時針對當時的情況,相對現在可能比較淺一點)

1、演算法的實現能力,調試能力。(這是最重要的,是一切的基礎)

2、C、Java、Python和Matlab(這幾門語言要會,目前對效率要求較高的地方我用C寫,有時為了跟服務端配合和縮小工作量就用Java,Python做字元串處理特別好用,Matlab或者Octave是科學分析必須的,做科研必須會)。

3、數據結構、機器學習(思想,原理)。

4、數學、英語。(看文獻和文檔真的需要)

目前還有很多東西要學,與大家互勉,共同進步。感謝老師們對我的引導。

後記:

研究生階段有段時間對嵌入式Linux軟體很感興趣,折騰了好一陣各種各樣的Linux系統(現在也挺喜歡玩一玩一些新的Linux發行版),收穫是,能夠熟練使用Linux,熟練使用Linux命令。這些在工作中很實用。

在學習的過程中十分重視機器學習方向,學了一個公開課,吳恩達的機器學習,英語的課程(有中文字幕),一句一句的分析,跟著推導,筆記記了整好一本16開的挺厚的筆記本。機器學習演算法的基礎從此建立起來。每天在實驗室學這個,大約用了一個半月,學完整個課程。十分受用,就目前互聯網行業的趨勢,研發崗位必須要掌握機器學習演算法。後來針對做的項目,重點學習這方面。

下面是剛來到滴滴出行實習時,寫的一點認識和經驗(註:2017-09-24在回京高鐵上手機編輯的):

做技術的一般都沒有什麼華麗的辭藻,首先感謝劉老師的關心,分享一下我的一些認識和經驗給ACM的師弟師妹。

一般談起在ACM的經歷,我會說十分感謝我的導師趙磊教授推薦我去ACM受點「折磨」,當時會因為一個問題或者一段代碼熬到很晚,但coding能力直線提升。這段經歷可以去掉一個入門者的一些眼高手低的想法,先老老實實把代碼能力和一些演算法思想建立起來,這是基礎。吃苦是必須的,沒有聰不聰明,只有用不用心。

剛開始實習的時候,認識到演算法最終都是要落實到工程中的,然後學用JAVA做工程,工程上的C的內存管理等等。然後做演算法肯定要處理數據,一定要會一種腳本語言。我認為Python是不二之選,不僅處理數據很方便還可以用它來做很多有趣的事情,比如自己寫個爬蟲(這個純屬寫著玩)。處理數據只是學它的初衷,後來發現重點是很多優秀的演算法都有它的實現,可以去調用,去理解,加快學習效率。並用它快速實現自己的方法,評價自己的方法。

以上是剛開始的階段,克服一些學習的障礙,後來就不愛談論什麼語言和工具之類的了,重點放在演算法的學習上,開始上道了。然後就要說說作為一個寫演算法的一些認識了,也是面試一名演算法技術人員的必備。首先理論基礎要紮實,不僅要知其然還要知其所以然,重要經典的地方還要會推導。所以請不要逃數學課。然後多看相關方向的論文,了解前沿方法,多向一些大牛請教,然後自己去實現那些方法並做一些事是關鍵,有相關方向的工作經驗是很大優勢,長期的從事一個方向自然會積累下很多的經驗。多做項目,這樣可以體現自己能力。ACM的coding能力也是一大優勢。

總而言之,就是需要不停地自學,技術更新很快,積累的經驗最是寶貴;有一個專一的方向的同時,還要拓展自己其它方面的技能;有一個長期的逼著自己幹活的環境挺好的,不停地對自己有更高的要求。

2017年7月應聘到滴滴實習,在地圖部門做演算法研發。2017年10月份拿到滴滴出行的正式offer。

到目前感悟最深刻的,還是需要不停的學習,大牛很多,多請教很受益。認認真真做事,踏踏實實學習一定會有提升。

========================

謝謝世華的來信!

PS:有段時間沒有整理學長們的來信了,今天整理世華學長來信,從來稿到發表已經過了一年,時間都去哪了。再次感謝世華學長!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 SDUTACM 的精彩文章:

TAG:SDUTACM |