阅读 1

编程和人生

语言的价值

很多初学者都会觉得学习一门语言时,掌握了其语法就相当于掌握了这门语言。其实,一门语言中最不重要的部分其实就是语法。

大部分语言的目的其实都包括:数据的增删改查、事件的响应和处理、网络的处理等。其中数据最终都是需要和底层的数据库进行交互,也就是系统的内存或者是程序的内存;事件的处理设计到如何和硬件进行交互并且封装这一部分的逻辑让用户无感知;网络的处理更是涉及到网络编程。上述所说的这些东西才是编程的根,而语法只是一种约定,说的极端一点,能看懂就行...

一门语言之所以诞生都是有其目的的,比如 OC 是为了 iOS 编程,更加高效的写出 iOS 平台上的 app;比如 jacascript 是为了浏览器编程,也就是 web 编程,是为了给静态页面提供动态支持且提供浏览器内置 Api 的支持。

一门语言具备什么样的功能,解决了什么问题,解决问题的思路和实现才是最重要的。比如 OC,苹果基于 OC 实现了 Foundation、UIKit等框架,如果你想使用这些 UI 框架,就必须使用 OC 来编程或者是自己重新实现一套。而其中不仅仅是 UI 的样式,更是涉及到事件的传递机制、控件的声明周期、app 的生命周期、runtime 的支持等等一系列的实现,而其 runtime 机制更是成为了这门语言的灵魂。

一门语言的价值和房子类似,房子的品质包括诸如施工质量、设计质量等达到一定基础量级之后就很难再对房子整体价值有更加直接的影响。更加重要的,也是人们更加看重的是周边的商业配套、教育资源、人文环境、物业的品质等。

语言也是一样,其最重要的是这门语言的配套。语言的配套最直接的体现就是 API的丰富程度。因为 API 无非包括系统 API和第三方 API,而系统API之所以能够提供出来,正是因为这门语言利用其未公开的一些代码实现了各种系统机制、框架设计来解决了某些痛点,这也就是这门语言所诞生的目的。所以,API就是一门语言的配套的最直接体现。

程序员的价值

但是尽管如此,这不代表我们程序员只需要会调用 API 就可以了,因为我们是工程师,工程师的定义是解决问题。

如果我们只知其然不知其所以然,那么我们就不具备创新的能力,遇到新的问题时,如果不明白我们所使用的工具的原理,我们是不具备融会贯通,举一反三的能力的,更不可能创造出更加贴合现实需要的工具。这样的程序员不能称之为工程师,只能是码农。

工程师的某一方面技术达到了很高的水平,其体现就是对这方面的底层有了更加深刻的理解,在这方面的业务上,具备了创新的能力。比如 IM 系统上,可以在原有的 MQTT 框架上优化出一个更适合自己公司业务的 MQTT 协议的实现,甚至是写出一个全新的。具备这样能力的人,肯定会对 socket 编程、TCD/IP等网络方面拥有很深刻和全面的知识体系。

初级是会用,中级是熟练,高级是某一方面的创新能力。

所以,高级工程师之于初级或者中级而言,拥有某一方面的创新能力很重要,其价值并不只是这一方面的深刻和全面的知识体系,还有如何获得并达到这样境界的方法和过程。举一反三,一通百通的原理就在于通过这个“一”来找到适合自己的学习方法和学习的技能。方法比如执行能力、找资料、人体记忆周期、主动训练、知识储备、根据知识储备来决定研究深度、未知知识体系/模块的暂时性类比、线圈学习模式...等等。学习的技能包括英文能力、阅读能力、资料的判断能力等。

对于程序员而言,很重要的是找到对应技术的官方文档,或者是高质量的文档或者社区,利用自己沉稳的心态、过硬的英文能力和阅读能力快速获取一手资料,然后进行练习,习得一项技能,然后总结和整合优秀的代码、设计方式。而这个过程是一个循环圈,由浅入深的,且适用于每一个环节。

就如 OC ,从一开始的语法的学习、UI 控件 API 的使用,再到熟悉使用控件之后对其原理和性能的理解和优化,再到控件的生命周期、渲染机制、事件的传递机制慢慢对整个 app 的实现和从0到1的开发过程有了一个较为深刻的理解之后,再专精于一个方向的研究。而以上所提及到的找文档、总结、阅读能力等都是始终贯穿整个过程的,不是说专精一个方向的研究就不需要找资料了,也不是说一个控件的API的官方文档就不需要好好阅读了,这是一个循环圈且贯穿始终,而且整个学习的过程本身也是对这些能力的强化。当走到了专精一个方向的研究,如果那些学习技能没有达到已经的深度,你的专精研究也只是这些学习技能的整体水平而已。就比如,你找的资料,你学习的是否能够沉住心,这些都直接决定你对这项技术的最终的研究深度,如果是英文资料,那你英文阅读能力也会很关键。

学习的本质

当你达到高级的级别,你的核心技能也绝对是高级的级别。当你处于初级级别,即使你的某些能力达到了高级的级别,因为你的其他方面的不足,也是无法完全发挥高级技能的作用的。比如,就算你有很好的查资料的能力,查到了很底层很详细的资料,但是你的知识储备没有达到,那么最终你也没有办法吸收这些资料的营养。这些东西都是一一配套,相互协作的,根本急不来,也不可能一蹴而就。学习目标的达成,最本质的意义是其相关技能的获得。当你越急于达到最后的结果,忽略了中间的学习过程,省去了对技能的磨炼和总结,即使你达到了最后的结果,但是你的所得,也仅仅只是那一个没有太大意义的结果。

李笑来老师说:学习学习再学习。我认为,第一个学习是动词,第二个是名词,第三个是动词,“再”是坚持。其意义是:学习如何学习,也就是掌握学习的技能,在掌握一项技能的过程中不断的由浅入深,不断学习,不断提升自身的学习技能和业务能力,并且一直持续这个过程。

所以,一通百通,只是在这个学习的过程中磨炼自己的心态,锤炼自己的学习技能,这才是一通百通的本质。学习的技能、学习的心态、基础知识的储备才是跟...

利用一张图来表示学习的过程吧:

旋涡

这和达里奥提出的债务周期其实差不多:大周期是由一个个相似的小周期组成的:

债务周期

人生

从这个角度来讲,其实人的本质也不过如此。你是否真的是一个牛逼的人,这需要你在一个方面取得成功。因为在这个取得成功的过程中,你获得了根本性的东西,比如沉得下心、执行力、判断力、做计划的方法、总结输出的方法、和自己相处的方法、时间的分配、计划外情况的处理、人际关系的处理等,这些东西是人的根,其作用并不是表现在某一个方面,而是整个人生的生命周期中的任何事。因为这个执行框架是你遇事后的第一条件反射。

关注下面的标签,发现更多相似文章
评论