導航:首頁 > 馬拉體育 > 微軟編程馬拉松

微軟編程馬拉松

發布時間:2021-03-10 21:20:29

Ⅰ 想問問各位編程高手最開始的時候是怎麼下手的,也可以說是怎麼從什麼都不知道的時候到會匯編的過程!

一個IT人士的個人經歷,給迷失方向的朋友

這些日子我一直在寫一個實時操作系統內核,已有小成了,等寫完我會全部公開,希望能夠為國內IT的發展盡自己一份微薄的力量。最近看到很多學生朋友和我當年一樣沒有方向 ,所以把我的經歷寫出來與大家共勉,希望能給剛如行的朋友們一點點幫助。
一轉眼我在IT行業學習工作已經七年多了,這期間我做過網頁,寫過MIS、資料庫,應用程序,做過通信軟體、硬體驅動、協議棧,到現在做操作系統內核和IC相關開發,這中間走了很多彎路,也吃了不少苦。
我上的是一個三流的高校,就連同一個城市的人多數都不知道。因為學校不好也就沒有指望能靠學校名氣找一個好工作。所有的希望都寄託在自己的努力上了,大一開學前的假期我就開始了學習,記得我買的第一本書是《計算機基礎DOS3.0》,大家別嚇著了,其實當時已經普及了DOS6.22了,只是我在書店裡看到了DOS4.0,5.0,6.0的書,以為像英語那樣是第四、五、六冊,記得當時到處找DOS1.0,現在想想也幸好我沒有找到:)開學前我學完了PASCAL,那時既沒有計算機也沒有人可以請教,我連程序是什麼的概念都沒有,只好死記硬背代碼,然後拿紙寫,我一直到大三才有了一台486,在這之前用紙寫了多少程序我也記不清楚了,只知道最長的一個我拿A4大小的草稿紙寫了30多頁,我的C語言、C++、VC都是在這樣的條件下入門的。所以說條件是可以克服的,希望我的經歷多少給條件艱苦的同學們一點信心。第一次上機是在我姐夫的機房,我的心情激動的無與倫比,但是一上機我立刻傻了眼,他們用的是英文版的Win3.1,我的那點DOS知識都見了鬼,上機提心吊膽的一陣瞎摸,一不小心把Word弄成了全屏,怎麼都還不了原,當時真是心急如焚,我以機器被我弄壞了。第一個C語言程序,就是那個經典的HelloWorld,我調了幾個星期,上機機會非常少,也沒有書告訴我開發環境(TC2.0)需要設置,而且開始我都不知道有編譯器,我甚至自作聰明把寫好的程序擴展名從.c改成.exe,結果可想而知。
大一學完了C、X86的匯編、數據結構、C++。由於精力都花在自學上了,大一下四門課掛了彩,三類學校就是這點好,掛上一二十門也照樣畢業。不過扯遠點說,我那麼刻苦都及不了格,可見我們國家的計算機教育有多死板。
大二准備學VC和BC,當時難以取捨,後來選了VC,不為別的,只為書店裡兩本書,VC那本便宜6塊錢。我的努力在班上無人能及,學的日夜不分,大三有了計算機後更是如此,很多次父親半夜教訓我說我不要命了,我一直覺得自己基礎差,記憶又不行,條件也不好 ,所以覺得只有多花點時間才能趕上別人。居然後來有許多朋友說我有學計算機的天賦,讓我哭笑不得。我用的是486,16M內存,1G硬碟,當時同學們的配置都是P166MMX,我安裝一個Windows NT4.0需要一個通宵,編譯一個BC5.0向導生成的程序需要近兩個小時,我的顯示器是個二手的,輻射非常大,開機屏幕冒火花,看起來很酷的:),有一次程序寫的太久,覺得怎麼白色的編輯器背景變成了紫色,以為顯示器壞了,後來才發現眼睛不行了,不過說來也奇怪,到今天我的視力還能保持1.5,真是個奇跡。但是就是那台破機器陪伴我兩年,讓我學會了VC、Delphi、SQLServer等。後來那台機器給我阿姨打字用,據她說一天她正打的開心,一股青煙夾著火苗從顯示器鑽出來,之後它才壽終正寢。
大三假期找了個機會在一個計算機研究所實習,與其說實習不如說是做義工,工作了兩個月一分錢沒有拿。但是這兩個月對我的發展幫助很大,讓我早一步了解了社會,剛去的時候我當然是一竅不通,在那裡我熟悉了網路,學會了Delphi和Oracle。由於工作很認真,得到了比較好的評價,在一位長者的引薦下,我開始和他們一起做項目,這使我在大三大四就有了自己的收入,大四又找了兩家MIS公司兼職,雖然錢不多,但是在學生期間有1000多的收入我已經非常滿足了,我終於用自己賺的錢把計算機換了。大四下開始找工作,這時我的工作經驗已經比較多(當然現在想想非常幼稚),開始聽父母的想去那個研究所,實習過那個部門也希望我能去,但是不知道為什麼最後不了了之,這種單位就是比較官僚,我一氣之下就到了我兼職的一個公司做MIS的TeamLeader。在大三到畢業一年的時間,做過了各種MIS,從煤氣、煙廠、公安、鐵路、飲食到高校,什麼有錢做什麼,工作也很辛苦,經常加班和熬通宵,從跟客戶談需求到設計、編碼、測試、交付都要上。那時覺得很有成就感,覺得自己還不錯,現在想想真是很膚淺。
剛走上工作崗位的學生很容易被誤導,各種開發工具讓人眼花繚亂,同時也覺得很受公司器重,但這樣工作永遠是一個低層次的開發者。不要跟我說什麼系統分析有多麼多麼重要,多麼多麼難。你以為自己跟用戶談需求做設計就是系統分析和設計了嗎,國內又有幾個公司能夠做的很到位很規范?我是ISO9000內審員,也在Rational公司受過多次培訓,拿了4個證書,還有一個公司讓我去做CMM。這些我聽過很多,但是很多事情到內就變了性質,一個公司不是通過了ISO9000或者CMM就能規范了,我現在在一家有幾十年歷史的外企工作,裡面的管理不是一般國內企業能及的。作為一個畢業不久以前沒有步入過社會的學生,幾乎不可能在很短的時間掌握系統分析和設計,面向對象、UML只是一個工具,關鍵是人本身的思想,不是說你熟悉了C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質,你可以用C寫出比別人用C++更加模塊化的程序。
話說遠一些,國內軟體開發行業有一個怪圈,很多人覺得VC > Delphi > VB,真是很搞笑。這幾個軟體我都做過開發,說白了他們都是工具,應該根據應用的需要選擇採用哪個,而不是覺得哪個上層次。如果你因為用某個開發工具很有面子而選擇的話,只能說明你很淺薄。如果說層次,那麼這些工具都不上層次,因為它們用來用去都是一些系統的API,微軟的朋友不會因為你記住他們多少個API或者多少個類就會覺得你很了不起,你永遠只是他們的客戶,他們看重的是你口袋裡的銀子。我也做過系統內核,我也封裝過很多API,同樣我也不會看重那些使用這些API做二次開發的客戶,除非他能夠作出自己獨到的設計。
至於有人認為C++ > C那更是讓人笑掉大牙,不妨你去打聽一下,現在有幾個操作系統內核是用C++寫的,又有幾個實時系統用的是C++,當然我也不是說C++不好,但是目前的內核和實時系統中C++還無法與C匹敵,至於說C++適合做應用系統的開發那是另外一回事。所以我的觀點是不在於你用什麼工具和語言,而在於你干什麼工作。你的設計體現了你的技術層次。
這樣幹了一年我覺得非常苦悶,做的大多數都是熟練工種的活,個人技術上沒有太多的提高也看不到方向。所以決定離開這個城市去上海,尋求更好的發展,並且打算放棄我以前的MIS轉到通信行業。
寫到這里不能不提到我女朋友,我們是在來上海前半年認識的,她大四在我公司實習,公司派她給我寫文檔,我們的感情發展的很快。她告訴我很多事情,她家原本是改革開放的第一批暴發戶,她母親愛打牌,輸掉了幾百萬,還欠了很多債,她有男朋友,但是她對他沒有感情,只因為他給了她母親兩萬多塊錢,後來還強迫她寫了四萬塊的借條,她男朋友背叛過她並且不止一次打她,現在逼她結婚不然就要她還錢。這人居然還是一個高校的老師!她母親把父親給她的學費花了,因為拖欠學費她沒有辦法拿到畢業證。她母親現在有病需要錢,我拿出了自己的一點積蓄並且跟朋友們接了一些,替她交了學費並給她母親看病(後來才知道看病的錢又不知所終,就連她母親是不是有病我都不知道,但她也是沒有辦法)。這個時候我家知道了一些事情,堅決反對我和她在一起,她原來的男朋友也極力破壞。無奈之下我們決定早一定離開這個傷心的城市,並且瞞著我們家。由於時間倉促,我只准備了4000塊錢,她僅有的幾百塊錢也被她母親要去了,我買了三張票,一張是中午的,兩張是晚上的,中午我的家人把我送上船,他們一離開我就下了船,我和她乘坐晚上的船離開了這個我和她生活了很多年的城市,帶走的只是一身債務。沒有來過上海的我們兩個性倔強,都不願意去麻煩同學和朋友。來到上海是傍晚6點半,我們都不知道該去哪裡,我們找了一個20塊錢的旅館,這個房間連窗戶都沒有,7月份的天氣酷熱難耐,房間里非常悶熱。第二天我們開始租房子,因為身上的錢不多,我們基本都是步行,花了一個星期時間,不知道在浦東轉了多少圈後找到了一個400塊的房子,但是我們都 不了解上海是付三壓一,還要付半個月的中介費,買了一些鍋碗瓢盆後,我們身上只有800塊錢了,工作都還沒有著落,這800塊錢要支持到我們拿到第一個月工資,為了省錢我們自己做飯,每天買菜只花兩塊錢,她非常喜歡吃(也可能她在大學經常挨餓的願意),看到她現在這樣省吃儉用我真的很不忍心。她以前的男朋友也沒有放過她,經常打電話來騷擾,並且來上海看她,還說了不少恐嚇她的話,她過於善良,說他以前畢竟幫助過她,叫我不要與他一般見識。以後的每天在家就是苦等面試通知,原本我想迅速找一家MIS公司解決眼前的困難,但是她堅持讓我不要放棄自己的理想,終於功夫不負有心人,我找到了一家通信公司,4000塊的工資雖然趕不上MIS公司給我開出的價位,但也夠在上海生存。她也找到了工作,第一天上班她哭了,這是她來上海第一次流淚,我心裡很難受也很感動。
由於是全新的行業,我把自己降到了零點,我學的VC、Delphi、資料庫派不上用場,擺在我面前的是嵌入式、協議、信令一些我從未接觸過的知識。我知道我沒有退路,於是拚命的學習,我把自己當做一個應屆畢業生一樣,一分努力一分收獲,半年過去我終於熟 悉了工作,並且得到了公司的表彰,薪水也加了一級。後面的日子裡我們省吃儉用,把欠朋友的1萬多塊錢還了,日子終於上了正軌。這時女朋友告訴我她想考研究生,我也很支持,於是她辭職在家備考。
另外,在這里我要感謝我的ProjectManager,他原來是一個大通信公司的產品經理,對人非常和善,我從他那裡學到了很多知識,而且他也給了我許許多多無私的幫助。在工作上他給我充分的空間和信任。記得公司安排我維護一個接入伺服器軟體,由於代碼量不算太小(5萬行),資料和文檔都不齊全,我維護起來非常吃力,所以想重新把它做一遍,公司領導不太支持,可能覺得工作量太大,但是他極力支持我,私下裡他讓我放手去做,我的維護工作他擠時間做。在他的支持下,我花了半年時間完成了接入伺服器的軟體,並 且實現了一個相對完整的TCP/IP協議棧。在這里我學會了嵌入式系統設計、驅動開發、TCP/IP和很多通信的知識,我花了一年時間終於使自己從MIS開發轉到了通信行業,並且站穩了腳跟。我的開發大量是對硬體的直接操作,不再受微軟的操作系統,VC、Delhpi這些開發工具的約束,我終於看到了另外一片天空。
我做事情喜歡追根問底,隨著開發的深入,軟體開發與硬體聯系越來越緊密,硬體知識的匱乏又對我的發展產生了障礙,而且晶元技術基本上掌握在國外公司的手裡,這對做系統級設計是一個非常大的制約,一個新產品出來,第一道利潤(也往往是最豐厚的利潤)常常都被IC公司如Intel、Motorola賺去了,國內的廠商只能喝點湯。所以我決心解決自己的硬體技術障礙,並打算離開通信行業,進入IC設計相關領域。
當然我明白如果我對硬體了解的非常少,沒有哪家IC公司會仁慈到招我這樣一個一竅不通的人來培訓。所以我必須努力打好基礎,學一些相關知識為以後做准備。就像我開始從MIS轉到通信一樣,我看過大量通信方面的書,並且給一個ISP做過RADIUS計費分揀台,在這樣的背景下這家通信公司才給了我這個機會。我在的通信公司是做系統設計的,有不少PCB Layout硬體人員,平常我就注意向他們學習,由於我做的是軟體,在公司看硬體資料不好意思,所以開始只好在家看,剛來上海工作我連續一年都在加班,後來不加了,因為我要擠出時間學習,通常我12點左右睡,第二天5點半起,我上班比較早,地鐵上如果人不多 我也用來看書。學習當然不會是一帆風順的,有些實在不懂的問題就積累起來問硬體人員,他們的幫助使我學習進度快了很多,因為在沒有人點撥的情況下自學,我的一半時間是 花在解決疑難問題上,但這種問題經常是別人的一句話就可以讓我豁然開朗,我非常慶幸我有這樣的學習環境。在後面的一年裡,我學會了看硬體原理圖,學會了簡單的硬體設計
(模擬電路方面還有不小的差距),事情就是這樣的,當你安安份份做軟體,別人永遠認為你是軟體開發人員,在你開始學習硬體時別人未必會認同,有位中興通訊的朋友還對我說過,一個人不可能把所有東西都學完。我也明白這一點,但我希望自己做的更好。但當你熟悉硬體後大家又會覺得你好像原本就是軟硬體都懂的,同事們也都習以為常了。這個時候我可以把硬體資料堂堂正正的拿到公司看,沒有人再大驚小怪了。讓我比較自豪的是我通過自己的努力做了一個IAD(軟交換的終端設備)系統方案,包含軟硬體的選型、設計等內容,這
個方案得到了公司和同事們的認同,讓我感到非常欣慰。

