導航:首頁 > 程序命令 > 程序員要是沒有精湛的廚藝

程序員要是沒有精湛的廚藝

發布時間:2023-01-23 22:17:26

㈠ 作為軟體工程師應該具備哪些基本素質

一、熟練掌握HTML、CSS、javaScript
用語義化的HTML標簽配合CSS百分百還原設計稿,並使用JavaScript完成各種交互邏輯,這是前端的基本功。當然,如果你想掌握扎實的理論知識,除了通過教材、視頻等渠道學習外,在學習過程中做大量的實踐,通過不斷寫代碼去應用所學知識,獲得快速成長。
二、熟練掌握一門Mvvm框架
隨著前端的日益復雜,大部分應用場景都已經離不開它們了。因此,你應該清楚的了解框架出現的意義以及框架的職責邊界,這樣你才能輕松應用框架提供的各種能力輔助開發工作。除了在應用中投入更多的心思外,你還可以去主動去學習一些框架源碼,進一步了解框架的實現原理。
以上所介紹的是前端工程師應該掌握的部分技術能力,除了技術能力外,一名優秀的前端工程師還應該具有業務能力。
首先,就是要有責任意識。如果你不甘心只當一顆螺絲釘,你就需要有責任意識,對產品和項目負責。一般來說,從產品的需求、設計、開發、測試到最終的上線都是由工程師在主導,並協調各個角色成員,這對工程師提出了很高的要求。因此,在學習階段你應該按照嚴格的工程師標准來要求自己。
其次,要有產品思維。當你接到一個需求的時候,也要思考這個需求解決了什麼問題,有什麼價值和意義。作為一個工程師,最好能參與到需求早期的討論中,充分理解業務,這樣你對需求的把握和理解會更准確,而不是產品說什麼你就做什麼,有些時候你會找到一條既能滿足需求又能節約開發成本的路。
最後,良好的溝通能力。作為前端工程師不可避免的就是需要和不同崗位的人進行溝通,充分的溝通可以避免走一些彎路,提升工作效率。

㈡ 是自學編程好還是去學廚師好

廚師好,編程其實沒你想得那麼難,但是說實話,現在會編程的人真不少,這個行業已經不吃香了,廚師不一樣,學好了到哪裡都能夠很好的生活。推薦咨詢【北方釣魚台烹飪學校】涵蓋廚師、西點、西餐、烘培等熱門專業均可試學,試學滿意之後再報名。【1分鍾輕鬆了解學費,招生簡章】

北方釣魚台烹飪學校技師和烹飪管理人才的大型烹飪(餐飲)教育學校,隸屬於北京中職北方教育科技有限公司。成都北方烹飪學校學生在接受中國八大菜系和中、西面點教育的基礎上,考核合格後再由烹飪大師親自向各地校區優秀學子傳授中餐菜系。成都北方烹飪學校秉承一絲不苟的嚴謹作風,以「傳承烹飪藝術 弘揚餐飲文化」為理念,匯聚了一批烹飪界的名廚大師、烹調師、技師,擔任教學指導團隊,這是一支高素質、技術功底深厚的雙師型師資團隊。

想要了解更多關於專業的相關信息,推薦咨詢北方釣魚台烹飪學校。北方釣魚台烹飪學校是一所培養烹調師、技師和烹飪管理人才的大型烹飪(餐飲)教育學校,隸屬於北京中職北方教育科技有限公司。北方釣魚台烹飪學校學生在接受中國八大菜系和中、西面點教育的基礎上,考核合格後再由烹飪大師親自向各地校區優秀學子傳授中餐菜系,是值得學員選擇的一所烹飪學校。

㈢ 做一名優秀的程序員需要什麼條件

(1).要喜歡上寫程序,如果沒有喜歡上,那就要學會去培養。程序員需要整天趴在電腦前,經常沒日沒夜的,非常辛苦,而且工作來不得半點虛假,少寫一個標點符號都不行。喜歡的人,日子過得非常開心,每寫一行代碼,都會有新的成就,尤其當自己的作品被廣泛應用的時候,那種自豪感油然而起。不喜歡的人,坐在電腦前極端無聊,被進度壓得喘不過氣來,天天為找bug改bug生氣。個人深有體會!這個「喜歡」就要大家在學習的過程中去體會。
(1).程序員應該是有感情的,程序員的程序最終是由用戶來評價的,而不是老師,或者我們的BOSS。設計程序時,要講究貼心,境界:我們也是Composer!
(2).程序員應該講究團隊協作,分配給團隊的大項目,不是一人之力能夠應付的,請尊重別人的代碼,以及設計,彼此需要全心全力配合
(3).有堅韌不拔的精神,我們編的不是程,是寂寞。愛上程序設計,靠編程潛移默化性格,大多數成功的程序員都是相信自己的人,所以,多多鼓勵自己一定是最好的。
一、優秀程序員的標准

1. 能夠准確地評估你的工作。
2. 第一時間提交有質量的工作成果。
3. 建立快速的反饋循環。
4. 確保代碼的准確性與後續跟進的協調性。
二、態度生活方面
1.踏實的工作態度;認真負責,少犯錯誤。
2.充滿熱情,努力工作;有團隊合作精神,能善於和別人相處。
3.有預見性,預先感測未知因素預估風險或後果。

㈣ 作為一個無聊的程序員,如何讓自己的生活有樂趣起來

讓自己的生活充滿儀式感,那麼生活就會有許多的樂趣!

㈤ 程序設計者應該具備的品質是什麼

