【人物素描】面試
大學期間,擔任過班委,加入過學生會,參加過社團,拿過獎學金......而印象最深入的莫過於參加並組織過ACM集訓,以及參加過導師的國家天然科學基金項目了。畢業時順利拿到一波offer,並在騰訊SNG-PC客戶端開發工程師崗和百度大數據部-機器學習數據挖掘工程師崗之間艱難抉擇,最終放棄了企鵝,衆裏尋他籤百度。算法
【興趣是最好的老師】數據庫
2012年9月4日晚,剛來到大學的我對大學充滿着好奇,憧憬着接下來的四年裏豐富而美好的大學生活。當時我來得有點早,寢室還沒分配好,就暫時住在學長們的寢室裏。學長們很熱情,對我說他們的書不少,能夠隨便翻看,就這樣,我大學接觸的第一本書即是《讀大學,究竟讀什麼》,如今想來,裏面的不少內容對個人大學成長仍是頗大的(後面將會提到)。編程
大一,忽然融入一個新的環境,新老師,新同窗,新課程,而此時也正是培養興趣點的重要時刻,畢竟大多數人對將來的四年仍是懵懂的。大一里,我對C語言慢慢的產生了興趣,從不喜歡提早預習的我總能提早一步預習完,甚至比老師上課的節奏快不少,一下課我就去向老師請教仍然不理解的點。課後也會主動把課後習題本身作出來。因爲當時尚未電腦,便手寫代碼,人工檢查。後來有隻室友帶了一個臺式機到寢室,我就隔三差五在他電腦空閒時把我平時積累的手寫代碼敲出來,檢查寫得有沒有問題,就這樣我愉快地學完了C語言。大一下,學校又開設了數據結構和C++,此時我發現學校發的課本根本知足不了我了,錯誤多且講的並不全,我便常常跑去圖書館借書來一塊兒看,彌補課本上沒有講到的知識點。小程序
大二,正值導師的項目招人,想着在項目中可以接觸到更多新奇的東西,也許能更好地挖掘和培養本身的興趣,我便抱着去試一試的心態加入了。沒想到,一入項目深似海,餘下三年成路人。在項目中我發現原來本身寫的代碼能夠作這麼多事,能讀取和處理圖像,能模仿神經網絡的鏈接來實現機器的智能學習,能和人進行交互並概括一些事物的規律......更激起了我對編程的興趣,也促使着我更努力地去學習更多的知識來充實本身。服務器
如今,我能夠確定的說,正是由於當初對編程創建起的興趣才讓我順利地走上了編程的道路,在這條路上我沒有感到艱辛亦或後悔,偏偏相反,編程的過程帶給了我許多快樂!網絡
【時間是最寶貴的財富】數據結構
大學相比高中,最明顯的特色就是本身能掌握的空餘時間變多了。高中,天天的時間都像已經被學校裁剪好的方格,吃飯、睡覺、玩耍靠後站,其他的即是一節節課程的學習時間了。而大學,咱們對時間的分配有着絕對的主動權,卻驚愕的發現身邊不少人失去了高中的激情,更沉迷於打遊戲,陶醉於看視頻。有段時間我曾反覆問本身:高中爲何要那麼拼,難道就是爲了如今在大學能隨便消遣?不,個人心裏告訴我:那時候,也許是爲了本身心中的夢想,亦或是爲了回報爸媽及老師的期待,亦或只是由於學校的制度,那時的咱們必須珍惜時間用來學習,爲考得一個好成績,上一所好大學。而大學的咱們,要爲了本身!如今消遣的確是過得舒坦,可是幾年後畢業的時候,是否是就會應了那句話「畢業即失業?」而後又在「最難就業季」中徘徊並迷茫着嗎?併發
若是說世界上有一種東西是公平的,那必定是時間。人總會去仰望別人,爲何A那麼牛?爲何B什麼都會?而仔細觀察他的生活就會發現,由於他能在別人玩耍的時刻抓緊時間學習,充實本身。固然,收穫的多少並不必定與付出的時間成正比,還與學習的方法等有關,但我相信也許「天道不必定酬勤」,but「天道必定不酬懶」。因此我一直堅信,若是我作得不夠好,必定是我專心作這個的時間還不夠長,或是個人方法還不對。因此無論作什麼事,我都儘可能找到最適合本身的方法,充分利用本身的時間把它作到更好。機器學習
到了大四,課基本沒了,空餘時間更多了。固然要面臨的也就更多了,艱辛地找工做或者是奮力地考研。找工做的時候就會發現出來混老是要還的,過去三年裏沒有認真上的課,沒有記住的知識點,會在求職過程當中顯露無疑。身邊不乏有這樣的聲音:「要是當時認真聽一下**老師講的課就行了」、「要是當時大一大二沒那麼貪睡貪玩,多學點東西就行了」「要是...就行了」,但是,過去的都已通過去,時間不會再給咱們第二次機會讓咱們從新來過。因此,咱們要作的,莫過於珍惜每一秒可以珍惜的時間,作本身想作的、該作的、要作的事。
《讀大學...》中有說到一句:「草木能夠在校園年復一年地生長,而咱們卻註定要很快被另外一羣人替代……」。大學四年一過,學校裏的什麼東西咱們什麼都帶不走,咱們惟一可能獲得的就是這四年裏收穫的知識、經驗以及人脈,因此當有人問我大學裏最大的收穫時,我想就是這些吧。校園生活中,常常能夠聽到相似於「老學長」的說法,我想,這個老不只僅是說年齡上比學弟學妹們要大,還表明着另外一種說法「老油條」吧,大一大二廣泛比大三大四的更有激情。時間能夠證實不少東西,同時,時間也能夠帶走不少東西。大學裏咱們能保證不被時間帶走的就是已經紮根到咱們大腦裏的知識了,因此在大學這段時間裏知識的積累即是最大的財富。
【思考是進步的必經之路】
「一個通過獨立思考而堅持錯誤觀點的人比一個不假思索而接受正確觀點的人更值得確定……」——《讀大學...》。不少時候,不是咱們不會學習,而是咱們不會思考。咱們可能已經習慣了被動的接受,而不是主動去思考。就拿我來講,纔開始接觸編程時,我也是記住書上的說法和寫法,而當要記的愈來愈多時,或者是在作須要進行變通的題目時就發現,以前沒有通過咀嚼的知識點變得一無可取。我就嘗試着去理解而不是記憶,看到一個語句或者說法不可以徹底理解,就仔細找前面有沒有相似的鋪墊,找不到再去其餘書上找或者到網上搜別人的博客分享,再把仍然有疑問的記錄下來,等課間時和老師探討。好比在學習C++的時候,最開始只是在記憶書上的用法階段,看了書上一個例子,就私覺得C++不過是改了下頭文件,改了下輸入輸出的方式。而在我深刻思考以後才意識到這樣的想法太幼稚了,由於這並解釋不了爲何會多出一句使用命名空間。通過思考和查證後得知,std是C++裏最大的做用域,其中包含了衆多標準庫裏可用的標識符,就連用來輸入和輸出的cin,cout都是std裏定義好了的全局惟一的不可被複制的標準輸入輸出流對象。<<和>>也不是當初C裏的左移右移位運算,而是被重載了的運算符。每次當我認真思考的這些語句的時候,總會從一條語句中牽連出不少知識點,而每一個知識點又會讓我對一個未知的領域有新的認識,從而可以不斷讓本身學到新的東西,不斷地進步。
之前我很相信書本上的東西,以爲書上的知識表明着權威,可在我慢慢學會思考並推敲細節後發現,基本上大多數書上都會有或多或少的錯誤,讓我想起了那句「盡信書不如無書」,今後我便抱着懷疑的態度去看書,有比較迷糊的點,不是去記住它,而是去思考爲何是這樣,本身實在想不明白就經過各類途徑查證,有時候就是查着查着發現書上是錯的。這裏吐槽一下咱們的數據結構教材,不知是出於什麼緣由,這麼重要的課程居然用的是咱們學院本身編寫的錯誤連篇的教材(但願學院在選書的時候慎重考慮,畢竟數據結構原本就比較難,對於編程人員來講重要性就更不用說了),固然這些錯誤也讓我更加堅決地多去圖書館借書看,當多本書對某個知識點的說法不一致的時候,天然也是使用的人最容易理解錯的地方。隨着借書愈來愈多,我發現機械工業出版社和電子工業出版社出版的計算機相關書籍質量仍是相對比較過硬的(插一句,想找到某一領域比較好的書籍途徑有不少,好比去看豆瓣書評、各大在線賣書商城的銷量和讀者評價、網上大牛分享的經典書單等)。
不僅是在讀書和編程,在任何領域想要學習和進步,都離不開思考,只有真正思考並理解了其中的真諦,才能融會貫通到之後的學習和生活中。與你們共勉一句頗有意蘊的話:「不把信息看成知識,不把收藏看成學習,不把閱讀看成思考,不把儲存看成掌握。」。分別表明咱們須要:概括總結、消化吸取、深刻思考、應用實踐。(固然每一個人都有本身的理解)
【實踐是檢驗真理的惟一標準】
這句話咱們每一個人應該都聽過無數遍,我最開始聽到這句話的時候,也以爲它像是一個空洞的口號,並不覺得然。直到大二,我才慢慢領悟,只有本身親自動手去實踐了一些東西,才能快速地去理解、掌握並運用它。大學,再也不是高中那樣天天聽着老師們的諄諄教導,作着那些爲了應付考試的題目,更多地是經過本身去實踐來不斷地學習。就拿計算機學院都會學習的編程課程來講,只是上課聽聽講,下課作幾道老師佈置的做業是遠遠不夠的,只有本身課下主動去理解相關的知識點,同時多看其餘的書,並多練習手寫代碼,敲到電腦調試運行看執行結果,才能真正熟悉而後慢慢熟練。不動手敲出來運行,咱們永遠也不會知道他們的運行過程,也不知道咱們本身寫的代碼是否是真的能夠運行,就算能夠運行,也不知道究竟是否可以獲得想要的結果。還有不少書本上是沒法教給咱們的,如調試技巧,編譯選項,開發環境設置選項,項目屬性配置等,都須要不斷地實踐才能真正掌握。
在大一一次年級大會中,幾位學長給咱們來了一場ACM宣講會,因爲我對編程挺感興趣,並且這也是一個國際性的編程賽事,我就被吸引了,去報了名,並參加了協會的各類專題講解和線上練習。期間在學院組織的程序設計大賽中順利過了初賽,又接連過了中級賽和高級賽,有幸得到與其餘過了高級賽的小夥伴一塊兒去中國地質大學參加華中賽區邀請賽。雖然很遺憾沒有在這場比賽中突出重圍得到獎項,可是在這個實踐過程當中讓我收穫了不少,開闊了眼界,結交了很多編程達人,還意識到了本身的不足。因爲我自身緣由,錯過了接下來的一次重要的暑假集訓,此次集訓分專題講解了不少比賽中出現的題目類型,並進行集中練習,後來的區域賽都是依據此次集訓中的成績表現安排參賽隊伍。在後來一次針對下一屆的暑假集訓中,正好我留校,就與其餘兩位小夥伴龔細軍和段先宇一塊兒組織完成了暑期集訓工做。通過ACM這種系統的專題訓練,讓我對算法和數據結構更加熟練,也更加鍛鍊了我思考問題時的嚴謹性,畢竟ACM的題目陷阱巨多,稍有疏忽,滿盤皆輸。
雖然大一我也有實踐寫書本課後習題的代碼,並在電腦上調試執行,也參加了ACM訓練。但我深入感覺到這樣少許地實踐只能讓我熟悉這種語言的語法和數據結構相關知識,而不能讓我學會去把它們運用到實際狀況。所以我主動加入了導師的國家天然科學基金項目,但願能經過項目中的實踐來提升本身的編碼能力和綜合運用能力,同時拓展本身的視野。從項目中的演化算法分析到實現、圖像文件的讀取到像素級處理、OpenCV的安裝配置到輔助庫的編寫和打包發佈、演化算法到交互式機器學習、人工神經網絡到演化函數矩陣、卷積神經網絡到卷積自動編碼器、受限玻爾茲曼機到深度置信網絡、鬆散代碼的拼湊到大型項目解決方案的集成與部署、自制軟件系統本地測試到租用獨立ip服務器進行線上運做、寫一些小說明文檔到申請軟件著做權再到發表論文......
經過這些實踐,我不只在編碼能力和習慣上有了很大程度地提升,並且在與老師以及項目組其餘成員一塊兒討論中讓個人團隊協做能力、表達和溝通能力都獲得了提升。在項目進展中,還會常常遇到不少對我來講全新的問題,可能一開始是一無所知,從本身首先獨立思考,到從網上搜集整理資料,再到與其餘成員探討,遇到的問題到最後都迎刃而解。如今回想大學生活,以爲項目中的學習是讓我以爲最充實的一件事。而且很重要的一點是,這些實踐是絕對不可能只經過課原本學到的,而必須是本身親手去作,去思考,去探索。在找工做的面試中,這一點也體現地很明顯,基本上都會考量應聘者的動手能力,最多見的就是當場手寫代碼了,相信這也是檢驗動手能力的廣泛標準了。固然面試中的寫代碼,考驗的不只僅是寫代碼能力了,還有語言表達能力——向面試官表述本身的思路,溝通交流能力——與面試官交流題目的隱含條件和要求,思惟能力——嚴謹性、創新性、發散性等。
除此以外,我還喜歡在空餘時間本身寫一些小程序小工具。憑藉對算法的熱愛,本身寫代碼實現了身份證號的真僞校驗以及自動生成有效身份證號,實現了Luhn算法完成了銀行卡號校驗;憑藉對數據庫的相關性分析,寫了一個快捷查分客戶端;出於對QQ的好奇,動手編寫了仿QQ的聊天軟件;針對經常使用截圖軟件必須獲取焦點並編輯才能保存,簡單實現了一個可以經過全局快捷鍵在不獲取焦點的狀況下後臺保存截圖。
總之,實踐是不可或缺的,只有實踐才能講它們內化爲本身的知識儲備,只有不斷地實踐才能在適當的時候將它們運用自如。
【決心,信心,恆心,是實現夢想的階梯】
每一個人或多或少都會有本身的夢想,要想實現他們,首先就必須堅決不移地去向那個方向奮鬥,只有下定決心,纔會讓本身老是想着逃避或退縮。其次就是信心,這也是一個可以起很大決定性做用的東西,以加入項目爲例,可能老師在招人時並不要求加入的人什麼都會,直接去給他解決問題,而是但願帶着一羣有奮鬥精神和學習能力的人一塊兒來完成某項任務,若是是真的有興趣,即便加入前什麼都不會,相信在那種學習氛圍下,以及老師的帶領下,很快就能學到東西。再舉個找工做時栗子,在互聯網行業,國內企業中BAT陣營算是一線級巨頭了,擔憂本身的學校出身很差,或專業不對口,或項目經驗不足,或學業成績不是很好都是多餘的,在成爲定局以前,全部的指望都是有可能實現的,而事實上不少這些擔憂都是無謂的擔憂。要相信一個個體還表明不了一個學校或者一個專業的水平,項目經驗也不是惟一的錄用準則,學業成績對於工做並無太大的相互關係。若是想去某個公司,或者某個職位,就大膽地去追求,固然也得有所準備,好比看對應的公司,相應的職位的招聘要求、基本技能的重視程度等。除了要自信,還得相信「機會只留給有準備的人」。最後還須要有的就是恆心,在編程這條路上,也許很漫長,也許很艱辛,即便只是學習一門語言,也不是幾個月就能達到徹底掌握的程度。若沒有恆心,一切都是惘然。
【寫在後面的話】
題解:大學要教給咱們的遠大於找到本身的興趣、充分利用咱們的時間、學會獨立思考、學會本身動手實踐。
下面說一下關於我筆試面試經歷。因爲在實習生招聘階段(3月到4月)以前沒有太留意,錯過了一大批筆試,匆忙中面試了騰訊和阿里結果顯而易見。以後便不斷補習計算機基礎知識,經過看書和看大牛博客,而後本身總結重點、難點和盲點知識。重點複習了語言基礎(個人方向是C++開發,因此天然是C/C++語言相關特性)、數據結構和算法(泛型編程)、操做系統(併發編程)、計算機網絡(網絡編程)、數據庫(數據庫編程)。這些零散的知識點平時編程中可能沒有頻繁使用到印象也不深入,可是在筆試和麪試中極可能會考到,也是必需要掌握的知識,所以在筆試面試前要複習準備一下頗有必要。
7月份開始就有一些公司開始了校招內推流程。我收到了阿里的電話面試(算法工程師崗),面了1個多小時,因爲面試經驗仍不足並且對於面試官提出的大數據量上的算法知識很是薄弱,就沒了迴音。以後專門花時間把大數據量相關的算法研究了一遍,並本身動手實現了部分算法。BAT這類大公司校招較早,在8月底9月初就開始了在線筆試,我順利經過了百度騰訊的筆試,阿里今年出現了大量縮招現象,沒有了後續環節。筆試中基本原理和計算類題目與課本知識相關性很是大,此外還有智力題,以及編程題和算法設計題。
筆試過了以後就不斷看各類其餘人分享的面經,瞭解面試中可能問到的問題以及須要注意的事項,固然還有一些禮儀問題。
面試環節一般會問到基礎知識和項目經歷以及遇到的問題和解決方案,這些最好提早能多整理整理,若是到了面試時纔開始考慮的話若是一緊張就一定答很差了。基礎知識的話問到最多的就是所報職位相關的語言基礎(這個必定要拿手),而後就是算法和數據結構(不限職位的重點,會配合手寫代碼一塊兒考)。因爲我大一就常常在紙上手寫代碼,因此並無以爲不適應,而且在百度三場面試中均有手寫代碼,最後面試官比較滿意,給個人評價是動手能力(編碼能力)很強。
面試過程也是一個學習和交流過程,畢竟每一個人的知識結構也會有所不一樣,面試官能夠經過不一樣應聘者的表現來審視哪些人值得錄取,一樣應聘者也能夠經過不一樣公司的面試問題和體驗來考量哪一個公司更適合本身,並且還能找到本身知識結構上的短板,不斷強大本身。總結一句就是:面試最重要的不是要求咱們什麼都會,而是盡最大努力去展示本身知道的東西,讓面試官相信咱們適合這個職位,適合這個公司。(ps:我本身總結的知識點彙總和麪試過程細節能夠百度「博客園 聞波」查看)。
最後,謝謝李老師的邀請,寫了這篇自我總結。不知道讀者能從這裏收穫到什麼,暫且但願大學生活還沒過完的親們看到這個後能更加珍惜餘下的時間,經過認真思考和不斷實踐去進步和成長,找到本身的興趣點,擁有強大的決心、必勝的信心、持久的恆心,早日實現本身的夢想!
同時謝謝給我提供了這個項目機會並一直在項目中耐心指導的導師劉老師;一路上亦師亦友,給了我很大的動力和信心。