何為軟體開發的難?

码以致用發表於2024-06-18
經常會有人在面試過程中被問到做的最難的一個專案是什麼?但很多人因為平時工作忙或有開源在做,面試準備少,或者臨場反應差而給人留下不好的印象,也有很多人因為工作閒的整天看業界分享的ppt,而直接套用到自己的專案中,加上現成的漂亮話術,很容易俘獲部分面試官的心。即使拋開誠實這一基本素質不談,這對面試雙方來說也是雙輸的。
為了減少這種情況,我們至少應該給難這一非常主觀的概念一個標準吧。。當然在現在這浮躁的環境下,連長一點的影片都看不下去,更別說真正思考這一隱藏得很深、不夠直觀的問題了。
我覺得軟體開發中的難主要在兩個維度,一個是演算法難,一個是結構複雜,對於我們工程人員來說,更多的是對複雜結構的理解、改造、最佳化這塊考驗人的能力,還有就是應對繁重的不同日常工作以及突發
情況時的開發質量和交付效率,以及在此種強度下進行加強、改造軟體底層的主觀能動性。
我們不能認為結構複雜不重要,因為結構的複雜度本來就會產生新的事物,所謂量變產生質變,比如一個神經元再精密也產生不了智慧,只能做很簡單的事情,但幾萬億個神經元透過複雜結構組合在一起就是完全不一樣的東西了具體到軟體開發中,近些年很火的容器技術並不是什麼高深莫測的東西,它只是把vm中的OS虛擬層抽象出來,這樣每個服務都不需要獨立部署OS,啟動和維護效率大大增強,後續的k8s完善了對容器的編排,又進一步催生出更多新的能力,引發了雲原生的潮流。還有近來新興的流式資料湖paimon,核心的一點是把kudu、hbase等早已用上並大獲成功的LSM引入到資料湖,就賦予了資料湖流式高速讀寫、自動合併的能力,進而有趕超傳統資料湖如hudi、iceberg的趨勢。
所以你說什麼是難呢?

相關文章