程序員基本素質:
作一個真正合格的程序員,或者說就是可以真正合格完成一些
代碼工作的程序員,應該具有的素質。
1:團隊精神和協作能力
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,
也是最重要的安身立命之本。把高水平程序員說成獨行俠的都是在囈語,任何個人的力
量都是有限的,即便如linus這樣的天才,也需要通過
組成強大的團隊來創造奇跡,那些遍布全球的為linux寫核心的高手們,沒有協作精神是
不可想像的。獨行俠可以作一些賺錢的小軟體發點小財,但是一旦進入一些大系統的研
發團隊,進入商業化和產品化的開發任務,缺乏
這種素質的人就完全不合格了。
2:文檔習慣
說高水平程序員從來不寫文檔的肯定是乳臭未乾的毛孩子,良好的文檔是正規研發
流程中非常重要的環節,作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而
作為高級程序員和系統分析員,這個比例還要高很多。缺
乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇
到極大的麻煩。
3:規范化,標准化的代碼編寫習慣
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套
中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼
的移植和糾錯,也有助於不同技術人員之間的協作。fan
s叫囂高水平程序員寫的代碼旁人從來看不懂,這種叫囂只能證明他們自己壓根不配自稱
程序員。代碼具有良好的可讀性,是程序員基本的素質需求。再看看整個linux的搭建,
沒有規范化和標准化的代碼習慣,全球的研發
協作是絕對不可想像的。
4:需求理解能力
程序員需要理解一個模塊的需求,很多小朋友寫程序往往只關注一個功能需求,他
們把性能指標全部歸結到硬體,操作系統和開發環境上,而忽視了本身代碼的性能考慮
,有人曾經放言說寫一個廣 告交換程序很簡單,這種人從
來不知道在百萬甚至千萬數量級的訪問情況下的性能指標是如何實現的,對於這樣的程
序員,你給他深藍那套系統,他也做不出太極鏈的並訪能力。性能需求指標中,穩定性
,並訪支撐能力以及安全性都很重要,作為程序員需要
評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意
攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才
有可能有心得。
5:復用性,模塊化思維能力
經常可以聽到一些程序員有這樣的抱怨,寫了幾年程序,變成了熟練工,每天都是
重復寫一些沒有任何新意的代碼,這其實是中國軟體人才最大浪費的地方,一些重復性
工作變成了熟練程序員的主要工作,而這些,其實是完全可
以避免的。
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要
多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系
統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣
就能極大避免重復性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過
程中都考慮到這些問題,那麼程序員就不會在重復性的工作中耽誤太多時間,就會有更
多時間和精力投入到創新的代碼工作中去。
一些好的程序模塊代碼,即便是70年代寫成的,拿到現在放到一些系統裡面作為功
能模塊都能適合的很好,而現在我看到的是,很多小公司軟體一升級或改進就動輒全部
代碼重寫,大部分重復性工作無謂的浪費了時間和精力。
6:測試習慣
作為一些商業化正規化的開發而言,專職的測試工程師是不可少的,但是並不是說
有了專職的測試工程師程序員就可以不進行自測;軟體研發作為一項工程而言,一個很
重要的特點就是問題發現的越早,解決的代價就越低,程序
員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早
的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
測試工作實際上需要考慮兩方面,一方面是正常調用的測試,也就是看程序是否能
在正常調用下完成基本功能,這是最基本的測試職責,可惜在很多公司這成了唯一的測
試任務,實際上還差的遠那;第二方面就是異常調用的測試,比如高壓力負荷下的穩定
性測試,用戶潛在的異常輸入情況下的測試,整體系統局部故障情況下該模塊受影響狀
況的測試,頻發的異常請求阻塞資源時的模塊穩定測試等等。當然並不是程序員要對自
己的每段代碼都需要進行這種完整測試,但是程序員必須清醒認識自己的代碼任務在整
體項目中的地位和各種性能需求,有針對性的進行相關測試並盡早發現和解決問題,當
然這需要上面提到需求理解能力。
7:學習和總結的能力
程序員是人才很容易被淘汰,很容易落伍的職業,因為一種技術可能僅僅在三兩年
內具有領先性,程序員如果想安身立命,就必須不斷跟進新的技術,學習新的技能。
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就
更加高了。但是學習也要找對目標,一些小coding有些codingTO就是這樣的coding上只
是一些Cfans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了ph
p,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東
西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術
人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。
善於總結,也是學習能力的一種體現,每次完 成一個研發任務,完成一段代碼,都
應當有目的的跟蹤該程序的應用狀況和用戶反饋,隨時總結,找到自己的不足,這樣逐
步提高,一個程序員才可能成長起來。
一個不具備成長性的程序員,即便眼前看是個高手,建議也不要選用,因為他落伍
的時候馬上就到了。具備以上全部素質的人,應當說是夠格的程序員了,請注意以上的
各種素質都不是由IQ決定的,也不是大學某些課本里可以學習到的,需要的僅僅是程序
員對自己工作的認識, 是一種意識上的問題。
那麼作為高級程序員,以至於系統分析員,也就是對於一個程序項目的設計者而言
,除了應該具備上述全部素質之外,還需要具備以下素質:
第一,需求分析能力
對於程序員而言,理解需求就可以完成合格的代碼,但是對於研發項目的組織和管
理者,他們不但要理解客戶需求,更多時候還要自行制定一些需求,為什麼這么說呢?