技術是相輔相成的,當我的硬體有了一定的進步後,我的軟體設計也有了很大的提高 ,我可以從更深層次理解問題,我做的接入伺服器CPU是Motorola PowerPC860,熟悉的朋 友都知道860 QMC與軟體的批量數據傳輸通常採用BD表的方式,硬體人員做驅動的時候習慣 採用固定BD表,每接收或發送數據都將數據從BD表拷貝到用戶Buffer,或從用戶Buffer拷 貝到BD表,由於理解的比較深入,我自己重新實現了這個過程,採用動態BD表的方式,驅動從一個網口接收數據,提交給我的軟體進行三層交換,直至從另外的介面發送出去,沒 有進行一次拷貝。這樣的設計大大提高了性能,使系統的指標接近理論值。軟硬體的結合使我的設計水平上了一個台階。我現在寫的這個操作系統,編譯後我把程序反編譯成匯編,找出其中不優化的代碼,然後在C程序中進行調整。舉個例子,很多CPU沒有專門的乘法指令,這個大家應該都知道,在這種CPU上進行一個乘法操作常常會花費大量的指令周期,有的朋友會說這個我知道,我會盡量避免採用×號,但是事情往往不是那麼簡單,你知道 C語言中數組的下標操作是怎麼實現的嗎?仔細看看反匯編的代碼你就會明白,同樣是通過下標的定位操作,C編譯器會有時候會產生位移指令,但有時候會用乘法實現,兩者效率往往是天壤之別,所以明白這些問題你才能將系統性能提升到極致。這些問題就不多說了,有興趣的話以後可以共同探討。

話說遠一點,我由衷的希望在軟體上做的比較深入的朋友們有機會學學硬體以及其它 相關知識,尤其是做底層開發和嵌入式設計的。這對軟體技術的提高有非常大的幫助,否 則很多事情你只知道該這樣但不會明白為什麼該這樣。我這個觀點在我現在的IC公司Proj ect Manager那裡也得到了驗證。他告訴我們公司現在802.11晶元產品的軟體經理原本是 做該晶元硬體設計的,某某某原本是做軟體的,現在在做IC,類似的例子還有很多,只是在國內這樣的風氣不是非常流行。

