程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-05(1)

软件开发教会了我什么?

发布于2019-08-21 12:16     阅读(872)     评论(0)     点赞(26)     收藏(0)


软件开发中的很多思维模式是可以用来指导生活的,接触软件开发也有些年了。有两个思想对我的影响是比较大的,或者说这两个思想,在生活中思考的比较多。一个是分而治之,一个是迭代。谈谈这两个思想教会了我什么!

分而治之简单来说就是将一个复杂的大问题分解为多个小问题,然后将小问题一一解决,最后再将小问题的结果组合起来,大的问题自然就解决了。这种思想我们每天都在用,模块化设计就是典型的分而治之的具体实现。梦想就需要分而治之,我见过很多人很喜欢谈梦想——关于文学、关于爱情、关于理想、关于穿越世界的旅行。而当我问到那你下个月关于梦想有什么具体安排的时候,大多数人都搪塞一下,讲不出具体可行的计划,时间久了这梦想自己都忘记了。

生活中,大学学位就是一个分而治之的例子,如果把大学四年的课本放在一起,总结回顾,会发现层次和条理是很清楚的,每一年都有侧重点,获得一个学历是需要很多知识的,而将这些知识具体分解为一本本偏理论或者偏实践的书籍,然后合理的安排在四年的时间里,顺着时间轴,逐一击破,最后在毕业论文的时候再把所有的东西串联起来,学位就拿到了。

但现实是你会发现,一个学生在一个专业上至少花了三年时间,最后写毕业论文的时候还是有困难,我觉的我们的教育多少有些问题!学校应该在学生上的第一堂课就将毕业论文题目公布出来,告诉他们经过三年一系列的课程之后,你们应该写出这些论文,或者能够做出这些设计。这样学生在每上一门课就知道这门课的作用了,要不然那些散乱的知识点并不会引起注意。

上面有些跑题,生活中刚好相反,我们大多数人都有目标,却不懂得分解目标,而上学是学校将目标分解的很完美,大多数人却蒙在鼓里不知道目标是什么。生活中几乎所有的事情都是可以分解的。比如说读书,目标一年要读50本书。开始分解目标,很多人觉得这很好分啊,一年也是50来个周,刚好一周一本,这计划多半要泡汤,为啥呢?如果第一本书是《红楼梦》,一个多月还没读完,自信心受到打击,开始自我怀疑,是不是目标定的有些高,该砍去20本。

首先你要有三四十本书是确定的想读的,留十来本机会给这一年新发现想读的书,要不然这一年你突然有些更想读的书,那总量就超过50本了,超过负荷了,最后很难完成。然后将每本书需要的时间根据厚度和难易程度大概估算出来,分为不同等级。有些小说可能一个周末就读完了,有些专业大块头可能需要两三个月,这两者可以并行。然后将一年分为四个季度,将各个等级的书籍平均分配到各个季度里。这一年里按照计划,逐一击破,在这个过程中各个季度可以调换阅读的先后顺序,但必须是同等级或者一本厚的换两本薄的。这个计划并不是无懈可击的,得给留够余地。比如有个季度正好特别忙,阅读量只有计划的一半该如何处理?有人想到将本季度没读的书平均匀剩下的三个季度里,可万一这是最后一个季度呢?所以不能平均分配,一定是前边多,后边少,在计划的时候考虑到意外。

还可以结合一下逆向工程的思路,如果你想成为XXX那样的人,那么倒着往回推移,看看他都在做什么,在这个过程中你会发现你和他们的距离没有那么遥远。然后顺着这个路走下去。但不是一定会成功,如果你说你要成为李彦宏那样的人,要创办一家伟大的公司,那多半要泡汤,这需要机遇,人与人之间是有差距的。但是你说你要成为李彦宏那样的人,要成为一个厉害的工程师,那是有希望的,当你成为一个厉害的工程师,也许就有机会想一想创办一家伟大的公司的事情了。

如果你还不明白,那简单的说,你要想有个儿子,那前提你得有个老婆,怎么才能有老婆,那你得结婚,如何才能结婚,你得有个对象,如何才能有个对象?

new Object()

迭代的思想是很重要的,既然要迭代,就先得有代,别做完美主义。先弄个东西跑起来,慢慢完善,如果你想面面俱到的全部考虑进去,最后这事多半得泡汤,苹果手机也是第四代才真正变得完美成熟的。我曾写过一个只有一个输入框,一个按钮,一个列表,一条get请求的“项目”。一个妹子有个excel表,几千条数据,经常要根据名字查几个简单的信息。在数据库里建了张表,将excel导入进去,后端java写个服务,前端ajax一调,前后端上传服务器,这个项目就跑起来了,也就一顿饭的时间。把访问路径给妹子,几天以后妹子说:能不能在这输入,因为这个excel表还在新增数据。还有名字有的一样的只能查出第一个人的信息。能加登陆(权限)还是加个登陆吧,要不然别人也能查,虽说无所,但也不太好,巴拉巴拉说了好多,然后照着改了一下,又是一顿饭的时间,慢慢这个项目就有点眉目了。只要有人不断给你发需求、不断听取反馈,一次次迭代,这个过程中个人和项目都在进步。

这当然是个比较极端的例子,我要说的是:Just do it.《java编程思想》里有这样一句话:如果将项目视作是一种有机的、进化的生命体而去培养,而不是打算像盖摩天大楼一样快速见效,就会获得更多的成功和更迅速的回馈。

分而治之是要对一件事情有整体的把控,然后能分解到具体的行动上,而迭代是要我们能够不断的行动,不断地修正问题,从而更好的完成这件事情。



所属网站分类: 站长公众号

作者:紫薇

链接:https://www.pythonheidong.com/blog/article/50298/706cf44967d63d77c731/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)