作者:x535796184 這些日子我一直在寫(xiě)一個(gè)實(shí)時(shí)操作系統內核,已有小成了,等寫(xiě)完我會(huì )全部公開(kāi),希望能夠為國內IT的發(fā)展盡自己一份微薄的力量。最近看到很多學(xué)生朋友和我當年一樣沒(méi)有方向,所以把我的經(jīng)歷寫(xiě)出來(lái)與大家共勉,希望能給剛入行的朋友們一點(diǎn)點(diǎn)幫助。 一轉眼我在IT行業(yè)學(xué)習工作已經(jīng)七年多了,這期間我做過(guò)網(wǎng)頁(yè),寫(xiě)過(guò)MIS、數據庫,應用程序,做過(guò)通信軟件、硬件驅動(dòng)、協(xié)議棧,到現在做操作系統內核和IC相關(guān)開(kāi)發(fā),這中間走了很多彎路,也吃了不少苦。我上的是一個(gè)三流的高校,就連同一個(gè)城市的人多數都不知道。因為學(xué)校不好也就沒(méi)有指望能靠學(xué)校名氣找一個(gè)好工作。所有的希望都寄托在自己的努力上了,大一開(kāi)學(xué)前的假期我就開(kāi)始了學(xué)習,記得我買(mǎi)的第一本書(shū)是《計算機基礎DOS3.0》,大家別嚇著(zhù)了,其實(shí)當時(shí)已經(jīng)普及了DOS6.22了,只是我在書(shū)店里看到了DOS4.0,5.0,6.0的書(shū),以為像英語(yǔ)那樣是第四、五、六冊,記得當時(shí)到處找DOS1.0,現在想想也幸好我沒(méi)有找到:)開(kāi)學(xué)前我學(xué)完了PASCAL,那時(shí)既沒(méi)有計算機也沒(méi)有人可以請教,我連程序是什么的概念都沒(méi)有,只好死記硬背代碼,然后拿紙寫(xiě),我一直到大三才有了一臺486,在這之前用紙寫(xiě)了多少程序我也記不清楚了,只知道最長(cháng)的一個(gè)我拿A4大小的草稿紙寫(xiě)了30多頁(yè),我的C語(yǔ)言、C++、VC都是在這樣的條件下入門(mén)的。所以說(shuō)條件是可以克服的,希望我的經(jīng)歷多少給條件艱苦的同學(xué)們一點(diǎn)信心。第一次上機是在我姐夫的機房,我的心情激動(dòng)的無(wú)與倫比,但是一上機我立刻傻了眼,他們用的是英文版的Win3.1,我的那點(diǎn)DOS知識都見(jiàn)了鬼,上機提心吊膽的一陣瞎摸,一不小心把Word弄成了全屏,怎么都還不了原,當時(shí)真是心急如焚,我以為機器被我弄壞了。第一個(gè)C語(yǔ)言程序,就是那個(gè)經(jīng)典的HelloWorld,我調了幾個(gè)星期,上機機會(huì )非常少,也沒(méi)有書(shū)告訴我開(kāi)發(fā)環(huán)境(TC2.0)需要設置,而且開(kāi)始我都不知道有編譯器,我甚至自作聰明把寫(xiě)好的程序擴展名從.c改成.exe,結果可想而知。大一學(xué)完了C、X86的匯編、數據結構、C++。由于精力都花在自學(xué)上了,大一下四門(mén)課掛了彩,三類(lèi)學(xué)校就是這點(diǎn)好,掛上一二十門(mén)也照樣畢業(yè)。不過(guò)扯遠點(diǎn)說(shuō),我那么刻苦都及不了格,可見(jiàn)我們國家的計算機教育有多死板。 大二準備學(xué)VC和BC,當時(shí)難以取舍,后來(lái)選了VC,不為別的,只為書(shū)店里兩本書(shū),VC那本便宜6塊錢(qián)。我的努力在班上無(wú)人能及,學(xué)的日夜不分,大三有了計算機后更是如此,很多次父親半夜教訓我說(shuō)我不要命了,我一直覺(jué)得自己基礎差,記憶又不行,條件也不好,所以覺(jué)得只有多花點(diǎn)時(shí)間才能趕上別人。居然后來(lái)有許多朋友說(shuō)我有學(xué)計算機的天賦,讓我哭笑不得。我用的是486,16M內存,1G硬盤(pán),當時(shí)同學(xué)們的配置都是P166MMX,我安裝一個(gè)WindowsNT4.0需要一個(gè)通宵,編譯一個(gè)BC5.0向導生成的程序需要近兩個(gè)小時(shí),我的顯示器是個(gè)二手的,輻射非常大,開(kāi)機屏幕冒火花,看起來(lái)很酷的:),有一次程序寫(xiě)的太久,覺(jué)得怎么白色的編輯器背景變成了紫色,以為顯示器壞了,后來(lái)才發(fā)現眼睛不行了,不過(guò)說(shuō)來(lái)也奇怪,到今天我的視力還能保持1.5,真是個(gè)奇跡。但是就是那臺破機器陪伴了我兩年,讓我學(xué)會(huì )了VC、Delphi、SQLServer等。后來(lái)那臺機器給我阿姨打字用,據她說(shuō)一天她正打的開(kāi)心,一股青煙夾著(zhù)火苗從顯示器鉆出來(lái),之后它才壽終正寢。 大三假期找了個(gè)機會(huì )在一個(gè)計算機研究所實(shí)習,與其說(shuō)實(shí)習不如說(shuō)是做義工,工作了兩個(gè)月一分錢(qián)沒(méi)有拿。但是這兩個(gè)月對我的發(fā)展幫助很大,讓我早一步了解了社會(huì ),剛去的時(shí)候我當然是一竅不通,在那里我熟悉了網(wǎng)絡(luò ),學(xué)會(huì )了Delphi和Oracle。由于工作很認真,得到了比較好的評價(jià),在一位長(cháng)者的引薦下,我開(kāi)始和他們一起做項目,這使我在大三大四就有了自己的收入,大四又找了兩家MIS公司兼職,雖然錢(qián)不多,但是在學(xué)生期間有1000多的收入我已經(jīng)非常滿(mǎn)足了,我終于用自己賺的錢(qián)把計算機換了。大四下開(kāi)始找工作,這時(shí)我的工作經(jīng)驗已經(jīng)比較多(當然現在想想非常幼稚),開(kāi)始聽(tīng)父母的想去那個(gè)研究所,實(shí)習過(guò)那個(gè)部門(mén)也希望我能去,但是不知道為什么最后不了了之,這種單位就是比較官僚,我一氣之下就到了我兼職的一個(gè)公司做MIS的TeamLeader。在大三到畢業(yè)一年的時(shí)間,做過(guò)了各種MIS,從煤氣、煙廠(chǎng)、公安、鐵路、飲食到高校,什么有錢(qián)做什么,工作也很辛苦,經(jīng)常加班和熬通宵,從跟客戶(hù)談需求到設計、編碼、測試、交付都要上。那時(shí)覺(jué)得很有 成就感,覺(jué)得自己還不錯,現在想想真是很膚淺。 剛走上工作崗位的學(xué)生很容易被誤導,各種開(kāi)發(fā)工具讓人眼花繚亂,同時(shí)也覺(jué)得很受公司器重,但這樣工作永遠是一個(gè)低層次的開(kāi)發(fā)者。不要跟我說(shuō)什么系統分析有多么多么重要,多么多么難。你以為自己跟用戶(hù)談需求做設計就是系統分析和設計了嗎,國內又有幾個(gè)公司能夠做的很到位很規范?我是ISO9000內審員,也在Rational公司受過(guò)多次培訓,拿了4個(gè)證書(shū),還有一個(gè)公司讓我去做CMM。這些我聽(tīng)過(guò)很多,但是很多事情到國內就變了性質(zhì),一個(gè)公司不是通過(guò)了ISO9000或者CMM就能規范了,我現在在一家有幾十年歷史的外企工作,里面的管理不是一般國內企業(yè)能及的。作為一個(gè)畢業(yè)不久以前沒(méi)有步入過(guò)社會(huì )的學(xué)生,幾乎不可能在很短的時(shí)間掌握系統分析和設計,面向對象、UML只是一個(gè)工具,關(guān)鍵是人本身的思想,不是說(shuō)你熟悉了C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質(zhì),你可以用C寫(xiě)出比別人用C++更加模塊化的程序。 話(huà)說(shuō)遠一些,國內軟件開(kāi)發(fā)行業(yè)有一個(gè)怪圈,很多人覺(jué)得VC > Delphi >VB,真是很搞笑。這幾個(gè)軟件我都做過(guò)開(kāi)發(fā),說(shuō)白了他們都是工具,應該根據應用的需要選擇采用哪個(gè),而不是覺(jué)得哪個(gè)上層次。如果你因為用某個(gè)開(kāi)發(fā)工具很有面子而選擇的話(huà),只能說(shuō)明你很淺薄。如果說(shuō)層次,那么這些工具都不上層次,因為它們用來(lái)用去都是一些系統的API,微軟的朋友不會(huì )因為你記住他們多少個(gè)API或者多少個(gè)類(lèi)就會(huì )覺(jué)得你很了不起,你永遠只是他們的客戶(hù),他們看重的是你口袋里的銀子。我也做過(guò)系統內核,我也封裝過(guò)很多API,同樣我也不會(huì )看重那些使用這些API做二次開(kāi)發(fā)的客戶(hù),除非他能夠作出自己獨到的設計。 至于有人認為C++ >C那更是讓人笑掉大牙,不妨你去打聽(tīng)一下,現在有幾個(gè)操作系統內核是用C++寫(xiě)的,又有幾個(gè)實(shí)時(shí)系統用的是C++,當然我也不是說(shuō)C++不好,但是目前的內核和實(shí)時(shí)系統中C++還無(wú)法與C匹敵,至于說(shuō)C++適合做應用系統的開(kāi)發(fā)那是另外一回事。所以我的觀(guān)點(diǎn)是不在于你用什么工具和語(yǔ)言,而在于你干什么工作。你的設計體現了你的技術(shù)層次。 這樣干了一年我覺(jué)得非?鄲,做的大多數都是熟練工種的活,個(gè)人技術(shù)上沒(méi)有太多的提高也看不到方向。所以決定離開(kāi)這個(gè)城市去上海,尋求更好的發(fā)展,并且打算放棄我以前的MIS轉到通信行業(yè)。 寫(xiě)到這里不能不提到我女朋友,我們是在來(lái)上海前半年認識的,她大四在我公司實(shí)習,公司派她給我寫(xiě)文檔,我們的感情發(fā)展的很快。她告訴我很多事情,她家原本是改革開(kāi)放的第一批暴發(fā)戶(hù),她母親愛(ài)打牌,輸掉了幾百萬(wàn),還欠了很多債,她有男朋友,但是她對他沒(méi)有感情,只因為他給了她母親兩萬(wàn)多塊錢(qián),后來(lái)還強迫她寫(xiě)了四萬(wàn)塊的借條,她男朋友背叛過(guò)她并且不止一次打她,現在逼她結婚不然就要她還錢(qián)。這人居然還是一個(gè)高校的老師!她母親把父親給她的學(xué)費花了,因為拖欠學(xué)費她沒(méi)有辦法拿到畢業(yè)證。她母親現在有病需要錢(qián),我拿出了自己的一點(diǎn)積蓄并且跟朋友們接了一些,替她交了學(xué)費并給她母親看病(后來(lái)才知道看病的錢(qián)又不知所終,就連她母親是不是有病我都不知道,但她也是沒(méi)有辦法)。這個(gè)時(shí)候我家知道了一些事情,堅決反對我和她在一起,她原來(lái)的男朋友也極力破壞。無(wú)奈之下我們決定早一定離開(kāi)這個(gè)傷心的城市,并且瞞著(zhù)我們家。由于時(shí)間倉促,我只準備了4000塊錢(qián),她僅有的幾百塊錢(qián)也被她母親要去了,我買(mǎi)了三張票,一張是中午的,兩張是晚上的,中午我的家人把我送上船,他們一離開(kāi)我就下了船,我和她乘坐晚上的船離開(kāi)了這個(gè)我和她生活了很多年的城市,帶走的只是一身債務(wù)。沒(méi)有來(lái)過(guò)上海的我們兩個(gè)性倔強,都不愿意去麻煩同學(xué)和朋友。來(lái)到上海是傍晚6點(diǎn)半,我們都不知道該去哪里,我們找了一個(gè)20塊錢(qián)的旅館,這個(gè)房間連窗戶(hù)都沒(méi)有,7月份的天氣酷熱難耐,房間里非常悶熱。第二天我們開(kāi)始租房子,因為身上的錢(qián)不多,我們基本都是步行,花了一個(gè)星期時(shí)間,不知道在浦東轉了多少圈后找到了一個(gè)400塊的房子,但是我們都不了解上海是付三壓一,還要付半個(gè)月的中介費,買(mǎi)了一些鍋碗瓢盆后,我們身上只有800塊錢(qián)了,工作都還沒(méi)有著(zhù)落,這800塊錢(qián)要支持到我們拿到第一個(gè)月工資,為了省錢(qián)我們自己做飯,每天買(mǎi)菜只花兩塊錢(qián),她非常喜歡吃(也可能她在大學(xué)經(jīng)常挨餓的愿意),看到她現在這樣省吃?xún)用我真的很不忍心。她以前的男朋友也沒(méi)有放過(guò)她,經(jīng)常打電話(huà)來(lái)騷擾,并且來(lái)上?此,還說(shuō)了不少恐嚇她的話(huà),她過(guò)于善良,說(shuō)他以前畢竟幫助過(guò)她,叫我不要與他一般見(jiàn)識。以后的每天在家就是苦等面試通知,原本我想迅速找一家MIS公司解決眼前的困難,但是她堅持讓我不要放棄自己的理想,終于功夫不負有心人,我找到了一家通信公司,4000塊的工資雖然趕不上MIS公司給我開(kāi)出的價(jià)位,但也夠在上海生存。她也找到了工作,第一天上班她哭了,這是她來(lái)上海第一次流淚,我心里很難受也很感動(dòng)。 由于是全新的行業(yè),我把自己降到了零點(diǎn),我學(xué)的VC、Delphi、數據庫派不上用場(chǎng),擺在我面前的是嵌入式、協(xié)議、信令一些我從未接觸過(guò)的知識。我知道我沒(méi)有退路,于是拼命的學(xué)習,我把自己當做一個(gè)應屆畢業(yè)生一樣,一分努力一分收獲,半年過(guò)去我終于熟悉了工作,并且得到了公司的表彰,薪水也加了一級。后面的日子里我們省吃?xún)用,把欠朋友的1萬(wàn)多塊錢(qián)還了,日子終于上了正軌。這時(shí)女朋友告訴我她想考研究生,我也很支持,于是她辭職在家備考。 另外,在這里我要感謝我的ProjectManager,他原來(lái)是一個(gè)大通信公司的產(chǎn)品經(jīng)理,對人非常和善,我從他那里學(xué)到了很多知識,而且他也給了我許許多多無(wú)私的幫助。在工作上他給我充分的空間和信任。記得公司安排我維護一個(gè)接入服務(wù)器軟件,由于代碼量不算太小(5萬(wàn)行),資料和文檔都不齊全,我維護起來(lái)非常吃力,所以想重新把它做一遍,公司領(lǐng)導不太支持,可能覺(jué)得工作量太大,但是他極力支持我,私下里他讓我放手去做,我的維護工作他擠時(shí)間做。在他的支持下,我花了半年時(shí)間完成了接入服務(wù)器的軟件,并且實(shí)現了一個(gè)相對完整的TCP/IP協(xié)議棧。在這里我學(xué)會(huì )了嵌入式系統設計、驅動(dòng)開(kāi)發(fā)、TCP/IP和很多通信的知識,我花了一年時(shí)間終于使自己從MIS開(kāi)發(fā)轉到了通信行業(yè),并且站穩了腳跟。我的開(kāi)發(fā)大量是對硬件的直接操作,不再受微軟的操作系統,VC、Delhpi這些開(kāi)發(fā)工具的約束,我終于看到了另外一片天空。 我做事情喜歡追根問(wèn)底,隨著(zhù)開(kāi)發(fā)的深入,軟件開(kāi)發(fā)與硬件聯(lián)系越來(lái)越緊密,硬件知識的匱乏又對我的發(fā)展產(chǎn)生了障礙,而且芯片技術(shù)基本上掌握在國外公司的手里,這對做系統級設計是一個(gè)非常大的制約,一個(gè)新產(chǎn)品出來(lái),第一道利潤(也往往是最豐厚的利潤)常常都被IC公司如Intel、Motorola賺去了,國內的廠(chǎng)商只能喝點(diǎn)湯。所以我決心解決自己的硬件技術(shù)障礙,并打算離開(kāi)通信行業(yè),進(jìn)入IC設計相關(guān)領(lǐng)域。 當然我明白如果我對硬件了解的非常少,沒(méi)有哪家IC公司會(huì )仁慈到招我這樣一個(gè)一竅不通的人來(lái)培訓。所以我必須努力打好基礎,學(xué)一些相關(guān)知識為以后做準備。就像我開(kāi)始從MIS轉到通信一樣,我看過(guò)大量通信方面的書(shū),并且給一個(gè)ISP做過(guò)RADIUS計費分揀臺,在這樣的背景下這家通信公司才給了我這個(gè)機會(huì )。我在的通信公司是做系統設計的,有不少PCBLayout硬件人員,平常我就注意向他們學(xué)習,由于我做的是軟件,在公司看硬件資料不好意思,所以開(kāi)始只好在家看,剛來(lái)上海工作我連續一年都在加班,后來(lái)不加了,因為我要擠出時(shí)間學(xué)習,通常我12點(diǎn)左右睡,第二天5點(diǎn)半起,我上班比較早,地鐵上如果人不多我也用來(lái)看書(shū)。學(xué)習當然不會(huì )是一帆風(fēng)順的,有些實(shí)在不懂的問(wèn)題就積累起來(lái)問(wèn)硬件人員,他們的幫助使我學(xué)習進(jìn)度快了很多,因為在沒(méi)有人點(diǎn)撥的情況下自學(xué),我的一半時(shí)間是花在解決疑難問(wèn)題上,但這種問(wèn)題經(jīng)常是別人的一句話(huà)就可以讓我豁然開(kāi)朗,我非常慶幸我有這樣的學(xué)習環(huán)境。在后面的一年里,我學(xué)會(huì )了看硬件原理圖,學(xué)會(huì )了簡(jiǎn)單的硬件設計 (模擬電路方面還有不小的差距),事情就是這樣的,當你安安份份做軟件,別人永遠認為你是軟件開(kāi)發(fā)人員,在你開(kāi)始學(xué)習硬件時(shí)別人未必會(huì )認同,有位中興通訊的朋友還對我說(shuō)過(guò),一個(gè)人不可能把所有東西都學(xué)完。我也明白這一點(diǎn),但我希望自己做的更好。但當你熟悉硬件后大家又會(huì )覺(jué)得你好像原本就是軟硬件都懂的,同事們也都習以為常了。這個(gè)時(shí)候我可以把硬件資料堂堂正正的拿到公司看,沒(méi)有人再大驚小怪了。讓我比較自豪的是我通過(guò)自己的努力做了一個(gè)IAD(軟交換的終端設備)系統方案,包含軟硬件的選型、設計等內容,這個(gè)方案得到了公司和同事們的認同,讓我感到非常欣慰。 技術(shù)是相輔相成的,當我的硬件有了一定的進(jìn)步后,我的軟件設計也有了很大的提高,我可以從更深層次理解問(wèn)題,我做的接入服務(wù)器CPU是MotorolaPowerPC860,熟悉的朋友都知道860QMC與軟件的批量數據傳輸通常采用BD表的方式,硬件人員做驅動(dòng)的時(shí)候習慣采用固定BD表,每接收或發(fā)送數據都將數據從BD表拷貝到用戶(hù)Buffer,或從用戶(hù)Buffer拷貝到BD表,由于理解的比較深入,我自己重新實(shí)現了這個(gè)過(guò)程,采用動(dòng)態(tài)BD表的方式,驅動(dòng)從一個(gè)網(wǎng)口接收數據,提交給我的軟件進(jìn)行三層交換,直至從另外的接口發(fā)送出去,沒(méi)有進(jìn)行一次拷貝。這樣的設計大大提高了性能,使系統的指標接近理論值。軟硬件的結合使我的設計水平上了一個(gè)臺階。我現在寫(xiě)的這個(gè)操作系統,編譯后我把程序反編譯成匯編,找出其中不優(yōu)化的代碼,然后在C程序中進(jìn)行調整。舉個(gè)例子,很多CPU沒(méi)有專(zhuān)門(mén)的乘法指令,這個(gè)大家應該都知道,在這種CPU上進(jìn)行一個(gè)乘法操作常常會(huì )花費大量的指令周期,有的朋友會(huì )說(shuō)這個(gè)我知道,我會(huì )盡量避免采用×號,但是事情往往不是那么簡(jiǎn)單,你知道C語(yǔ)言中數組的下標操作是怎么實(shí)現的嗎?仔細看看反匯編的代碼你就會(huì )明白,同樣是通過(guò)下標的定位操作,C編譯器會(huì )有時(shí)候會(huì )產(chǎn)生位移指令,但有時(shí)候會(huì )用乘法實(shí)現,兩者效率往往是天壤之別,所以明白這些問(wèn)題你才能將系統性能提升到極致。這些問(wèn)題就不多說(shuō)了,有興趣的話(huà)以后可以共同探討。 話(huà)說(shuō)遠一點(diǎn),我由衷的希望在軟件上做的比較深入的朋友們有機會(huì )學(xué)學(xué)硬件以及其它相關(guān)知識,尤其是做底層開(kāi)發(fā)和嵌入式設計的。這對軟件技術(shù)的提高有非常大的幫助,否則很多事情你只知道該這樣但不會(huì )明白為什么該這樣。我這個(gè)觀(guān)點(diǎn)在我現在的IC公司ProjectManager那里也得到了驗證。他告訴我們公司現在的802.11芯片產(chǎn)品的軟件經(jīng)理原本是做該芯片硬件設計的,某某某原本是做軟件的,現在在做IC,類(lèi)似的例子還有很多,只是在國內這樣的風(fēng)氣不是非常流行。 我有一些心得體會(huì )與大家分享,只有當我干好本職工作后,我才會(huì )學(xué)習與工作關(guān)系不大的技術(shù),這樣公司的上司才不至于反感,在入門(mén)階段的問(wèn)題我通常不去問(wèn)那些資深人士,而是問(wèn)一些資歷比較淺的朋友,比如剛畢業(yè)不久的學(xué)生,因為他們往往會(huì )跟你詳細的講解,而資深人士通常覺(jué)得你的問(wèn)題太簡(jiǎn)單,所以回答的也很簡(jiǎn)單,我又不好意思多問(wèn)。等技術(shù)上了一定的層次后我才會(huì )問(wèn)他們,他們也能給你比較深入的回答。另外,有些朋友說(shuō)我機會(huì )比較好,他們也希望能從事新的工作可惜沒(méi)有機會(huì ),我聽(tīng)了只有苦笑,我的機會(huì )了解的人都應該知道,我沒(méi)有出生在什么IT世家:)也沒(méi)有誰(shuí)一路提拔我,所有的路都是自己走出來(lái)的,我母親去世比較早,我的后母(我叫她阿姨)看著(zhù)我努力過(guò)來(lái)的,一次她看我大年30還在寫(xiě)程序,她說(shuō)像我這樣努力木頭都能學(xué)出來(lái)。 我的最終目的是IC而不是PCB,所以我下一步的準備開(kāi)始學(xué)習IC設計的知識。公司的同事沒(méi)有懂IC設計的,后面的路又要靠自己了,我買(mǎi)了不少相關(guān)的書(shū),在網(wǎng)上也查了很多的資料,我花了大量的時(shí)間去學(xué)習VHDL,并且用軟件進(jìn)行了一些簡(jiǎn)單的設計和仿真(沒(méi)有設計ASIC,只是針對FPGA),隨著(zhù)學(xué)習的深入,我漸漸明白了IC設計的基本流程,同時(shí)也明白了這條路的艱辛。這個(gè)時(shí)候我已經(jīng)做好了跳槽的準備,我向一家業(yè)界又一定知名度的IC設計公司投了簡(jiǎn)歷,并通過(guò)了漫長(cháng)的面試(4個(gè)多小時(shí))。其他的一切我都比較滿(mǎn)意,唯獨薪資差強人意,我也明白原因,因為我是這個(gè)行業(yè)的新人,我沒(méi)有經(jīng)驗,我再一次將自己清零了。公司老板問(wèn)我6000多一個(gè)月能不能接受,我知道他也是照章辦事。想想我通信行業(yè)的朋友們,基本上都是年薪10萬(wàn)以上,月薪過(guò)萬(wàn)的也比比皆是,朋友們也幫我介紹了不少待遇不錯的公司,我該怎么選擇,當時(shí)我很猶豫,我熱愛(ài)我的事業(yè),我向往我的追求,但我也是一個(gè)普通的人,我也需要養家糊口,我也想早一點(diǎn)買(mǎi)房買(mǎi)車(chē)。生活給我出了一道難題。 愛(ài)因斯坦在63歲時(shí)說(shuō)過(guò)“一個(gè)人沒(méi)有在30歲以前達成科學(xué)上的最大成就,那他永遠都不會(huì )有!边@句話(huà)給了我很大的壓力和震動(dòng),我馬上就26歲了,離30只有四年時(shí)間,我必須抓緊這幾年寶貴的時(shí)間,努力達到我技術(shù)上的最高峰。為了這個(gè)理想,為了能離自己的夢(mèng)更近一些,我選擇了這家IC公司,我明白自己的薪資和公司剛進(jìn)來(lái)的碩士研究生相差無(wú)幾,但為了今后的發(fā)展只能忍受,一切又得重新開(kāi)始。換行業(yè)是一個(gè)非常痛苦的過(guò)程,尤其從一個(gè)春風(fēng)得意的位置換到一個(gè)陌生的崗位,感覺(jué)象從溫暖的被子里鉆出來(lái)跳進(jìn)冰水中,讓人難以接受。在原來(lái)那家通信公司,我是唯一兩年時(shí)間漲了五次工資的員工,公司和同事都給了我極大的認可,工作上也常常被委以重任。但現在這一切都成了過(guò)去,在新的公司我只是一個(gè)新人,沒(méi)有人知道也沒(méi)有人在意我過(guò)去的成績(jì)。我決定重新開(kāi)始,我把自己看作新畢業(yè)的學(xué)生,我要用自己的努力得到公司的認可。進(jìn)入新的行業(yè)是非常痛苦的,我告訴自己必須忍受這一切,雖然外面有很多誘惑,但是既然作出了選擇我就不允許自己輕易放棄。 我現在已經(jīng)在這家新公司上了一個(gè)多月的班,開(kāi)始非常艱難,現在慢慢適應了。第一個(gè)月結束時(shí),TeamLeader找我談話(huà),說(shuō)我是新進(jìn)員工中最優(yōu)秀的一個(gè),我心里很欣慰,這也算對我努力的一個(gè)肯定吧。在這里還要感謝我的女朋友,她給了我很大的支持和鼓舞,每次在我動(dòng)搖的時(shí)候她都在鼓勵我,讓我堅持自己的理想,剛來(lái)上海是她讓我不要勉強去做MIS,這次也是她讓我頂住了月薪過(guò)萬(wàn)的誘惑,沒(méi)有她我可能不會(huì )有今天的成績(jì),F在的公司有自己的操作系統,自己的CPU、DSP和其它芯片,在這里我能學(xué)到世界上最先進(jìn)的技術(shù),我們的設計開(kāi)發(fā)不再完全依賴(lài)別人的硬件和系統,這讓我很開(kāi)心。我打算等工作步入正軌后,全力學(xué)習新的知識,實(shí)現我的理想。 在后面的兩年里我給自己定下了幾個(gè)目標: 一.努力做好本職工作,在工作上得到公司和同事們的認同; 二.努力學(xué)習IC硬件設計知識,多向同事請教,并利用一切機會(huì )多實(shí)踐; 三.實(shí)現我的實(shí)時(shí)操作系統的主要部分,完成TCP/IP協(xié)議棧模塊,并免費發(fā)布源代碼; 四.和我女朋友結婚并買(mǎi)一套小房子,這是最重要的,因為我明白事業(yè)是可以重來(lái)的,但是珍貴的感情很難失而復得。 在這里提一下我現在開(kāi)發(fā)的操作系統,它是一個(gè)實(shí)時(shí)嵌入式系統,目前支持以下特性: a.支持時(shí)間片輪轉調度和基于優(yōu)先級調度,最多64個(gè)優(yōu)先級; b.搶占式實(shí)時(shí)內核; c.為了便于移植,主體用標準C實(shí)現; d.匯編代碼非常少,不到100行; e.支持任務(wù)管理,各任務(wù)有獨立的堆棧; f.進(jìn)程同步和通信目前完成了Semaphore,Message Queue正在調試; g.實(shí)現了定時(shí)系統調用; h.可以在windows上仿真調試 我還打算下一步實(shí)現優(yōu)先級反轉保護,Event Flag,Data Pipe,內存管理(以前實(shí)現過(guò))、驅動(dòng)接口等。 在這之后我還會(huì )努力完善它,比如加入文件系統,協(xié)議棧、調試接口等。希望朋友們提出自己的意見(jiàn)和建議,在此不勝感激! 后記: 就像有的朋友說(shuō)的,我的經(jīng)歷或許會(huì )給一些朋友產(chǎn)生誤導,在這里我必須說(shuō)明一下。我來(lái)上海以前學(xué)習過(guò)于拼命,常常晚上只睡3個(gè)多小時(shí),我身高1米71,那時(shí)只有108斤(我現在130多),家人也說(shuō)我這樣拼命活不過(guò)60歲,但是當時(shí)的我太固執,我對他們說(shuō)只要能實(shí)現理想活50歲我就夠了。那時(shí)的拼命使我的身體受到了影響,有一次早上突然腰肌劇痛難忍,痛的我倒在床上站不起來(lái)。雖然我現在已經(jīng)比較注意,但有時(shí)候還會(huì )隱隱作痛。后來(lái)在女朋友說(shuō)服了我,來(lái)上海以后我不再如此。我經(jīng)常引用父親的一句話(huà)“身體是革命的本錢(qián)”。 而且我也發(fā)現拼命不是辦法,我可以熬一兩個(gè)通宵,最多的一次我連續工作了三天三夜,但是我半個(gè)月都沒(méi)有恢復過(guò)來(lái),這樣是不是得不償失?學(xué)習工作應該是一個(gè)長(cháng)期的過(guò)程,像馬拉松而不是百米沖刺。我現在非常注意調整學(xué)習和工作的強度,我要保證每天盡量有相對充沛的精力,一些年輕的朋友覺(jué)得自己也應該拼命努力,這讓我多少有些擔心,如果我的故事能讓你在學(xué)習工作上多一點(diǎn)興趣,我會(huì )感到很開(kāi)心,但如果誤導了某些朋友,讓你做一些不值得的付出,我會(huì )感到很內疚。 技術(shù)沒(méi)有貴賤只分,我以前換行業(yè)是因為自己的興趣所致,而不是對哪個(gè)行業(yè)有什么偏見(jiàn)。我希望我的經(jīng)歷不要給朋友一個(gè)錯誤的導向,覺(jué)得我始終向更高的技術(shù)發(fā)展。其實(shí)各行各業(yè)做到頂尖都是很困難的。話(huà)又說(shuō)回來(lái)雖然技術(shù)沒(méi)有貴賤,但是門(mén)檻是有高低的,無(wú)論如,做IC的門(mén)檻要比做網(wǎng)頁(yè)的高,這一點(diǎn)無(wú)可否認。國家各種人才都是需要的,但是作為個(gè)人奮發(fā)向上的想法還是應該有的,努力在自己喜歡的行業(yè)上做的更好,而不應該停留在比較膚淺的層次上。 我是一個(gè)自己覺(jué)得比較有自知之明的人,或許我最大的優(yōu)點(diǎn)就是知道自己有很多缺點(diǎn):)。我的故事中很多的曲折和錯誤都是由我的缺點(diǎn)造成的,希望大家用審慎的眼光看待我的經(jīng)歷,不要被我的“花言巧語(yǔ)”所迷惑。我學(xué)習有些隨心所欲,這給我帶來(lái)了無(wú)盡的麻煩,也大大阻礙的我的發(fā)展。記得我小時(shí)候成績(jì)比較出色,但是后來(lái)學(xué)習嚴重偏科,導致我中學(xué)成績(jì)一再滑坡,也沒(méi)有考上什么好的學(xué)校,小時(shí)候的一個(gè)朋友,當時(shí)的成績(jì)和我相仿,但是沒(méi)有我這個(gè)缺點(diǎn),她上了清華,后來(lái)在去了美國深造,在一個(gè)著(zhù)名導師手下研究理論科學(xué),這未嘗不是一條更好的出路。另外我的學(xué)習方法也是在不斷改善中的,過(guò)去的學(xué)習過(guò)于講究數量和時(shí)間,那樣學(xué)習既苦而已效率不高,現在我非常注意學(xué)習的效率和技巧,這樣才是學(xué)習的捷徑(當然不是指投機取巧),比如說(shuō)學(xué)一相對陌生的技術(shù),如果有條件,不妨問(wèn)一問(wèn)有經(jīng)驗的人,不需要問(wèn)很多,往往他不經(jīng)意的幾句話(huà)會(huì )給你非常大的幫助,甚至超過(guò)你看一個(gè)星期的書(shū)。帶著(zhù)這樣的思想再去學(xué)習你會(huì )節省很多時(shí)間,這樣何樂(lè )不為呢?這些年中我學(xué)了不少的東西,由于開(kāi)始非常盲目,所以學(xué)的東西雜亂無(wú)章,現在回想起來(lái)讓我啼笑皆非,我把大量的時(shí)間浪費在一些沒(méi)有必要深入了解的知識上,畢竟一個(gè)人的精力是有限度的。很多朋友很我一樣都背過(guò)五筆字形,的確它且個(gè)不錯的輸入法,但是對一個(gè)研發(fā)人員它絕對不值得你去背,你的時(shí)間應該花在有價(jià)?的地方。我這樣的事情還做過(guò)很多,我背過(guò)CCED、WPS的命令和快捷鍵,在dBase基本退出歷史舞臺后我還花了很多時(shí)間去學(xué)習它的使用。所以我的學(xué)習在前期缺乏規劃,沒(méi)有明確的短期目的、中期目標,只有一個(gè)虛無(wú)飄渺的長(cháng)期的理想。這就像做設計一樣,好的設計是從需求抽象到代碼有很多過(guò)程,而不能得到了需求就立刻開(kāi)始開(kāi)始編碼。 當然這么些年的學(xué)習和工作多多少少有些收獲,下面我說(shuō)說(shuō)我的一些學(xué)習的心得,這些方法未必正確,我也在不斷探索和改進(jìn)中。我的學(xué)習和工作有相對明確的目標,我不會(huì )一時(shí)心動(dòng)而去學(xué)習某一技術(shù),在下決定之前我會(huì )考慮很多,包括長(cháng)期的發(fā)展,個(gè)人路線(xiàn)的規劃,需要付出的代價(jià)、可能遇到的困難及解決的辦法等等,在決定后還會(huì )制定更加明確的計劃,包括短期、中期和長(cháng)期的,身邊可以利用到的資源(包括好的書(shū)籍、資料、軟硬件環(huán)境,也包括有經(jīng)驗的朋友或者師長(cháng)),以及每一個(gè)階段是怎么過(guò)渡到高一階段的計劃,往往在一個(gè)學(xué)習階段一旦上路后會(huì )走的相對順利,但是跨階段通常比較麻煩,比如從學(xué)習基礎知識轉到實(shí)踐。另外我買(mǎi)書(shū)也有自己的方法,現在世面上高質(zhì)量的書(shū)遠不如低質(zhì)量書(shū)多,對于一個(gè)陌生的技術(shù),往往在第一次買(mǎi)書(shū)會(huì )選擇錯誤,即使買(mǎi)到一本好書(shū)但是它的方向也未必適合你,所以我通常會(huì )先在網(wǎng)上查找一些該技術(shù)的介紹,有了一點(diǎn)點(diǎn)概念后再去買(mǎi)一本比較薄、相對便宜并且內容相對泛泛而談的書(shū),這是國內作者最善于寫(xiě)的書(shū):),再把它瀏覽一遍后我就會(huì )基本明白這門(mén)技術(shù)的要點(diǎn),后面買(mǎi)書(shū)和制定計劃就會(huì )明確的多。否則一開(kāi)始就想找本好書(shū)往往比較困難,而且買(mǎi)回來(lái)后努力學(xué)習,有時(shí)候學(xué)了一半才發(fā)現是本低質(zhì)量的書(shū)或者是相對過(guò)時(shí)技術(shù),讓人非常懊惱。另外讓有經(jīng)驗的人幫你介紹,通常也是一個(gè)不錯的選擇。 有些朋友想學(xué)通信、嵌入式開(kāi)發(fā),但總覺(jué)得自己沒(méi)有軟硬件環(huán)境,我就按我的了解給大家介紹一下怎么建立這樣的環(huán)境,當然我了解的只是我學(xué)習和工作的方向。通信我做的是數據網(wǎng)方面的工作,包括TCP/IP、二三層交換、對接入網(wǎng)、H.323和軟交換也有一點(diǎn)認識。這些軟硬件環(huán)境都是可以在PC上構建的。你甚至可以在一個(gè)沒(méi)有網(wǎng)卡的PC上建立一個(gè)包含多個(gè)路由器、接入服務(wù)器、VoIP網(wǎng)關(guān)、網(wǎng)守、主機等的仿真網(wǎng)絡(luò )環(huán)境,而且與實(shí)際的網(wǎng)絡(luò )相當接近,當然這需要你有清晰的網(wǎng)絡(luò )概念和一定的網(wǎng)絡(luò )知識,我一直在努力開(kāi)發(fā)一套軟件將這個(gè)過(guò)程簡(jiǎn)化,目前試驗已經(jīng)做完,我可能會(huì )將它融入我的操作系統外圍擴展軟件中。這樣的方法我無(wú)法用簡(jiǎn)單的語(yǔ)句講的很清楚,我可以說(shuō)一下大概的思想,就是在PC上實(shí)現仿真網(wǎng)卡,(知道Windows怎么在沒(méi)有網(wǎng)卡的機器實(shí)現虛擬網(wǎng)卡技術(shù)的朋友都應該會(huì )明白),然后每一個(gè)仿真網(wǎng)卡對應一個(gè)虛擬設備,如路由器或者主機。你也可以借助第三方工具完成部分工作,如VmWare等。我現在就是利用一個(gè)仿真網(wǎng)卡做自己的開(kāi)發(fā)的。 至于嵌入式開(kāi)發(fā)環(huán)境更加容易實(shí)現,PC就是一個(gè)非常大的硬件平臺,現有的嵌入式操作系統通常都支持X86,你可以在上面做開(kāi)發(fā),通過(guò)軟盤(pán)Boot或者使用虛擬機裝載,我用VxWorks做了試驗,在一臺PC上跑Windows和VxWorks兩個(gè)系統。另外Windows上的兼容DOS的16位仿真X86環(huán)境也為很多操作系統提供了絕佳的試驗環(huán)境,我的操作系統在Windows上就是這樣實(shí)現的。Linux在嵌入式中應用也比較廣泛,它在網(wǎng)上有大量的資料,而且也相對比較容易實(shí)踐。同時(shí)很多完善的嵌入式開(kāi)發(fā)環(huán)境支持軟件仿真,如Tornado、WinCE等 |
不知道你的時(shí)代不好還是天賦太差,感覺(jué)說(shuō)了一堆苦勞,幾乎沒(méi)有功勞,是個(gè)人努力都能做到你這樣,我記憶中好像也有這么2一個(gè)人,學(xué)操作Linux花了一個(gè)月,還說(shuō)什么學(xué)到半夜2點(diǎn)。我們上學(xué)那會(huì ),每個(gè)計算機專(zhuān)業(yè)的人都是三天學(xué)會(huì )Linux,每天差不多8個(gè)小時(shí)在實(shí)驗室用Linux。 |
感覺(jué)樓主每次跨度很大呀,不過(guò)也沒(méi)有多少人能忍受住跨行后的0起點(diǎn) |
我很尊敬佩服樓主,但我突然覺(jué)得一個(gè)人沒(méi)必要學(xué)那么多自己不喜歡的東西。。。 |
拜讀了。。。。。。。。。。。。! |
我很佩服樓主的毅力,但也要總結得失,或者其他因素,因為你不可能總是維持在20歲的狀態(tài) |
學(xué)習了,謝謝分享!追逐自己的目標,努力奮斗! |
佩服佩服,要不要這么努力,你這么一說(shuō),我感覺(jué)我的光陰全浪費了,我太膚淺了,只能說(shuō)自己簡(jiǎn)直是菜到不行了。 |
欽佩樓主的努力與學(xué)習的深入;反觀(guān)自己,自感慚愧,只能日后更加努力,向樓主學(xué)習精神致敬! |