一般而言,進行研發任務,也許是客戶提出需求,也許是市場和營銷部門提出的需
求,這時候對於研發部門,他們看到的不是一個完整的需求,通常而言,該需求僅僅是
一些功能上的要求,或者更正規些,可能獲得一個完整的用戶視圖;但是這都不夠,因
為客戶由於非技術因素多一些,他們可能很難提出完整和清晰,或者說專業性的性能需
求,但是對於項目組織者和規劃者,他必須能夠清醒認識到這些需求的存在並在完成 需
求分析報告的時候適當的提出,同時要完整和清晰的體現在設計說明書裡面,以便於程
序員編碼時不會失去這些准則。
程序設計者必須正確理解用戶需求所處的環境,並針對性做出需求的分析,舉例而
言,同樣一個軟體通過ASP租用方式發布和通過License方式發布,性能需求可能就是有
區別的,前者強調的是更好的支撐能力和穩定性,而後者則可能更強調在各種平台下的
普適性和安裝使用的簡捷性。
第二,項目設計方法和流程處理能力
程序設計者必須能夠掌握不少於兩到三種的項目設計方法(比如自頂至下的設計方
法,比如快速原型法等等),並能夠根據項目需求和資源搭配來選擇合適的設計方法進
行項 目的整體設計。設計方法上選擇不當,就會耽誤研發周期,浪費研發資源,甚至影
響研發效果。
一個程序設計者還需要把很多功夫用在流程圖的設計和處理上,他需要做數據流圖
以確立數據詞典;他需要加工邏輯流圖以形成整體的系統處理流程。一個流程有問題的
系統,就算代碼多漂亮,每個模塊多精緻,也不會成為一個好的系統。當然,做好流程
分析並選擇好項目設計方法,都需要在需求分析能力上具有足夠的把握。
第三,復用設計和模塊化分解能力
這個似乎又是老調重談,前面基本素質上不是已經說明了這個問題嗎?作為一個從
事模塊任務的程序員,他需要對他所面對的特定功能模塊的 復用性進行考慮,而作為一
個系統分析人員,他要面對的問題復雜的多,需要對整體系統按照一種模塊化的分析能
力分解為很多可復用的功能模塊和函數,並針對每一模塊形成一個獨立的設計需求。舉
個例子,好比是汽車生產,最早每輛汽車都是獨立安裝的,每個部件都是量身定做的,
但是後來不一樣了,機器化大生產了,一個汽車廠開始通過流水線來生產汽車,獨立部
件開始具有一定的復用性,在後來標准化成為大趨勢,不同型號,品牌甚至不同廠商的
汽車部件也可以進行方便的換裝和升級,這時候,汽車生產的效率達到最大化。
軟體工程也是同樣的道理,一個成熟的軟體行業,在一些相關項目和系統中,不同
的部件是可以隨意換裝的,比如微軟的許多桌面軟體,在很多操作模塊(如打開文件,
保存文件等等)都是復用的同一套功能模塊,而這些介面又
通過一些類庫提供給了桌面應用程序開發者方便掛接,這就是復用化的模塊設計明顯的
一個佐證。
將一個大型的,錯綜復雜的應用系統分解成一些相對獨立的,具有高度復用性的,
並能僅僅依靠幾個參數完成數據聯系的模塊組合,是作為高級程序員和系統分析員一項
最重要的工作,合適的項目設計方法,清晰的流程圖,是實現這一目標的重要保證。
第四,整體項目評估能力
作為系統設計人員,必須能夠從全局出發,對項目又整體的清醒認識,比如公司的
資源配置是否合理和到位,比如工程進度安排是否能最大化體現效率又不至於無法按期
完成。評估項 目整體和各個模塊的工作量,評估項目所需的資源,評估項目可能遇到的
困難,都需要大量的經驗積累,換言之,這是一種不斷總結的累計才能達到的境界。在
西方一些軟體系統設計的帶頭人都是很年長的,比如4,50歲,甚至更老,他們在編碼方
面已經遠遠不如年輕人那樣活絡,但是就項目評估而言,他們幾十年的經驗積累就是最
重要和寶貴的財富。中國缺這么一代程序員,主要還不是缺那種年紀的程序員,而是那
種年紀的程序員基本上都是研究單位作出來的,都不是從專業的產品化軟體研發作出來
的,他們沒有能積累那種產品化研發的經驗,這也是沒有辦法的事情。
第五,團隊組織管理能力
完成一個項目工程,需要團隊的齊心協力,作為項目設計者或研發的主管人,就應
當有能力最大化發揮團隊的整體力量,技術管理由於其專業性質,不大同於一般的人事
管理,因為這裡面設計了一些技術性的指標和因素。
首先是工作的量化,沒有量化就很難做到合適的績效考核,而程序量化又不是簡單
的代碼行數可以計算的,因此要求技術管理人員需要能真正評估一個模塊的復雜性和工
作量。
其次是對團隊協作模式的調整,一般而言,程序開發的協作通常分為小組進行,小
組有主程序員方式的,也有民主方式的,根據程序員之間的能力水平差距,以及根據項
目研發的需求,選擇合適的組隊方式,並能將責權和成員的
工作任務緊密結合,這樣才能最大發揮組隊的效率。
一個代碼水平高的人,未必能成為一個合格的項目研發主管,這方面的能力欠缺往
往是容易被忽視的。
綜上可以看到,作為一個主管研發的負責人,一個項目設計者,所需要具備的素質
和能力並不是程序代碼編寫的能力,當然一般情況下,一個程序員通過不斷的總結提高
達到了這種素質的時候,他所具有的代碼編寫能力也已經相當不簡單了,但是請注意這
裡面的因果關系,一個高水平的項目設計者通常已經是代碼編寫相當優秀的人了,但是
並不是一個代碼相當優秀的程序員就可以勝任項目設計的工作,這裡面存在的也不是智
商和課本的問題,還是在於一個程序員在積累經驗,逐步提升的時候沒有意識到應當思
考哪方面的東西,沒有有意識的就項目的組織和復用設計進行揣摩,沒有經常性的文檔
習慣和總結習慣, 不改變這些,我們的合格的項目設計者還是非常欠缺。
另外,為防止有無聊的人和我較真,補充一點,本文針對目標是作商業化的軟體項
目和工程,那些科研機構的編程高手,比如演算法高手,比如圖象處理高手,他們的工作
是研究課題而非直接完成商業軟體(當然最終間接成為商業
產品,比如微軟研究院在作的研究課題),因此他們強調的素質可能是另外的東西,這
些人(專家),並不能說是程序員,不能用程序員的標准去衡量。
最後補充一點東西,一個軟體項目研發的設計流程是怎樣的呢?以通常標準的設計
方法為例,(不過筆者喜歡快速原型法)。
第一個步驟是市場調研,技術和市場要結合才能體現最大價值。
第二個步驟是需求分析,這個階段需要出三樣東西,用戶視圖,數據詞典和用戶操
作手冊。用戶視圖是該軟體用戶(包括終端用戶和管理用戶)所能看到的頁面樣式,這
裡麵包含了很多操作方面的流程和條件。數據詞典是指明數據邏輯關系並加以整理的東
東,完成了數據詞典,資料庫的設計就完成了一半多。用戶操作手冊是指明了操作流程
的說明書。請注意,用戶操作流程和用戶視圖是由需求決定的,因此應該在軟體設計之
前完成,完成這些,就為程序研發提供了約束和准繩,很遺憾太多公司都不是這樣做的
,因果顛倒,順序不分,開發工作和實際需求往往因此 產生隔閡脫節的現象。
需求分析,除了以上工作,筆者以為作為項目設計者應當完整的做出項目的性能需
求說明書,因為往往性能需求只有懂技術的人才可能理解,這就需要技術專家和需求方
(客戶或公司市場部門)能夠有真正的溝通和了解。
第三個步驟是概要設計,將系統功能模塊初步劃分,並給出合理的研發流程和資源
要求。作為快速原型設計方法,完成概要設計就可以進入編碼階段了,通常採用這種方
法是因為涉及的研發任務屬於新領域,技術主管人員一上來無法給出明確的詳細設計說
明書,但是並不是說詳細設計說明書不重要,事實上快速原型法在完成原型代碼後,根
據評測結果和經驗教訓的總結,還要重新進行詳細設計的步驟。
第四個步驟是詳細設計,這是考驗技術專家設計思維的重 要關卡,詳細設計說明書
應當把具體的模塊以最『干凈』的方式(黑箱結構)提供給編碼者,使得系統整體模塊化
達到最大;一份好的詳細設計說明書,可以使編碼的復雜性減低到最低,實際上,嚴格
的講詳細設計說明書應當把每個函數的每個參數的定義都精精細細的提供出來,從需求
分析到概要設計到完成詳細設計說明書,一個軟體項目就應當說完成了一半了。換言之
,一個大型軟體系統在完成了一半的時候,其實還沒有開始一行代碼工作。那些把作軟
件的程序員簡單理解為寫代碼的,就從根子上犯了錯誤了。
第五個步驟是編碼,在規范化的研發流程中,編碼工作在整個項目流程里最多不會
超過1/2,通常在1/3的時間,所謂磨刀不誤砍柴功,設計過程完成的好,編碼效率就會
極大提高,編碼時不同模塊之間的進度協調和協作是最需要小心的,也許一個小模塊的
問題就可能影響了整體進度,讓很多程序員因此被迫停下工作等待,這種問題在很多研
發過程中都出現過。編碼時的相互溝通和應急的解決手段都是相當重要的,對於程序員
而言,bug永遠存在,你必須永遠面對這個問題,大名鼎鼎的微軟,可曾有連續三個月不
發補丁的時候嗎?從來沒有!
第六個步驟是測試。
測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試范圍,
可以分為模塊測試和整體聯調;按照測試條 件,可以分為正常操作情況測試和異常情況
測試;按照測試的輸入范圍,可以分為全覆蓋測試和抽樣測試。以上都很好理解,不再
解釋。
總之,測試同樣是項目研發中一個相當重要的步驟,對於一個大型軟體,3個月到1
年的外部測試都是正常的,因為永遠都會又不可預料的問題存在。
完成測試後,完成驗收並完成最後的一些幫助文檔,整體項目才算告一段落,當然
日後少不了升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟
件的運營狀況並持續修補升級,知道這個軟體被徹底淘汰為
止。
寫這些步驟算不上賣弄什麼,因為實話講我手邊是一本《軟體工程》,在大學里這
是計算機專業的必修課程,但是我知道很多程序員似乎從來都只是熱衷於什麼《30天精
通VC》之類的,他們有些和我一樣游擊隊出身,沒有正規學過這個專業,還有一些則早
就在混夠學分後就把這些真正有用的東西還給了老師。
fans亂嚷嚷,混淆視聽,實際上真正的技術專家很少在網上亂發帖子的,如筆者這
樣不知天高地厚的,其實實在是算不上什麼高手,只不過看不慣這種對技術,對程序員
的誤解和胡說,只好挺身而出,做撥亂反正之言,也希望那些還fans們能認真想想,走
到正途上,畢竟那些聰明的頭腦還遠遠沒有發揮應有的價值。
從程序員到工程師
從程序員升級到工程師大多數象我這樣對軟體有濃厚興趣的人,畢業後義無反顧地
走進了企業,開始了程序員的生涯。那時,我們迷戀「大全」、「秘籍」一類的書籍,
心中只有代碼。當我看到一行行枯燥的代碼變成了能夠打電話的設備,變成了屏幕上漂
亮的表格,變成了動聽的音樂,成就感油然而生。我覺得自己也是一個出色的程序員了
。在用戶的機房中苦熬三晝夜解決軟體的bug,也成了一種可以誇耀的資歷。五年前的某
一天,我把曾經讓我興奮自豪的大量代碼和少得可憐的文檔移交之後,來到了華為。這
里有更多的年輕人,我如魚得水,可以充分發揮自己的想像力。依然是代碼,依然是匆
匆地在紙上記下稍縱即逝的靈感(我們把它稱作文檔),依然是無休止地和bug作斗爭。
當有一天,一個新來的同事拿著署著我的大名的文檔,小心翼翼地來問我時,我發現自
己好象有點不認識它了。我心裡有點沮喪,再看看代碼,發現文檔上記錄的一些靈感已
面目全非。我當時不知道那位新來的同事感受如何,但我從那時起,好象意識到什麼。
現在來看,那時的很多事情都是事倍功半。
我也見到了我的項目經理,一個個子較高,瘦瘦的年輕人,據說剛從美國回來,已
工作了五、六年。我聽了心裡很高興,這回要一招一式地學兩手。需求分析的時間是一
個月,項目經理和我們(實際上代表客戶 )討論了proposal中的內容,確定每一項都是
需要的。然後他把模塊大致劃分了一下,開始進入計劃中的學習階段。每個人在學習階
段要寫出功能描述的膠片,給其他人講解,不知不覺中,項目組的所有人對項目有了整
體的了解。
他還安排了一些培訓,如他們公司的軟體開發模型、項目組中各角色的定義,以後
及時的培訓不斷,只要項目組中有需求,他總是把qa或相關的人請來,培訓很專業。需
求分析完成後提交了一份四十多頁的文檔,當我看到這份英文文檔中我寫的部分整整齊
齊地列在其中時,我的感覺很復雜,有些喜悅,但更多的是苦澀,我以前怎麼就從來沒
有這樣做過需求分析呢。
在我寫文檔的過程中,qa給我們培訓過srs的寫作模板,後來我還是不放心,讓他們
一個有經驗的工程師寫了一段,我們再琢磨著照著寫。這份srs雖然是多個人合寫,但風
格一致,內容詳實。更為可貴的是,一直到最後,這份需求分析的內容都沒有改過,以
至於我們沒有機會走一下他們的需求更改流程。
需求分析是項目的第一階段,第二階段的開發時間要根據需求分析的結果來確定。
當對方的首席技術官(相當於我們業務部的總體組長)來和我們討論計劃時,他們已列
出了對每個 模塊的代碼行數的預測,可能存在的風險。根據他們公司的生產率--300
行/人月,他得出了項目第二階段需要多少周。
我們當時就提出了異議:1)公司對該項目需求很急;2)每月300行是否太少;3)
我們還有下載的源代碼參考。他解釋說,300行/人月是使得項目能達到他們質量標準的
經驗數據,考慮到有源代碼參考,生產率最多不能超過350行/人月。
當他問我們公司的生產率時,我腦袋裡轉了三個圈,沒敢多說,大概六、七百行吧
。他沉默了一會兒,然後堅定地說,我們這個計劃是建立在確保質量的基礎上的,我想
你們到印度來開發軟體,首先看中的應該是我們印度公司的
質量保證。我知道你們不缺乏軟體開發人員,你們為什麼不選擇下載的軟體呢。幾句話
說到了我的痛處,現在國內的弟兄們還在為使用下載軟體移植的產品四處奔波呢!
隨後的開發活動有條不紊,我們老老實實地跟著做。系統測試計劃、用例,概要設
計,集成測試計劃、用例,詳細設計,單元測試計劃、用例,編碼,單元測試,集成測
試,系統測試。一個完整的v模型開發過程,其中每個過程都有review。當我們對一些設
計的方法不太明白時,項目經理給我們發來了相關的資料,我不知道他當時是怎麼想的
,一些基本的分析、設計方法是十年,甚至二十年前的軟體工程書中就講到的,印度每
個計算機專業的人員都是必修這些內容的。而我們除了對一些具體協議的代碼很熟之外
,對這些常用的方法似乎一無所知。我感到一些羞愧,進城直奔書店,把他給我開列的
書找了出來,晚上躺在床上,仔細研讀,我彷彿突然又遇到了能給我指點迷津的良師益
友。現在印度所已形成了強烈的學習風氣。我回來後也推銷了700多本書,這些書教我們
如何用工程化的方法開發軟體,是成為一個軟體工程師必讀的資料。
我們的項目經理的計劃控制能力很強,當有什麼影響到項目計劃的事情發生時,如
人員辭職、實驗室搬家、某一模塊預測不準(該模塊是我們預測的),他總是採取必要
的措施,減少延期,調整計劃。剛開始,我們對他們每天上午11點,下午4點下樓喝咖啡
還有點意見,後來也跟著喝去了,原來,喝咖啡時的交流非常豐富,從項目管理到設計
方法,從技術發展到風土人情,無所不包,對我們互相之間的理解,對團隊的氣氛很有
幫助。我們項目的QA也在適當的時候出現在我們的面前,我們對她的工作只有一些感性
認識。她每次參加會議時,手裡時常拿著一個check list,項目經理准備相應的資料,
回答一些問題,她打著勾,或寫著項目經理的解釋。她給我們做培訓時也很耐心,體現
出很好的職業素養,我至今還在懷念她給我們的幫助。
我從事軟體開發已有九個年頭了,可我現在仍然不能說自己是個合格的軟體工程師
,更不用談什麼合格的管理者。我看到一份報道說,瑞士洛桑一權威機構把中國的科技
綜合競爭力從原來的第十三位調到二十多位,原因是他們調整了一些評估標准,其中有
一條是中國合格工程師的可獲得性非常低。想著弟兄們熬紅的雙眼,四處奔波升級的疲
憊身影,我有一個強烈的願望:快把我們自己升級成合格的工程師吧!