我有一些心得體會與大家分享,只有當我干好本職工作後,我才會學習與工作關系不 大的技術,這樣公司的上司才不至於反感,在入門階段的問題我通常不去問那些資深人士 ,而是問一些資歷比較淺的朋友,比如剛畢業不久的學生,因為他們往往會跟你詳細的講 解,而資深人士通常覺得你的問題太簡單,所以回答的也很簡單,我又不好意思多問。等 技術上了一定的層次後我才會問他們,他們也能給你比較深入的回答。另外,有些朋友說我機會比較好,他們也希望能從事新的工作可惜沒有機會,我聽了只有苦笑,我的機會了 解的人都應該知道,我沒有出生在什麼IT世家:)也沒有誰一路提拔我,所有的路都是自 己走出來的,我母親去世比較早,我的後母(我叫她阿姨)看著我努力過來的,一次她看我大年30還在寫程序,她說像我這樣努力木頭都能學出來。

我的最終目的是IC而不是PCB,所以我下一步的准備開始學習IC設計的知識。公司的同 事沒有懂IC設計的,後面的路又要靠自己了,我買了不少相關的書,在網上也查了很多的 資料,我花了大量的時間去學習VHDL,並且用軟體進行了一些簡單的設計和模擬(沒有設 計ASIC,只是針對FPGA),隨著學習的深入,我漸漸明白了IC設計的基本流程,同時也明 白了這條路的艱辛。這個時候我已經做好了跳槽的准備,我向一家業界又一定知名度的IC設計公司投了簡歷,並通過了漫長的面試(4個多小時)。其他的一切我都比較滿意,唯獨薪資差強人意,我也明白原因,因為我是這個行業的新人,我沒有經驗,我再一次將自清零了。公司老闆問我6000多一個月能不能接受,我知道他也是照章辦事。想想我通信行業的朋友們,基本上都是年薪10萬以上,月薪過萬的也比比皆是,朋友們也幫我介紹了不 少待遇不錯的公司,我該怎麼選擇,當時我很猶豫,我熱愛我的事業,我嚮往我的追求,但我也是一個普通的人,我也需要養家糊口,我也想早一點買房買車。生活給我出了一道難題。

愛因斯坦在63歲時說過一個人沒有在30歲以前達成科學上的最大成就,那他永遠也不會有。這句話給了我很大的壓力和震動,我馬上就26歲了,離30隻有四年時間,我必須抓緊這幾年寶貴的時間,努力達到我技術上的最高峰。為了這個理想,為了能離自己的夢更近一些,我選擇了這家IC公司,我明白自己的薪資和公司剛進來的碩士研究生相差無幾,但為了今後的發展只能忍受,一切又得重新開始。換行業是一個非常痛苦的過程,尤其從一個春風得意的位置換到一個陌生的崗位,感覺象從溫暖的被子里鑽出來跳進冰水中,讓人難以接受。在原來那家通信公司,我是唯一兩年時間漲了五次工資的員工,公司和同事 都給了我極大的認可,工作上也常常被委以重任。但現在這一切都成了過去,在新的公司 我只是一個新人,沒有人知道也沒有人在意我過去的成績。我決定重新開始,我把自己看作 新畢業的學生,我要用自己的努力得到公司的認可。進入新的行業是非常痛苦的,我告訴自己必須忍受這一切,雖然外面有很多誘惑,但是既然作出了選擇我就不允許自己輕易放
棄。

我現在已經在這家新公司上了一個多月的班,開始非常艱難,現在慢慢適應了。第一 個月結束時,Team Leader找我談話,說我是新進員工中最優秀的一個,我心裡很欣慰,這也算對我努力的一個肯定吧。在這里還要感謝我的女朋友,她給了我很大的支持和鼓舞, 每次在我動搖的時候她都在鼓勵我,讓我堅持自己的理想,剛來上海是她讓我不要勉強去 做MIS,這次也是她讓我頂住了月薪過萬的誘惑,沒有她我可能不會有今天的成績。現在的公司有自己的操作系統,自己的CPU、DSP和其它晶元,在這里我能學到世界上 最先進的技術,我們的設計開發不再完全依賴別人的硬體和系統,這讓我很開心。我打算等工作步入正軌後,全力學習新的知識,實現我的理想。

在後面的兩年裡我給自己定下了幾個目標:

一.努力做好本職工作,在工作上得到公司和同事們的認同;
二.努力學習IC硬體設計知識,多向同事請教,並利用一切機會多實踐;
三.實現我的實時操作系統的主要部分,完成TCP/IP協議棧模塊,並免費發布源代碼;
四.和我女朋友結婚並買一套小房子,這是最重要的,因為我明白事業是可以重來的,但是珍貴的感情很難失而復得。

在這里提一下我現在開發的操作系統,它是一個實時嵌入式系統,目前支持以下特性:

a.支持時間片輪轉調度和基於優先順序調度,最多64個優先順序;
b.搶占式實時內核;
c.為了便於移植,主體用標准C實現;
d.匯編代碼非常少,不到100行;
e.支持任務管理,各任務有獨立的堆棧;
f.進程同步和通信目前完成了Semaphore,Message Queue正在調試;
g.實現了定時系統調用;
h.可以在windows上模擬調試

我還打算下一步實現優先順序反轉保護,Event Flag,Data Pipe,內存管理(以前實現過) 、驅動介面等。在這之後我還會努力完善它,比如加入文件系統,協議棧、調試介面等。希望朋友們提出自己的意見和建議,在此不勝感激!

後記:

就像有的朋友說的,我的經歷或許會給一些朋友產生誤導,在這里我必須說明一下。我來上海以前學習過於拚命,常常晚上只睡3個多小時,我身高1米71,那時只有108斤(我 現在130多),家人也說我這樣拚命活不過60歲,但是當時的我太固執,我對他們說只要能 實現理想活50歲我就夠了。那時的拚命使我的身體受到了影響,有一次早上突然腰肌劇痛難忍,痛的我倒在床上站不起來。雖然我現在已經比較注意,但有時候還會隱隱作痛。後來在女朋友說服了我,來上海以後我不再如此。我經常引用父親的一句話身體是革命的本錢。

而且我也發現拚命不是辦法,我可以熬一兩個通宵,最多的一次我連續工作了三天三夜, 但是我半個月都沒有恢復過來,這樣是不是得不償失?學習工作應該是一個長期的過程, 像馬拉松而不是百米沖刺。我現在非常注意調整學習和工作的強度,我要保證每天盡量有 相對充沛的精力,一些年輕的朋友覺得自己也應該拚命努力,這讓我多少有些擔心,如果我的故事能讓你在學習工作上多一點興趣,我會感到很開心,但如果誤導了某些朋友,讓你做一些不值得的付出,我會感到很內疚。

技術沒有貴賤只分,我以前換行業是因為自己的興趣所致,而不是對哪個行業有什麼偏見。我希望我的經歷不要給朋友一個錯誤的導向,覺得我始終向更高的技術發展。其實各行各業做到頂尖都是很困難的。話又說回來雖然技術沒有貴賤,但是門檻是有高低的,無論如何,做IC的門檻要比做網頁的高,這一點無可否認。國家各種人才都是需要的,但是作為個人奮發向上的想法還是應該有的,努力在自己喜歡的行業上做的更好,而不應該停留在比較膚淺的層次上。

我是一個自己覺得比較有自知之明的人,或許我最大的優點就是知道自己有很多缺點 :)。我的故事中很多的曲折和錯誤都是由我的缺點造成的,希望大家用審慎的眼光看待 我的經歷,不要被我的花言巧語所迷惑。我學習有些隨心所欲,這給我帶來了無盡的麻煩,也大大阻礙的我的發展。記得我小時候成績比較出色,但是後來學習嚴重偏科,導 致我中學成績一再滑坡,也沒有考上什麼好的學校,小時候的一個朋友,當時的成績和我相仿,但是沒有我這個缺點,她上了清華,後來在去了美國深造,在一個著名導師手下研究理論科學,這未嘗不是一條更好的出路。另外我的學習方法也是在不斷改善中的,過去的學習過於講究數量和時間,那樣學習既苦而已效率不高,現在我非常注意學習的效率和技巧,這樣才是學習的捷徑(當然不是指投機取巧),比如說學一相對陌生的技術,如果有條件,不妨問一問有經驗的人,不需要問很多,往往他不經意的幾句話會給你非常大的幫助,甚至超過你看一個星期的書。帶著這樣的思想再去學習你會節省很多時間,這樣何樂不為呢?這些年中我學了不少的東西,由於開始非常盲目,所以學的東西雜亂無章,現在回想起來讓我啼笑皆非,我把大量的時間浪費在一些沒有必要深入了解的知識上,畢竟一個人的精力是有限度的。很多朋友很我一樣都背過五筆字形,的確它是個不錯的輸入法,但是對一個研發人員它絕對不值得你去背,你的時間應該花在有價值的地方。我這樣的事情還做過很多,我背過CCED、WPS的命令和快捷鍵,在dBase基本退出歷史舞台後我還花了很多時間去學習它的使用。所以我的學習在前期缺乏規劃,沒有明確的短期目的、中期目標,只有一個虛無飄渺的長期的理想。這就像做設計一樣,好的設計是從需求抽象到代碼有很多過程,而不能得到了需求就立刻開始開始編碼。

