為什麼寫這篇部落格
不知不覺的,今天已經是我的生日了。我原以為我會在工作中度過我22歲的生日,沒想到依然是在學校裡焦急着等待召喚。
我不打算在今天總結過去的一年的成長、思考,還是把這個工作留在2013年的結束吧。相反,由于過去一段時間,受了很大的刺激。在網上随意刨出大神也好,線上下看到周圍的很多人都已經找了非常不錯的實習,而我由于各種@#$%原因,仍然留在學校,非常有緊迫感,我覺得我已經落後了,而這是我最不願意接受的現實。我感受到了我和他們之間的差距。雖然,比我強的人有太多,但這也是我非常不願意看到的。這并不是說對那些非常厲害的人有敵視的意思,而是對我自己非常不滿意。我知道厲害的人有很多,也許由于天賦的因素,我永遠都不能達到他們的高度,但是我也不會這麼輕易接受這個現實。我不能保證,我一定會趕上、或超過他們,但我一定有足夠強大的意志,鞭策我足夠努力,一步步靠近他們。即使最終沒有超過他們,我想我也比一般人要強很多了。
過去一段時間,我直接或間接的接觸了更多的人,了解了他們做過的或正在做的事,視野更加開闊了,對于未來的路的方向,以及怎樣走這條路也有了更加清晰的認識。其中,對我影響比較深的是BYVoid。最近在網上流傳的阿裡星面試跟蹤詳情,也着實的刺激了一把,在佩服的同時,更多的是對自己的一些期許。
這也是我寫這篇部落格的初衷:在生日這天,許下心願,定下目标,制定政策,自我激勵。希望,從這個全新的開始,能讓最近無事可做的自己增加些動力。
我的目标
距離我正式找工作還有三年的時間,我希望能夠在三年内達到BYVoid目前的水準。我希望能夠把落後差距限制在3年。承認比别人差确實非常難受,但希望經過我的努力能夠迎頭趕上!
3年時間,我希望能夠再一下幾個方面有較大幅度提高:
- 數學功底
- 程式設計能力
- 工程能力
- 英語水準
這幾個目标對于計算機學科來說非常基礎當然也非常重要。不過隻是這樣列出來又略顯蒼白,還需要劃分的更加細緻。
數學
數學是計算機學科的基礎。我不需要把所有數學都學透,隻希望在和計算機密切相關的 離散、線代、機率等方面下些功夫;隻希望我在做相關工作的時候,不因數學功底差而受阻礙。數學能力決定着程式設計水準能夠達到的最高度,這一點還有有體會的,在做一些ACM題的時候,确實能體會這一點。我不會集中一段時間去學習數學基礎,隻會在用到或将要用到的時候去補充下知識。
程式設計能力
這一點不用說了,對于做程式員來說,這是最最最重要的了。我想,能夠展現程式設計能力的對資料結構和算法的掌握了吧。我想,ACM是提高程式設計能力最好的方式了。此外,ACM也強調基礎算法,和數學也有關系,是以一定要經常刷ACM試題。具體練習量後面再談。
我之是以把工程能力和程式設計能力分為兩個部分,我覺得還有有些差別的。程式設計能力更強調基礎能力,而工程能力更加專一些,更加強調實踐能力。比如對于程式設計語言C/C++、Java、Python,Web技術,Android程式設計這些技術的掌握就算是工程能力。
在程式設計語言方面,我希望能夠精通C語言(較為低層次、面向過程、高效)、Java(面向對象、有強大的庫)、Python(易于掌握、非常喜歡、效率較低)及一門函數式程式設計語言(不是特别了解)。
其他技術的掌握,會在研究所學生階段做項目的過程中去鍛煉,可能會涉及資料庫技術(SQL,Oracle)、Android程式設計、海量資料處理(Hadoop)。畢業前,我希望能有至少5個做的非常好的項目經曆。
在學校學習工作之外,我打算有一些好的idea,自己做開源項目的開發。現在已經有一些idea,是基于自己生活的需求,打算做成Android應用,但是不夠成熟。
總的來說,以前程式設計都是小打小鬧,上不了台面,希望3年後,我能夠幾個拿得出手的項目,希望做出來的東西能夠讓足夠多的人使用,能使一些人的生活越來越友善。這樣的履歷才好看。
英語真的非常非常重要。查閱英文資料需要用到(Reading),寫paper需要用到(Writing),以後去外企實習、工作需要用到(Listening & Speaking),看美劇需要用到。。。
我的計劃
提高程式設計能力
- 以《挑戰程式設計競賽》、《算法導論》為參考書,3年内,400~450 ACM problems Accepted,相當于每個月完成12道。如此,可以算法有較深了解,較大程度上提高程式設計能力。
- 如果有時間,參加GCJ,TopCoder等比賽。
提高工程能力
- 有2~3個實習經曆。希望其中之一是大型外企(MS,Amazon,IMB .etc)。大學畢業後暑假,研一期間(擠出足夠多時間),研三可以作為主要實習期。如果有國外實習機會,一定要抓住!(軟體所的實習經曆不算在内)
- 參與至少4個大型項目研發,并發揮較大作用!學校和實習機關可以提供機會。
- 至少釋出4個開源項目,包括手機應用、浏覽器插件等。并至少其中2個受到廣泛歡迎!在這一點上,技術是一方面,還需要有好的idea。
提高英語水準
- 不要害怕讀英文原版的書籍、論文。比如:《Delivering Happiness》,非常贊的一本,涉及詞彙不多,但不論思想上、英語上都能夠提高不少。
- 給自己創造英文的環境,總是試圖找能夠經常用英文和其他人交流的機會。
- 嘗試着用英文寫文章,雖然一開始可能比較困難、耗費時間比較長,但總是值得的。
其他
- 廣交朋友,開拓視野。(校友、人人、twitter、facebook、開發者社群、Internet)
- 閱讀計算機領域經典圖書。
- 經常寫部落格。記錄自己的生活,自己的思考,自己的收獲。知識在于積累!如果可以的話,可以嘗試建立搭建個人部落格。
- 經常去的網站:CSDN,部落格園,stackoverflow, github, 知乎, 人人 .etc
- 縮小自己的興趣範圍,讓自己更加專注!(give up NBA, football)
- ......
最後的話
我原本想隻列出一年的目标,考慮了好久,還是把三年作為期限。總的來說,上面的目标,如果努力是一定可以達成的,但是有些措施還不夠具體,不夠完善,可能會對其進行修正。在接下來的一段時間,我會讓我的計劃更加具體,可實施!希望當我開始實習時能夠有個完整的計劃!
上面這些小的目标的最終點是三年後的找工作,也就是為了我的職業生涯,工作≠生活,是以,上面這些不是我的全部。
開始的時候說過,我希望三年後,我能夠達到BYvoid目前的程度,列出這個目标後,我發現,即使我所有都實作,這樣還不夠!是以,我隻能做的更出色!
好吧,不再呻吟了,以後的路誰知道呢?Do more, think less!
22歲,又是一個新的開始~
作者:viczzx 出處:http://www.cnblogs.com/zixuan-zhang 歡迎轉載,也請保留這段聲明。謝謝!
分類: ProgramLife, Think Inside