㈥ 一個程序員要具備的基本素質是什麼

  1. 團隊精神和協作能力 :

    把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。

  2. 文檔習慣:

    作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。

  3. 規范化,標准化的代碼編寫習慣:

    作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。

  4. 需求理解能力:

    作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。

  5. 復用性,模塊化思維能力:

    復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作。

  6. 測試習慣:

    軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。

  7. 學習和總結的能力:

    善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。

㈦ 程序員要具備什麼技能

一名合格的程序員需要掌握哪些技能呢?

熟練掌握開發工具

做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。

熟知資料庫

為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。

對操作系統有一定的了解

當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。

懂得網路協議TCP/IP

在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。

明白DCOM/CORBA/XML/WEB Services存在的意義

隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。

不要將軟體工程與CMM分開

現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。

擁有強烈的好奇心

什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。

㈧ 一個好的程序員至少應該具備哪些條件

樓上的幾位顯然誤會我的意思了,我並不是說不應當寫文檔加註釋注重團隊精神,看看下面的一篇文章,那位三天就寫出UNIX的他需要寫文檔注釋和團隊精神嗎,他用不著。哪個高手沒有一點傲氣和自信,他之所以敢對用戶說:拿到你想要的,然後滾蛋,你已經很幸運了!是因為他有這個資本。天才本就不循規蹈矩,那樣他就不叫天才了。