當然這么些年的學習和工作多多少少有些收獲,下面我說說我的一些學習的心得,這些方法未必正確,我也在不斷探索和改進中。我的學習和工作有相對明確的目標,我不會一時心動而去學習某一技術,在下決定之前我會考慮很多,包括長期的發展,個人路線的規劃,需要付出的代價、可能遇到的困難及解決的辦法等等,在決定後還會制定更加明確 的計劃,包括短期、中期和長期的,身邊可以利用到的資源(包括好的書籍、資料、軟硬體環境,也包括有經驗的朋友或者師長),以及每一個階段是怎麼過渡到高一階段的計劃 ,往往在一個學習階段一旦上路後會走的相對順利,但是跨階段通常比較麻煩,比如從學 習基礎知識轉到實踐。另外我買書也有自己的方法,現在世面上高質量的書遠不如低質量書多,對於一個陌生的技術,往往在第一次買書會選擇錯誤,即使買到一本好書但是它的方向也未必適合你,所以我通常會先在網上查找一些該技術的介紹,有了一點點概念後再去買一本比較薄、相對便宜並且內容相對泛泛而談的書,這是國內作者最善於寫的書:) ,再把它瀏覽一遍後我就會基本明白這門技術的要點,後面買書和制定計劃就會明確的多 。否則一開始就想找本好書往往比較困難,而且買回來後努力學習,有時候學了一半才發現是本低質量的書或者是相對過時技術,讓人非常懊惱。另外讓有經驗的人幫你介紹,通常也是一個不錯的選擇。

Ⅱ 同濟大學有哪些教授的課是必須要去蹭的

在交通學院學習的幾年間,感受到了很多老師的風采,只好先說說我院的一些老師的課程了。首先是智能交通的楊曉光教授。楊曉光教授,「於我國恢復高考的1978年9月考入同濟大學道路與橋梁工程系,1982年7月本科畢業並留校任同濟大學交通工程研究室助教,後在職攻讀同濟大學交通工程方向碩士與博士學位,並於1994年應國家教育部選考派遣獲日本文部省獎學金資助、留學日本京都大學交通工學科繼續攻讀博士學位,1996年9月學成回國繼續任教」。

前面是他的簡歷,那麼就說說具體的感受,聽了楊曉光教授的課,會讓人對整個智能交通系統有一個很清晰明了的把握,讓人對整個科學問題怎麼思考、提煉和解決有更深的理解,總之,楊老師的課會讓你站在宏觀的高度來理解問題,不會局限於細枝末節。

Ⅲ 關於年齡的問題與編程的關系

不晚不晚,太年輕了,我也是做程序的,給你看一篇文章吧,應該對你有點意義。

聲明:此文為作者以第一人稱自述,由lxceo轉載.

這些日子我一直在寫一個實時操作系統內核,已有小成了,等寫完我會全部公開,希望能夠為國內IT的發展盡自己一份微薄的力量。最近看到很多學生朋友和我當年一樣沒有方向 ,所以把我的經歷寫出來與大家共勉,希望能給剛如行的朋友們一點點幫助。 一轉眼我在IT行業學習工作已經七年多了,這期間我做過網頁,寫過MIS、資料庫,應用程序,做過通信軟體、硬體驅動、協議棧,到現在做操作系統內核和IC相關開發,這中間走了很多彎路,也吃了不少苦。

我上的是一個三流的高校,就連同一個城市的人多數都不知道。因為學校不好也就沒有指望能靠學校名氣找一個好工作。所有的希望都寄託在自己的努力上了,大一開學前的假期我就開始了學習,記得我買的第一本書是《計算機基礎DOS3.0》,大家別嚇著了,其實當時已經普及了DOS6.22了,只是我在書店裡看到了DOS4.0,5.0,6.0的書,以為像英語那樣是第四、五、六冊,記得當時到處找DOS1.0,現在想想也幸好我沒有找到:)開學前我學完了PASCAL,那時既沒有計算機也沒有人可以請教,我連程序是什麼的概念都沒有, 只好死記硬背代碼,然後拿紙寫,我一直到大三才有了一台486,在這之前用紙寫了多少程序我也記不清楚了,只知道最長的一個我拿A4大小的草稿紙寫了30多頁,我的C語言、C++ 、VC都是在這樣的條件下入門的。所以說條件是可以克服的,希望我的經歷多少給條件艱苦的同學們一點信心。第一次上機是在我姐夫的機房,我的心情激動的無與倫比,但是一上機我立刻傻了眼,他們用的是英文版的Win3.1,我的那點DOS知識都見了鬼,上機提心吊膽的一陣瞎摸,一不小心把Word弄成了全屏,怎麼都還不了原,當時真是心急如焚,我以為機器被我弄壞了。第一個C語言程序,就是那個經典的HelloWorld,我調了幾個星期,上機機會非常少,也沒有書告訴我開發環境(TC2.0)需要設置,而且開始我都不知道有編譯器,我甚至自作聰明把寫好的程序擴展名從.c改成.exe,結果可想而知。大一學完了C、X86的匯編、數據結構、C++。由於精力都花在自學上了,大一下四門課掛了彩,三類學校就是這點好,掛上一二十門也照樣畢業。不過扯遠點說,我那麼刻苦都及不了格,可見我們國家的計算機教育有多死板。

大二准備學VC和BC,當時難以取捨,後來選了VC,不為別的,只為書店裡兩本書,VC 那本便宜6塊錢。我的努力在班上無人能及,學的日夜不分,大三有了計算機後更是如此, 很多次父親半夜教訓我說我不要命了,我一直覺得自己基礎差,記憶又不行,條件也不好 ,所以覺得只有多花點時間才能趕上別人。居然後來有許多朋友說我有學計算機的天賦, 讓我哭笑不得。我用的是486,16M內存,1G硬碟,當時同學們的配置都是P166MMX,我安裝 一個Windows NT4.0需要一個通宵,編譯一個BC5.0向導生成的程序需要近兩個小時,我的顯示器是個二手的,輻射非常大,開機屏幕冒火花,看起來很酷的:),有一次程序寫的太久,覺得怎麼白色的編輯器背景變成了紫色,以為顯示器壞了,後來才發現眼睛不行了,不過說來也奇怪,到今天我的視力還能保持1.5,真是個奇跡。但是就是那台破機器陪伴了我兩年,讓我學會了VC、Delphi、SQLServer等。後來那台機器給我阿姨打字用,據她說一天她正打的開心,一股青煙夾著火苗從顯示器鑽出來,之後它才壽終正寢。

大三假期找了個機會在一個計算機研究所實習,與其說實習不如說是做義工,工作了兩個月一分錢沒有拿。但是這兩個月對我的發展幫助很大,讓我早一步了解了社會,剛去的時候我當然是一竅不通,在那裡我熟悉了網路,學會了Delphi和Oracle。由於工作很認真, 得到了比較好的評價,在一位長者的引薦下,我開始和他們一起做項目,這使我在大三大四就有了自己的收入,大四又找了兩家MIS公司兼職,雖然錢不多,但是在學生期間有1000多的收入我已經非常滿足了,我終於用自己賺的錢把計算機換了。大四下開始找工作,這時我的工作經驗已經比較多(當然現在想想非常幼稚),開始聽父母的想去那個研究所, 實習過那個部門也希望我能去,但是不知道為什麼最後不了了之,這種單位就是比較官僚 ,我一氣之下就到了我兼職的一個公司做MIS的TeamLeader。在大三到畢業一年的時間,做過了各種MIS,從煤氣、煙廠、公安、鐵路、飲食到高校,什麼有錢做什麼,工作也很辛苦 ,經常加班和熬通宵,從跟客戶談需求到設計、編碼、測試、交付都要上。那時覺得很有成就感,覺得自己還不錯,現在想想真是很膚淺。

