久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

多數(shù)學(xué)生認(rèn)為“軟件靠吃年輕飯”之我見(jiàn)

 聯(lián)合參謀學(xué)院 2013-04-26

前幾天做過(guò)一個(gè)小調(diào)查,問(wèn)覺(jué)得“軟件靠吃年輕飯”的有多少,,結(jié)果近80%的人舉起了手,。多數(shù)人覺(jué)得軟件靠吃年輕飯,是因?yàn)橛X(jué)得做軟件就是埋頭寫代碼,、通宵寫代碼,、玩命寫代碼,靠的是年輕的拼勁和體力,。

 

  1. 吃過(guò)豬肉不代表見(jiàn)過(guò)豬跑,,軟件不只是寫代碼而已

 

先讓大家看個(gè)行業(yè)數(shù)據(jù):在軟件行業(yè)里,產(chǎn)業(yè)化團(tuán)隊(duì)的生產(chǎn)率只有1000代碼行/年,,當(dāng)然這是以人為單位,。許多在校大學(xué)生光作業(yè)和考試寫過(guò)的代碼,早就超過(guò)1000代碼行/年的速率,,就我前陣子提過(guò)的那個(gè)一小時(shí)完成的小項(xiàng)目,,也有近200的代碼行,按這個(gè)數(shù)量級(jí)看來(lái),,1000代碼行不過(guò)是一天的工作量,。

 

大家不用吃驚或懷疑,上面的數(shù)據(jù)是真實(shí)的情況(見(jiàn)《人月神話》),。為什么會(huì)有這么大的反差,?因?yàn)槲覀冋f(shuō)的是程序,而人家說(shuō)的是軟件,,這得看看我們平日的工作和軟件行業(yè)的真實(shí)產(chǎn)出有哪些差距,。

 

我們學(xué)生平日所做的,,叫程序,它本身是完整的,,可以由作者在所開(kāi)發(fā)的系統(tǒng)平臺(tái)上運(yùn)行,。但那樣的東西還未能達(dá)到實(shí)用化、商業(yè)化,、產(chǎn)業(yè)化的高度,,還有兩種途徑可以使程序轉(zhuǎn)變成更有用的、但成本更高的產(chǎn)物,。

 

一種是將程序變成編程產(chǎn)品,,這是可以被任何人運(yùn)行、測(cè)試,、修復(fù)和擴(kuò)展的程序,。它可以在多種操作系統(tǒng)平臺(tái)上運(yùn)行,供多套數(shù)據(jù)使用,。這就要求程序必須按照普遍認(rèn)可的風(fēng)格來(lái)編寫,,特別是輸入的范圍和形式應(yīng)廣泛適用于各種合理的基本算法;接著還得對(duì)程序進(jìn)行徹底的測(cè)試,,確保它的健壯性和可靠性,,這意味著必須準(zhǔn)備、運(yùn)行和記錄詳盡的測(cè)試用例庫(kù)(絕大多數(shù)學(xué)生編程時(shí)都未考慮到測(cè)試的因素),,用來(lái)檢測(cè)輸入的邊值和范圍,;最后還要完備的文檔,以便每個(gè)人可以使用,、修復(fù)和擴(kuò)展(見(jiàn)過(guò)不少學(xué)生寫程序連注釋都未能做好,,這里面也包括我)。

 

另一種是將程序變成編程系統(tǒng)中的一個(gè)構(gòu)件單元,。要求它是在功能上能相互協(xié)作,、具有規(guī)范的格式、可以進(jìn)行交互的程序集合,,并可以用來(lái)組裝和搭建整個(gè)系統(tǒng),。這就要求程序符合一定的要求編制,使輸入和輸出在語(yǔ)法語(yǔ)義上與精確定義的接口一致,,同時(shí)程序還應(yīng)符合原先設(shè)定的資源限制——內(nèi)存空間,、輸入輸出設(shè)備、計(jì)算機(jī)時(shí)間等,。最后,,還是測(cè)試的問(wèn)題,即程序須和其他構(gòu)件單元一道,,以任何能想象到的組合進(jìn)行測(cè)試,,且測(cè)試用例會(huì)隨著組合不斷增加,范圍愈加廣泛,,而且一些意想不到的交互會(huì)產(chǎn)生許多不易察覺(jué)的BUG,,測(cè)試工作會(huì)是一個(gè)非常耗時(shí)的環(huán)節(jié)。

 

而事實(shí)上,,軟件產(chǎn)業(yè)真正需要的產(chǎn)出,,是以上兩種的結(jié)合體,即編程系統(tǒng)產(chǎn)品,,經(jīng)驗(yàn)數(shù)據(jù)表明,,這樣結(jié)果的成本是起初程序的9倍,然而只有它才是真正有用的產(chǎn)品,,也是大多數(shù)系統(tǒng)開(kāi)發(fā),、項(xiàng)目研發(fā)的目標(biāo)。

 