MIT BBS上說微軟電話面試的一道題就是「Who do you think is the best coder,
and why?」。我覺得挺有意思的,也來湊個熱鬧。排名不分先後。

Bill Joy, 前任Sun的首席科學家,當年在Berkeley時主持開發了最早版本的BSD。他還
是vi和csh的作者。當然,Csh Programming Considered Harmful 是另一個話題樂。據
說他想看看自己能不能寫個操作系統,就在三天里寫了個自己的Unix, 也就是BSD的前
身。當然是傳說了,但足見他的功力。另一個傳說是,1980年初的時候,DARPA讓BBN在
Berkley Unix里加上BBN開發的TCP/IP代碼。但當時還是研究生的B伯伯怒了,拒絕把BBN
TCP/IP加入BSD,因為他覺得BBN的TCP/IP寫得不好。於是B伯伯出手了,端的是一箭封
喉,很快就寫出了高性能的伯克利版TCP/IP。當時 BBN和DARPA簽了巨額合同開發TCP/IP
Stack,誰知他們的代碼還不如一個研究生的好。於是他們開會。只見當時B伯伯穿
個T-shirt出現在會議室(當時穿T-shirt不象現在,還是相當散漫的哈)。只見BBN問:你
怎麼寫出來的?而B伯伯答:簡單,你讀協議,然後編程就行了。最令偶暈倒的是,B伯
伯碩士畢業後決定到工業界發展,於是就到了當時只有一間辦公室的Sun, 然後他就把
Sparc設計出來樂。。。象這種軟硬通吃的牛人,想不佩服都不行的說。據Bill Joy的同
事說,一般開會的時候B伯伯總是拿一堆雜志漫不經心地讀。但往往在關鍵之處,B伯伯
發言,直切要害,提出漂亮的構想,讓同事們徹底崩潰。對了,他還是Java Spec和JINI
的主要作者之一。

John Carmack,ID Software的founder和Lead Programmer。上個月和一個搞圖形的師兄
聊天,他竟然不知道John Carmack, 也讓偶大大地暈了一把。不過也許搞研究的和搞實
戰的多少有些隔吧。想必喜歡第一人稱射擊游戲的都知道J哥哥。90年代初只要能在PC
上搞個小動畫都能讓人驚嘆一番的時候,J哥哥就推出了石破天驚的Castle Wolfstein,
然後再接再勵,doom, doomII, Quake...每次都把3-D技術推到極限。J哥哥的簡歷上說
自己的專長是"Exhaust 3-D technology",真是牛人之言不我欺的說。做J哥哥這樣的人
是很幸福的,因為各大圖形卡廠家一有了新產品就要向他「進貢"
,不然如果他的游戲不支持哪種卡,哪種卡基本就會夭折樂。當初MS的Direct3D也得聽
取他的意見,修改了不少API。當然,J哥哥在結婚前十數年如一日地每天編程14小時以
上,也是偶們凡人望塵莫及的。對了,J哥哥高中肆業(?),可以說是自學成才。不過
呢,誰要用這個例子來為自己學習不好辯護,就大錯特錯了。那 Leonardo Da Vinci還
是自學成才呢(人是私生子,不能上學)。普通人和天才還是有區別的。對了,其實偶們
叫「達分奇」是相當不對的,因為Vinci是地名,而Da Vinci就是從Vinci來的人的意
思。換句話說,Leonardo Da Vinci就是「從Vinci來的Leonardo」的意思。叫別
人「Da Vinci」就不知所謂樂。嗯,扯遠了,打住。

David Cutler,VMS和Windows NT的首席設計師,去微軟前號稱矽谷最牛的kernel開發
員。當初他和他的手下在微軟一周內把一個具備基本功能的bootable kernel寫出來,然
後說:「who can't write an OS in a week?",也是牛氣沖天的說。順便說一句,D爺
爺到NT3.5時,管理1500名開發員,自己還兼做設計和編程,不改coder本色啊。

D爺爺天生脾氣火爆,和人爭論時喜歡雙手猛擊桌子以壯聲勢。 日常交談fuck不離口。
他面試秘書時必問:"what do you think of the word 'fuck'?" ,讓無數美女剎羽而
歸。終於有一天,一個同樣火爆的女面對這個問題脫口而出:"That's my favorite
word"。於是她被錄取樂,為D爺爺工作到NT3.5發布。

