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

几乎每个程序员都知道github,但是知道目前上面有多少repositories的估计没几个。

Z哥今天去看了下,最新的数量显示是1.39亿个。

640?wx_fmt=jpeg

▲截图来自于github.com

而这个数字在2008年那会只是3.3万个。

这个增长速度可谓真的是“爆炸式增长”。

与此同时,大家也都享受到了开源技术逐渐繁荣的红利。如今,构建一个大型的、面向广大互联网终端用户的系统,变得越来越容易了。

而且现在你也可以经常在招聘网站看到,很多任职要求中动不动就出现一大堆开源技术需要熟练,甚至是精通。特别是不少程序员向往的技术路线分支,架构师这个岗位,这个情况越明显。

640?wx_fmt=png

▲截图来自于招聘网站

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

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

“折叠”的含义大家都知道。指的是把物体的一部分折过来与另一部分挨在一起。

好处就是可以让一个原本不可控的、复杂的事物通过“折叠”变成一个更可控的、简单的事物。

比如,

  • 一张一百平米的海报不好搬运。但是把它折叠起来就好搬运了。

  • 治病的过程需要很多种药材,并且要将这些药材按照指定比例进行搭配。还要煎煮等等。不可能所有的病人在任何时期都有这种条件,所以「药丸」的好处就出来了,随时随地可以吃。

  • ……

几乎我们身边的每个事物都是“折叠”后的产物,只是程度不同。如,手机、电脑、笔,甚至是成语、谚语等等。甚至还包括我写的每一篇文章,也都是将我自己的认识折叠之后的产物。

所以,做“折叠”的目的是为了追求效率、便捷,让人与人之间的分工协作得以更好的进行。因为,“被折叠”起来的内在部分,已经不是双方协作时需要了解的「必须项」了。


对于开源技术,从人性的角度来,有现成的“轮子”摆在那,为啥还要自己苦哈哈的重复造“轮子”呢?有捷径不走,不是傻么。

是的没错,这很符合人之常情。而且这也是我们整个社会的发展速度越来越快的底层逻辑。

把「认知」也折叠了

但是任何事物皆有两面性,“折叠”有什么负面的作用呢?

最容易察觉的一点就是一个事物变得更加的不容易真正了解,这也意味着我们的「认知」也被折叠了。也就是我今天要说的主题——「认知折叠」。

举个例子。

第一台电子计算机被发明于1946年,占地150平方米,重达30吨,耗电功率约150千瓦,每秒钟可进行5000次运算。

640?wx_fmt=jpeg

▲图片来源于网络,版权归原作者所有


假象一下当时的发明者莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)穿越到现在,看到我们拿着的钱包大小的手机,而它的算力是他们发明的计算机的百万倍。这其中被折叠的认知可不是用一个“amazing”就能表达的。


这个与程序员们很熟悉的软件测试领域中的“黑盒”概念类似,一个软件里面具体是什么情况,代码逻辑是怎么处理的,完全不知道。

这其实是一种失控的状态。但是由于被折叠后的事物让我们具有更好的舒适感,所以这种失控感其实是大部分被掩盖掉了,让我们没有察觉到自己正在逐渐失控。

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

长期以往,就会让我们的思维更加的局限。

除了用某个技术来实现某个功能,不会其它的实现方式了。比如,用惯了ORM框架,手写SQL都退化了,甚至不会了。

除了用某个工具来解决眼前的问题,不会其它的方式了。比如,习惯了用图钉来粘贴一些公告,想不到用透明胶也可以达到一样的效果。

更严重的甚至会沦为“有心人”的“工具”。

比如,某些抢票工具。不管是火车票、演唱会门票还是什么票,你从网上下载了一个自动抢票工具,其实里面除了“折叠”了自动抢票,可能还“折叠” 了数据自动上传到作者服务器的功能。

这些“被折叠”的东西如果你不清楚,那你就像是那只捡了芝麻丢了西瓜的小猴子。

三个破局的办法

即然“折叠”是对复杂性的封装,那么应对它的方式自然是往“展开”的思路来走

只有这样,你才能更了解眼前的这个“被折叠”的事物。

