YAZONG 我的开源

Github带来的不止是开源,还有折叠的认知

 
0 评论0 浏览

转载 : https://mp.weixin.qq.com/s/fxSpOEaJVm7-ydEy0fNqSQ

几乎每个程序员都知道github,但是知道目前上面有多少repositories的估计没几个。
Z哥今天去看了下,最新的数量显示是1.39亿个。
而这个数字在2008年那会只是3.3万个。
这个增长速度可谓真的是“爆炸式增长”。
与此同时,大家也都享受到了开源技术逐渐繁荣的红利。如今,构建一个大型的、面向广大互联网终端用户的系统,变得越来越容易了。
而且现在你也可以经常在招聘网站看到,很多任职要求中动不动就出现一大堆开源技术需要熟练,甚至是精通。特别是不少程序员向往的技术路线分支,架构师这个岗位,这个情况越明显。

Screenshot20200104Github带来的不止是开源还有折叠的认知亚龙的博客.png

在这些眼花缭乱、层出不穷、天花乱坠的技术、框架给我们带来便利的背后,其实隐藏着一个“被折叠”的技术世界。

“折叠”是社会发展的底层逻辑

**

“折叠”的含义大家都知道。指的是把物体的一部分折过来与另一部分挨在一起
好处就是可以让一个原本不可控的、复杂的事物通过“折叠”变成一个更可控的、简单的事物
比如,一张一百平米的海报不好搬运。但是把它折叠起来就好搬运了。
治病的过程需要很多种药材,并且要将这些药材按照指定比例进行搭配。还要煎煮等等。不可能所有的病人在任何时期都有这种条件,所以「药丸」的好处就出来了,随时随地可以吃。
……
几乎我们身边的每个事物都是“折叠”后的产物,只是程度不同。如,手机、电脑、笔,甚至是成语、谚语等等。甚至还包括我写的每一篇文章,也都是将我自己的认识折叠之后的产物
所以,做“折叠”的目的是为了追求效率、便捷,让人与人之间的分工协作得以更好的进行。因为,“被折叠”起来的内在部分,已经不是双方协作时需要了解的「必须项」了
对于开源技术,从人性的角度来,有现成的“轮子”摆在那,为啥还要自己苦哈哈的重复造“轮子”呢?有捷径不走,不是傻么。
是的没错,这很符合人之常情。而且这也是我们整个社会的发展速度越来越快的底层逻辑。

把「认知」也折叠了

但是任何事物皆有两面性,“折叠”有什么负面的作用呢?
最容易察觉的一点就是一个事物变得更加的不容易真正了解,这也意味着我们的「认知」也被折叠了。也就是我今天要说的主题——「认知折叠」。
举个例子。
第一台电子计算机被发明于1946年,占地150平方米,重达30吨,耗电功率约150千瓦,每秒钟可进行5000次运算。

假象一下当时的发明者莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)穿越到现在,看到我们拿着的钱包大小的手机,而它的算力是他们发明的计算机的百万倍。这其中被折叠的认知可不是用一个“amazing”就能表达的。
这个与程序员们很熟悉的软件测试领域中的“黑盒”概念类似,一个软件里面具体是什么情况,代码逻辑是怎么处理的,完全不知道。
这其实是一种失控的状态。但是由于被折叠后的事物让我们具有更好的舒适感,所以这种失控感其实是大部分被掩盖掉了,让我们没有察觉到自己正在逐渐失控

一直这样下去会产生什么结果

长期以往,就会让我们的思维更加的局限
除了用某个技术来实现某个功能,不会其它的实现方式了。比如,用惯了ORM框架,手写SQL都退化了,甚至不会了。
除了用某个工具来解决眼前的问题,不会其它的方式了。比如,习惯了用图钉来粘贴一些公告,想不到用透明胶也可以达到一样的效果。
更严重的甚至会沦为“有心人”的“工具”。
比如,某些抢票工具。不管是火车票、演唱会门票还是什么票,你从网上下载了一个自动抢票工具,其实里面除了“折叠”了自动抢票,可能还“折叠” 了数据自动上传到作者服务器的功能。
这些“被折叠”的东西如果你不清楚,那你就像是那只捡了芝麻丢了西瓜的小猴子。

三个破局的办法

**即然“折叠”是对复杂性的封装,那么应对它的方式自然是往“展开”的思路来走。
**只有这样,你才能更了解眼前的这个“被折叠”的事物。
那么有什么“展开”的办法呢?下面Z哥分享你几个我认为的要点。

01多一分敬畏

要意识到自己身处在一个被高度折叠的社会里,多一些敬畏之心,不要觉得什么事物都很简单。
哪怕是你看着非常不起眼的一支铅笔。但它的原料很复杂,要把木材、油漆、石墨、黏土、石蜡、黄铜、橡皮、硫化镉等原材料统一起来,并且制作过程中的所有生产工艺流程,也得全部统一起来,才能组成一支铅笔。
无知不可怕,可怕的是不知道自己的无知。
这是一个心态问题,只能靠自己刻意练习去调整自己的心态。

02可以不了解how,但是得了解why