Don Knuth。高爺爺其實用不著偶多說。學編程的不知道他就好像學物理的不知道牛頓,
學數學的不知道歐拉,學音樂的不知道莫扎特,學Delphi的不知到 Anders Hejlsberg,
或者學Linux不知道Linus Torvalds一樣,不可原諒啊。為了讓文章完整,就再羅唆幾句
吧。高爺爺本科時就開始給行行色色的公司寫各種稀奇古怪的編譯器掙外快了。他賣給別
人時收一兩千美元,那些公司拿了code,加工一下賣出去就是上萬上十萬。不過也沒見高
爺爺不爽過,學者本色的說。想想那可是60年代初啊,高爺爺寫編譯器寫多了,順帶就搞
出了個 Attribute Grammar和LR(k),大大地造福後人啊。至於高爺爺在CalTech的編程比
賽(有Alan Kay得眾多高高手參加)總是第一,寫的Tex到86年就code freeze,還附帶2^n
美分獎勵等等都是耳熟能詳的,偶就不饒舌樂。

順便說一下,高老大爺是無可爭議的寫作高手。他給Concrete Mathematics 寫的前言可
謂字字鏗鏘,堪為前言的典範。他的技術文章也是一絕,文風細致,解釋精當,而且沒
有學究氣,不失輕快跳脫。記得幾年前讀Concrete Mathemathics,時不時開懷大笑,讓
老媽極其郁悶,覺得我nerdy到家,不可救葯。其實呢,子非魚,安知魚之樂,更不知那
完全是高爺爺的功勞。說到寫作高手,不能不提Stephen A. Cook。他的文章當年就被我
們的寫作老師極力推薦,號稱典雅文風的樣本。庫爺爺一頭銀發,身材頎長,總是面帶
謙和的微笑,頗有仙風道骨,正好和他的仙文相配的說。

高爺爺其實還是開源運動的先驅。雖然他沒有象Richard Stallman那樣八方奔走,但他
捐獻了好多作品,都可以在網上看到,比如著名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用說足以讓他流芳百世的Tex樂。

Ken Thompson,C語言前身B語言的作者,Unix的發明人之一(另一個是Dennis M. Riche
老大,被尊為DMR),Belle(一個厲害的國際象棋程序)的作者之一, 操作系統Plan 9的主
要作者(另一個是大牛人Rob Pike,
前不久被google挖走了)。Ken爺爺也算是計算機歷史上開天闢地的人物了。1969年還是
計算機史前時代,普通人都認為只有大型機才能運行通用的操作系統,小型機只有高山
仰止的份兒。至於用高級語言來寫操作系統,更是笑談。Ken爺爺自然不是池中物,於是
他和DMR怒了,在1969年到1970間用匯編在PDP-7上寫出了UNIX的第一個版本。他們並不
知道,一場轟轟烈烈的UNIX傳奇由此拉開了序幕。Ken爺爺在1971年又把Unix用C重寫,
於是C在隨後20年成就了不知多少豪傑的夢想和光榮。

Ken爺爺還有段佳話: 裝了UNIX的PDP-11最早被安裝在Bell Lab里供大家日常使用。很
快大家就發現Ken爺爺總能進入他們的帳戶,獲得最高許可權。Bell
Lab里的科學家都心比天高,當然被搞得郁悶無比。於是有高手怒了,跳出來分析了UNIX
代碼,找到後門,修改代碼,然後重新編譯了整個UNIX。就在大家都以為「這個世界清
凈了」的時候,他們發現Ken爺爺還是輕而易舉地拿到他們的帳戶許可權,百思不解後,只
好繼續郁悶。誰知道這一郁悶,就郁悶了14年,直到Ken爺爺道出個中緣由。原來,代碼
里的確有後門,但後門不在Unix代碼里,而在編譯Unix代碼的C編譯器里。每次C編譯器
編譯UNIX的代碼,就自動生成後門代碼。而整個Bell Lab的人,都是用Ken爺爺的C編譯
器。