剛走上工作崗位的學生很容易被誤導,各種開發工具讓人眼花繚亂,同時也覺得很受 公司器重,但這樣工作永遠是一個低層次的開發者。不要跟我說什麼系統分析有多麼多麼重要,多麼多麼難。你以為自己跟用戶談需求做設計就是系統分析和設計了嗎,國內又有幾個公司能夠做的很到位很規范?我是ISO9000內審員,也在Rational公司受過多次培訓,拿了4個證書,還有一個公司讓我去做CMM。這些我聽過很多,但是很多事情到國內就變了性質,一個公司不是通過了ISO9000或者CMM就能規范了,我現在在一家有幾十年歷史的外企工作,裡面的管理不是一般國內企業能及的。作為一個畢業不久以前沒有步入過社會的學生,幾乎不可能在很短的時間掌握系統分析和設計,面向對象、UML只是一個工具,關鍵是人本身的思想,不是說你熟悉了C++、Rose就能夠做出好的設計,相反如果你具備了很高的素質,你可以用C寫出比別人用C++更加模塊化的程序。

話說遠一些,國內軟體開發行業有一個怪圈,很多人覺得VC > Delphi > VB,真是很搞笑。這幾個軟體我都做過開發,說白了他們都是工具,應該根據應用的需要選擇採用哪個,而不是覺得哪個上層次。如果你因為用某個開發工具很有面子而選擇的話,只能說明你很淺薄。如果說層次,那麼這些工具都不上層次,因為它們用來用去都是一些系統的API,微軟的朋友不會因為你記住他們多少個API或者多少個類就會覺得你很了不起,你永遠只是他們的客戶,他們看重的是你口袋裡的銀子。我也做過系統內核,我也封裝過很多API,同樣我也不會看重那些使用這些API做二次開發的客戶,除非他能夠作出自己獨到的設計。

至於有人認為C++ > C那更是讓人笑掉大牙,不妨你去打聽一下,現在有幾個操作系統內核是用C++寫的,又有幾個實時系統用的是C++,當然我也不是說C++不好,但是目前的內核和實時系統中C++還無法與C匹敵,至於說C++適合做應用系統的開發那是另外一回事。所以我的觀點是不在於你用什麼工具和語言,而在於你干什麼工作。你的設計體現了你的技術層次。

這樣幹了一年我覺得非常苦悶,做的大多數都是熟練工種的活,個人技術上沒有太多 的提高也看不到方向。所以決定離開這個城市去上海,尋求更好的發展,並且打算放棄我以前的MIS轉到通信行業。

寫到這里不能不提到我女朋友,我們是在來上海前半年認識的,她大四在我公司實習,公司派她給我寫文檔,我們的感情發展的很快。她告訴我很多事情,她家原本是改革開放的第一批暴發戶,她母親愛打牌,輸掉了幾百萬,還欠了很多債,她有男朋友,但是她對他沒有感情,只因為他給了她母親兩萬多塊錢,後來還強迫她寫了四萬塊的借條,她男朋友背叛過她並且不止一次打她,現在逼她結婚不然就要她還錢。這人居然還是一個高校的老師!她母親把父親給她的學費花了,因為拖欠學費她沒有辦法拿到畢業證。她母親現在有病需要錢,我拿出了自己的一點積蓄並且跟朋友們接了一些,替她交了學費並給她母親看 病(後來才知道看病的錢又不知所終,就連她母親是不是有病我都不知道,但她也是沒有辦法)。這個時候我家知道了一些事情,堅決反對我和她在一起,她原來的男朋友也極力破壞。無奈之下我們決定早一定離開這個傷心的城市,並且瞞著我們家。由於時間倉促,我只准備了4000塊錢,她僅有的幾百塊錢也被她母親要去了,我買了三張票,一張是中午的,兩張是晚上的,中午我的家人把我送上船,他們一離開我就下了船,我和她乘坐晚上的船離開了這個我和她生活了很多年的城市,帶走的只是一身債務。沒有來過上海的我們兩個性倔強,都不願意去麻煩同學和朋友。來到上海是傍晚6點半,我們都不知道該去哪裡,我們找了一個20塊錢的旅館,這個房間連窗戶都沒有,7月份的天氣酷熱難耐,房間里非常悶熱。第二天我們開始租房子,因為身上的錢不多,我們基本都是步行,花了一個星期時間,不知道在浦東轉了多少圈後找到了一個400塊的房子,但是我們都不了解上海是付三壓一,還要付半個月的中介費,買了一些鍋碗瓢盆後,我們身上只有800塊錢了,工作都還沒有著落,這800塊錢要支持到我們拿到第一個月工資,為了省錢我們自己做飯,每天買菜只花兩塊錢,她非常喜歡吃(也可能她在大學經常挨餓的願意),看到她現在這樣省吃儉用我真的很不忍心。她以前的男朋友也沒有放過她,經常打電話來騷擾,並且來上海看她,還說了不少恐嚇她的話,她過於善良,說他以前畢竟幫助過她,叫我不要與他一般見識。以後的每天在家就是苦等面試通知,原本我想迅速找一家MIS公司解決眼前的困難,但是她堅持讓我不要放棄自己的理想,終於功夫不負有心人,我找到了一家通信公司,4000塊的工資雖然趕不上MIS公司給我開出的價位,但也夠在上海生存。她也找到了工作,第一天上班她哭了,這是她來上海第一次流淚,我心裡很難受也很感動。

由於是全新的行業,我把自己降到了零點,我學的VC、Delphi、資料庫派不上用場, 擺在我面前的是嵌入式、協議、信令一些我從未接觸過的知識。我知道我沒有退路,於是拚命的學習,我把自己當做一個應屆畢業生一樣,一分努力一分收獲,半年過去我終於熟悉了工作,並且得到了公司的表彰,薪水也加了一級。後面的日子裡我們省吃儉用,把欠朋友的1萬多塊錢還了,日子終於上了正軌。這時女朋友告訴我她想考研究生,我也很支持,於是她辭職在家備考。

另外,在這里我要感謝我的ProjectManager,他原來是一個大通信公司的產品經理, 對人非常和善,我從他那裡學到了很多知識,而且他也給了我許許多多無私的幫助。在工作上他給我充分的空間和信任。記得公司安排我維護一個接入伺服器軟體,由於代碼量不算太小(5萬行),資料和文檔都不齊全,我維護起來非常吃力,所以想重新把它做一遍, 公司領導不太支持,可能覺得工作量太大,但是他極力支持我,私下裡他讓我放手去做, 我的維護工作他擠時間做。在他的支持下,我花了半年時間完成了接入伺服器的軟體,並且實現了一個相對完整的TCP/IP協議棧。在這里我學會了嵌入式系統設計、驅動開發、TCP/IP和很多通信的知識,我花了一年時間終於使自己從MIS開發轉到了通信行業,並且站穩了腳跟。我的開發大量是對硬體的直接操作,不再受微軟的操作系統,VC、Delhpi這些開發工具的約束,我終於看到了另外一片天空。

我做事情喜歡追根問底,隨著開發的深入,軟體開發與硬體聯系越來越緊密,硬體知 識的匱乏又對我的發展產生了障礙,而且晶元技術基本上掌握在國外公司的手裡,這對做系統級設計是一個非常大的制約,一個新產品出來,第一道利潤(也往往是最豐厚的利潤)常常都被IC公司如Intel、Motorola賺去了,國內的廠商只能喝點湯。所以我決心解決自己的硬體技術障礙,並打算離開通信行業,進入IC設計相關領域。

