ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

成长与编程的变与不变思考

2022-02-15 16:32:49  阅读:188  来源: 互联网

标签:思考力 人脉 编程 能力 不变 思考 迁移 我们


之前在朋友圈发了关于变与不变的一点思考,现在关于此话题想再补充两点:编程的变与不变人的变与不变,第二点分为成长初心两点展开说明。

 

 

编程的变与不变

易变与不易变的形状

曾经有人问我,什么是强依赖,什么是弱依赖呢?

我回答:比如A与B,如下图,类似观察者模式(目标事件改变后,直接作出响应)改变A,B跟着改变;改变B,A立即改变。那么我们可以说A和B是强依赖关系的。

 

 

如果,在A和B中间引入C,C起到管控或调度的作用,我们可以说C将A和B进行了隔离,A和B之间的依赖变弱了。

 

 

我们继续更深一步,如下图拓扑结构:

 

 

其中,网状的拓扑结构(5),几个节点之间依赖是最强的,有没有觉得很像曾经接触过的shit山代码,牵一发何止动全身。如过度封装的组件,hooks,层峦叠嶂的类继承,他们这样子不仅无法应对需求变更,反而造成了代码和数据的深度耦合——面对多变的需求,这种蠢透了的东西不仅不能灵活应变、反而通过额外的、“继承的拓扑结构”这层维度,把自己绑的更死了。这种形状是不易变,强依赖的形状。

 

而其他形状(1,2,3,4,6)方便插拔,有较整齐的设计感,是易于变化的,弱依赖的形状。

 

实际上,我们可以只写固定不变的东西;经常会变的东西,我们只写hold住它变化的那一点精华,所有可能变化的东西都应该隔离到数据中去。

 

复用的诀窍

 

复用的诀窍——只做一件事,把一件事做好。

 

我们玩乐高,哪种积木用的最多?摆任何造型都能用上?

 

方块,对吧。

 

为什么方块最容易复用?

 

因为它最简单。

程序越简洁,就越是可以随意的拼起来。

你往里面添加了越多的“高级功能”“自动化机制”,它就越发的只能为它的设计目标服务了——稍微改一点?重写吧。

反之,你把功能简化到简无可简、不让它保存什么在状态,而是用户给什么数据它提供什么服务……那么,很自然的,用户拿它来做什么都可以。

这实际上也是我前面说过的:把可变的东西隔离到数据中,程序只提供一组元规则!

把具体事务相关的东西隔离出去、只写程序处理“共性”……越是这样,你的程序越简洁。

程序越简洁,就越是可以随意的拼起来、拼出千变万化五彩缤纷的大千世界。

于是,我习惯在做业务之前进行设计,重视模块化和抽象,在模块划分合理、抽象合理的程序里,我可以简单的把一个个功能抽象为一个简单的黑盒,我不需要知道他们内部发生了什么复杂的反应,我只需要知道他们对什么样的输入会做出什么样的输出。这种抽象极大的减轻了大脑的负担,让我可以把精力更多的投入到真正需要考虑的地方。

另外,还有同学抽象过度,用激进的新技术,写出难扩展和维护的代码。关于新技术,再多说一点,新技术大多是不够成熟的,我们需要了解新技术,但是只用足够稳定的东西。最后,技术无所谓先进落后,能最简单平易解决问题的,就是最好的技术(详情可以看图灵机之雕虫小技中的计算等价性)。

人的变与不变

成长

我们总在谈一个观点,那就是人要不断成长,不断提升自己的能力,顺应时代改变不同的方式。

这令人很迷茫,难道我要一直学习到老死?我一个人的力量又不可能赶得上世界整体的发展,我该怎么做?

因此我们在寻找,对于一个人来讲,有没有什么是不用变的呢。

这就要提到一个概念:可迁移能力

可迁移能力,是指不管从哪个岗位转到哪个岗位,从哪个行业跨到哪个行业,那些依然能被不断重复使用、能无障碍迁移的能力。它包括三个层次:

底层可迁移能力:思考能力(包括逻辑思维、本质思考力、升维思考力、结构化思考力、系统思考力、批判性思维、元认知等)。

中层可迁移能力:其它非技能能力(学习力、理解力、沟通力、领导力等)。

上层可迁移能力:技能(写作技能、外语听说读写技能、数据分析技能、计算机使用技能等)。

当今社会不存在“铁饭碗”,而我们可以培养铁一般的可迁移能力,让它成为你的“金饭碗”。

掌握了可迁移能力,才能让你真正拥有了一些“不变”的东西,也就拥有了足够多、足够广泛的职业选择。

也许大家注意到了,我没有提到“人脉”。

所谓人脉,有时候脆弱的很,古语“人以类聚,物以群分”,当你自身能力不足时,你结交的人脉也必定能力平平。

所以你需要的,并不是人脉,并不是平台,而是随时随地能帮你长出人脉的能力。这种追随你能力而来的人脉必定也是与你相配的人脉,是能给予你辅助的人脉。

如果你想获得想要的东西,那就得让自己配得上它。   ——查理芒格

初心

时光荏苒,春秋更易。

然而在这不可阻挡的变中,我们偶尔又能体会到许多不变。

多年未见的朋友,变的是人情世故,不变的是亲近的情感和回忆;技术和商业,变的是内容和手段,不变的是服务大众的精神和发展生活的动力;社会现象、变的是大众舆论,不变的是以解决问题为目的,让社会变得更好的善意。

由此,我们有时候会忽然意识到,自己最初的想法到底是什么呢?是喜欢一件物品?拥有一个梦想?爱上一个人?

面对这些问题,我们何尝不会萌生出在这个身不由己的社会中做回自己的冲动呢?

这种冲动让我们的心灵在这俗世中不断受到一种拉扯——对未来的希望对过去的惋惜这二者的不断拉扯。

要从这种痛苦中解脱出来,我们需要四个字:勿忘初心

勿忘初心,并不是一个虚幻的概念,而是一个原则。

是一个能使人不被大众世俗的三观所绑架,从而摒弃利益的诱惑,踏下心来追求自己原初梦想的原则。

有了这个不变的原则,我们才能在心境的变化过程中一直坚守自己,只有有了坚守自己的前提,才有余闲让自己不出格地寻找发展和进步。

一位前辈曾经告诫我,人总是要回到自己第一次萌发出“想做某事”的初心上去。

为什么你总是会自主学习?为什么会走上程序员这条路?为什么喜欢写东西?

勿忘初心,做你自己。

做你自己这件事,没有人能比你做的更好。

标签:思考力,人脉,编程,能力,不变,思考,迁移,我们
来源: https://www.cnblogs.com/youqiancheng/p/15897072.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有