(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,現在google研究操作系
統 。羅伯伯是Unix的先驅,是貝爾實驗室最早和Ken Thompson以及Dennis M. Ritche開
發 Unix的猛人,UTF-8的設計人。他還在美國名嘴David
Letterman的晚間節目上露了一小臉,一臉憨厚地幫一胖子吹牛搞怪。讓偶佩服不已的
是,羅伯伯還是1980年奧運會射箭的銀牌得主。他還是個頗為厲害的業余天文學家,設
計的珈瑪射線望遠鏡差點被NASA用在太空梭上。他還是兩本經典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初學者
想在編程方面精益求精,實在該好好讀讀這兩本書。它們都有中文版的說。羅伯伯還寫
出了Unix下第一個基於點陣圖的窗口系統,並且是著名的blit終端的作者。當然了,羅伯
伯還是號稱銳意革新的操作系統,Plan9,的主要作者。可惜的是,Plan9並沒有引起多
少人的注意。羅伯伯一怒之下,寫出了振聾發聵的雄文 Systems Software Research is
Irrelevant,痛斥當下系統開發的不思進取,固步自封的弊病。雖然這篇文章是羅伯伯
含忿出手,頗有偏激之詞,但確實道出了系統開發的無奈:開發周期越來越長,代價越
來越大,用戶被統一到少數幾個系統上,結果越來越多的活動是測量和修補,而真正的
革新越來越少。

就在羅伯伯郁悶之極的時候,google登門求賢來樂。如果說現在還有一家大眾公司在不
遺餘力地把系統開發推向極致的話,也就是google樂。隨便看看google的成果就知道
了。具有超強容錯和負載平衡能力的分布式文件系統GFS
(現在能夠用100,000台廉價PC搭起一個巨型分布系統,並且高效便宜地進行管理的系統
也不多哈),大規模機器學習系統(拼寫檢查,廣告匹配,拼音搜尋。。。哪個都很牛的
說),更不用說處理海量並行計算的各式google服務了。Rob在System Software
Research is Irrelevant里蕭瑟地說現在沒有人再關心系統研究的前沿成果了。想不到
他錯了,應為google關心。google網路了大批功成總是試圖吸取系統研究的最新成果。
想必Rob Pike在google很幸福。願他做出更棒的系統。

Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新聞組上人稱DMR的Dennis M.
Ritchie自然也是,畢竟兩人共同締造了UNIX,而Dennis幾乎獨力把C搞大(當然,C的前
身是B,而B是Ken Thompson一手做出來的)。兩人1983年分享圖靈獎,是有史以來少數幾
個因工程項目得獎的工程師(本來是唯一的一對兒,但Alan Kay才因為SmallTalk得獎,
所以就成了唯二的樂) 一個人一生能做出一個卓越的系統已經不易,DMR的C和UNIX長盛
不衰近30年,至今生機勃勃,DMR此生可以無憾的說。

D爺爺也算有家學淵源:他老爸在AT&T貝爾實驗室工作了一輩子,並在電路設計方面卓有
成就,還出了本頗有影響的書The Design of Switching Circuits,據說在交換理論和
邏輯設計方面有獨到的論述。當然,D爺爺和他老爸是不同時代的人:他老爸的研究成
形於晶體管發明之前,而D爺爺的工作離了晶體管就玩兒不轉樂。:-D

不要看D爺爺搞出了C,其實他最愛的編程語言是Alef,在Plan9上運行,支持並行編程。
Alef的語法和C相似,但數據類型和執行方式都和C大大不同。說到語言,D爺爺對後來
人有非常中肯的建議:抱著學習的目的來開發你自己的語言,不要冀望於它被眾人接
受。這個建議不光對語言開發有用,也適用於其它大型系統的開發。別的不說,DMR後來
領導自己的團隊在1995年和1996分別推出了Plan9和Inferno操作系統,又用多少人知道
呢?其實,D爺爺當初也沒想過C會風行世界。他開發C的初衷和Eric S. Raymond
在Cathedral and Bazaar里闡述的一樣,就是要消除自己對現有工具的不爽之處。誰
知D爺爺無心插柳,C竟然受到眾多程序員的狂熱擁戴,連D爺爺自己都大惑不解。在一次
采訪中D爺爺說大概那是因為C的抽象程度碰巧既滿足了程序員的要求, 又容易實現。當
然C一度是Unix上的通用語言也是原因。但不管怎麼說,D爺爺對編程語言出色的審美意
識奠定了C廣為流傳的基礎。

最後八卦一下。D爺爺的業余愛好和NBA大牛Karl Malone一樣:開卡車。不過D爺爺更喜
歡開NASCAR,而KM獨愛巨無霸。J D爺爺自稱心中不供偶像,如果一定要說一個,那就
是Ken Thompson了。現在Ken爺爺退休當飛機教練去了,而D爺爺當了貝爾實驗室系統開
發部的頭,整日忙於開支票。他倆合作20年,屢屢創造歷史。這段令人神往的佳話,也
就長留你我心中樂。

P.S., 很多人都以為Brian W. Kernighan是C的作者。其實BWK只是寫了那本經典K&R C。
據D爺爺說,他,Ken, 和Kernighan三人中,Kernighan最能寫文章,他次之,而Ken寫
得最少;但說到編程,Ken爺爺才是當之無愧的老大。

Edsger Wybe Dijkstra, 對,就是E.W. Dijkstra. 一提到EWD,很多人就會想起找最短
路徑的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一樣。
其實這些個演算法不過是兩個牛人在他們職業生涯中最瑣碎的貢獻。比如Dijkstra演算法,
無非是戴爺爺在1956年為了展示新計算機
ARMAC的計算能力,初試身手的成果,屬於他的演算法處女作。據戴爺爺自述,他搞出最
短路徑演算法的時候連紙筆都沒用。當時他和他老婆在阿姆斯特丹一家咖啡廳的陽台上曬
太陽喝咖啡,突然就把這個演算法想出來樂。而且當時的演算法研究還比較原始,牛人們忙
著用計算機搞數值計算,對離散演算法不屑一顧。那時連一個象樣的專注於離散演算法的專
業期刊都沒有。戴爺爺於是推遲發表這個演算法。直到1959年,他才把這個演算法發表
在Numerische Mathematik的創刊號上,權為捧場。:-)
EWD在多個領域牛氣沖天,端的是理論和編程兩手硬的高手。只不過他的很多工作比較
深刻,學校的老先生們覺得本科生接受不了,不給本科生講而已。

戴爺爺大概因為最短路徑演算法一戰成名,於是有人請他參加另一台計算機X1的設計工
作,並且把設計實時中斷系統的任務派給了他。現在看來實時中斷也許不算什麼,但要
知到,X1前根本就沒有實時中斷的概念。實現它簡直就是一場豪賭。戴爺爺起初還不情
願,但經不住項目負責人Bram和Carel的輪番 「吹捧」:我們知道實時中斷讓您工作變
得非常困難,但象您這樣的牛人肯定能做出來的說。結果戴爺爺被糖衣炮彈徹底擊穿,
接下了這個燙手山芋。兩三年後,他不僅搞出了實時中斷,還圍繞這個寫出了自己的博
士論文,順利戴上博士帽。

讓戴爺爺真正成名立萬的還是在X1上開發的Algo60,最早的高級語言之一。戴爺爺沒日
沒夜地工作了8個月,就搞出了Algo60,也因此獲得了 1972年的圖靈獎。因為Algo60,
戴爺爺發表了一篇石破天驚的文章:Recursive
Programming,於是人們才知道,原來高級語言也可以高效地實現遞歸,原來從此以後,
所有程序員都不可避免地和戴爺爺發明的一個詞(應該說是概念)打交道:堆棧。
而且Algo60還讓戴爺爺深入地思考多道程序設計的問題,最終發明了每個系統程序員
都繞不開的概念:semaphore。當然,戴爺爺總是把他發明的概念嚴格形式化,極具科
學家本色的說。和這些成就想比,他提出的吃飯的哲學家問題,也就沒什麼好說的了。

說來好笑,當時的大學(忘了哪所了)還是覺得戴爺爺沒有受過正統的數學訓練,也不是
專門搞數值分析的,所以最後不太情願地給了他一個教職。這種小挫折並不能妨礙象戴
爺爺這樣的牛人創造歷史。他一邊教數值分析(:-D) ,一邊開始開發一個新的操作系
統,並培養計算機科學家。幾年後,THE Multiprogramming
System橫空出世。THE是第一個支持鬆散耦合,顯式同步的進程並由此使得嚴格證明系統
沒有死鎖變得容易的操作系統。可惜戴爺爺任職的系不識貨,還強行解散了他的研究小
組(1972年戴爺爺給他的系主任說他得了圖靈獎,系主任的第一反應是你們搞計算機就
喜歡亂發獎)。這讓戴爺爺相當郁悶,得了抑鬱症。在極度郁悶之中,戴爺爺決定用寫作
來治療自己的抑鬱症。於是經典就誕生樂:Notes on Structured Programming。戴爺爺
從此被尊為結構化編程的奠基人,而且他的抑鬱症也被治好樂。

EWD太牛,結果他的故事也太多。先到這里吧。1973起,他的故事就在美國發生了。

Anders Hejlsberg,微軟.NET的首席架構師,編程語言設計和實現的頂尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。這些作
品的名字足以為他立傳。作為一個程序員,我在這樣的大師面前實在無語。生子當
如Anders的說。李維的<>里已詳細講述了Anders的傳奇故事,我就不用費舌了:

http: //java.mblogger.cn/iexploiter/posts/1505.aspx

Artima上有Anders談C#的系列訪談。MSDN上有一段Anders導游的錄像 。有興趣可以去看
看牛人的豐采。