當然我明白如果我對硬體了解的非常少,沒有哪家IC公司會仁慈到招我這樣一個一竅不通的人來培訓。所以我必須努力打好基礎,學一些相關知識為以後做准備。就像我開始從MIS轉到通信一樣,我看過大量通信方面的書,並且給一個ISP做過RADIUS計費分揀台,在這樣的背景下這家通信公司才給了我這個機會。我在的通信公司是做系統設計的,有不少PCB Layout硬體人員,平常我就注意向他們學習,由於我做的是軟體,在公司看硬體資料不好意思,所以開始只好在家看,剛來上海工作我連續一年都在加班,後來不加了,因為我要擠出時間學習,通常我12點左右睡,第二天5點半起,我上班比較早,地鐵上如果人不多我也用來看書。學習當然不會是一帆風順的,有些實在不懂的問題就積累起來問硬體人員,他們的幫助使我學習進度快了很多,因為在沒有人點撥的情況下自學,我的一半時間是花在解決疑難問題上,但這種問題經常是別人的一句話就可以讓我豁然開朗,我非常慶幸我有這樣的學習環境。在後面的一年裡,我學會了看硬體原理圖,學會了簡單的硬體設計(模擬電路方面還有不小的差距),事情就是這樣的,當你安安份份做軟體,別人永遠認為你是軟體開發人員,在你開始學習硬體時別人未必會認同,有位中興通訊的朋友還對我說過,一個人不可能把所有東西都學完。我也明白這一點,但我希望自己做的更好。但當你熟悉硬體後大家又會覺得你好像原本就是軟硬體都懂的,同事們也都習以為常了。這個時候我可以把硬體資料堂堂正正的拿到公司看,沒有人再大驚小怪了。 讓我比較自豪的是我通過自己的努力做了一個IAD(軟交換的終端設備)系統方案,包含軟硬體的選型、設計等內容,這個方案得到了公司和同事們的認同,讓我感到非常欣慰。

技術是相輔相成的,當我的硬體有了一定的進步後,我的軟體設計也有了很大的提高 ,我可以從更深層次理解問題,我做的接入伺服器CPU是Motorola PowerPC860,熟悉的朋友都知道860 QMC與軟體的批量數據傳輸通常採用BD表的方式,硬體人員做驅動的時候習慣採用固定BD表,每接收或發送數據都將數據從BD表拷貝到用戶Buffer,或從用戶Buffer拷貝到BD表,由於理解的比較深入,我自己重新實現了這個過程,採用動態BD表的方式,驅動從一個網口接收數據,提交給我的軟體進行三層交換,直至從另外的介面發送出去,沒有進行一次拷貝。這樣的設計大大提高了性能,使系統的指標接近理論值。軟硬體的結合使我的設計水平上了一個台階。我現在寫的這個操作系統,編譯後我把程序反編譯成匯編,找出其中不優化的代碼,然後在C程序中進行調整。舉個例子,很多CPU沒有專門的乘法指令,這個大家應該都知道,在這種CPU上進行一個乘法操作常常會花費大量的指令周期, 有的朋友會說這個我知道,我會盡量避免採用×號,但是事情往往不是那麼簡單,你知道C語言中數組的下標操作是怎麼實現的嗎?仔細看看反匯編的代碼你就會明白,同樣是通過下標的定位操作,C編譯器會有時候會產生位移指令,但有時候會用乘法實現,兩者效率往往是天壤之別,所以明白這些問題你才能將系統性能提升到極致。一些問題就不多說了,有興趣的話以後可以共同探討。

話說遠一點,我由衷的希望在軟體上做的比較深入的朋友們有機會學學硬體以及其它 相關知識,尤其是做底層開發和嵌入式設計的。這對軟體技術的提高有非常大的幫助,否則很多事情你只知道該這樣但不會明白為什麼該這樣。我這個觀點在我現在的IC公司Project Manager那裡也得到了驗證。他告訴我們公司現在的802.11晶元產品的軟體經理原本是做該晶元硬體設計的,某某某原本是做軟體的,現在在做IC,類似的例子還有很多,只是在國內這樣的風氣不是非常流行。

我有一些心得體會與大家分享,只有當我干好本職工作後,我才會學習與工作關系不 大的技術,這樣公司的上司才不至於反感,在入門階段的問題我通常不去問那些資深人士 ,而是問一些資歷比較淺的朋友,比如剛畢業不久的學生,因為他們往往會跟你詳細的講解,而資深人士通常覺得你的問題太簡單,所以回答的也很簡單,我又不好意思多問。等技術上了一定的層次後我才會問他們,他們也能給你比較深入的回答。另外,有些朋友說我機會比較好,他們也希望能從事新的工作可惜沒有機會,我聽了只有苦笑,我的機會了解的人都應該知道,我沒有出生在什麼IT世家:)也沒有誰一路提拔我,所有的路都是自己走出來的,我母親去世比較早,我的後母(我叫她阿姨)看著我努力過來的,一次她看我大年30還在寫程序,她說像我這樣努力木頭都能學出來。

我的最終目的是IC而不是PCB,所以我下一步的准備開始學習IC設計的知識。公司的同事沒有懂IC設計的,後面的路又要靠自己了,我買了不少相關的書,在網上也查了很多的資料,我花了大量的時間去學習VHDL,並且用軟體進行了一些簡單的設計和模擬(沒有設計ASIC,只是針對FPGA),隨著學習的深入,我漸漸明白了IC設計的基本流程,同時也明白了這條路的艱辛。這個時候我已經做好了跳槽的准備,我向一家業界又一定知名度的IC設計公司投了簡歷,並通過了漫長的面試(4個多小時)。其他的一切我都比較滿意,唯獨薪資差強人意,我也明白原因,因為我是這個行業的新人,我沒有經驗,我再一次將自己清零了。公司老闆問我6000多一個月能不能接受,我知道他也是照章辦事。想想我通信行業的朋友們,基本上都是年薪10萬以上,月薪過萬的也比比皆是,朋友們也幫我介紹了不少待遇不錯的公司,我該怎麼選擇,當時我很猶豫,我熱愛我的事業,我嚮往我的追求, 但我也是一個普通的人,我也需要養家糊口,我也想早一點買房買車。生活給我出了一道難題。

愛因斯坦在63歲時說過「一個人沒有在30歲以前達成科學上的最大成就,那他永遠都不會有。」這句話給了我很大的壓力和震動,我馬上就26歲了,離30隻有四年時間,我必須抓緊這幾年寶貴的時間,努力達到我技術上的最高峰。為了這個理想,為了能離自己的夢更近一些,我選擇了這家IC公司,我明白自己的薪資和公司剛進來的碩士研究生相差無幾, 但為了今後的發展只能忍受,一切又得重新開始。換行業是一個非常痛苦的過程,尤其從一個春風得意的位置換到一個陌生的崗位,感覺像從溫暖的被子里鑽出來跳進冰水中,讓人難以接受。在原來那家通信公司,我是唯一兩年時間漲了五次工資的員工,公司和同事都給了我極大的認可,工作上也常常被委以重任。但現在這一切都成了過去,在新的公司我只是一個新人,沒有人知道也沒有人在意我過去的成績。我決定重新開始,我把自己看作新畢業的學生,我要用自己的努力得到公司的認可。進入新的行業是非常痛苦的,我告訴自己必須忍受這一切,雖然外面有很多誘惑,但是既然作出了選擇我就不允許自己輕易放棄。

我現在已經在這家新公司上了一個多月的班,開始非常艱難,現在慢慢適應了。第一 個月結束時,Team Leader找我談話,說我是新進員工中最優秀的一個,我心裡很欣慰,這也算對我努力的一個肯定吧。在這里還要感謝我的女朋友,她給了我很大的支持和鼓舞, 每次在我動搖的時候她都在鼓勵我,讓我堅持自己的理想,剛來上海是她讓我不要勉強去做MIS,這次也是她讓我頂住了月薪過萬的誘惑,沒有她我可能不會有今天的成績。 現在的公司有自己的操作系統,自己的CPU、DSP和其它晶元,在這里我能學到世界上最先進的技術,我們的設計開發不再完全依賴別人的硬體和系統,這讓我很開心。我打算等工作步入正軌後,全力學習新的知識,實現我的理想。

在後面的兩年裡我給自己定下了幾個目標:

一.努力做好本職工作,在工作上得到公司和同事們的認同;

二.努力學習IC硬體設計知識,多向同事請教,並利用一切機會多實踐;

三.實現我的實時操作系統的主要部分,完成TCP/IP協議棧模塊,並免費發布源代碼;

四.和我女朋友結婚並買一套小房子,這是最重要的,因為我明白事業是可以重來的,但是珍貴的感情很難失而復得。

在這里提一下我現在開發的操作系統,它是一個實時嵌入式系統,目前支持以下特性:

a.支持時間片輪轉調度和基於優先順序調度,最多64個優先順序;

b.搶占式實時內核;

c.為了便於移植,主體用標准C實現;

d.匯編代碼非常少,不到100行;

