天天看點

一篇文章,值得反思

 大概幾個月以前,在學校論壇上看到了這麼一個文章: 原文如下:

若幹年前,當我吭哧吭哧的學會HTML,CSS和ASP,會點SQL和JS,能獨立做動态網頁,去找工作時,被人一聲猛喝:ASP這種10年前就淘汰的技術還拿出來找工作,現在都是.NET,知道什麼是.NET?我不知道,灰溜溜的離開了。

回來後,我買了大量的C#,ASP.NET,ADO.NET,挑燈夜戰,終于略有小成,對ASP.NET的各種控件,頁面生命周期,事件管道等弄明白,能很輕松用.NET開發中小型網站、應用程式時,去找一個兼職,見面後,對方就給讓寫一個複雜的連表查詢SQL,順便讓寫動态切換圖檔的js,當沒達到對方的需求後,抛給我一句話,連js和SQL都不會的人還開發WEB,我臉紅的走了。

回來後,我發憤學習SQL和js,當我很輕松能寫出存儲過程,知道JOIN和LEFT JOIN是什麼差别,索引的利弊,各種查詢不用翻書時,能清除SQL緩存,進行查詢對比,進行SQL優化還能能獨立寫小段的js代碼時再去那家公司時,對方告訴我現在誰還用SQL,為了友善面相對象代碼維護,都用ORM,用過嗎?

我回來了,借了本LINQ,吃透了裡邊LINQ TO SQL ,順便也學了如何實作TABLE MAPPER,自己也寫了一個簡單ORM。我覺得自己可以了。去另外一個WEB開發公司想找個實習生,那人看了一下履歷,ASP.NET這種東西誰用,笨重、不開源,環境還不免費,用不起,想來這裡學PHP吧。

我聽了後,回來又借了5本PHP+MYSQL的書,有前邊的積累加上PHP的簡單,很快的就能用PHP+MYSQL做差不多網站了,期間還接了兩個小活賺了5000,做了一個開源的相冊。

接下來我想找一個創業公司找個兼職鍛煉下,對方說他們是要建高性能站點,我不符合,回來後,尋人問己,找到一本符合要求的《建構高性能WEB站點》,努力學習後知道什麼事負載均衡,如何軟體實作,什麼時候采用硬體實作,知道了分布式緩存,分布式檔案系統,知道主從資料庫,會用Memcached,會使用資料表的垂直分、水準分,學會反範式設計,順便還學習一緻性哈希,知道了分布式系統不能同時滿足一緻性、容錯性、可用性三要素等前沿科學。

再後來……,再被鄙視的過程中,我學習NoSQL MongoDB順帶一個簡單歸檔系統,學習企業級軟體架構,知道MVC,MVP的差別,知道SOA,學習WCF,深入過設計模式,能看懂UML,知道對稱不對稱加密,寫過一個RSA傳遞密鑰程式,知道SQL注入、XSS攻擊怎麼防範,還學過富媒體,PhotoShop。

如今,别人看了我的履歷,你會這麼多,怎麼沒有精通,有用嗎?答道:我确實不行,真的很佩服又些人從C,C++,C#,SQL一排精通。

今天又一個二面,你研究過LINUX核心嗎?看到令他失望的回答後,來了一句,搞計算機的,連作業系統系統核心都不研究還搞什麼IT,臨走時來了一句,隻要你弄懂LINUX随時來我們公司,我恐怕一輩子都去不了。

中國IT企業隻能說要的是超人,不是人,什麼C,C++,C#,設計模式全部精通,幾十人的公司張口就是百萬,千萬PV的網站,不知道下一個公司會不會問你實作過大資料量的的MapReduce沒?有時我隻想說,我隻是個學生,放我一馬。   談談我自己的感受吧。 第一,國内某些IT公司的功利性和目光短淺。他們隻知道基于别人的技術開發一些産品,沒有也不想擁有自己的核心技術。很多時候,公司要的隻是一個聰明點的碼農,并不需要真正的有創造性的研發人員,是以,這就造成了一個問題,招聘的時候,很多公司都會問:會不會c++或者有沒有java程式設計經驗?應聘者答道:有or會。OK,公司要你了,因為他們隻需要一個碼農。他們隻需要一個會程式設計的人,他們不想過多培養你,更不想做一些真正的研發。真正的研發是什麼?是像很多跨國大公司一樣的研發中心幹的事情,不是去直接做産品或者說不是所有的産出都是産品,而且對一些科技領域做前瞻性的研究,未必有用,但是很有可能其中的一項對未來會有深遠的影響。國内的一些中小型IT公司沒這個錢,但是很多大公司不是沒錢,而是沒心思這麼做。是以,這就造成了前面我說的結果,公司隻想招一些會某些技術的人,能盡快的給公司帶來産出。作為學生,當然要不停的追趕公司對于技術追求的腳步。可是,最基礎的一些科研能力,例如:數學、算法、專業能力都被忽略了。

第二,作為一個學生,應該想清楚自己要做什麼,而且一定要淡定。現在的技術那麼多,沒人能學完,而且,縱使你以後工作了,也不可能接觸這麼多技術。我的個人看法是,一個學生,尤其是研究所學生,最需要提高的是自己的研究和學習能力。這指的是,怎樣更好更快的去學習和研究一項技術或科技的能力。不會不重要,重要的是怎樣快速的掌握。這不是空談,舉個例子:研究所學生隻有兩年半,你可以不停的去學習C++,做C++的相關項目,但是,如果你一味的拘泥于C++這項技術,對其他的技術沒有興趣,對科研沒有興趣,這可能對你的工作短期内沒有影響,但是對你的未來有深遠的影響。因為,當你做到某個高度時,你會發現天花闆,就是技術和科研之間的天花闆,編那麼多程式還不是實作别人的算法,實作别人的架構。可是“别人的算法”你從來沒有研究過,是以,你永遠也不會達到指揮别人程式設計的高度。諸如信号處理、資訊安全、機器學習、資料挖掘等前沿學科,至少要學習并親身去深入研究過。技術+科研>>技術,技術+科研>>科研。做一個複合型的人才。以後才有更大的發展空間。

繼續閱讀