可以不了解how,但是得了解why。不用事无巨细的将每个事物真的分析的那么彻底。但你至少得知道这个事物产生的背后原因是什么
比如,你不用真的去100%的啃某个框架源码,但是你至少得至少这个框架为什么会出现,为什么会这么多人用?它“折叠”了什么进去?以及这些“折叠”的东西对你未来的可控性是不是有影响?如果有影响的话,未来能不能hold住它,消除其中的不确定性?
这些一连串的思考之后,眼前这个事物的“折叠程度”就会降低,你对它的理解和掌控力会超过大部分人。
所谓的“透过现象看本质”也是这个道理。这个现象、事物的完整的过程是什么没那么重要,更重要是它的本质、目的是什么。

03获取高质量的外部信息

如果要彻底“展开”的话,必然离不开外部信息的帮助。这个时候一定要找权威的信息。
正如之前所说,因为信息本身也是一个“被折叠”后的产物。如果你找到的信息不够靠谱。那么不但无法“展开”,反而会“折”的更深
权威性主要看渠道。不同渠道公开的信息,背后是经由不同人和不同的处理机制而产生的。
**信息质量的高低主要取决于制造和过滤信息所花费的成本,花费的成本越高,这个信息的权威性自然就越好。
**这个成本除了包括投入的人力物力的多少之外,还有出品方的品牌、口碑等。
通用的高质量信息渠道,可以关注以下这些。如果你有什么其它的高质量通用信息的渠道,欢迎你在留言区分享给大家。

.gov.cn、.org域名的网站,这些都是政府/权威组织公开的信息。(政府信用背书,可信度最高)
论文。可以在中国知网、百度学术、谷歌学术上搜你要的信息。(投入的时间成本以及个人品牌背书)
有口碑和知名度的媒体、大V博客。(个人品牌背书)
书。(投入的时间成本以及个人品牌背书)
咨询公司的分析报告。(投入的时间成本以及个人品牌背书)
Wikipedia不错,特别是每个条目下面的一些引用地址,里面这些都是相对高权威的信息源。

不同的专业领域各自领域内的权威渠道,这个靠自己平时的收集。但是官方公开的信息总是应该优先考虑的,而不是第一选择总是搜索引擎。
还有一点,如果可以,尽量使用英文搜索。为什么?看下整个互联网中的内容语言比例。

Screenshot20200104Github带来的不止是开源还有折叠的认知亚龙的博客2.png

可以看到,英文内容占据着绝对优势,并且占比还在持续走高。
如果你也有什么其它的有效办法,欢迎留言分享给大家。

程序员就是“折叠者”

其实我们做程序员的,天然处在一个“折叠者”角色上。我们每天在做着各种「封装」。
但是我见过了太多程序员,遇到问题只会百度的。
先不论被广为吐槽的百度内容质量如何,就这单一的信息获取方式实在是对不起程序员这个岗位应有的价值。

对每个人来说,面对被高度折叠的社会,我们大致分布在四个阶段中,逐步前进。
第一个阶段,完全不知道自己所处的是一个“折叠”后的环境。
第二个阶段,直到遇到“障碍物”走不过去了,才意识到“折叠”的存在,被动的去想办法“展开”。
第三个阶段,带着“展开”的心,同时享受着折叠的便利。
第四个阶段,本身就是“折叠者”,能大道至简那种。

用吴伯凡老师的一句话来形容第四个阶段最贴切不过。
最高的认知不是为了“展示你的认知”,而恰恰是“将这种认知最大化隐藏”,直接呈现为一个非常平易、有亲和力的日常友好化状态。
这既是做产品的逻辑,也是做人的逻辑。

吴伯凡

总结

好了,我们总结一下。
这篇Z哥和你阐述了我们所处的环境相比更早些年来说,是一个更大程度被折叠的社会。
但是不要忽视了折叠在带来便利的同时,把我们的认知也折叠了。

破局的办法自然就是想办法“展开”被折叠的认知。重要的三点是:
让自己的心态多一分敬畏。
可以不了解how,但是得了解why。
获取高质量的外部信息帮助“展开”。

希望对你有所启发,成为一个不被折叠所困的折叠者。

——————除了转载上述文章作者说的,自己做下其他总结————————–

成为一名优秀的工程师:

**学习新东西的态度:**不仅需要努力,而且还要谦虚的承认自己的无知,并与适合的人交流以消除这种无知。

**每天暴漏自己的无知:**永远无知的秘诀是,对你自己的意见和知识感到满意;加快获得缺失知识的速度最好的方法是在每一个机会中暴露自己的无知。

**写代码之前先读代码:**读到的代码有多好,写出来的就能有多好;现在已经有了解决问题的办法了。所以当你尝试完成一个功能时,先看一下其他人是否已经解决了这个问题。这不是偷工减料,而是在努力完成。

**寻求建设性批评:**如果资深工程师花时间帮你审查代码并提出一些改进意见,表示他们对你的工作很有兴趣,不要浪费机会,主动上去寻求建设性批评。

**寻求大局观:**想要看到更多风景,就走出黑暗的山谷,爬上光明的山顶!

**一名优秀的高级开发者不仅仅了解编程:**一名优秀的高级开发者不仅仅是只了解编程。他们充满好奇。他们是优秀的导师。最重要的是他们具有不可思议的代码意识,知道什么时候不做某事。不是每个人在他(她)的职业生涯中都能成为“高级”开发者。一个好的高级开发者不仅需要好的经验,还应该有正确的态度和能力,以便将来应用这些经验。资历与能力有关,与年龄无关

如果你什么都不做,资历就没有任何意义。


标题:Github带来的不止是开源,还有折叠的认知
作者:yazong
地址:https://blog.llyweb.com/articles/2019/11/02/1578149556401.html