进入任何一个新的语言,除了掌握最基本的语言设计哲学,语法特性外。新语言的基础类库的掌握是十分重要的。学习任何东西,比较高明的做法就是掌握其机理,精研其基础,重点在于质,而非量,这从多年的学习经验中都可以得到验证。越是基础的东西,越是本质,越能从中举一反三,从而达到学习的事半功倍的效果。
计算机编程语言如此之多,学习任何语言,只要稍微用来做点实用的东西,都得使用最基本的输入输出类库。而输入输出,则包含了最基本的终端输入输出,本地文件输入输出,本地进程间通信(LPC),远程进程间通信(RPC)这些。所以这些是最基础的,一定要吃透的。实际上大部分时候我们都在编写输入输出代码。
做好一个应用程序,如果不能持续性有Kill级别的简洁但强大的功能,则需要持续性在用户体验上做优化。所谓用户体验也就是细节。一旦开始做细节,则必须要考虑纷繁复杂的分支。编程的时候尽量在满足现有功能的同时为可能出现的分支留下具有开放封闭特性的空间是非常重要的,否则将陷入反复的添加分支,重构的状态,如此则编程变得乏味。因为已经失去了编程最核心的批处理思维,而变成一个个孤立的用例。
编程的时候,大部分人总是潜意识里假设程序的假设条件是满足的,程序会按自己预期去跑。但事与愿违,根本上,我们必须假设程序的假设条件总是会失败,对于失败的防护是必不可少的,很大程度上,程序的健壮与否,质量如何,在于防错系统的构建上。
编程不应该只会一个端,无论是客户端,服务端,pc还是移动,都应该要会,只有全线贯通才能自如的寻找最短路径,跳出盒子的视野去做事。以此延伸,做一个产品应该在设计、实现、美术、测试、发布、运营上全线贯通,才能自如地去构建产品、团队、并创造价值。在周爱民《大道至简》这本书里亦有提到这点。