出于不少缘由, 我在线下的生活其实挺无聊, 偶尔逛逛公园, 就这样了.
因此更多的时间我仍是在网上用文字和人打交道, 微博啦, Twitter 啦,
固然如今图片渐渐多了起来, 从买了 Pad 之后, 视频也多了起来.
之前的我, 相对于同龄人来讲也是苍白的, 苍白到再学校里只概念图书馆.
有了电脑之后另说. 总之我生活的环境不是颇有文化底蕴跟层次感的.
因此也不信教, 学校里教科学, 就信科学了, 即使没几乎研究物理和数学.前端
因此理解这个社会的角度, 有很大的差异. 我并非先认识世界的.
我是先认识到了网络怎样运做, 学了好久怎样写程序构造程序,
用程序能拼凑出一个比较复杂的前端的应用, 只是我后端很粗浅,
但大体上我逐渐在理解从 CPU 内存到上层 MVC 架构, 中间各类套路.
因此我会以为世界就是一个机器, 别人说世界是模拟的, 我也很好接受.
全部一切都基于最基础的逻辑规律演化而成, 我也还能接受.
这感受就像看着浩瀚的网络, 说这是人类写的, 或者说是机器运行的, 都同样.程序员
然而人类相比计算机来讲, 虽然精致, 但也缺失了不少不少东西,
好比颇有趣的例子, 好屡次微博上, 设置内部分享, 有人聊递归作事情的问题,
由于递归太厉害, 原来问题的重点反而没有优先搞定, 钻进了牛角尖里.
计算机也有这个问题的, 会被分配到一个任务, 而后执行, 分红更多任务.
可是, 计算机是不一样的, 人们设计了算法, 任务不会一直占用资源,
一段时间后, 任务会挂起, 而后分配给其余任务运行, 而后再回来,
也就是说, 当计算机存在问题, 咱们会涉及更优异的算法去解决,
当人脑当中存在问题的时候, 咱们每每机关用尽, 只能期望人们自律.算法
一样知识的传播也是一个问题, 难题, 困扰人类从最初到如今.
咱们都知道计算机拷贝数据很快, 就是下载程序下载数据嘛,
但是好比说要教另外一我的下围棋, 哪有那么简单, 并且怎么也快不起来.
人类大脑存储知识的结构并不见得优异, 会模糊, 会遗忘,
从前也许不会以为怎么差, 可是如今被计算机对比着, 就是愈来愈差了.
咱们拿着本身的特征跟计算机去作对比, 望洋兴叹, 原来还能这样!
一个争强好胜的人, 确定是不乐意本身充当这样一个愚蠢的角色的.编程
再说协做这个事情, 计算机也有一些模型, 好比 Actor 和 CSP,
当不一样的进程之间存在数据的依赖阻塞了任务, 如何能高效,
计算机当中设计了信箱/管道/队列, 多种多样的数据结构,
以便一个进程能停下, 同时把任务可靠地传递给下一个工做流程,
而不一样的进程将数据自己做为协议和接口, 明确接下来的任务,
就这样上千个程序链接在一块儿, 就像自动化工厂里的机器人.
而人类能作到这样的效率么, 我在网上可没有见过这样的例子.后端
在这同时, 机器逐渐成为了人们生活当中必不可少的组成部分,
电话电视交通工具这样的传输媒介自不用说, 特别是互联网,
当微博上出现一个热点话题的时候, 每每就开始了病毒式传播的过程,
一我的就像是链接在互联网上的一台肉鸡, 天然而然地被感染,
或者准确说来是一个新闻事件, 每一个人都会下载下来做为本身的谈资.
对, 我想说就像是一台机器同样, 只不过这台机器有着不少的奇怪现象.
可是想象一下, 就像 Google 期待的那样, 人们不要思考有 Google 就行了,
把机器当作一个大脑, 人就是一个缓存, 这难道不是极可能的一种将来吗?缓存
我想说的是, 人就像是机器, 或者也很像咱们本身写出来的程序,
只是人类更加复杂, 复杂到本身没法理解, 也就是一台复杂到没法理解的机器,
可是那些基本的规则它依然遵照, 只是说有时候呈现出一些随机性罢了,
好比说依赖关系, 依然存在吧, 一个新想法会依赖已有知识, 确定吧,
几乎没有事情能脱离其缘由而出现, 就算是人们的创意或者灵感,
只是这么多年了咱们以为是人类的伟大创造, 心理上不以为是机械的规则,
并且, 这些机器进一步组成更大的尺度上的机器, 就像是社会学现象同样.
到了这里也许人们看待问题的角度都会有差异, 但我这样说, 就像是集群那样.网络
好比一个技术社区当中的信息流动, 信息来源, 信息传递者, 受众,
每一个单元, 会被创造着尽量传播和散开, 目标是能被接收到,
受众, 或者说小白开发者, 在实际遇到技术问题须要信息时, 努力会去寻找,
无论他是阅读博客, 看微博, 刷 Google, 怎样获取的信息, 最终获取了,
而传递者在其中而找到属于本身的位置. 我想说的是, 整个就像是程序,
最终的开发者, 就像是求值器, 而获取信息就像是惰性计算,
惰性计算最终会分解到单元, 或者数据源头, 给出一个答案, 而后传播,
而这中间为了性能, 也会作严格求值, 提早提供好数据, 以便快速有答案.数据结构
当一个社区的运转开始启动以后, 就像是公司或者国家, 分化出不一样的角色的须要,
有的人生产知识, 有的人传播, 有的人消费知识从而创造其余领域的价值,
并且越是为了效率, 这种分工愈加明确, 就像在程序里拆分文件似的,
其实不拆分文件也无所谓, 机器也能运行, 可是拆分文件开发效率更高,
除了文件, 还要拆分出各类不一样的架构分层, 还要作隔离和防御, 甚至优化,
本来或许只是觉得学一门技术作点小事, 但事情就不是那么简单,
大量同时进行的任务, 须要管理, 须要肯定智能, 须要约定和规章等等.
它慢慢就变成了像是机器同样运转, 每一个人要充当其中的几个齿轮或者螺丝钉.架构
而一个技术社区到这种程度, 怎样的规划, 就和写程序设计架构有点类似了,
要弄明白设置怎样的结构, 为了会遇到怎样的场景, 而后被迫进行怎样的演化,
因而要优先作好取舍, 尽可能保证变化来临时能坚持住怎样的架构模式,
再就是部署实施具体的代码和方案, 开始运行, 一点点排除掉 bug.
这大概不是问题的所有, 可是从设计程序的角度去思考, 是天然而然的一种可能,
全部的人, 就像是数据, 函数, 甚至进程, 他们会相互做用, 但存在规律,
而基于底层规律足够的可靠性, 咱们一层一层建造出高楼大厦.
同时, 为了提升效率, 咱们不得不去认识规律, 尊重规律, 甚至滥用规律.函数
从另外一个角度也反映出来, 即使作程序员, 也不是擅长写代码这一件事就够了,
若是一生只是写代码, 也许. 可是要承载做为社区当中不一样的角色, 还要不少,
好比前面说的信息来源, 首先须要有生产信息的能力, 同时保证信息的可靠性,
而其基础, 一方面是研究领域早先的知识积累, 另外一方面是实践的反馈,
基于这些开发打磨好信息以后, 还要适当地发散出信息, 一遍准确无误,
而后是传递者对信息进行解读, 衍生, 以便可以更加普遍地覆盖到更多人.
整个过程, 标准化, 文档写做, 站点设计, 渠道推广, 都须要之外的技能.
甚至如今演讲仍是程序员圈子一个不大不小的技能点, 才能存成传播的可靠性.
记得罗振宇曾经给一个规律, 新的领域不适合文人开辟, 却须要文人来完善.
编程渐渐体现出来了, 起初只须要一些人探索, 但要普遍传播, 须要不少,
须要大量的语言, 文字, 甚至与演讲, 视频创做, 界面设计人员的协助.
也就是说, 为了把技术社区搞好, 咱们须要的不只仅是程序员,
那些具有表达, 表演, 各类技能的人, 会逐渐进入程序员社区这个无聊的地方,
整个社区须要各类各样的螺丝钉和齿轮, 极可能就会空缺大量这样的位置.
当具有了这些, 技术社区自己甚至能进入到更大的体量, 更不同的发展方式.
而这从国外的技术社区复杂的多样的形态当中, 能够看到一些样子.
把话题绕回来, 也就是说, 编程领域一些的知识点, 在具体生活也适用,复杂的程序的运转须要一些内在结构来支撑, 而人类的团体也一样是,当咱们吐槽人们作事缓慢, 亟需改进时, 就像咱们改进程序效率的作法相似,就像程序应该分化职能, 制定流水线同样, 真实的任务也有这样的构造.在生活当中, 因素复杂, 难以辨认. 然而程序做为一个模型, 却清晰得多.换一个角度说, 人们总结生活得出规律的作法, 跟分析代码得出结论差不太多.所以学好程序, 反过来让世界变得更美好, 这种想法仍是有点现实意义的.