e.支持任務管理,各任務有獨立的堆棧;

f. 進程同步和通信目前完成了Semaphore,Message Queue正在調試;

g.實現了定時系統調用;

h.可以在windows上模擬調試

我還打算下一步實現優先順序反轉保護,Event Flag,Data Pipe,內存管理(以前實現過)、驅動介面等。 在這之後我還會努力完善它,比如加入文件系統,協議棧、調試介面等。希望朋友們提出自己的意見和建議,在此不勝感激!

後記:

就像有的朋友說的,我的經歷或許會給一些朋友產生誤導,在這里我必須說明一下。 我來上海以前學習過於拚命,常常晚上只睡3個多小時,我身高1米71,那時只有108斤(我現在130多),家人也說我這樣拚命活不過60歲,但是當時的我太固執,我對他們說只要能實現理想活50歲我就夠了。那時的拚命使我的身體受到了影響,有一次早上突然腰肌劇痛難忍,痛的我倒在床上站不起來。雖然我現在已經比較注意,但有時候還會隱隱作痛。後來在女朋友說服了我,來上海以後我不再如此。我經常引用父親的一句話「身體是革命的本錢」。

而且我也發現拚命不是辦法,我可以熬一兩個通宵,最多的一次我連續工作了三天三夜, 但是我半個月都沒有恢復過來,這樣是不是得不償失?學習工作應該是一個長期的過程, 像馬拉松而不是百米沖刺。我現在非常注意調整學習和工作的強度,我要保證每天盡量有相對充沛的精力,一些年輕的朋友覺得自己也應該拚命努力,這讓我多少有些擔心,如果我的故事能讓你在學習工作上多一點興趣,我會感到很開心,但如果誤導了某些朋友,讓你做一些不值得的付出,我會感到很內疚。

技術沒有貴賤之分,我以前換行業是因為自己的興趣所致,而不是對哪個行業有什麼偏見。我希望我的經歷不要給朋友一個錯誤的導向,覺得我始終向更高的技術發展。其實各行各業做到頂尖都是很困難的。話又說回來雖然技術沒有貴賤,但是門檻是有高低的, 無論如何,做IC的門檻要比做網頁的高,這一點無可否認。國家各種人才都是需要的,但是作為個人奮發向上的想法還是應該有的,努力在自己喜歡的行業上做的更好,而不應該停留在比較膚淺的層次上。

我是一個自己覺得比較有自知之明的人,或許我最大的優點就是知道自己有很多缺點 :)。我的故事中很多的曲折和錯誤都是由我的缺點造成的,希望大家用審慎的眼光看待我的經歷,不要被我的「花言巧語」所迷惑。我學習有些隨心所欲,這給我帶來了無盡的麻煩,也大大阻礙的我的發展。記得我小時候成績比較出色,但是後來學習嚴重偏科,導致我中學成績一再滑坡,也沒有考上什麼好的學校,小時候的一個朋友,當時的成績和我相仿,但是沒有我這個缺點,她上了清華,後來在去了美國深造,在一個著名導師手下研究理論科學,這未嘗不是一條更好的出路。另外我的學習方法也是在不斷改善中的,過去 的學習過於講究數量和時間,那樣學習既苦而已效率不高,現在我非常注意學習的效率和技巧,這樣才是學習的捷徑(當然不是指投機取巧),比如說學一相對陌生的技術,如果有條件,不妨問一問有經驗的人,不需要問很多,往往他不經意的幾句話會給你非常大的幫助,甚至超過你看一個星期的書。帶著這樣的思想再去學習你會節省很多時間,這樣何樂不為呢?這些年中我學了不少的東西,由於開始非常盲目,所以學的東西雜亂無章,現在回想起來讓我啼笑皆非,我把大量的時間浪費在一些沒有必要深入了解的知識上,畢竟一個人的精力是有限度的。很多朋友很我一樣都背過五筆字形,的確它是個不錯的輸入法,但是對一個研發人員它絕對不值得你去背,你的時間應該花在有價值的地方。我這樣的事情還做過很多,我背過CCED、WPS的命令和快捷鍵,在dBase基本退出歷史舞台後我還花了很多時間去學習它的使用。所以我的學習在前期缺乏規劃,沒有明確的短期目的、中期目標,只有一個虛無飄渺的長期的理想。這就像做設計一樣,好的設計是從需求抽象到代碼有很多過程,而不能得到了需求就立刻開始編碼。

Ⅳ 微軟的編程之美應該做哪些准備

微軟的官方網站上寫著"我們期待具有獨創性、開拓性的智者加入隊伍,我們的面試程序也是為網羅這樣的人才專門設計。"

聽似簡單。但無數被微軟拒之門外的哈佛博士、麻省理工精英會告訴你,微軟的面試題有多"BT"。這些被稱為"惡魔試題"的考題千奇百怪,無所不有。

究竟應試者需要多高的IQ、多麼完備的邏輯思維,才能打動比爾·蓋茨,加入他的豪華辦公樓?

最近,美國作家威廉·龐德斯撰寫新書《如何搬動富士山———微軟的面試難題》,揭開"微軟問題"的真面孔。

光聰明沒用

微軟公司的招聘信箱,每個月會收到1.2萬份簡歷。如果用A4紙列印出來,能堆得比姚明還高。

不過,微軟HR們並不擔心加班工作,他們有比人工篩選更高效的"秘密武器"———計算機核對搜索。每封按規格投遞給微軟的電子簡歷,會經由特定程序搜索關鍵詞,然後錄入資料庫。計算機"認為"有前景的簡歷,HR才給應聘者一個電話應答的機會。

兩輪篩選出的"勝利者"能收到一張來往華盛頓州雷蒙德的微軟總部的機票。打包好頭腦,准備接受"眼高於頂"的面試官們一整天超高難度的"馬拉松"面試吧!

"為什麼啤酒罐的兩端要做成凹形設計?"

"你要怎麼製造M&Ms巧克力?"

"芝加哥全體大學生的體重總和是多少?"

聽到這些問題少皺眉頭,它們都是微軟面試最典型也最小兒科的"一星級題庫"。通不過這類測試,別說微軟,矽谷中的其他計算機企業都不會"接收"你。

其實,早在20年前,微軟還未曾開創、矽谷還是群雄爭霸時,就開始流行用這些"扯淡"考題招聘。因為計算機產業的快速變動和創新,許多企業發現,光測試應聘者的IQ遠遠不夠,高分IQ員工往往光有一副聰明腦袋,愛說不能做。

於是,老闆們開始尋求可以考查"全方位解決能力"的招聘題目,"讀取"應聘者邏輯思維能力、想像力和解決問題的能力"指數"。這就是"怪考題"的老祖宗們。

為比爾設計浴室

如今,在"巨無霸"微軟的推動下,這類考題愈出愈冷僻。

來看看最近比爾·蓋茨最中意的考題———為他設計一個浴室。

很異想天開?可以隨便回答?這么想的話你鐵定無法通過微軟面試!用心分析題目,應試者可以得出2個答題關鍵———一是要考慮符合比爾·蓋茨身份、職業、性格的浴室設計方案;二是至少要提出一些讓比爾·蓋茨欣賞但他自己卻從未想到過的設計理念。否則,比爾·蓋茨干嗎雇你為他設計浴室?

被微軟接受的合理設計理念於是誕生了。

能夠自動上鎖的智能醫葯箱:用來存放家用葯品,以便無大人陪伴的孩子進入浴室、偶遇意外時能夠得到及時救治。

自動記事本:在浴室里產生奇思妙想,卻又因為手濕,無法使用PDA。那麼,或許比爾·蓋茨需要一個聲音識別設備,當他說出諸如"比爾的備忘錄"等代碼後,設備可以錄下信息,並自動將信息發送到電子郵箱,以備隨時取用。

一面物像非對稱的鏡子:鏡子背後安裝了視頻屏幕,屏幕連接著四周圍隱蔽的攝像機。這樣,站在鏡子面前,你能輕易看到你的背面圖像和側面圖像,穿衣服、剪頭發或者擠掉背後的暗瘡就方便多了。

"面臨不確定時的行動力"而非"想像力",才是微軟設計這道考題的真正目的。

答對了未必得分

更令人抓狂的是:有時,應試者即使給出了題目的正確答案,卻依舊無法得分。

比如"地球上有多少這樣的點:你先朝南走一公里,再向東一公里,再向北1公里,這時你回到了你的起點上。"

