今天的文章來自SAP成都一位實習生,曾經和Jerry同在C4C成都開發團隊一塊兒工做過。在Sunshine最後一個工做日裏,Jerry和Sunshine一塊兒吃飯的時候,她曾經聊到接下來的保研打算和未來工做的努力方向。一位大三的學生,對於本身的未來有如此清晰和長遠的規劃,這讓Jerry佩服不已。git
而在結束了SAP成都研究院的實習後不久,Sunshine就實現了她我的規劃的第一步,也就是即將在這篇文章裏給你們分享的她的保研歷程。Jerry在這裏預祝Sunshine未來的碩士學習生活能和當初在SAP成都研究院同樣收穫滿滿。面試
下面是她的正文。算法
你們好,我是電子科技大學一名本科生,曾經在大三下學期時,有幸在SAP成都研究院的C4C開發團隊實習過6個月。數據庫
我很是高興在實習期間可以融入SAP成都C4C開發團隊這個你們庭之中。在這裏,收穫到的更可能是人生的成長和對本身的思考。編程
現在回顧本身這6個月愉快的實習生涯,我總結出對本身將來的研究生學習和職場之路很重要的三點,但願對你們也能有點啓發。網絡
1. 持續學習的能力session
我加入的SAP成都C4C開發團隊負責的是C4C UI框架的開發,使用的編程語言是JavaScript。雖然我在學校裏也作過一些簡單的Web開發,可是當我第一次按照組裏有經驗的同事寫的幫助文檔,在我本地搭建C4C開發環境時,我仍是感到了深深的震撼:源代碼clone下來以後,包含git修改的歷史記錄.git文件夾在內,一共將近1GB,超過1萬個源文件。數據結構
在組裏其餘同事的幫助下,解決了各類本地環境問題,成功地在本地運行了C4C UI以後,我接下來面臨的問題就是熟悉項目文件,確保本身接到開發任務後,能準肯定位到須要在哪些文件上作增量開發。框架
在開發過程當中,我發現本身在學校裏學到的那點少得可憐的JavaScript開發知識根本不夠用,所以JavaScript的持續學習也貫穿於我這6個月的實習生涯中。接下來我發現,開發的代碼寫完只是萬里長征走完了第一步,單元測試,持續集成,檢查產品標準,按照SAP的標準流程發佈新開發的功能,等等都是我須要去學習的。同時,我開發的這些功能,背後是有什麼客戶的需求在驅動?幫助客戶解決了哪些痛點?上下文涵蓋了哪些業務場景?我真的感到要學得太多太多了。編程語言
我很好奇,是由於我是一個初入SAP大門的實習生,因此纔有這麼多東西要學麼?在問過組裏一些有過多年SAP工做經驗的老同事,我才知道,持續學習在企業軟件開發領域裏是一個常態,不論你是一個初出茅廬的大學畢業生仍是一個工做多年的SAP老兵。
我想,持續學習這個原則,不管是我未來進入計算機行業的哪個具體領域進行工做,都是很是重要的。
2. 保持嚴謹的學習和工做態度
在我本科學習期間,在學校專業課上也瞭解了一些軟件測試的概念,對於單元測試有個模糊的認識,可是進入SAP成都研究院後,沒有想到單元測試在這裏是執行得如此嚴格。每次本地用git提交代碼修改以後,觸發對應的單元測試,測試覆蓋率不得低於SAP定義的基準,若是沒有達到,哪怕差1%也沒法提交代碼。這種流程使得每一位開發者都認真嚴謹地對待本身的每一行代碼:完成功能開發只是第一步,更多的精力放在了各類邊界條件(Boundry Condition)的處理和負面測試上。
這篇文章的後半部分我會向你們介紹我那不算順利的保研道路,其中就包含了我各類機試的滑鐵盧。說來慚愧,我後來反思一下,有些我沒有完成的題目,背後的知識點都很基礎。若是我平時在學校的學習,都是抱着嚴謹的治學態度,把這些基礎知識點的方方面面搞透徹,而不是像我如今這樣學個似是而非,以爲本身達到差很少懂的程度就知足,那麼個人機試必定是另一個結果。
3. 團隊協做
在進入SAP成都研究院以前,我對敏捷開發,持續交付和集成等概念也只是據說過而已。很慶幸本身能有機會加入到SAP成都C4C開發團隊這樣一個極具活力,進取心以及凝聚力的團隊。
在這個以敏捷開發模式進行C4C功能交付的Scrum團隊裏,你們各司其職,工做,技術迎難而上,互幫互助,在編程馬拉松等各項活動中都彰顯了團隊的實力以及魄力;各類session分享,每一個開發週期結束後由同事輪流進行的功能展現等方式給我的能力的提高營造了很大的空間;組內聚餐和團隊建設,生日蛋糕會,週末羽毛球等活動豐富了團隊的文化,就如一個你們庭般舒適與團結。
初嘗職場的我學到了不少,無論是從我的能力仍是人生啓蒙。這裏感謝成都C4C團隊的每一位同事,很慶幸曾是這個你們庭中的一員!
結束了6個月愉快的SAP成都研究院實習以後,我開始了新的旅程。現在, "浩浩蕩蕩"的保研之路總算是過去了,在這一路走來,過程雖然波折艱難,但皆是人生成長。一路的探索追求中,吸收到了很多的經驗教訓,因此記下來,但願能給以後的學弟學妹們一點啓蒙。
前期準備
成績:毫無疑問,好的成績是通往學校的敲門磚。要想在大三結束後得到保研資格,須要年級排名靠前的成績;想要在申請學校時不被拒絕,須要好的成績;想要去到理想的學校,更須要一個好的成績。並且,成績排名越前越好,由於若是想申請像清華北大這樣的學校,不是前1%是不可能的。
準備時間:固然是越早準備越好,我的推薦是最好從大三上學期結束後的寒假開始,就能夠開始關注各大保研論壇,看看過去幾年優秀的帖子,找好本身的定位,明確本身的目標以及各個階段的複習內容以及計劃。同時,這個階段能夠開始機試題目的練習。(做者當時沒有意識到保研之路的艱辛以及競爭,準備得太晚——四月份才正式開始,所以,致使參加夏令營時準備不充分而遭遇的各類滑鐵盧慘敗經歷)
簡歷:簡歷就像是一我的的門面,打造一份精確而且出彩的簡歷的重要性不言而喻。簡歷最好突出學習成績,同時獲獎經歷,科研,項目經歷這幾個方面須要濃墨重彩。但要注意一個大忌就是不要一味爲了彰顯本身而過分的誇大,吹捧,將本身不夠熟悉的方面寫在簡歷上面,這樣你在面試的時候將會被懟的很慘,所以簡歷上面的每字每句都須要慎重。
另外,簡歷的書寫能夠採起迭代的方式,每一版本能夠在前一版本的基礎上不斷地修改,精細,提煉。
算法機試:正如網上流傳「得機試者得天下」,在夏令營各大學校中,如清華北大,中科院計算所,南大等都會有相應的上機測試,經過這種方式直白的考察一我的的代碼能力。所以,在前期的準備中,針對機試的準備是很是重要的,並且必須開始得早,由於上機寫代碼的能力不是簡單的一兩天就可以提升的。
在我四五月準備機試的過程當中,因爲白天在SAP成都研究院實習上班,天天只有晚上的時候刷題,時間,效率都很是低下,度過了比較煎熬的一段時間。也正是因爲機試方面的準備不充分,使得我參加的夏令營都全軍覆沒。對於機試,建議必定要有充足的時間準備,而且要有規律,連續性。
部分刷題網站:poj(北大),leetcode,pat(浙大),牛客網,VJ等等,刷題網站不少,選擇適合本身的就行。
計算機基礎:在保研面試環節中,除了針對項目經歷對學生的工程,科研能力的提問外,爲了考察學生的專業基礎以及思惟方式,老師都會對相應的計算機相關的課程基礎進行提問。
根據個人面試經歷,被提問的頻率大體按照下面的順序排列,固然每一個學校不必定徹底相同:
算法與數據結構>高數>計算機操做系統>數據庫>計算機網絡>計算機組成原理>編譯原理
若是時間充足,複習書本固然是最全面,最穩固的方式了;若是時間不夠充裕,也不必將大量的時間都投於此,則能夠重點複習常考,核心的知識,網上一般會有各門課的知識點總結,進行理解記憶即好(學會利用谷歌度娘~)
申請材料:申請學校夏令營或預推免(具備得到保研資格後參加學校的推免面試的意思)時通常都會要求提交不少的材料,如申請表,我的陳述,研究計劃,排名證實,成績單,專家推薦信等等,這些材料最好提早準備,否則可能後面蓋章什麼的讓您手忙腳亂。
夏令營
大多數夏令營通常集中在7月份,6月開始出相關的通知,但也有比較早的,像清華叉院,南大的lamda實驗室和上海交大的直博都是在6月,所以你們必定要儘早關注各個學校官網,或是各類論壇等消息通知,若是由於錯過期間而沒有去到想去的學校就得不償失了。
我當時抱着多嘗試的心態,因此報的比較多(9個),但因爲今年保研競爭異常的激烈,因此最後入營的只有計算所和南大。
7月15日~20日 計算所
計算所的夏令營比較長,有五天,前兩天主要是各個實驗室的介紹以及相關的論壇講座,主要讓你們對各個實驗室有個更清晰的認識便於選擇一個實驗室參加考覈。後三天便是各個實驗室開展的筆記,機試,面試工做,各個實驗室的形式不同。
我當時選擇的實驗室有機試和麪試,結果是二者綜合起來的成績。機試是頭天下午,但因爲機試題目比較難,準備不充分再加上又是第一次等各類因素,機試結束後整我的跌到谷底,對次日的面試根本不抱什麼但願。因爲到面試還有一段時間,而後就去其餘的實驗室看看還有沒有機會參加,所以也參加了一些機試筆試,一樣作的很不理想(沒錯,就是太菜了~)。次日面試,因爲面試人多時間比較緊,因此面試時間不是很長,感受還將就,但機試太差最後仍是被刷了!
如下羅列一些遇到的問題。
機試:
一、真假式輸出 (棧)
二、揹包問題,而後輸出哪些揹包?
三、拓撲排序(孩子糖果貪心)
筆試:
一、排列組合?
二、快速排序的實現?
三、最長遞增子序列?
四、英文翻譯?(甚至有詩歌)
五、寫一下BP模型的推導過程?
面試:
一、數學建模主要負責什麼?能講一講怎麼實現的,題目要求是什麼?
二、C語言中的static有什麼做用?
三、Linux如何實現相關的原語操做,好比copy,如何進行具體實現的(系統調用)
四、棧能夠用什麼進行實現?
五、說一下dijkstra算法?如何進行優化?
六、你最喜歡的一門課是什麼?爲何讓你印象深入?
七、你的編程能力怎麼樣?以爲本身的機試如何?是怎麼進行刷題的?
7月24日到26日 南京大學
在去南大的整個過程當中,心情比較低落,對於機試也有必定的恐懼心理。南大一共兩天,宿舍條件真的極好(四星級酒店),頭一天也是參加實驗室的宣講,介紹,與老師交流。
由於在此以前我已經提早聯繫過老師了,因此就基本留在宿舍中準備機試(據說南大的機試是很是難的,整我的對機試都是畏懼的)。次日上午先是面試,主要問一些項目經歷以及相關的計算機基礎,感受還不錯,心想着下午機試正常應該沒什麼問題….然而,事實是殘酷的,題目確實比較難,在加上現場一些情況連連,機試,又敗了。
機試:
一、最大子矩陣(dp)
二、尋找n中位進制中1不相鄰的個數(斐波拉切數列的變形)
三、最大遞增子序列的變形(須要進行轉換成這個原型)
四、Dfs搜索
五、各類條件限制雜合
面試:
一、操做系統的死鎖是什麼?哲學家進餐有哪些實現方式?
二、存儲過程以及觸發器?爲何要使用存儲過程—>預編譯、提升代碼的屢次利用
三、說一下快速排序?如何尋找第k個數?
四、用英語介紹一個項目?
五、數據庫的ACID特性,事務回滾,如何解決數據的不一致?信號量,共享資源保護。
就這樣,我全部的夏令營就這樣以失敗了結,整我的籠罩在失學的邊緣。在悲傷之餘則是將全部的但願寄存在預推免,所以,整個暑假,都在學校全力備戰着……
預推免
到了九月,個人戰鬥再一次打響了。可能因爲前一個月準備得比較充分,因此面試表現還不錯,順利拿到了中科院的offer。
最後一戰浙江大學,因爲浙大隻有直博夏令營,而碩士的招生是在預推免。浙大的第一關是英語,其形式是抽取紅白紙,當時運氣賊差抽到的內容徹底看不懂沒聽過,因此英語關表現得很差,接着開始問項目,基礎知識等的,整體來講問個人比較難,比較深,不少都須要徹底的掌握才能答出來,因此不少點都沒能答出來。所以結束後整我的心情沮喪,覺得就這樣與心儀學校擦肩而過。
當最後公佈結果時,看到單子上面有我時,整我的都是熱淚盈眶的,並且排名還比較靠前,後來仔細想了想爲何,或許問的難,問的深並非壞事,老師只是想探查你瞭解的深度,只要在這個過程當中你很好的表達出本身的一些思惟方式和看法,大方地向面試官展示出你的實力,足矣!
機試:
一、鏈表的移位
二、快速排序算法的相關實現
面試:
一、斐波拉切數列的幾種實現方式,而且比較複雜度
二、你對操做系統這門課的理解
三、cache的幾種映射方式
四、講一下極大似然算法
五、矩陣的秩?線性相關,線性無關?
六、講一下最短路徑的優化問題?
七、講一下ARIMA算法(數學建模中用到)
後記
機會是留給有準備的人的,只要明確目標,一路向前,作好準備,機會和幸運終將走到你的身邊~
要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":