大家好,我是鱼皮,今天给大家分享一个开发小经验。

很多没有实际工作过的同学,可能都会认为程序员的工作只有写代码 + 和产品经理 “拉扯”,也会习惯性地用代码量来评价一个程序员的工作强度和等级,以为码字如飞、每月能写个几万行代码的程序员就是大佬。

我以前也是这么认为的,直到我正式进入企业工作,才发现真的不是这么一回事儿!高端算法的特征的同学总是用最简短精妙的代码产品经理工作流程来解决问题。包括我认识的很多高职级大佬(被外界称为 “架构师”),他们的平均代码量都很少、甚至有些已经完全不写代码了。

那他们的工作都是干啥呢?

程序员的工作就只有写代码么?

其中最常见的工作就是 设计 ,这里的设计不是程序员那么可爱指 draw a picture 画画设计稿,而算法的空间复杂度是指是根据真实的业务需求去设计系统的整体架构、或者设程序员客栈计需求的解决方案、设计整个系统的划分、资源的协调调度等。

通过这点,也侧面反映出了设计的重要性,代码只是把我们的思想、我们的设计表述出来的一种程序员计算器介质(或者说是工具)罢了。

也许我们的工作没有达到架构师的高度,但在我们做需求的过程时,一定进行设计:先理清楚业务逻辑,想好怎么写代产品码,再架构是什么意思根据设计去具体写代码实现(类似翻译产品经理的过程)。

我刚产品经理进腾讯实习的时候,导师给我安排了一个很大的工作 —— 重构老程序员需要什么学历系统为新框架。我当算法的空间复杂度是指时觉得很简单,不就是把框架 A 换成框架 B 么?业务逻辑基本都不用动,分分钟搞定好吧!于是在排期的时候信誓旦旦地跟我导师说:3 天完成。

我导师只程序员是做什么的是笑了笑:年轻人不要太自信!慢慢来吧。

结果你猜怎么着?那个需求我做了整整一个多月。。。就是因为没有设计好怎么去做、也没有调研算法导论框架 A、框架 B 的差异性,直接上手去换框架、写代码,导致到处程序员客栈都是报错,甚产品经理是不是销售至影响了业务逻辑。

还有几次,我以为需求很简单,想都没想就去写代码了,结果在写代码的过程中发现了大问题,就像走迷宫走到了死胡同一样产品无力回天。如果先做好设计,有了清晰的算法导论路线和规划,再去写代码,出现延期、返工的概率就会大大降低。

所以设计有多重要就不言而喻了。

那应该怎么做算法设计呢?设计分为很多种,比如系统设计、架构设计、详细设计等。每个展开去说都能扯个几万字,这里我就挑 详细设计 小讲一下。

所谓详细设计,顾名思义,就是很详细的设计。

程序员的工作就只有写代码么?

比如业务流程具体是怎样的、有哪些步骤?某个算法具体怎么实现等?

正好上周在 星球 中直播带大家做项目,需求是开发一个用户注册功能的后台。我就拿这个注册功能的详细设计来举例子吧,如图:

程序员的工作就只有写代码么?

从上到下看一遍你会发现,一个小小的注册功能竟然有那么多要考虑的地方,各种各样的校验。如果你不做设计、直接上手写代码,那么会不程序员是做什么的会漏掉一些校验、搞错关键步骤,导致整个系统出问题呢程序员怎么学?后面发现问题再去改代码,可就麻烦多了(要反复上线)。产品设计

所以在开发需求、尤其是包含复杂业务逻辑的需求时,不要想当然,直接去写代码了。而是可以像我上面举的程序员那么可爱免费观看例子一样先设计一下、想清楚怎么写代码,再去按照设计写代码就很产品批号是生产日期吗简单了~

经常有同学问我怎么提高业务思维、为什么我看到程序员那么可爱免费观看很多系统都能很快地想到实现方案,其实就是因为平时做任何需求的时候,我都会思考、在心里做设算法的特征计。我也强烈建议大家这么产品运营做,脑袋越用越灵嘛。

所以我产品生命周期也会在星球直播带大家做项产品经理怎么入行目过程中多带大家分析问题、思考和设计方案,而不止是写代码本身,相信这样会给大家带来更大的帮助。


以上就是本期分享,最后也欢迎大家加入鱼皮的 编程学习架构师工资圈子 (dogyupi.com) ,和几千名小伙伴们一起交流学习~