如果第二次看到我的文章,欢迎「文末」扫码订阅我个人的公众号(跨界架构师)哟~
每周五11:45 按时送达。当然了,也会时不时加个餐~
我的第「113」篇原创敬上
几乎每个程序员都知道github,但是知道目前上面有多少repositories的估计没几个。
Z哥今天去看了下,最新的数量显示是1.39亿个。
▲截图来自于github.com
而这个数字在2008年那会只是3.3万个。
这个增长速度可谓真的是“爆炸式增长”。
与此同时,大家也都享受到了开源技术逐渐繁荣的红利。如今,构建一个大型的、面向广大互联网终端用户的系统,变得越来越容易了。
而且现在你也可以经常在招聘网站看到,很多任职要求中动不动就出现一大堆开源技术需要熟练,甚至是精通。特别是不少程序员向往的技术路线分支,架构师这个岗位,这个情况越明显。
▲截图来自于招聘网站
在这些眼花缭乱、层出不穷、天花乱坠的技术、框架给我们带来便利的背后,其实隐藏着一个“被折叠”的技术世界。
“折叠”是社会发展的底层逻辑
“折叠”的含义大家都知道。指的是把物体的一部分折过来与另一部分挨在一起。
好处就是可以让一个原本不可控的、复杂的事物通过“折叠”变成一个更可控的、简单的事物。
比如,
-
一张一百平米的海报不好搬运。但是把它折叠起来就好搬运了。
-
治病的过程需要很多种药材,并且要将这些药材按照指定比例进行搭配。还要煎煮等等。不可能所有的病人在任何时期都有这种条件,所以「药丸」的好处就出来了,随时随地可以吃。
-
……
几乎我们身边的每个事物都是“折叠”后的产物,只是程度不同。如,手机、电脑、笔,甚至是成语、谚语等等。甚至还包括我写的每一篇文章,也都是将我自己的认识折叠之后的产物。
所以,做“折叠”的目的是为了追求效率、便捷,让人与人之间的分工协作得以更好的进行。因为,“被折叠”起来的内在部分,已经不是双方协作时需要了解的「必须项」了。
对于开源技术,从人性的角度来,有现成的“轮子”摆在那,为啥还要自己苦哈哈的重复造“轮子”呢?有捷径不走,不是傻么。
是的没错,这很符合人之常情。而且这也是我们整个社会的发展速度越来越快的底层逻辑。
把「认知」也折叠了
但是任何事物皆有两面性,“折叠”有什么负面的作用呢?
最容易察觉的一点就是一个事物变得更加的不容易真正了解,这也意味着我们的「认知」也被折叠了。也就是我今天要说的主题——「认知折叠」。
举个例子。
第一台电子计算机被发明于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不错,特别是每个条目下面的一些引用地址,里面这些都是相对高权威的信息源。
不同的专业领域各自领域内的权威渠道,这个靠自己平时的收集。但是官方公开的信息总是应该优先考虑的,而不是第一选择总是搜索引擎。
还有一点,如果可以,尽量使用英文搜索。为什么?看下整个互联网中的内容语言比例。
▲数据来自w3techs.com
可以看到,英文内容占据着绝对优势,并且占比还在持续走高。
如果你也有什么其它的有效办法,欢迎留言分享给大家。
程序员就是“折叠者”
其实我们做程序员的,天然处在一个“折叠者”角色上。我们每天在做着各种「封装」。
但是我见过了太多程序员,遇到问题只会百度的。
先不论被广为吐槽的百度内容质量如何,就这单一的信息获取方式实在是对不起程序员这个岗位应有的价值。
对每个人来说,面对被高度折叠的社会,我们大致分布在四个阶段中,逐步前进。
第一个阶段,完全不知道自己所处的是一个“折叠”后的环境。
第二个阶段,直到遇到“障碍物”走不过去了,才意识到“折叠”的存在,被动的去想办法“展开”。
第三个阶段,带着“展开”的心,同时享受着折叠的便利。
第四个阶段,本身就是“折叠者”,能大道至简那种。
用吴伯凡老师的一句话来形容第四个阶段最贴切不过。
最高的认知不是为了“展示你的认知”,而恰恰是“将这种认知最大化隐藏”,直接呈现为一个非常平易、有亲和力的日常友好化状态。
这既是做产品的逻辑,也是做人的逻辑。
——吴伯凡
总结
好了,我们总结一下。
这篇Z哥和你阐述了我们所处的环境相比更早些年来说,是一个更大程度被折叠的社会。
但是不要忽视了折叠在带来便利的同时,把我们的认知也折叠了。
破局的办法自然就是想办法“展开”被折叠的认知。重要的三点是:
-
让自己的心态多一分敬畏。
-
可以不了解how,但是得了解why。
-
获取高质量的外部信息帮助“展开”。
希望对你有所启发,成为一个不被折叠所困的折叠者。
推荐阅读:
作者:Zachary
出处:https://zacharyfan.com/archives/965.html
如果你喜欢这篇文章,可以点一下左下角的「推荐」。
这样可以给我一点反馈。: )
谢谢你的举手之劳。
▶关于作者:张帆(Zachary,个人微信号:Zachary-ZF)。坚持用心打磨每一篇高质量原创。欢迎扫描下方的二维码~。
如果你是初级程序员,想提升但不知道如何下手。又或者做程序员多年,陷入了一些瓶颈想拓宽一下视野。欢迎关注我的公众号「跨界架构师」,回复「技术」,送你一份我长期收集和整理的思维导图。
如果你是运营,面对不断变化的市场束手无策。又或者想了解主流的运营策略,以丰富自己的“仓库”。欢迎关注我的公众号「跨界架构师」,回复「运营」,送你一份我长期收集和整理的思维导图。
定期发表原创内容:架构设计丨分布式系统丨产品丨运营丨一些深度思考。
相关推荐
对于游戏爱好者来说,GitHub 上有许多有趣的开源游戏项目,能够让我们深入了解游戏开发的过程,甚至参与其中。以下是五个涵盖 C++, Java, JavaScript 和 Rust 语言的开源游戏项目,它们不仅好玩,还能帮助我们提升...
【标题】"github 开源中国项目" 开源中国社区是国内知名的开源技术平台,它汇集了大量优秀的开源项目,包括各种编程语言的库、框架、工具等。GitHub,则是全球最大的开源代码托管平台,吸引了无数开发者分享、协作...
Below 可以在GitHub上找到的开源游戏和游戏相关项目的列表
这个压缩包文件"收集GitHub上的Flutter开源项目源码_2021_03_20.zip"显然包含了2021年3月20日时,GitHub上的一些Flutter开源项目的源代码。这些源码对于开发者来说是极其宝贵的资源,可以用来学习、参考和实践...
Github Android客户端源代码,导入后Eclipse后可直接编译运行。是开源学习的好东西。
【Qt开源框架与资源】 Qt 是一个跨平台的C++应用程序开发框架,广泛应用于桌面、移动设备和嵌入式系统的用户界面设计。它提供了一整套的库,包括图形渲染、网络通信、数据库访问等功能,使得开发者能够创建功能丰富...
GitHub Desktop是由GitHub开发的完全免费且开源的可自定义的基于Electron的Git客户端应用程序,它允许你与GitHub和其他Git平台(包括Bitbucket和GitLab)进行交互。 它的特点包括漂亮的分区方法,可以轻松地检查带有...
GitHub上最火的40个Android开源项目源码,筛选了下,主要是把可以加到我们项目中的下了下来,这里有40个项目的描述,以及12个项目的源码,省的各位童鞋重复下载了,当然如果有童鞋需要其他的项目,我这里也给出了...
教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你如何用Github找开源项目(保姆级教程)教你...
trumptracker.github.io网站开源代码
gitHub是全球大型的开源社区之一,它提供了一个线上的代码托管服务,所以很多开源代码都会被托管到gitHub上。如果作为新时代的码农不知道这个就相当low了。 如果我们只是需要浏览或者下载源码的话,是不需要注册账户的...
前端开源库-github-basicGitHub基本的基本HTTPS接口到GitHub
后端接口是Github大神Binaryify的开源项目(项目地址:httpsgithub.co_uni-app-cloud-music
Github模板 开源项目的一些基本模板 内容 自述文件 帮助您告诉其他人您的项目为何有用,他们可以如何使用您的项目以及如何使用它。 执照 为了使您的存储库真正是开源的,您需要对其进行许可,以便其他人可以自由使用...
【标题】:GitHub仓库数据源的开源论坛客户端基于Flutter框架 这款开源论坛客户端的独特之处在于它利用了GitHub仓库作为其核心的数据源,提供了一个全新的交流平台。Flutter框架的使用为这款应用带来了诸多优势,...
github 开源贡献指南中文版本
前几天一国外友人InfernoPlus竟然将吃鸡和超级玛丽相结合,自制一款网页游戏《Mario Royale》又名《超级马里奥大逃杀》,很好的诠释了万物皆可大逃杀。 参考网站见:...
开发者工具是提高效率的关键,GitHub上不仅有各种代码编辑器、版本控制工具(如Git)、自动化构建工具,还有代码审查、测试、部署等各个开发阶段的工具。例如,VS Code、IntelliJ IDEA、GitKraken等都是广受欢迎的...
4. "104个Github上火爆项目开源源码":这部分资源提供了实际项目的源代码,是学习实际开发技巧、了解最佳实践和最新技术趋势的绝佳途径。通过研究这些开源项目,开发者可以学习如何组织代码,实现复杂功能,以及如何...
自己编写的GitHub上的SlindingMenu开源控件用法实例(工程文件),另有ListView作为侧滑菜单内容,以及欢迎页面的设定。 求5分好评,谢谢! 注:压缩文件是.7z格式 解压后,有两个文件夹,SlindingMenu是Library,...