2009年9月,進入大學的第一天,開始了我正式的軟體工程的學習。為什麼是正式的呢,因為之前雖然也寫過程式碼,但完全是出於興趣,想到什麼就學什麼,毫無章法。後來來到了北交大,進入了據說還不錯的軟體學院,有了一群志同道合的朋友,一位位用心良苦的老師,踏上了一個“程式設計師“的冒險旅程。現在,我在美國密蘇里大學讀計算機碩士,回首自己走過來的這四年,錯過了很多,也明白了很多,收穫了很多,對軟體和計算機漸漸有了自己的認識,更重要的是,發現了自己越來越多的缺陷與不足。有些當年認為用處不大而忽略掉的東西,卻成了現在最最重要的東西。有時會後悔地埋怨自己當時不努力,欠下了太多的債,只能後來慢慢償還。
如果能夠給我一次機會與四年前的我通話,我有太多的東西想對他說。然而,也許幾年後再次回首,我會有另一番不同的思緒,但此時此景,我能想到這些,至少現在是對的,我不想後悔,把這些寫下來,算是一種慰藉吧。
多出去走走,開闊眼界
“世界就像一本書,不旅行的人,只讀過這本書裡的一頁。”
世界之大,無奇不有,不管你是否要做一個技術男,你都應該出去走走,去看更多的風景,去見更多的人,去體會更多的風情。不要做井底之蛙,這個世界到處都是精彩的事物,而有些東西如果不去親自體會是永遠無法得到的。沒有人規定程式設計師就必須整天埋在程式碼中,上天賦予了程式設計師自由的職業特性,就一定要利用好它。程式本身就是一種美,你要時刻保持一顆欣賞美、涉獵美的心靈,才能更好地去發現和創造。眼界開闊了,心靈才不會收拘束。真的,這個世界太美好,去發現感動到哭的美。
你要做一個旅行家裡程式碼寫得最好的人!
不要沉迷社交網路,線下的生活更加豐富
碎片化的資訊正在侵襲著我們的生活,社交網路的發明讓我們能夠在網上互動和交流。但你要問自己,這些真的對你有用處嗎?當你和周圍的朋友們沉迷於人人網微博消耗時間時,是否意識時間正在瘋狂地消逝,等關閉網頁的瞬間,你是否感覺到孤獨感重新來襲。
最近剛看了《黑鏡》第二季,第一集中男主人公沉迷於社交網路,有一天車禍不幸去世後,有人制作了一個機器人,根據他生前在社交網路上的言行,讓他繼續虛擬地活下去。當然結局你應該猜到了,是的,這個人沒有情感,有些東西是永遠無法從社交網路上模擬的。
線下的生活更精彩,你要多參加有益的社團、活動,多交朋友,在真實生活中維持真實的感情。
打好C語言基礎,掌握並深入一門程式語言
在後來的學習中,尤其是這幾個月來在國外的學習,讓我漸漸感受到一些教育上的差異。C語言作為你正式學習的第一門語言,你要做到的不是掌握語法這麼簡單。語言是指一種工具,幫助你理解程式設計的思想和奧祕。如果有可能的話,我希望你開始研讀Linux設計思想和原始碼,理解其中各種設計模型和理念,因為這些才是根,當你真正了理解了這些,就會發現所有的語言都是互通的,都遵循了一個準則,即使有新的思想,你也會很快接受並融會貫通的。
說到語言是工具,你當然要選擇一門語言並試圖做到精通。建議你學習C++,因為它更接近軟體的底層和實質。掌握並精通它,理解它的一切,並在現有的基礎上創新。Java封裝的太多,你可以用Java來很好地理解物件導向的設計原則,來快速地開發一些程式,但Java會限制你的提高。當然你可以做一個Java界的大牛,但你想想,除非你特別喜歡這門語言,否則不要被它框住。
一定要學好的課程,一定要讀的書,一定要掌握的技術
這幾門課程是你一定要認真學習的,因為有一天你會發現它們非常重要:“數學方面的課程”、“資料結構”、“演算法設計”、“作業系統”、“資料庫”和“系統級程式設計”等。
這幾本書不管你有多忙,都希望你能好好研讀:《演算法導論》,《程式碼大全》,《程式設計珠璣》外加多本文學書籍。
這幾個技術一定要用心學習,因為它們真的很有用:Linux(核心+概念+應用),資料庫,彙編與編譯,除錯,演算法設計等。
廣泛涉獵,但不要喪失重心
技術行業裡永遠有新的技術,不要讓你的大腦僵化,要勇於去嘗試新的東西,瞭解各個細分的行業,瞭解各項技術,廣泛涉獵。因為只有這樣,你才能發現什麼是你真正喜歡的,真正感興趣的。當你找到了自己真正的興趣所在,你的所有研究和工作都將是快樂的。
另外,樹立一個榜樣,如果你決定要做一個商人,可以選擇比爾蓋茲、賈伯斯,如果你決定要做研究,可以選擇Linus,高德納等技術流。抱著一種學習的心態去看待,不要盲目崇拜。
好好學習一門指令碼語言
學習一門指令碼語言如Python或Ruby。建議學習Python,並好好掌握它,這樣可以讓你更快速地與計算機互動,幫你快速解決某些問題。Python也有很多各方面的、優秀的框架,在Server開發、科學計算等方面都有很大的潛力。另外,PHP可以讓你快速地架設一個小型網站,而且開源的系統也非常多。所有的這些工具,都可以在你需要的時候幫助到你。
保持一顆好奇心,一顆童心
時刻關注業界資訊,關注各個IT公司動態,關注科技新聞,關注創業,向過來人吸取經驗。你看得越多,分析的越多,你對業界的資訊、發展的感知就會越敏銳。不要盲目跟風網上的言論,學會自己分析。
保持一顆童心,你才能保持一顆創造性的心,不要僵化思維,不要定勢思維。這些都是需要訓練的,相信你經過這些歷練,一定可以有所進步。
最後,珍惜時間,珍惜生命,做最好的自己。