那么有什么“展开”的办法呢?下面Z哥分享你几个我认为的要点。

01  多一分敬畏

要意识到自己身处在一个被高度折叠的社会里,多一些敬畏之心,不要觉得什么事物都很简单。

哪怕是你看着非常不起眼的一支铅笔。但它的原料很复杂,要把木材、油漆、石墨、黏土、石蜡、黄铜、橡皮、硫化镉等原材料统一起来,并且制作过程中的所有生产工艺流程,也得全部统一起来,才能组成一支铅笔。

无知不可怕,可怕的是不知道自己的无知。

这是一个心态问题,只能靠自己刻意练习去调整自己的心态。

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

可以不了解how,但是得了解why。不用事无巨细的将每个事物真的分析的那么彻底。但你至少得知道这个事物产生的背后原因是什么。

比如,你不用真的去100%的啃某个框架源码,但是你至少得至少这个框架为什么会出现,为什么会这么多人用?它“折叠”了什么进去?以及这些“折叠”的东西对你未来的可控性是不是有影响?如果有影响的话,未来能不能hold住它,消除其中的不确定性?

这些一连串的思考之后,眼前这个事物的“折叠程度”就会降低,你对它的理解和掌控力会超过大部分人。

所谓的“透过现象看本质”也是这个道理。这个现象、事物的完整的过程是什么没那么重要,更重要是它的本质、目的是什么。

03  获取高质量的外部信息

如果要彻底“展开”的话,必然离不开外部信息的帮助。这个时候一定要找权威的信息。

正如之前所说,因为信息本身也是一个“被折叠”后的产物如果你找到的信息不够靠谱。那么不但无法“展开”,反而会“折”的更深。

权威性主要看渠道。不同渠道公开的信息,背后是经由不同人和不同的处理机制而产生的。

信息质量的高低主要取决于制造和过滤信息所花费的成本,花费的成本越高,这个信息的权威性自然就越好。

这个成本除了包括投入的人力物力的多少之外,还有出品方的品牌、口碑等。

通用的高质量信息渠道,可以关注以下这些。如果你有什么其它的高质量通用信息的渠道,欢迎你在留言区分享给大家。

  • .gov.cn、.org域名的网站,这些都是政府/权威组织公开的信息。(政府信用背书,可信度最高)

  • 论文。可以在中国知网、百度学术、谷歌学术上搜你要的信息。(投入的时间成本以及个人品牌背书)

  • 有口碑和知名度的媒体、大V博客。(个人品牌背书)

  • 书。(投入的时间成本以及个人品牌背书)

  • 咨询公司的分析报告。(投入的时间成本以及个人品牌背书)

  • Wikipedia不错,特别是每个条目下面的一些引用地址,里面这些都是相对高权威的信息源。

不同的专业领域各自领域内的权威渠道,这个靠自己平时的收集。但是官方公开的信息总是应该优先考虑的,而不是第一选择总是搜索引擎。

还有一点,如果可以,尽量使用英文搜索。为什么?看下整个互联网中的内容语言比例。

640?wx_fmt=jpeg

▲数据来自w3techs.com

可以看到,英文内容占据着绝对优势,并且占比还在持续走高。

如果你也有什么其它的有效办法,欢迎留言分享给大家。

程序员就是“折叠者”

其实我们做程序员的,天然处在一个“折叠者”角色上。我们每天在做着各种「封装」。

但是我见过了太多程序员,遇到问题只会百度的。

先不论被广为吐槽的百度内容质量如何,就这单一的信息获取方式实在是对不起程序员这个岗位应有的价值。

对每个人来说,面对被高度折叠的社会,我们大致分布在四个阶段中,逐步前进。

第一个阶段,完全不知道自己所处的是一个“折叠”后的环境。

第二个阶段,直到遇到“障碍物”走不过去了,才意识到“折叠”的存在,被动的去想办法“展开”。

第三个阶段,带着“展开”的心,同时享受着折叠的便利。

第四个阶段,本身就是“折叠者”,能大道至简那种。

用吴伯凡老师的一句话来形容第四个阶段最贴切不过。