前一篇日志里寫說(shuō)中國(guó)當(dāng)代大學(xué)生普遍不符合社會(huì)的需求,,就軟件業(yè)來(lái)看,,學(xué)校里做的,只是最低層次——即程序的實(shí)現(xiàn),,甚至連程序?qū)崿F(xiàn)的要求都遠(yuǎn)未及社會(huì)企業(yè)的實(shí)際要求,。因?yàn)樵诖蠹已劾铮苌倌芤?jiàn)到哪一本教科書,、哪一個(gè)教師或是哪一場(chǎng)考試會(huì)做出以下這些要求:

 

  1. 單一功能子函數(shù)代碼不得超過(guò)50行,、形參個(gè)數(shù)不得超過(guò)7個(gè)、程序嵌套深度不得超過(guò)7層,;
  2. 圈復(fù)雜度必須在15以內(nèi),,對(duì)程序的修改或擴(kuò)展不得增加其原有圈復(fù)雜度;
  3. 代碼未寫,,文檔先行,,注釋必須按照固定統(tǒng)一范式撰寫;
  4. 各類編程風(fēng)格規(guī)范:關(guān)系運(yùn)算必須常量在左,、變量在右,,不許使用復(fù)雜的運(yùn)算表達(dá)式,必要時(shí)添加括號(hào)而不依賴于優(yōu)先級(jí),,魔鬼數(shù)字需用宏定義替代等等,;
  5. 局部變量必須初定義、避免不必要的內(nèi)存操作,、內(nèi)存操作必須考慮異常處理,;

……

 

    可以列出的要求條目還有好多,而這些,,還僅是新員工入職前要記住和注意的內(nèi)容罷了,,在工作過(guò)程中還有功能重量評(píng)估,、測(cè)試用例編寫(不僅限于測(cè)試人員,研發(fā)人員也需做自己的測(cè)試用例),、循環(huán)迭代敏捷開(kāi)發(fā)等等,,各種學(xué)校里接觸不到的要求和環(huán)節(jié),這在公司里僅是家常便飯,。

 

  1. 只有在中國(guó),,才能聽(tīng)到“軟件靠吃年輕飯”的論斷,而且說(shuō)得最多的不是行業(yè)的專家,,而是不明真相的學(xué)生和外行人

 

上面從軟件行業(yè)產(chǎn)出的角度,,表明了編代碼寫程序只是軟件行業(yè)里最底層最基礎(chǔ)的工作。從性質(zhì)來(lái)看,,軟件其實(shí)就是利用計(jì)算機(jī)模擬人的計(jì)算與邏輯能力,,從而以各種形式快速得到和展示思維的結(jié)果。所有軟件活動(dòng)都包括一根本任務(wù)——打造構(gòu)成抽象軟件實(shí)體的復(fù)雜概念結(jié)構(gòu),,和一次要任務(wù)——使用編程語(yǔ)言表達(dá)這些抽象實(shí)體,,在空間和時(shí)間限制內(nèi)將它們映射成機(jī)器語(yǔ)言。

 

前一篇日志也提過(guò),,完整的軟件設(shè)計(jì)是要經(jīng)歷需求分析,、系統(tǒng)設(shè)計(jì)、編碼實(shí)現(xiàn)三個(gè)步驟,,對(duì)應(yīng)的職位分別是系統(tǒng)分析師,、軟件架構(gòu)師和程序員。把軟件設(shè)計(jì)比作打仗,,程序員就像小兵,,實(shí)現(xiàn)的是軟件中的次要任務(wù),而根本任務(wù)的實(shí)現(xiàn),,就掌握在系統(tǒng)分析師,、軟件架構(gòu)師、項(xiàng)目經(jīng)理這些元帥和將軍的手里,。

 

系統(tǒng)分析師,、軟件架構(gòu)師、項(xiàng)目經(jīng)理這些都是程序員的高階形態(tài),,或都?xì)w類于軟件工程師,,正如元帥和將軍都先要經(jīng)過(guò)小兵這一過(guò)程一樣,而這一過(guò)程的轉(zhuǎn)變,,并非朝夕可達(dá)的,。中國(guó)最缺的,就是有10年以上工作經(jīng)驗(yàn)的軟件工程師。金山軟件董事長(zhǎng)雷軍(其投資的還有凡客,、多玩,、UCWEB、小米)曾說(shuō)過(guò):“在印度,,包括在美國(guó),,我見(jiàn)到的項(xiàng)目經(jīng)理都是三四十歲的人,他們‘越老越值錢’,,有些人甚至擁有超過(guò)20年的行業(yè)經(jīng)驗(yàn)?!笔聦?shí)上,,做軟件和做硬件的一樣,都是越老越值錢,,當(dāng)然這里指的是程序員的高階形態(tài),,而非程序員。

 

