要成為當今軟體開發中受人尊敬的專業人士,你需要掌握各種技能,而且達到高水平的專業級別。最起碼,你需要能夠把你的英語解決方案翻譯成軟體實現。 不僅技術上要正確,在業務上也得可行。因此,對業務有乙個深刻的理解總是沒有壞處的。這使得你可以有效地收集和談判客戶的需求,並確保軟體能夠經過時間的 考驗。企業希望軟體是乙個長期的投資,能夠在幾年甚至幾十年之後依然物盡其用。很少有希望軟體只存活幾個星期的。如果真的有,那可真是乙個糟糕的投資。
對軟體開發的熟練要求放寬了
在美國,對軟體開發人員的需求一直在增長,但對技能熟練程度的要求卻在降低。計算機程式設計退步到了尋找正確的軟體庫然後將它們串接起來得程度。那麼你 如何解釋軟體或平台作為服務的迅速崛起?是的,有時你是需要弄清楚哪些元件裝配在一起才最適合你的特定問題,而且,當找不到這樣的元件時,你必須自己動手 建立。但是,現在的問題是,很多時候,該軟體已經存在。在這種情況下,你的工作就是無聊重複的順序:選擇庫,聯合庫,按照需求測試。
但是先等等!你可能會認為,程式設計還囊括了很多合同規定的內容。當然,我們可以構建乙個已經構建過的結構,但它們還需要個性化,才能適應特定的業務需 求。這無疑需要一定程度技術和智慧型的,對吧?而對於這種說法,我承認。是的,業務需求常常是非常多樣和特殊的,然而現在卻在開始漸漸地變得大同小異。
因此,選擇元件來滿足業務需求成為了自動化的主要目標。既然有這麼多潛在的組合,那麼那些永遠不需要睡覺、吃飯和休息的員工才是最完美的員工。人工輔助軟體開發的時代正在到來。也就是說,計算機將執行大部分的開發步驟,而人類只需要協助它們即可。
在這個新的時代,人工智慧研究人員和測試人員將佔據統治地位。人工智慧研究人員負責想出大致的思路。他們將確定需要解決哪些問題,即通過給定的輸入 描述期望的輸出。然後,測試人員編寫斷言這個問題確實被解決的測試。也就是說,驗證正確的輸出是由給定的輸入確定的。此時的計算機負責將給定的輸入轉換為 所需的輸出。
遺傳程式設計
你可能會覺得自動化的軟體開發是乙個奇思妙想,甚至覺得這是不可能的。但是遺傳程式設計告訴我們nothing is impossible。軟體會產生變異,改變它們的指令,努力順利發展以變得更適合。在每個突變後,它們將自行評估它們是否正趨向於期望的輸出。這裡對於 合適的評估是由測試提供的。而且是大量的測試。這些測試都封裝了經過時間、空間和功能性制約的業務邏輯。突變越合適,通過的測試越多。這是值得重申的是, 我們不應該關心生成實現的細節。事實上,生成多個符合要求的解決方案是完全合理的。要減少解決方案只需要增加更多限制問題就可以了。
軟體開發人員的傳統角色將會被淘汰。他們很快會被重新定位到設計、開發和維護測試。即,計算機的程式設計將變得不必要,因為它們自己就能程式設計。這種 正規化將對軟體行業產生翻天覆地的影響。改變業務需求,直接改變測試,而這會觸發軟體自動化的進化。修改現有**,以滿足新興需求的壓力將一去不復返。計算 機會做好這件事:因為它不會有重新開始的顧慮。它也不關心可維護性,並且最後一定更相容不斷變化的業務需求。
說了這麼多,我決定把將來的重心放到測試上,以應對將來軟體行業的變化。那麼,你呢?
替代恐慌你有嗎?程式設計師會被深度學習技術淘汰嗎?
幾天前,alphago 3 0 輕鬆戰勝了人類世界最頂尖的圍棋選手柯潔,要知道圍棋一直是人類族群中最複雜的高智商遊戲,有句話叫千古無同局。你永遠不可能走過相同的一盤棋,甚至每個地方都不一樣。每一種可能都是乙個分支數,然後每乙個分支下面,還有無數個分支數。而且黑白之間,怎麼判斷哪個黑子比哪個白字強?這...
未來五年,不懂人工智慧的程式設計師會被淘汰嗎?
前提摘要 從pc到網際網路 移動網際網路 雲計算 大資料,再到現在的人工智慧 區塊鏈,半個多世紀以來,人類科技正以前所未有的速度飛速迭代。緊跟潮流 看對方向的幸運者大多數都成為新時代的弄潮兒,而默守陳規者則在時代的濤聲中逐漸湮滅。有人說下乙個五年將是人工智慧的時代,不懂人工智慧的程式設計師將會被淘汰...
程式設計師35歲真的會被辭退嗎?
人無遠慮,必有近憂。最可怕的是,學習速度慢到髮指,進步的速度慢到髮指而不自知。我的學習速度太慢了,稍微線性思維一下,如果沒有生產力的暴漲,三年後我的水平會是怎樣的呢?不敢想。實際上,我的水平應該是可以到達公司可以用的工具人水平的,但這又牽扯到我的另乙個長久的抉擇了 到底是直接工作,進大廠早早地當乙個...