最高的认知不是为了“展示你的认知”,而恰恰是“将这种认知最大化隐藏”,直接呈现为一个非常平易、有亲和力的日常友好化状态。

这既是做产品的逻辑,也是做人的逻辑。
吴伯凡

总结

好了,我们总结一下。

这篇Z哥和你阐述了我们所处的环境相比更早些年来说,是一个更大程度被折叠的社会。

但是不要忽视了折叠在带来便利的同时,把我们的认知也折叠了。

破局的办法自然就是想办法“展开”被折叠的认知。重要的三点是:

  • 让自己的心态多一分敬畏。

  • 可以不了解how,但是得了解why。

  • 获取高质量的外部信息帮助“展开”。

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

推荐阅读:

原创不易,如果你觉得这篇文章还不错,就「在看」或者「分享」一下吧。鼓励我的创作 :)

640?wx_fmt=jpeg

如果你有关于软件架构、分布式系统、产品、运营的困惑

可以试试点击「阅读原文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最优间隔分类器-SVM

http://blog.csdn.net/Andrewseu/article/details/46991541 本讲大纲: 1.最优间隔分类器(optimal margin classifier) 2.原始/对偶优化问题(KKT)(primal/dual optimization problem) 3.SVM对偶(SVM dual) 4.核方法(…

自动给 Asp.Net Core Api 增加 ApiVersionNeutral