首先你想,這不是四方形少了一個邊嗎?回到起點簡直不可能!

然後,很快想到"極點"這個特殊地點———從北極點出發,任何方向都是南。於是從北極點出發,向三個方向分別走一公里,回到極點。於是你慶幸自己找到了答案,而且是惟一的答案。因為這樣的事情在南極點上不能發生,南極點已經不能再向南了。

考官面無表情,在你的答卷上批下"湯團"一個,你和回答"沒有這個點"的朋友們站在同一個叫做"淘汰"的陣營。

答案的關鍵正是在南極點上。

假定你站在離開南極點一公里多一些的地方走向南極。走完向南的一公里後,你還未曾達到南極點,但已經非常接近。於是你繼續向東,因為實在離南極點太近,你發現不斷向東走的路線形成了一個以南極為圓心,與赤道平行的圓,它的周長剛好一公里。這樣一來,你回到了圓形的出發點。往北一公里後,你回到原點。這樣一來,答題的點增加到了無數。

完了嗎?並沒有,你還可以增加一些點,比如,那個圓形的周長恰好是1/2公里、1/4公里、1/8公里......

只有回答出後面兩類答案的人,才有資格被微軟留下來
精簡修改過的Windows XP普遍刪除了

Ⅳ 家裡讓我上船工作,但我27了還沒找到對象,上船工作沒機會自己談的,只能靠家裡介紹了,因為以前介紹對

可以和父母談談,你的想法他們會支持的。

Ⅵ 如何准備PM(program manager)的面試泡麵以微軟Microsoft為例,談答題思路

泡麵同學三年前在一畝三分地里分享過《
【實例:女生讀CS,工作不編程】CS小碩IT行業大公司求職就業記錄
在微軟工作期間,泡麵經歷了內部跳槽,換到了滿意的部門,她又來地里分享了《
微軟PM(Program Manager)面試答題思路淺見》對了,跟前面《
從廈門大學-哥大生物統計-美國Market Research公司offer:通過一畝三分地找內推成功求職的例子
》主人公一樣,
泡麵也是廈門大學本科畢業的,廈大的同學們經常自嘲XMU不是國內很top的學校,其實廈大也有很優秀的學生!
各位想進入IT行業,但是又不想編程的同學,抓住機會來跟泡麵請教吧,
這次是工作了幾年的微軟員工答疑,機會難得。
PM真的不編程,即使是懂代碼,也很少直接check-in。道理很簡單。。。如果需要每天寫代碼,招個Dev就是了,何必招PM?既然招了PM,那勢必有無數的會議要開,文檔要寫,各方面要協調意見,和客戶打交道,以及參與設計產品界面或工作流程。每天同樣忙得要死,PM和Dev基本就是磨間驢和千里馬之間的區別。
這是個讓泡麵MM也無比頭疼的問題。
簡歷也寫了,cover letter也發了,面試官說行,拉出來溜溜吧。
你說你是該准備百米賽跑呢,還是中長跑呢,還是馬拉松呢?。。。
實踐證明,PM面試主要面的是設計類問題。有的組,一天五輪,輪輪都是換湯不換葯的設計題。

Ⅶ 父母想讓我上船多賺點錢等一年再找對象,但我想先找對象,因為怕越耽誤越難找到是 處 女的姑娘了,怎麼

上面那個匿名用戶。你是不是二啊!他也又沒問你這個。還有。這位。我看你這個回答我感覺你也差不多決定。你只不過是。想找幾個人。確定一下你這個答案讓你安心點而已。哪怕你媽說不是。我想你也會被勸到船上掙錢去的。

Ⅷ 如何對付馬拉松式面試

馬拉松式面試
微軟公司的面試招聘被應試者稱為「面試馬拉松」。應試者需要與部門工作人員、部門經理、副總裁、總裁等五六個人交談,每人大概一小時,交談的內容各有側重。除涉及信仰、民族歧視、性別歧視等敏感問題之外,其它問題幾乎都可能涉及。面試時尤其重視以下5點:
(1)重視應試者的反應速度和應變能力。
(2)重視應試者的口才,認為口才是表達思維、交流思想感情、促進相互了解的基本功。比爾·蓋茨每遇上口齒不靈的應試者,便會擺出滿臉不耐煩的樣子。
(3)重視應試者的創新能力。比爾·蓋茨曾多次說過,在高科技領域,用人之道並不在乎年齡、閱歷。微軟講究的是開拓創新能力。空有經驗而沒有創新能力、墨守成規的工作方式,這不是微軟提倡和需要的。
(4)重視應試者的技術背景,要求應試者當場編程。
(5)重視應試者的性格愛好和修養,一般通過與應試者共進午餐或閑談了解。
樂觀測試
20世紀80年代中期,美國一家人壽保險公司僱傭了5000名推銷員,人均支出培訓費3萬美元。可是,一年後一半人跳槽,4年後只剩下1000人了。推銷員跳槽的主要原因是:他們在上門推銷人壽保險過程中,一次又一次地被拒之門外,十分尷尬。為解決這個問題,公司請來了賓夕法尼亞大學的心理學教授馬丁·塞里格曼。塞里格曼教授認為,樂觀精神對一個人的成長尤為重要。情緒樂觀者往往不怕失敗,而悲觀者則在失敗面前垂頭喪氣、束手無策。在塞里格曼教授的幫助下,該公司對新錄用的1500名員工進行了入圍資格甄別測試和樂觀程度測試,並對測試結果進行了追蹤調查。一些人沒有通過入圍資格甄別測試,但卻以「超級樂觀主義者」的好成績通過了樂觀程度測試。追蹤調查表明,「超級樂觀主義者」工作任務完成得普遍出色。與「一般悲觀主義者」相比較,他們第一年的推銷額高出21%,第二年的推銷額高出57%。
無領導的小組討論
在這種形式中,應試者劃分成每組4到8人不等,不指定負責人,大家地位平等,要求就某些爭議性比較大的問題,例如幹部提拔、工作任務分配、額外補助金分配等問題進行討論。在某些情況下,還要求小組形成一致意見,並以書面形式匯報。每個組員都應在上面簽字,以表示自己同意所做的匯報。在無領導的小組討論中,主考官評分的依據是:發言次數;是否善於提出新的見解和方案;敢於發表不同的意見,支持或肯定別人的意見,堅持自己的正確意見;是否善於消除緊張氣氛,說服別人,調解爭議,創造一個使不大開口的人也想發言的氣氛,把眾人的意見引向一致;看能否傾聽別人意見,是否尊重別人,是否侵犯他人發言權。還要看語言表達能力如何,分析能力、概括和歸納總結不同意見的能力如何,看發言的主動性、反應靈敏性等等。
作為應試者,在進行無領導的小組討論時要注意以下幾點:
1、對自己充滿信心。無領導的小組討論雖然是求職競爭者之間的「短兵相接」,但也不是特別難對付的事情,因為應試者是公平競爭。
2、態度自然、有理有節。及時表達與其他人不同的意見,反駁別人先前的言論,也不要惡語相加,要做到一方面能夠清楚表達自己的立場,另一方面又不令別人難堪。
3、不可滔滔不絕、壟斷發言,也不能長久沉默、處處被動。每次發言都必須有條理、有根據。
4、找機會成為小組討論的主席,展示自己引導討論及總結的才能。尤其是對該問題無突出見解時,當主席實在是明智之舉。

閱讀全文

與微軟編程馬拉松相關的資料

熱點內容
西安最大的體育館 瀏覽:601
省體質檢測 瀏覽:4
長春馬拉松全長多少 瀏覽:825
茂名體育館周圍旅館 瀏覽:927
廬江沙溪中學體育老師 瀏覽:595
拳擊裁判知乎 瀏覽:965
適合小學二年級的體育活動 瀏覽:137
s7比賽煉金 瀏覽:224
2016齊魯弈友比賽通知 瀏覽:817
lpl有些什麼比賽 瀏覽:943
武漢體育學院公共事業管理怎麼樣 瀏覽:632
梅州體育學院杜院長 瀏覽:906
宿城文化體育中心 瀏覽:435
小班體育活動捉小魚 瀏覽:876
2020年高中籃球特長生招生 瀏覽:221
北京戶外運動聖地 瀏覽:330
跑馬拉松能長壽嗎 瀏覽:846
學習鋼琴不能練哪些體育項目 瀏覽:785
大班體育活動龜兔賽跑 瀏覽:770
我的體育老師田野的結局 瀏覽:430