只是,,不見(jiàn)得每個(gè)小兵都能往上發(fā)展,,因?yàn)榇蛘踢@東西,光靠點(diǎn)手腳功夫是不夠的,,正如程序員埋頭學(xué)習(xí)新的開(kāi)發(fā)工具,、鉆研程序代碼,一邊揮灑汗水,、熬夜寫代碼,,一邊又對(duì)自己30歲以后的職業(yè)方向充滿恐慌,卻不知逐步提升自己的視野,、思維和經(jīng)驗(yàn),。

 

前一篇日志也論述過(guò)管理和心理知識(shí)對(duì)研發(fā)人員的重要性,其對(duì)軟件從業(yè)人員的作用更加明顯,,這是軟件根本任務(wù)所決定的,,也是解決軟件固有屬性困難——復(fù)雜性、一致性,、變化性和不可見(jiàn)性時(shí),,所需具備的角度和能力。做軟件的愈往上走,,對(duì)從業(yè)人員的綜合素質(zhì)要求就愈高,,這也才有了“越老越值錢”的說(shuō)法。

 

前陣子,,聽(tīng)朋友說(shuō)做應(yīng)用層的軟件沒(méi)前途,,因?yàn)榧夹g(shù)門檻低,沒(méi)能把握住核心競(jìng)爭(zhēng)力,可后來(lái)想想,,不是沒(méi)有競(jìng)爭(zhēng)力,,只是應(yīng)用層軟件是面向客戶需求的,其核心競(jìng)爭(zhēng)力不在于技術(shù)的實(shí)現(xiàn),,而在于需求的分析與心理的把握,。

 

舉兩個(gè)簡(jiǎn)單例子,像近年來(lái)大熱的小游戲——植物大戰(zhàn)僵尸和憤怒的小鳥,,二者的市場(chǎng)價(jià)值早已突破10億美元關(guān)口,。單從技術(shù)角度而言,其實(shí)現(xiàn)并非難事,,但稍微有點(diǎn)心理學(xué)知識(shí)基礎(chǔ)的會(huì)發(fā)現(xiàn),,二者有一明顯的共同特點(diǎn),即利用對(duì)比的手法,,將兩種不具關(guān)系的事物通過(guò)某種方式強(qiáng)制關(guān)聯(lián)起來(lái)(植物和僵尸,,小鳥和綠豬),游戲模式中還涉及到不同層次的動(dòng)機(jī)與能力塑造,,進(jìn)一步加深玩家的喜好,、甚至狂熱程度。這兩個(gè)游戲的成功,,依靠的不是技術(shù)的優(yōu)勢(shì),,而是對(duì)心理知識(shí)的把握與運(yùn)用,而這樣的思維與成就,,單靠寫寫代碼,、用用工具是達(dá)不到的。

 

軟件的魅力在于它的創(chuàng)造性,、不重復(fù)性和純粹思維活動(dòng),,但其困難也是隨之產(chǎn)生的追求完美的必要性,、由他人設(shè)定目標(biāo)和思維邏輯的復(fù)雜性,,這些問(wèn)題的解決方法不單一依存于某本具體的書中,而是涉及管理,、心理,、邏輯、哲學(xué)等多方面的知識(shí),,恰巧中國(guó)教育方式將軟件和這類知識(shí)分在了對(duì)立的兩塊中,,也難怪會(huì)有中國(guó)軟件業(yè)的這種囧態(tài)。

 

其實(shí)上述這些,,許多企業(yè)和專家,、從業(yè)人員都已意識(shí)到(像華為軟件培訓(xùn)里相當(dāng)一部分時(shí)間就是在進(jìn)行管理類的培訓(xùn)),,用百度或谷歌一搜“軟件靠吃年輕飯”這句話,出來(lái)的基本都是否定的論斷,。這樣的言論,,流傳得最多的便是學(xué)生和外行人,,外行人就不提了,但學(xué)生是行業(yè)未來(lái)的人員,,持有這樣道聽(tīng)途說(shuō)得來(lái)的觀點(diǎn),中國(guó)軟件行業(yè)能不陷入惡性循環(huán)么,?

 

只是也應(yīng)該說(shuō),這是正常的事,。人在不確定的時(shí)候總是傾向于相信周圍人的意見(jiàn),,學(xué)校里的知識(shí)給不了更高更廣的視野,,學(xué)生們不清楚不了解,,也難怪會(huì)聽(tīng)風(fēng)就是雨,。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多