A. 程序員的發展歷程論文,2000字,急,回答好的有積分追加,謝謝!
B. 程序員以後的發展是什麼
程序員職業生涯發展到一定程度都會面臨一個選擇,是走業務+技術方向,還是選擇純鑽研技術。程序員職業生涯發展的問題,這是所有程序員都在關心的問題,未來究竟要怎麼走,30歲之後還能不能再做程序員。
絕大多數程序員最終的職業目標可能都是CTO,做到CEO的人估計會比較少,也有一少部分人自己去創業去當老闆,也有部分人轉行了,當老闆的人畢竟是少數,轉行的人都不在這行做了,自然沒什麼好說的了。一般來說,程序員的發展基本上都會經歷這么幾條路徑。程序員——系統分析員——架構師——技術經理——CTO,程序員——項目組長——項目經理——項目總監——CTO,程序員——產品設計師——產品經理——CTO。
當然這只是一個大致的路徑,不是所有程序員都必需要這么經歷的,有些人可能跳過其中的一些步驟,也可能有些人會把中間的很多職位都做了。而最終做到CTO的程序員,也是非常少的一部分,原因很簡單,這個世界上不許要那麼多的CTO和CXO。
也就是說,許多的程序員最終可能是做技術經理、項目經理或者項目總監之類的,那麼到底我們職業生涯要選擇哪一種呢?我覺得這個問題沒有一個統一的答案,因為每個人的性格不一樣,際遇也不一樣,就像你從小希望當貪官,可是命運卻偏偏讓你做了一個程序員。所以應該根據你的興趣、性格與際遇選擇一條道路,比如說你正好有機會帶一個項目,而你又不是很討厭項目經理這個位置,那麼你就可以選擇向項目經理方向發展。
實際上很多時候,有些公司並沒有明確的技術經理、項目經理、產品經理之分,在許多的公司里,他們經常是由一個人承擔。在外包公司里,通常會有項目經理和系統分析員(也可能是技術經理)。在一些非IT公司里,可能會是部門經理,而做自己產品的公司可能會分得比較詳細一些。我大致說一下這三個職位的區別,讓正在徘徊的程序員有一個大致的了解。
項目經理是項目的直接負責人,這個角色相當於一個中間介面,不管是團隊成員還是需求方(客戶),或者是上級領導,有事都直接找他,所以這個職位著重於管理與溝通。一般來說,項目經理的工作重點在同客戶溝通需求、項目進度的把控、團隊的溝通方面,有些公司也會需要項目經理承擔團隊建設的工作,不過貌似很多國內公司都忽略了團隊建設這個工作了。對於項目經理來說,重點會要求溝通能力、協調能力、危機把控能力、執行力、團隊管理能力,著重於溝通、管理與計劃。當然也有些公司還要求項目經歷要參與招標談判,這就要求項目經理有一定的商務談判能力。
技術經理有時候也可能叫系統分析員,一些小公司可能會整個部門有一個技術經理。技術經理承擔的角色主要是系統分析、架構搭建、系統構建、代碼走查等工作,如果說項目經理是總統,那麼技術經理就是總理。當然不是所有公司都是這樣的,有些公司項目經理是不管技術團隊的,只做需求、進度和同客戶溝通,那麼這個時候的項目經理就好像工廠里的跟單人員了,這種情況在外包公司比較多。對於技術經理來說,著重於技術方面,你需要知道某種功能用哪些技術合適,需要知道某項功能需要多長的開發時間等。同時,技術經理也應該承擔提高團隊整體技術水平的工作。
產品經理這個職位一般在有自己產品(不管是軟體還是網站產品)的公司比較常見,產品經理主要會負責產品的設計、產品的改良等工作。需要注意的是,產品設計與設計師是兩個不一樣的工作,產品設計主要會從用戶體驗、業務需要等層面去設計產品,而設計師更多是從用戶的視覺上去做。產品經理應該是最懂業務的人,比如說你在設計一個微博的產品,就要求你對微博這個東西非常熟悉,從用戶習慣、用戶體驗、公司的發展戰略上去設計這個產品,還要對比同類產品會有什麼優勢等等。
不管是項目經理還是技術經理與產品經理,都要求要熟悉業務,業務是需求的來源,沒有不談業務的技術,所以不管你從哪個方向發展,都要求對業務熟悉。產品經理要求對業務最熟悉,項目經理次之,技術經理排最後。對於程序員來說,剛開始工作的前幾年可以埋頭扎到技術裡面,一般這個時間在2-3年的時間,然後就應該多關注業務了。這個業務不一定是指某個具體的業務,因為具體的業務的范圍太少,而且也需要機遇。
C. 誰知道csdn的發展歷史啊
"Hello everybody out there using minix——I'm doing a (free) operating system"在1991年的八月,網路上出現了一篇以此為開篇話語的帖子——這是一個芬蘭的名為Linus Torvalds的大學生為自己開始寫作一個類似minix,可運行在386上的操作系統尋找志同道合的合作夥伴。 1991年10月5日,Linus Torvalds在新聞組comp.os.minix發布了大約有一萬行代碼的linux v0.01版本。 到了1992年,大約有1000人在使用Linux,值得一提的是,他們基本上都屬於真正意義上的hacker。 1993年,大約有100餘名程序員參與了Linux內核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼有大約有十萬行,用戶大約有10萬左右。 1994年3月,Linux1.0發布,代碼量17萬行,當時是按照完全自由免費的協議發布,隨後正式採用GPL協議。至此, Linux的代碼開發進入良性循環。很多系統管理員開始在自己的操作系統環境中嘗試linux,並將修改的代碼提交給核心小組。由於擁有了豐富的操作系統平台,因而 Linux的代碼中也充實了對不同硬體系統的支持,大大的提高了跨平台移植性。 1995年,此時的Linux 可在Intel、Digital 以及Sun SPARC處理器上運行了,用戶量也超過了50萬,相關介紹Linux的Linux Journal雜志也發行了超過10萬冊之多。 1996年6月,Linux 2.0內核發布,此內核有大約40萬行代碼,並可以支持多個處理器。此時的Linux 已經進入了實用階段,全球大約有350萬人使用。 1997年夏,大片《泰坦尼克號》在製作特效中使用的160台Alpha圖形工作站中,有105台採用了Linux操作系統。 1998年是Linux迅猛發展的一年。1月,小紅帽高級研發實驗室成立,同年RedHat 5.0獲得了InfoWorld的操作系統獎項。4月Mozilla 代碼發布,成為linux圖形界面上的王牌瀏覽器。Redhat 宣布商業支持計劃,網路了多名優秀技術人員開始商業運作。王牌搜索引擎"Google"現身,採用的也是Linux伺服器。值得一提的是, Oracle 和Informix 兩家資料庫廠商明確表示不支持Linux,這個決定給予了Mysql資料庫充分的發展機會。同年10月,Intel和Netscape宣布小額投資紅帽軟體,這被業界視作Linux獲得商業認同的信號。同月,微軟在法國發布了反Linux公開信,這表明微軟公司開始將Linux視作了一個對手來對待。十二月,IBM發布了適用於Linux的文件系統AFS 3.5以及Jikes java 編輯器和Secure Mailer及DB2測試版,IBM的此番行為,可以看作是與Linux羞答答地第一次親密接觸。迫於Windows和Linux的壓力,Sun逐漸開放了Java協議,並且在UltraSparc上支持Linux操作系統。1998年可說是Linux與商業接觸的一年。 1999年,IBM宣布與Redhat公司建立夥伴關系,以確保Redhat在IBM機器上正確運行。三月,第一屆 LinuxWorld 大會的召開,象徵Linux時代的來臨。IBM、Compaq和Novell宣布投資Redhat公司,以前一直對Linux持否定態度的Oracle公司也宣布投資。五月,SGI公司宣布向Linux移植其先進的XFS文件系統。對於伺服器來說,高效可靠的文件系統是不可或缺的,SGI的慷慨移植再一次幫助了Linux確立在伺服器市場的專業性。7月IBM啟動對Linux的支持服務和發布了Linux DB2,從此結束了Linux得不到支持服務的歷史,這可以視作Linux真正成為伺服器操作系統一員的重要里程碑。 2000年初始,Sun公司在Linux的壓力下宣布Solaris8降低售價。事實上Linux對Sun造成的沖擊遠比對 Windows來得更大。 2月Red Hat發布了嵌入式Linux的開發環境,Linux在嵌入式行業的潛力逐漸被發掘出來。在4月,拓林思公司宣布了推出中國首家Linux工程師認證考試,從此使Linux操作系統管理員的水準可以得到權威機構的資格認證,此舉大大增加了國內Linux愛好者學習的熱情。伴隨著國際上的Linux熱潮,國內的聯想和聯邦推出了"幸福Linux家用版",同年7月中科院與新華科技合作發展紅旗Linux, 此舉讓更多的國內個人用戶認識到了存在著Linux這個操作系統。11月,Intel 與 Xteam合作,推出基於Linux的網路專用伺服器,此舉結束了在Linux單向順應硬體商硬體開發驅動的歷史。 2001月新年依使就爆出新聞,Oracle宣布在OTN上的所有會員都可免費索取Oracle 9i的Linux版本,從幾年前的"絕不涉足Linux系統"到如今的主動獻媚,足以體現Linux的發展迅猛。IBM則決定投入10億美元擴大 Linux系統的運用,此舉猶如一針強心劑,令華爾街的投資者們聞風而動。到了5月這個初夏的時節,微軟公開反對"GPL"引起了一場大規模的論戰。8月紅色代碼爆發,引得許多站點紛紛從windows操作系統轉向linux操作系統,雖然是一次被動的轉變,不過也算是一次應用普及吧。12月Red Hat 為IBM s/390大型計算機提供了Linux解決方案,從此結束了AIX孤單獨行無人伴的歷史。 2002年是Linux企業化的一年。2月,微軟公司迫於各洲政府的壓力,宣布擴大公開代碼行動,這可是Linux開源帶來的深刻影響的結果。3月,內核開發者宣布新的Linux系統支持64位的計算機。 2003年1月,NEC宣布將在其手機中使用Linux操作系統,代表著Linux成功進軍手機領域。5月之中SCO表示就 Linux使用的涉嫌未授權代碼等問題對IBM進行起訴,此時人們才留意到,原本由SCO壟斷的銀行/金融領域,份額已經被Linux搶佔了不少,也難怪 SCO如此氣急敗壞了。9 月中科紅旗發布Red Flag Server4版本,性能改進良多。11月IBM注資Novell以2.1億收購SuSE,同期Redhat計劃停止免費的Linux,頓時業內罵聲四起。Linux在商業化的路上漸行漸遠。 2004年的第1月,本著"天下事分久必合,合久必分"之天理,SuSE嫁到了Novell,SCO繼續頂著罵名四處強行"化緣 ", Asianux, MandrakeSoft也在五年中首次宣布季度贏利。3月SGI宣布成功實現了Linux操作系統支持256個Itanium 2處理器。4月里美國斯坦福大學Linux大型機系統被黑客攻陷,再次證明了沒有絕對安全的OS。六月的統計報告顯示在世界500強超級計算機系統中,使用Linux操作系統的已經佔到了280席,搶佔了原本屬於各種Unix的份額。9月HP開始網羅Linux內核代碼人員,以影響新版本的內核朝對HP有利的方式發展,而IBM則准備推出OpenPower伺服器,僅運行Linux系統。 "誰會牽你的手,走過風風雨雨"這句歌詞曾經代表著千萬Linuxer的心,如今,這只可愛的小企鵝終於能獨擋一面,在IBM、HP、Novell、Oracle等諸多廠商的支持下,迎著風雪傲然前行。 2011-08-25 15:24:34
D. 關於程序員
那編程能力實在是太強了,而且開發經驗豐富。你要想成為程序員就一定要做好吃苦的准備,還有一點要說明,做這個行業不是早結婚,就是晚結婚,這是不爭的事實。
學好某一門語言或學好多門語言只是成為一名合格的程序員必備的條件之一,重要的是軟體工程所要走的一個流程,看一下CMMi方面的資料會對你有一些好處.
(Capability Maturity Model Integration,能力成熟度模式整合)
CMMI( Capability Maturity Model Integration)的本質是軟體管理工程的一個部分。軟體過程改善是當前軟體管理工程的核心問題, 50多年來計算的發展使人們認識到要高效率、高質量和低成本地開發軟體,必須改善軟體生產過程。基於模型的過程改進是指用採用能力模型來指導組織的過程改進,使之過程能力穩定的進行改善,該組織也能變得更加成熟。
然而,軟體組織形成一套完整而成熟的軟體過程不是一蹴而就的事情,需要經歷一系列的成熟度。軟體組織首先要進行差異分析,評定自己比較接近哪一個成熟度,然後再根據自身的情況來決定要採取哪些改進活動,來更有效地改進自己的軟體過程。這就對軟體過程的評定提出了一個客觀的標准。美國卡內基梅隆大學軟體工程學院於1987年研究成功的SW-CMM(Capability Maturity Model for Software)就是這樣的一個理論模型,其目的在於幫助軟體組織改善軟體生產流程,以探索一個保證軟體產品質量、縮短開發周期、提高工作效率的軟體工程模式與標准規范。
CMMI是一個可以改進系統工程和軟體工程的整合模式。1997年10月SEI停止對CMM的研究,改而致力於CMMI,以解決使用多個過程改進模型的問題。SEI同時宣布CMMI將取代CMM,與2000年8月11日頒布了CMMI-SE/SW 1.0版本,2001年12月頒布了1.1版本,這次發布標志著CMMI正式啟用,並准備今年內完成CMM到CMMI的過渡。說到CMMI就不能不提CMM。
CMM
CMM框架用5個不斷進化的層次來評定軟體生產的歷史與現狀:初始級描述了不成熟,或者說是未定義的過程的組織,是混沌的過程以不可預測結果為特徵;可重復級是經過訓練的軟體過程;已定義級是標准一致的軟體過程,以組織內改進項目執行為特徵;已管理級是可預測的軟體過程,以改進組織性能為特徵;優化級是能持續改善的軟體過程,以可快速進行重新配置的組織性能,和定量的、持續的過程改進為特徵。任何單位所實施的軟體過程,都可能在某一方面比較成熟,在另一方面不夠成熟,但總體上必然屬於這5個層次中的某一個層次。
CMM包括兩部分"軟體能力成熟度模型"和"能力成熟度模型的關鍵過程域"。"軟體能力成熟度模型"主要是描述此模型的結構,並且給出該模型的基本構件的定義。"能力成熟度模型的關鍵過程域"詳細描述了每個關鍵過程方面涉及的過程域。
可重復級關鍵過程域:需求管理,軟體項目計劃,軟體項目跟蹤和監控,軟體子合同管理,軟體質量保證,軟體配置管理。
已定義級關鍵過程域:組織級過程焦點,組織級過程定義,培訓大綱,集成軟體管理,軟體產品工程,組間協調,同行評審。
已管理級關鍵過程域:定量過程管理,軟體質量管理。
優化級關鍵過程域:缺陷預防,技術更新管理,過程更改管理。
多數組織的基本目標是達到成熟度3級。評估組織當前的成熟度級別的手段之一是軟體能力評估(SCE)。SCE通過評估軟體過程(一般以方針陳述的形式)和項目實踐來確定該組織是否言行一致。組織的過程體現了如實記錄所做的工作,項目實施(對該過程的特定剪裁和解釋)應該證明說到做到。
現在全球許多不同的組織以CMM為協助企業作全面的過程改進活動,除了肯定其軟體成熟度外,更像征具有跨足國際市場的能力。現在通過CMM5級認證的組織達到了一百多家。
CMMI
CMM的成功促使其他學科也相繼開發類似的過程改進模型,例如系統工程、需求工程、人力資源、集成產品開發、軟體采購等等,從CMM衍生出了一些改善模型,比如:SW-CMM,SE-CMM,IPD-CMM等。不過,在同一個組織中多個過程改進模型的存在可能會引起沖突和混淆。CMMI就是為了解決怎麼保持這些模式之間的協調。
由業界、美國政府和卡內基·梅隆大學軟體工程研究所率先倡導的能力成熟度模型集成(CMMI)項目致力於幫助企業緩解這種困境。CMMI為改進一個組織的各種過程提供了一個單一的集成化框架,新的集成模型框架消除了各個模型的不一致性,減少了模型間的重復,增加透明度和理解,建立了一個自動的、可擴展的框架。因而能夠從總體上改進組織的質量和效率。CMMI主要關注點就是成本效益、明確重點、過程集中和靈活性四個方面。
與原有的能力成熟度模型類似,CMMI也包括了在不同領域建立有效過程的必要元素,反映了業界普遍認可的"最佳"實踐;專業領域覆蓋軟體工程、系統工程、集成產品開發和系統采購。在此前提下,CMMI為企業的過程構建和改進提供了指導和框架作用;同時為企業評審自己的過程提供了可參照的行業基準。
CMMI的源模型:軟體能力成熟度模型2.0版,C稿;電子行業協會臨時標准(EIA/IS)731;集成產品開發能力成熟度模型(IPD- CMM)。
CMMI的原則:
1. 強調高層管理者的支持。過程改進往往也是由高層管理者認識和提出的,大力度的、一致的支持是過程改進的關鍵。
2. 仔細確定改進目標,首先應該對給定時間內的所能完成的改進目標進行正確的估計和定義並制定計劃。選擇能夠達到的目標和能夠看到對組織的效益。
3. 選擇最佳實踐,應該基於組織現有的軟體活動和過程財富,參考其他標准模型,取其精華去其糟粕,得到新的實踐活動模型。
4. 過程改進要與組織的商務目標一致,與發展戰略緊密結合。
CMMI目標:
1. 為提高組織過程和管理產品開發、發布和維護能力的提供保障。
2. 幫助組織客觀評價自身能力成熟度和過程域能力,為過程改進建立優先順序以及執行過程改進。
CMMI的方法:
1 決定哪個CMMI模型等級最適合組織過程改進需要。
2 選擇模型的表示法是連續式還是階段式。
3 決定組織需要用到的模型中的知識領域。
4 類似CMM提出的過程改進6步,集成化過程改進分成:開始集成過程改進,建造集成改善平台,集成傳統過程,啟動新過程,進行改 進評估。
CMMI內容
CMMI內容分為"要求"、"期望"和"提供信息"三個級別,來衡量模型包括的質量重要性和作用。最重要的是"要求"級別,是模型和過程改進的基礎。第二級別"期望"在過程改進中起到主要作用,但是某些情況不是必須的可能不會出現在成功的組織模型中。"提供的信息"構成了模型的主要部分,為過程改進提供了有用的指導,在許多情況下他們對需要和期望的構件做了進一步說明。
"要求"的模型構件是目標,代表了過程改進想要達到的最終狀態,它的實現表示了項目和過程式控制制已經達到了某種水平。當一個目標對應一個關鍵過程域,就稱為"特定目標";對應整個關鍵過程域就稱為"公用目標"。整個CMMI模型包括了54個特定目標,每個關鍵過程域都對應了一到四個特定目標。每個目標的描述都是非常簡捷的,為了充分理解要求的目標就是擴展"期望"的構件。
"期望"的構件是方法,代表了達到目標的實踐手段和補充認識。每個方法都能映射到一個目標上,當一個方法對一個目標是唯一就是"特定方法";而能適用於所有目標時就是"公用方法"。CMMI模型包括了186個特定方法,每個目標有兩到七個方法對應。
CMMI包括了10種"提供的信息":目的,概括和總結了關鍵過程域的特定目標;介紹說明,介紹關鍵過程域的范圍、性質和實際方法和影響等特徵;引用,關鍵過程域之間的指向是通過引用;名字,表示了關鍵過程域的構件;方法和目標關系,關鍵過程域中方法映射到目標的關系表;注釋,注釋關鍵過程域的其他模型構件的信息來源;典型工作產品集,定義關鍵過程域中執行方法時候產生的工作產品;子方法,通過方法活動的分解和詳細描述;學科擴充,CMMI對應學科是獨立的,這里提供了對應特定學科的擴展;公用方法的詳細描述,關鍵過程域中公用方法應用實踐的詳細描述。
CMMI提供了階段式和連續式兩種表示方法,但是這兩種表示法在邏輯上是等價的。我們熟悉的SW-CMM軟體能力成熟模型就是階段式的模型,SE-CMM系統工程模型是連續式模型,而IPD-CMM集成產品開發模型結合了階段式和連續式兩者的特點。
階段式方法將模型表示為一系列"成熟度等級"階段,每個階段都有一組KPA指出一個組織應集中於何處以改善其組織過程,每個KPA用滿足其目標的方法來描述,過程改進通過在一個特定的成熟度等級中滿足所有KPA的目標而實現的。
連續式模型沒有像階段式那樣的分散階段,模型的KPA中的方法是當KPA的外部形式,並可應用於所有的KAP中,通過實現公用方法來改進過程。它不專門指出目標,而是強調方法。組織可以根據自身情況適當裁剪連續模型並以確定的KPA為改進目標。
兩種表示法的差異反應了為每個能力和成熟度等級描述過程而使用的方法,他們雖然描述的機制可能不同,但是兩種表示方法通過採用公用的目標和方法作為需要的和期望的模型元素,而達到了相同的改善目的。
======================================================================
CMMI 模型的前身是 SW-CMM 和 SE-CMM,前者就是我們指的CMM。CMMI與SW-CMM的主要區別就是覆蓋了許多領域;到目前為止包括四個下面領域:
1.軟體工程(SW-CMM)
軟體工程的對象是軟體系統的開發活動,要求實現軟體開發、運行、維護活動系統化、制度化、量化。
2.系統工程(SE-CMM)
系統工程的對象是全套系統的開發活動,可能包括也可能不包括軟體。系統工程的核心是將客戶的需求、期望和約束條件轉化為產品解決方案,並對解決方案的實現提供全程的支持。
3.集成的產品和過程開發(IPPD-CMM)
集成的產品和過程開發是指在產品生命周期中,通過所有相關人員的通力合作,採用系統化的進程來更好地滿足客戶的需求、期望和要求。如果項目或企業選擇IPPD進程,則需要選用模型中所有與IPPD相關的實踐。
4.采購(SS-CMM)
采購的內容適用於那些供應商的行為對項目的成功與否起到關鍵作用的項目。主要內容包括:識別並評價產品的潛在來源、確定需要采購的產品的目標供應商、監控並分析供應商的實施過程、評價供應商提供的工作產品以及對供應協議和供應關系進行適當的調整。
在以上模塊中,企業可以選擇軟體工程,或系統工程,也可以都選擇。集成的產品和過程開發和采購主要是配合軟體工程和系統工程的內容使用。例如,純軟體企業可以選擇CMMI中的軟體工程的內容;設備製造企業可以選擇系統工程和采購;集成的企業可以選擇軟體工程、系統工程和集成的產品和過程開發。CMMI中的大部分內容是適用各不同領域的,但是實施中會有顯著的差別,因此模型中提供了"不同領域應用詳解"。
CMM的基於活動的度量方法和瀑布過程的有次序的、基於活動的管理規范有非常密切的聯系,更適合瀑布型的開發過程。而CMMI相對CMM更一步支持迭代開發過程和經濟動機推動組織採用基於結果的方法:開發業務案例、構想和原型方案;細化後納入基線結構、可用發布,最後定為現場版本的發布。雖然CMMI保留了基於活動的方法,它的確集成了軟體產業內很多現代的最好的實踐,因此它很大程度上淡化了和瀑布思想的聯系。
在 CMMI 模型中在保留了CMM階段式模式的基礎上,出現了連續式模型,這樣可以幫助一個組織以及這個組織的客戶更加客觀和全面的了解它的過程成熟度。同時,連續模型的採用可以給一個組織在進行過程改進的時候帶來更大的自主性,不用再像CMM 中 一樣,受到等級的嚴格限制。這種改進的好處是靈活性和客觀性強,弱點在於由於缺乏指導,一個組織可能缺乏對關鍵過程域之間依賴關系的正確理解而片面的實施過程,造成一些過程成為空中樓閣,缺少其他過程的支撐。兩種表現方式(連續的和階段的)從他們所涵蓋的過程區域上來說並沒有不同,不同的是過程區域的組織方式以及對成熟度(能力)級別的判斷方式。
CMMI 模型中比 CMM 進一步強化了對需求的重視。在 CMM 中,關於需求只有需求管理這一個關鍵過程域,也就是說,強調對有質量的需求進行管理,而如何獲取需求則沒有提出明確的要求。在CMMI的階段模型中,3 級有一個獨立的關鍵過程域叫做需求開發,提出了對如何獲取優秀的需求的要求和方法。CMMI 模型對工程活動進行了一定的強化。在CMM中,只有3級中的軟體產品工程和同行評審兩個關鍵過程域是與工程過程密切相關的,而在CMMI中,則將需求開發,驗證,確認,技術解決方案,產品集成這些工程過程活動都作為單獨的關鍵過程域進行了要求,從而在實踐上提出了對工程的更高要求和更具體的指導。CMMI中還強調了風險管理。不像在CMM 中把風險的管理分散在項目計劃和項目跟蹤與監控中進行要求,CMMI3級里單獨提出了一個獨立的關鍵過程域叫做風險管理。
E. 簡述計算機編程語言發展歷史
fortran、algol、cobol、lisp(和其各種scheme方言)、ada、pascal、basic、smalltalk等等,還有許多,找本關於計算科學的歷史書看看就知道了,或到wikipedia去查相關目錄。fortran主要用於科學計算,現有的程序庫是大多是用其編寫的;C的發明借鑒了algol的內容;過去商務計算大都用cobol,因為cobol和英語很接近;lisp多用於人工智慧領域,當然用來描述演算法也是很好的,其它的就不多說了,自己查查吧。
F. 1024程序員節的由來
2002年,俄羅斯程序員Valentin Balt收集簽名,向俄羅斯聯邦政府請願將9月13日設定為程序員節。
2009年9月11日,俄羅斯總統梅德韋傑夫在節日安排方案上簽了名,「程序員節」從此成為了俄羅斯的一個正式節日。除了俄羅斯之外,其他國家的一些程序員社區也會慶祝這個節日。因為它是每年的第256天(閏年就是9月12日)。256這個數字對程序員來說有著特別的意義,1個位元組(等於8位元)最多能表示256個數值,而且在整年中,256是2的最大冪中小於365的值。
在中國,有人提議把10月24日定為中國的程序員節,因為1024不僅同樣是程序員的一個常用數字,而且10月24日這個日期非常直觀,也不會在平年和閏年有所變化。
(6)程序員的歷史擴展閱讀:
一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程序員、中級程序員、高級程序員、系統架構師、運維測試工程師等。
在1834年,人稱「數字女王」的阿達·洛芙萊斯(Ada Lovelace)的朋友英國數學家、發明家兼機械工程師查爾斯·巴貝其(Charles Babbage)發明了一台分析機;阿達則致力於為該分析機編寫演算法,並於1842年,編寫了歷史上首款電腦程序。
1843 年公布了世界上第一套演算法。巴貝其分析機後來被認為是最早期的計算機雛形,而阿達的演算法則被認為是最早的計算機程序和軟體。運行程序的硬體進制是以1024為基礎的。例:1G=1024M ;1M=1024KB。
G. 程序員主要是做什麼的
程序員(英文Programmer)是從事程序開發、程序維護的基層工作人員。
程序員日常工作:
1、確認通過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。
2、安排項目要求在編程序列分析要求;准備工作流程圖和使用計算機知識的能力,題材,編程語言和邏輯圖。
3、編碼工作流程的信息轉換成計算機語言的項目要求。
4、通過輸入編碼信息的計算機程序。
5、確認程序操作進行測試,修改程序序列和/或代碼。
6、准備寫操作指令供用戶參考。
7、保持歷史記錄,通過記錄方案的制定和修訂。
8、維護客戶的信息和保護保密的業務。
崗位職責
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
H. 簡述計算機程序設計語言的發展歷程。
一、前期
二十世紀四十年代當計算機剛誕生時,計算機需要程序員手動控制。,德國工程師楚澤提出要用一種程序語言控制計算機。
60年代末期為了應對軟體危機,克服程序設計模型中都無法克服錯誤隨著代碼的擴大而擴大,這新的思考程序設計方式和程序設計模型——面向對象程序設計出現了。
也就誕生了一批支持此技術的程序設計語言,比如eiffel,c++,java,這些語言都以新的觀點去看待問題,即問題就是由各種不同屬性的對象以及對象之間的消息傳遞構成。
面向對象語言由此必須支持新的程序設計技術,例如:數據隱藏,數據抽象,用戶定義類型,繼承,多態等等。
二、現狀
如今通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言和機器語言實質是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,容易識別和記憶。源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節。
三、趨勢
面向對象程序設計以及數據抽象在現代程序設計思想中佔有很重要的地位,未來語言的發展將不在是一種單純的語言標准,將會以一種完全面向對象,更易表達現實世界,更易為人編寫。
簡單性:提供最基本的方法來完成指定的任務,只需理解一些基本的概念,就可以用它編寫出適合於各種情況的應用程序。
面向對象:提供簡單的類機制以及動態的介面模型。對象中封裝狀態變數以及相應的方法,實現了模塊化和信息隱藏;提供了一類對象的原型,並且通過繼承機制,子類可以使用父類所提供的方法,實現了代碼的復用。
安全性:用於網路、分布環境下有安全機制保證。
平台無關性:與平台無關的特性使程序可以方便地被移植到網路上的不同機器、不同平台。
(8)程序員的歷史擴展閱讀:
計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
1、解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
2、編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。
3、低級類:機器語言、匯編語言和符號語言。
匯編語言:源程序必須經過匯編,生成目標文件,然後執行。
機器語言:機器語言是指一台計算機全部的指令集合
參考資料:網路-計算機語言
I. 歷史上有哪些因為程序員寫出的bug而造成的事故
1. 火箭爆炸,原因:類型強轉(64b浮點->16b整數)導致異常
2. 火箭爆炸,原因:Fortran代碼筆誤(少一個減號)
3. 火星車故障,原因:vxWorks優先順序逆轉 -
4. 火星探測器墜毀,原因:用錯計量單位(磅與牛)
程序員導致的事故挺多,這些是嚴重點的。還有游戲更新把用戶電腦上文件刪光的...
J. 上帝原來是個程序員!
《聖經》中每4節經文就有一句帶預言性質,事實就是一本預言書。人們較認識的2,500多個預言,據近年來專家研究發現已有2.000多個應驗了,而預言的准確性更令歷史學家們佩服得五體投地。
你看過末後開啟的「上帝封印之書」嗎?《聖經》「但以理書」記著:「但以理啊,你要隱藏這話,封閉這書,直到末時。」其開頭處便密藏「電腦」二字。現今計算機面世了,美國和以色列等幾位數學家和其它專家用不同的程序,驚奇地發現從拿破倫到羅斯福到希特勒、從荷馬到畢加索、從萊特兄弟到愛迪生,從世界大戰到中國的唐山大地震、拉賓遇刺……所有的人物和事件都在密碼的排列中。作者邁克•卓思寧花了5年時間的調查、研究,驚人地發現這本2000多年前成書的基督教《聖經》,竟然是用計算機程序編排的,數學界無法反駁的實驗,轟動了世界。於1997年11月,中國敦煌文藝出版社將《聖經密碼》出版。
他們把整本希伯來文《聖經》原文採用計算機跳躍碼方式,在字元串中尋找名字、單詞和片語,最終找到了一系列相關信息,完成了《創世記等距離字母順序解碼》()。經過耶魯大學、哈佛大學、希伯來大學多名數學家驗證,以及美國StatisticalScience雜志(的機關期刊之一)的3次復核;經過數學分析,證實《聖經密碼》為巧合的可能性只有25億分之一;後來研究人員以更高難度測試,發現為巧合的可能性低至50,000億億分之一。於1994年8月,正式發表在StatisticalScience雜志上,並且成為世界極暢銷的書。
啊,偉大的《聖經》!凡有心去研究,世界上、宇宙中一件新鮮事物一出現,都能在你裡面找出來。一個故舊現像一隱匿,都能在你裡面尋去處,世上的一切有價值的神秘記錄都放射著你的影子。
凡宇宙、世界有的一切信息,《聖經》上都有。中國歷史悠久、優良傳統的「天道」實體,世界上最古老的人類道德源頭就是這《聖經》;搖控人類思想意識的總按扭、世上和平意識的動力源,就是這《聖經》。也只有泄漏在人們眼皮底下的天書──《聖經》才能帶人類走進真文明、真天地、作成宇宙的真生命。