㈨ 做一名優秀的廚師,要具備哪些條件!

一、 要成為一名優秀廚師追求的最高境界。優秀的廚師必須具備良好的廚德,培養好的廚德才能使廚師走向成功,在行業內有所建樹。所以說:廚德是當好一名廚師的根本。如何在方寸灶台上培養好廚德呢?我在行業內得到大家的認同,與自己用良好廚德來要求自己是密不可分的。良好的廚德主要包括以下四方面的要素:一是要熱愛行業,立足本職。只有熱愛烹飪這一行,才可潛心做這一行,只有立足廚師本職,才會在工作中不斷獲得喜悅,獲得成功。一名廚師從學徒起要經歷從水雜、解功、配菜、站爐等不同崗位的漫長磨練,每一崗位的工作都是在為做好一名廚師打基礎,每一崗位鍛煉的過程都必須立足本職,不怕臟、不怕累、不能急於求成,這是培養廚德的根本。二是要踏實工作、精益求精。做廚師來不得半點虛假,每道菜品都須經過嚴格的工序,省一道工序,菜品就達不到質量的要求,同時,食客的口味在不斷變化,廚師做菜也必須順應變化,尋求創新,成以做一名廚師必須踏踏實實、精益求精。三 要謙虛謹慎,持之以恆。中國烹飪源遠流長、博大精深,對每一們從廚者來講都沒有止境,不是在大賽上得了金獎,在行業內被授予了大師稱號就可以高忱無憂,就可以說是登峰造極,必須持之以恆,做到勝不驕、敗不餒。方保持進步。四是要親和同行,尊重前輩。人民飲食質量的提高,在於烹飪水平的提高,烹飪水平的提高,在於烹飪同行的共同努力,廚師之間相互研討、相互幫助、相互勉勵,才可推動行業的共同進步。同時,我們要認識到大部分菜品的原形都是前輩們創造留下來的,我們的技藝是前輩們經驗的積累,所以要尊重前輩,學習前輩,親和同行。

二、 要成為一名優秀廚師必須擁有精湛的廚藝。

廚藝是廚師立足的關鍵。要成為一名優秀的廚師,必須擁有精湛的技藝。比如一名優秀的湘菜廚師,不但要精通湘菜,還必須旁通其它菜系。如何才能擁有精湛的廚藝?一是學藝要從零做起。學藝是一個艱苦的、長期的過程。學海無邊,廚師學藝要持之以恆、堅持不懈,不要半途而廢或停滯不前,從最基本、最基礎的做起,一步一個腳印,要有一股永不知足的鑽勁。特別是現在飲食消費日新月異,顧客消費的多樣化,更加要求廚師立足傳統,不斷創新。廚師學藝要融會貫通,取長補短,博採眾長,在理論和實踐操作方面全面發展。二是要以博大胸懷傳藝。我在四十年的烹飪生涯中,共培養學生近千人,其中100多人成為高級廚師,並成為酒店、賓館、飯店、餐館的中堅技術骨幹。我認為廚師成名後,更要為烹飪事業發揚光大作貢獻,不能將自身的烹飪技藝視為個人財富,要毫不保留的將自我所知,傳授給熱愛本職、熱愛行業的學藝者,對一些勤奮好學,有發展前途的學生、徒弟要多培養。

三、 要成為一名優秀廚師必須對企業和顧客充滿感情。

我所談到的感情,就是在工作中要把促進發展和滿足顧客需求擺在首位,將個人利益置後,帶著感情工作。我認為這是一名合格的廚師不可缺少的素養。何謂充滿感情的工作:一是對企業要有「家」的感情。多年來,我一直紮根企業求發展。我認為,一個好的餐飲企業離不開技藝超群的廚師隊伍,同樣一個大師也需要好的企業做後盾,把企業做大做強是廣大廚師義不容辭的責任。當前,一些廚師受社會不良思想的影響,單純以經濟利益為追求目標,這於已於企業都不利。作為廚師,如能將企業當成家,多投入,多付出,為企業的發展多出點子、多想辦法,定能在平凡的崗位上做出不平凡的事業。二是對顧客要有「親戚朋友」般的情誼。我們常說顧客是上帝。要滿足顧客需求,需要我們細心觀察,認真研究顧客心理,掌握顧客的消費趨向,把顧客擺在第一位。工作中,對顧客充滿「親戚朋友」般的情誼,能把來企業就餐的長輩顧客,像對待自己的父母、老師、領導一樣相待;對晚輩顧客,像對待自己的子女一樣相待,我想廚師製作菜品就一定能發揮出最高水平。

四、 要成為一名優秀廚師必須要有良好的心情。

產品質量是企業的生命線。廚師作為菜品的直接製作者,在菜品的烹制過程中,如果沒有良好的心情和健康的心態,菜品質量必然會受到影響,從而給顧客留下不好的印象,影響企業的聲譽。工作中廚師如何做到擁有良好的心情?一是要有高度的責任感和強烈的敬業精神。要認識到自身工作在企業中的重要性,要認識到菜品質量對企業經濟效益的影響,以極其負責的態度工作,工作中體現強烈的事業心和務實的敬業精神,保持一種健康的心態。二是不要把工作之外的不愉快心情帶到工作中來,人處在社會環境中,心情受外界影響很大,家庭矛盾、朋友誤會、疾病等因素都可能影響人的心情。目前,中式烹調不是標准化操作。試想,一個廚師在工作中,心情受到工作之外不愉快因素的干擾,菜品質量怎能得到保障?因此,廚師要克服這些不良情緒,增強心理承受能力,提高心理素質,保持良好的心境。

「廚德、廚藝、感情、心情」是一個優秀廚師的必備素養。一個優秀廚師一定要用自己的實際行動,表晨里言行一致,才能使自己在烹飪事業上擁有更加輝煌的前程。

閱讀全文

與程序員要是沒有精湛的廚藝相關的資料

熱點內容
拍賣程序員 瀏覽:101
電腦的圖片放在哪個文件夾 瀏覽:274
unsignedintjava 瀏覽:216
編譯器下載地址 瀏覽:42
什麼是面對對象編程 瀏覽:708
b站伺服器什麼時候恢復 瀏覽:721
6p相當於安卓機什麼水準 瀏覽:498
能否給隱藏相冊加密 瀏覽:596
糖心app改什麼名 瀏覽:823
戰地1控伺服器如何部署 瀏覽:394
xp還原系統輸入命令 瀏覽:323
mysql命令行版本 瀏覽:303
如何進入itunes找文件夾 瀏覽:832
CAD中重復命令使用 瀏覽:478
心智pdf 瀏覽:475
網站電台直播間源碼 瀏覽:852
文件夾14c和18c的區別 瀏覽:35
android隱式調用 瀏覽:667
plc的編程指令邊沿繼電器 瀏覽:723
voc文件夾 瀏覽:866