何为软件开发的难?

经常会有人在面试过程中被问到做的最难的一个项目是什么?但很多人因为平时工作忙或有开源在做,面试准备少,或者临场反应差而给人留下不好的印象,也有很多人因为工作闲的整天看业界分享的ppt,而直接套用到自己的项目中,加上现成的漂亮话术,很容易俘获部分面试官的心。即使抛开诚实这一基本素质不谈,这对面试双方来说也是双输的。
 
为了减少这种情况,我们至少应该给难这一非常主观的概念一个标准吧。。当然在现在这浮躁的环境下,连长一点的视频都看不下去,更别说真正思考这一隐藏得很深、不够直观的问题了。
 
我觉得软件开发中的难主要在两个维度,一个是算法难,一个是结构复杂,对于我们工程人员来说,更多的是对复杂结构的理解、改造、优化这块考验人的能力,还有就是应对繁重的不同日常工作以及突发情况时的开发质量和交付效率,以及在此种强度下进行加强、改造软件底层的主观能动性。
 
我们不能认为结构复杂不重要,因为结构的复杂度本来就会产生新的事物,所谓量变产生质变,比如一个神经元再精密也产生不了智能,只能做很简单的事情,但几万亿个神经元通过复杂结构组合在一起就是完全不一样的东西了。具体到软件开发中,近些年很火的容器技术并不是什么高深莫测的东西,它只是把vm中的OS虚拟层抽象出来,这样每个服务都不需要独立部署OS,启动和维护效率大大增强,后续的k8s完善了对容器的编排,又进一步催生出更多新的能力,引发了云原生的潮流。还有近来新兴的流式数据湖paimon,核心的一点是把kudu、hbase等早已用上并大获成功的LSM引入到数据湖,就赋予了数据湖流式高速读写、自动合并的能力,进而有赶超传统数据湖如hudi、iceberg的趋势。
 
所以你说什么是难呢?
posted @ 2024-06-18 12:37  码以致用  阅读(3)  评论(0编辑  收藏  举报