最近在網上看到有人寫了一篇關於《寫給4年前沒有開始做設計的自己》,突然也想寫這樣一篇文章。具體那篇文章的內容我並沒有細讀,防止自己的思路照著他的來。
首先,我先簡單介紹下自己,好為後面的內容做乙個鋪墊。我今年23歲,內蒙古人,今年6月將於粵東地區韓山師範學院畢業,軟體工程專業。
一、如果可以,你應該去學文學或者經濟學、或者其他你喜歡的專業
這樣的建議並不是因為計算機專業不好,或者不適合。行業內普遍認為it人士在同年齡的白領中是比較辛苦的,加班現象是大多數網際網路公司中常見的。且長時間從事計算機相關工作,對健康也是有一定害處。如果你不信可以看看你現在的自己和四年後的我的這兩張臉。明顯蒼老了不止4歲。長時間坐在電腦前也會引發頸椎病,當然如果你坐姿可以調整好的話,也可以避免這個問題。如果你想要乙個好的身體和白白淨淨的臉,還是換行吧,別那麼倔強。
二、你該如何去學計算機
四年前開始學計算機的你,充滿了自信,做事情分得清輕重緩急,抓得住方向。但是你的過於自信造成了我今天的知識面狹窄,只會做網頁的狀況,且你沒有給予一些重點學科予以重視。
你覺得數學沒什麼,程式設計時很少會涉及到複雜的演算法,就算涉及到,你也能夠解決,只是付出的時間多一些。簡單的遞迴和排序對你不是問題。我要告訴你,你錯了。計算機之所以可以發展到今天,就是因為數學,其根本原理就是基於數學。是的,程式設計時你很少會涉及到使用書中的數學知識,但當你想涉及底層或高效率程式設計時,你的數學會讓你寸步難行。
你覺得英語沒什麼,程式設計時很少會涉及到複雜的單詞,就算涉及到,你也可以金山詞霸,只是動幾下手指就好了。簡單的變數命名規則對你不是問題。我要告訴你,你錯了。大多先進新的技術資料均是源於美國等發達國家,且相匹配的文件書籍也是英文的。是的,你可以去看中文翻譯版。但是我要告訴你,不是所有的書你都可以找到翻譯版,不是所有的英文**你都以用谷歌翻譯;在你研究一項新技術的時候,苦無資料的你只能去乙個次乙個詞的翻譯國外文件或書籍。
三、別去聽老師講課,你可以大膽的逃課
當然,前提是你要保證不要掛科。國內的覺得多數學府,其主要任務在我看來不過是所謂的「科研」。這裡我加上引號的意義很明顯,大學根本就沒有交出它本應交出的科研成果,所以一切都是走形式。是的,是走形式。老師的工作重點是考職稱,系輔導員的工作重點是不要出什麼亂子,執行書記的指示,然後把你當做是乙個高中生一樣圈養。大學裡的老師,也很少有真正有學識的。打個比方,可能教你資料探勘的老師自己都沒有去挖掘過,可能只是在家裡拿個小鏟子挖挖花盆罷了。當然,不能排除有真正好的老師,但真的是可遇而不可求。即使你遇到了乙個很有學識的老師,大多數情況下,他也是個不會講課的老師,或者是個精力不在教學的老師。
所以,你要大膽的逃課。圖書館是你的將要泡的地方,你可以把他當做是你的女朋友。她能提供給你大多數你想要的,只要你能靜心研讀。其實,你完全可以利用兩節課的時間去看老師用四節課講的內容。
四、別總是做一樣東西,去廣泛涉獵吧
大一時你給自己定向php,這是乙個不錯的決定,並且也因為這個覺得,即將畢業的你也找到了乙份不錯的工作。但是我要告訴你,不要總是php。我承認php讓你學到了很多,甚至通過php使我學到了脫離語言本身的東西。我也並不是說長時間的編寫一門語言會怎樣怎樣,很多大牛都說語言無關(關於這個觀點,後面我也說說自己的觀點)。真正的弊端是,長時間的網頁開發會造成你的目光短淺,無視其他平台的優越性,知識面狹窄。如果你能做到更多的平台,我相信你會對程式設計本身有乙個質變的理解。
五、你要堅決抵制微軟平台
其實你已經這樣做了,但是還是要說一下。微軟是乙個壟斷性的企業,其windows流行程度雖然降低,但他仍然是pc作業系統的龍頭老大。微軟為實現其壟斷夢,採用傻瓜程式設計的方式,矇騙了大多數微軟平台程式設計師。你用.net去開發乙個網頁,甚至不需要自己去寫html,只需要用vs去畫就可以了。是的,這樣很方便。你用.net實現mvc只需要按照它的框架即可。是的,這樣很方便。
但是我要問你,你知道你所畫出來的網頁本質是什麼?如果我要你實現乙個複雜的js效果,你在它複雜的類庫中找不到對應的類的時候,你該怎麼辦?
我還要問你,你知道mvc的本質是什麼嗎?m、v、c分別是什麼?有什麼優點缺點?意義何在?
如果你走上了這條路,毫無疑問的,4年後的我只能嗚嗚呀呀的說的大概吧。呵呵,幸好你沒有走上這條路。
六、大學學的是什麼
這段應該不是寫給四年前的我,只是比較有意義,所以決定寫出來。因為大一的時候我已經明白了這個道理。
大學並不是高中,沒有老師會整天抓著你學習,管你吃喝拉撒。一切都是靠你自己。學習也是一樣。大多數老師是不負責任的,上完課布置個神馬作業然後走人。如果你不想白讀這個大學,那麼你要開始自學,並且學會自學。
有些人會說,我很笨怎麼辦?我不會自學怎麼辦?
首先,我覺得沒有人是笨的,除非你是弱智。即使是弱智,我依然認為你不是笨的。為什麼這麼說呢,我是乙個極端的人,我相信主觀因素可以克服,只要你有足夠的自信,並且付出足夠的努力。當你決定要做一件事,並且客觀上是有可能成功,而你卻失敗了的時候,我只能說是你自己付出不夠努力,不是天不下雨天不颳風的原因。
最後,關於語言無關性,我想說說自己的觀點。
很多老師和大牛會提及語言無關性。但是我想說下自己的反對觀點。我並不認為這句話是錯的,只是覺得不是所有人都有資格說這句話。如果是乙個菜鳥,大言不慚的說語言無關性,那可真是笑話了。一門語言都無法精通的人,何談語言無關性。是的,相同的問題可以同步多種程式語言解決。對於大牛來說,無論使用哪種語言可能都是得心應手,並不是他對所有的語言都精通,而是他已經掌握了程式語言的本質以及程式設計思想,學習一門新的語言可能只是十天半月的問題。但是對於初學者來說,程式設計本質與思想,以及對於細節問題的糾結,使他們無法脫離問題本身,而將大部分精力花在語言上,這沒什麼不值得的。
所以我認為,你可以說語言無關性,但你首先要扛得起「大牛」這兩個。
再者,大牛也不要對初學者強調語言無關性,你是在誤導他們。等他們真正達到那個境界,這個思想自然就領悟了。
這篇文章被推薦到首頁是我沒有想到的,文中確實存在過激的觀點和個人情緒的發洩,發表當初並沒有考慮到這些。如果對於某些讀者造成了困惑和不滿,在這裡我向大家真誠的道歉。
關於文中我補充幾點大家爭議較大的內容:
1、這篇文章是以現在的我寫給4年前的我為出發點,且寫文章的時候也一直把我這對自己說話的口吻去說的。語言過於偏激也大多是針對自己,並無惡意。
2、是否應該翹課的問題。我說的太過偏激了,可能是因為在我們學校我沒有接觸到真正認真負責搞教學的老師,並且即使是上課我也是在下面自習的。其他人的情況可能和我不同,可能真的又值得去聽認真去聽的老師。如果有這樣的老師,當然應該去認真聽課。同時也應該通過老師去了解課程和行業,畢竟老師的視野要比我們寬泛的多。大學中我就遇到乙個恩師,雖然他和其他老師一樣不注重教學不會上課,但他給我提供的機會以及私下裡聊天教我的東西足夠我受用終生。
3、關於自動化我依然堅持我的觀點。我並不是一口否定不應該去使用開源類庫、框架等工具,我個人也經常用這些東西,比如thinkphp,或者其他常用類。但使用這些的過程中,我會盡可能多的去了解其原理。我只是不想做乙個侷限於某個平台的程式設計師,希望自己能夠接觸更多的底層的東西,提高自己。同時我也認為,這是能夠區分乙個程式設計師能力的標準。有人有不同觀點,我不想爭論。正如我所說的,並不是不去使用自動化工具,而是應該在使用過程中明白其原理。
4、學校好壞以及是否有參加工作並不是衡量乙個人能力的標準。我承認我的學校說出去沒幾個人知道,但這決定不了什麼。別人高中玩了三年考到我們學校,我用半條命出來拼出個第一,才勉強考上本科,教育水平不同而已。可能你的優越性只是在於你出生在乙個比較發達的城市,而我卻是生在乙個只有200多戶人家的山村。但我相信時間會改變一切,我相信。
寫給六年前自己的一封信
sword s man 你好嗎?有好久沒有見到你了,不知道你過得怎麼樣,你那方應該是2000年吧!時間過得真快一轉眼就這麼多年了。想當初你還是乙個天真 純潔的小男孩。剛剛從九中畢業的你因成績不好,讀了職中,就盲目地選擇了計算機這個專業。你對神秘的computer有著無限熱情的嚮往,剛一開始你就買 軟...
看到了4年前的我
在過節前,花了2個星期重寫了專案的乙個功能外掛程式,並改變了原來軟體功能的展示邏輯處理,在前天已重新發布到歐美國家。從這3天的表現來看,得到了老外的認可。春節回來,在改寫另乙個模組.在這2個星期,認真的把框架重新設計,用c c 的優勢和delphi 的優勢,重寫插進。每天工作12個小時,加班加點。週...
給十年前的自己 大學
你好,我真的不知道應該如何稱呼你,是叫全名?還是弟弟?還是 我 算了,就直接稱呼 你 吧。我最近對相對論突然產生了興趣,明白了時間是相對的,而不是絕對的。處於運動中的物體,其時間會變慢,處於高速運動中的物體,時間的變慢會更為明顯。假如我可以乘坐一部以n倍光速飛速行駛的列車,時間會不會變為負值呢?說不...