傳統的程式設計師將會被淘汰

2016-03-14    分類:資訊、首頁精華10人評論發表於2016-03-14

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

要成為當今軟體開發中受人尊敬的專業人士,你需要掌握各種技能,而且達到高水平的專業級別。最起碼,你需要能夠把你的英語解決方案翻譯成軟體實現。不僅技術上要正確,在業務上也得可行。因此,對業務有一個深刻的理解總是沒有壞處的。這使得你可以有效地收集和談判客戶的需求,並確保軟體能夠經過時間的考驗。企業希望軟體是一個長期的投資,能夠在幾年甚至幾十年之後依然物盡其用。很少有希望軟體只存活幾個星期的。如果真的有,那可真是一個糟糕的投資。

對軟體開發的熟練要求放寬了

在美國,對軟體開發人員的需求一直在增長,但對技能熟練程度的要求卻在降低。計算機程式設計退步到了尋找正確的軟體庫然後將它們串接起來得程度。那麼你如何解釋軟體或平臺作為服務的迅速崛起?是的,有時你是需要弄清楚哪些元件裝配在一起才最適合你的特定問題,而且,當找不到這樣的元件時,你必須自己動手建立。但是,現在的問題是,很多時候,該軟體已經存在。在這種情況下,你的工作就是無聊重複的順序:選擇庫,聯合庫,按照需求測試。

但是先等等!你可能會認為,程式設計還囊括了很多合同規定的內容。當然,我們可以構建一個已經構建過的結構,但它們還需要個性化,才能適應特定的業務需求。這無疑需要一定程度技術和智慧的,對吧?而對於這種說法,我承認。是的,業務需求常常是非常多樣和特殊的,然而現在卻在開始漸漸地變得大同小異。

因此,選擇元件來滿足業務需求成為了自動化的主要目標。既然有這麼多潛在的組合,那麼那些永遠不需要睡覺、吃飯和休息的員工才是最完美的員工。人工輔助軟體開發的時代正在到來。也就是說,計算機將執行大部分的開發步驟,而人類只需要協助它們即可。

在這個新的時代,人工智慧研究人員和測試人員將佔據統治地位。人工智慧研究人員負責想出大致的思路。他們將確定需要解決哪些問題,即通過給定的輸入描述期望的輸出。然後,測試人員編寫斷言這個問題確實被解決的測試。也就是說,驗證正確的輸出是由給定的輸入確定的。此時的計算機負責將給定的輸入轉換為所需的輸出。

遺傳程式設計

你可能會覺得自動化的軟體開發是一個奇思妙想,甚至覺得這是不可能的。但是遺傳程式設計告訴我們nothing is impossible。軟體會產生變異,改變它們的指令,努力順利發展以變得更適合。在每個突變後,它們將自行評估它們是否正趨向於期望的輸出。這裡對於合適的評估是由測試提供的。而且是大量的測試。這些測試都封裝了經過時間、空間和功能性制約的業務邏輯。突變越合適,通過的測試越多。這是值得重申的是,我們不應該關心生成實現的細節。事實上,生成多個符合要求的解決方案是完全合理的。要減少解決方案只需要增加更多限制問題就可以了。

軟體開發人員的傳統角色將會被淘汰。他們很快會被重新定位到設計、開發和維護測試。即,計算機的程式設計將變得不必要,因為它們自己就能程式設計。這種正規化將對軟體行業產生翻天覆地的影響。改變業務需求,直接改變測試,而這會觸發軟體自動化的進化。修改現有程式碼,以滿足新興需求的壓力將一去不復返。計算機會做好這件事:因為它不會有重新開始的顧慮。它也不關心可維護性,並且最後一定更相容不斷變化的業務需求。

說了這麼多,我決定把將來的重心放到測試上,以應對將來軟體行業的變化。那麼,你呢?

譯文連結:http://www.codeceo.com/article/programmer-become-obsolete.html
英文原文:Software Developers Will Become Obsolete
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章