自动给 Asp.Net Core Api 增加 ApiVersionNeutralIntro新增加一个 Controller 的时候,经常忘记在 Controller 上增加 ApiVersion ,结果就导致前端使用指定的 ApiVersion 访问的时候就会失败,不支持的 Api 版本。错误信息如下:{ &q…

K-means与高斯混合模型

K-means http://blog.pluskid.org/?p17 Clustering 中文翻译作“聚类”,简单地说就是把相似的东西分到一组,同 Classification (分类)不同,对于一个 classifier ,通常需要你告诉它“这个东西被分为某某类”这样一些例子&#xf…

轻量级ORM《sqlcommon》第一个版本发布了

一、sqlcommon的特色1. 轻量级,整个包只有123kb。2. 性能好,自测。。。3. API和功能简单、代码简短、可维护性好基本都能看懂。这个点我认为很重要,你不用为了实现一个需求而四处查资料,这意味着这个包你可以自行维护修改&#xf…

从基于直方图的Graph-Cut到Grab-Cut

http://blog.csdn.net/zouxy09/article/details/8534954 区别: (1)Graph Cut的目标和背景的模型是灰度直方图,Grab Cut取代为RGB三通道的混合高斯模型GMM; (2)Graph Cut的能量最小化&#xf…

1024程序员节活动继续:购书优惠劵,折后再折,赶紧来抢啊

1024程序员节当当网计算机图书每满100减50!满200减100!满300-150!机械工业出版社华章公司联合当当网特意为【DotNET技术圈】用户申请了一批可与满减叠加使用的“满200减30”的图书优惠码,优惠码使用后相当于:400减230 …

Shape Context

http://blog.csdn.net/u012507022/article/details/52437149 形状上下文特征是一种很流行的形状描述子,多用于目标识别,它采用一种基于形状轮廓的特征描述方法,其在对数极坐标系下利用直方图描述形状特征能够很好地反映轮廓上采样点的分布情况。 形状上下…

使用Magicodes.SwaggerUI快速配置SwaggerUI以及设置API分组

Magicodes.SwaggerUI快速配置和集成SwaggerUI特点通过配置文件简单配置即可完成SwaggerUI的API格式JSON生成和集成支持API分组和隐藏支持自定义页面和验证Nuget包联系我们订阅号关注“麦扣聊技术”微信订阅号可以获得最新文章、教程、文档。QQ群编程交流群<85318032>产品…

机器学习四大降维方法

http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映射方法&#xff0c;将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y&#xff0c;其中x是原始数据点的表达&#xff0c;目前最多使用向量表达形式。…

深入研究.NET Core的本地化机制

ASP.NET Core中提供了一些本地化服务和中间件&#xff0c;可将网站本地化为不同的语言文化。ASP.NET Core中我们可以使用Microsoft.AspNetCore.Localization库来实现本地化。在.NET Core 2.0以上版本, Microsoft.AspNetCore.Localization已经包含在了Microsoft.AspNetCore.All中…

.Net Core 3.0 IdentityServer4 快速入门02

.Net Core 3.0 IdentityServer4 快速入门—— resource owner password credentials&#xff08;密码模式&#xff09;一、前言OAuth2.0默认有四种授权模式&#xff08;GrantType&#xff09;&#xff1a;1&#xff09;授权码模式2&#xff09;简化模式3&#xff09;密码模式&a…

.Net Core3.0 日志 logging

多年的经验&#xff0c;日志记录是软件开发的重要组成部分。没有日志记录机制的系统不是完善的系统。在开发阶段可以通过debug附件进程进行交互调试&#xff0c;可以检测到一些问题&#xff0c;但是在上线之后&#xff0c;日志的记录起到至关重要的作用。它可使我们在系统出现问…

在微软工作一年,我学会了什么

大家好&#xff0c;我是运营小马。正如我们所知道的那样&#xff0c;10.23日 &#xff0c;崔庆才因为写文写得很痛苦&#xff0c;将公众号转给我运营。10.24 我兴致勃勃又小心翼翼的宣布了我要运营10.25 崔庆才回来了&#xff0c;他说他有喷薄而出抑制不住的写作欲望&#xff0…

Eclipse调试方法

http://blog.jobbole.com/93421/ 一、Eclipse调试介绍 二、Eclipse中和Debug相关的视图 2.1 Debug View2.2 Variables View2.3 Breakpoints View2.4 Expressions View2.5 Display View 三、Debug 3.1 设置断点 3.2 调试程序 3.2.1 调试本地 Java 语言程序 3.3.2 远程调试 一、…

聊聊 Docker Swarm 部署 gRPC 服务的坑

gRPC 是一个高性能、开源和通用的 RPC 框架&#xff0c;面向移动和 HTTP/2 设计&#xff0c;也是目前流行的微服务架构中比较突出的跨语言 RPC 框架。一直以来&#xff0c;我们的微服务都是基于 gRPC 来开发&#xff0c;使用的语言有 .NET、JAVA、Node.js&#xff0c;整体还比较…

动手造轮子:实现一个简单的依赖注入(零)

动手造轮子&#xff1a;实现一个简单的依赖注入(零)Intro依赖注入为我们写程序带来了诸多好处&#xff0c;在微软的 .net core 出来的同时也发布了微软开发的依赖注入框架 Microsoft.Extensions.DependencyInjection&#xff0c;大改传统 asp.net 的开发模式&#xff0c;asp.ne…

【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(2)

上一章《回忆一下我们的登录逻辑,主要有以下4点:当"用户名"或"密码"为空时, 是不允许登录的("登录"按钮处于禁用状态).用户名或密码不正确时, 显示"用户名或密码不正确"的消息框.用户名输入"waku", 并且密码输入"123&q…

gRPC 流式调用

gRPC 使用 Protocol buffers 作为接口定义语言&#xff08;IDL&#xff09;来描述服务接口和输入输出消息的结构&#xff0c;目前支持 4 种定义服务方法类型&#xff1a;类型说明简单 RPC客户端传入一个请求对象&#xff0c;服务端返回一个结果对象客户端流式 RPC客户端传入多个…

模型压缩案例-SSDYou only look once

http://write.blog.csdn.NET/postedit 在上一篇文章中&#xff0c;介绍了以regionproposal来检测的框架&#xff0c;这一系列速度和精度不断提高&#xff0c;但是还是无法达到实时。存在的主要问题为&#xff1a;速度不够快&#xff0c;主要原因是proposal比较多&#xff0c;特…

.NET如何将字符串分隔为字符

前言如果这是一道面试题&#xff0c;答案也许非常简单&#xff1a;.ToCharArray()&#xff0c;这基本正确……我们以“AB吉??????”作为输入参数&#xff0c;首先如果按照“正常”处理的思路&#xff0c;用 .ToCharArray()&#xff0c;然后转换为 JSON&#xff08;以便方…