傳統(tǒng)的程序員將會(huì)被淘汰
要成為當(dāng)今軟件開發(fā)中受人尊敬的專業(yè)人士,你需要掌握各種技能,而且達(dá)到高水平的專業(yè)級(jí)別。最起碼,你需要能夠把你的英語解決方案翻譯成軟件實(shí)現(xiàn)。 不僅技術(shù)上要正確,在業(yè)務(wù)上也得可行。因此,對(duì)業(yè)務(wù)有一個(gè)深刻的理解總是沒有壞處的。這使得你可以有效地收集和談判客戶的需求,并確保軟件能夠經(jīng)過時(shí)間的 考驗(yàn)。企業(yè)希望軟件是一個(gè)長期的投資,能夠在幾年甚至幾十年之后依然物盡其用。很少有希望軟件只存活幾個(gè)星期的。如果真的有,那可真是一個(gè)糟糕的投資。
對(duì)軟件開發(fā)的熟練要求放寬了
在美國,對(duì)軟件開發(fā)人員的需求一直在增長,但對(duì)技能熟練程度的要求卻在降低。計(jì)算機(jī)編程退步到了尋找正確的軟件庫然后將它們串接起來得程度。那么你 如何解釋軟件或平臺(tái)作為服務(wù)的迅速崛起?是的,有時(shí)你是需要弄清楚哪些組件裝配在一起才最適合你的特定問題,而且,當(dāng)找不到這樣的組件時(shí),你必須自己動(dòng)手 創(chuàng)建。但是,現(xiàn)在的問題是,很多時(shí)候,該軟件已經(jīng)存在。在這種情況下,你的工作就是無聊重復(fù)的順序:選擇庫,聯(lián)合庫,按照需求測試。
但是先等等!你可能會(huì)認(rèn)為,編程還囊括了很多合同規(guī)定的內(nèi)容。當(dāng)然,我們可以構(gòu)建一個(gè)已經(jīng)構(gòu)建過的結(jié)構(gòu),但它們還需要個(gè)性化,才能適應(yīng)特定的業(yè)務(wù)需 求。這無疑需要一定程度技術(shù)和智慧的,對(duì)吧?而對(duì)于這種說法,我承認(rèn)。是的,業(yè)務(wù)需求常常是非常多樣和特殊的,然而現(xiàn)在卻在開始漸漸地變得大同小異。
因此,選擇組件來滿足業(yè)務(wù)需求成為了自動(dòng)化的主要目標(biāo)。既然有這么多潛在的組合,那么那些永遠(yuǎn)不需要睡覺、吃飯和休息的員工才是最完美的員工。人工輔助軟件開發(fā)的時(shí)代正在到來。也就是說,計(jì)算機(jī)將執(zhí)行大部分的開發(fā)步驟,而人類只需要協(xié)助它們即可。
在這個(gè)新的時(shí)代,人工智能研究人員和測試人員將占據(jù)統(tǒng)治地位。人工智能研究人員負(fù)責(zé)想出大致的思路。他們將確定需要解決哪些問題,即通過給定的輸入 描述期望的輸出。然后,測試人員編寫斷言這個(gè)問題確實(shí)被解決的測試。也就是說,驗(yàn)證正確的輸出是由給定的輸入確定的。此時(shí)的計(jì)算機(jī)負(fù)責(zé)將給定的輸入轉(zhuǎn)換為 所需的輸出。
遺傳編程
你可能會(huì)覺得自動(dòng)化的軟件開發(fā)是一個(gè)奇思妙想,甚至覺得這是不可能的。但是遺傳編程告訴我們nothing is impossible。軟件會(huì)產(chǎn)生變異,改變它們的指令,努力順利發(fā)展以變得更適合。在每個(gè)突變后,它們將自行評(píng)估它們是否正趨向于期望的輸出。這里對(duì)于 合適的評(píng)估是由測試提供的。而且是大量的測試。這些測試都封裝了經(jīng)過時(shí)間、空間和功能性制約的業(yè)務(wù)邏輯。突變?cè)胶线m,通過的測試越多。這是值得重申的是, 我們不應(yīng)該關(guān)心生成實(shí)現(xiàn)的細(xì)節(jié)。事實(shí)上,生成多個(gè)符合要求的解決方案是完全合理的。要減少解決方案只需要增加更多限制問題就可以了。
軟件開發(fā)人員的傳統(tǒng)角色將會(huì)被淘汰。他們很快會(huì)被重新定位到設(shè)計(jì)、開發(fā)和維護(hù)測試。即,計(jì)算機(jī)的程序設(shè)計(jì)將變得不必要,因?yàn)樗鼈冏约壕湍芫幊獭_@種 范式將對(duì)軟件行業(yè)產(chǎn)生翻天覆地的影響。改變業(yè)務(wù)需求,直接改變測試,而這會(huì)觸發(fā)軟件自動(dòng)化的進(jìn)化。修改現(xiàn)有代碼,以滿足新興需求的壓力將一去不復(fù)返。計(jì)算 機(jī)會(huì)做好這件事:因?yàn)樗粫?huì)有重新開始的顧慮。它也不關(guān)心可維護(hù)性,并且最后一定更兼容不斷變化的業(yè)務(wù)需求。
說了這么多,我決定把將來的重心放到測試上,以應(yīng)對(duì)將來軟件行業(yè)的變化。那么,你呢?
譯文鏈接:http://www.codeceo.com/article/programmer-become-obsolete.html
英文原文:Software Developers Will Become Obsolete