实际上ne4j是一个庞大的知识体系。我在网上找到了一本书,将近是500多页,其实自己是内心非常崩溃的,因为我根本没有时间去把这500多页完全消化掉。其实我一直在想一个问题,我们学习一门技术的时候,难道真的要从头至尾看一本书吗?因为我觉得不知道我个人学习能力的问题,还是说所有人都跟我一样,当我面对一个几百页的书时候,这个书是一个理论性的东西,其实是很难坚持下去的。
能够让你坚持读完一本书,可能是一本小说或者是一个非工具性的书籍。就像如果是让你读一本字典,我相信很多人,不太可能从头至尾读完这本字典,除非那个自热性非常强,或者是超出一般常人的毅力,或者是他对文字本身特别感兴趣。等一些不能言明的原因,让他坚持读完一本工具型的书籍。
其实说这些并不是在为自己的惰性找原因,而是说我们学习一个东西的时候,它是一个反复学习的过程,我们必须得找到一个切入点,正确的切入这个知识体系,然后循序渐进的去学习。
就好像你打一个游戏,其实现在游戏中有一个叫刀塔游戏,实际上任何一个入门刀塔游戏的人可能瞬间就失去兴趣了,因为里面的东西太多,可能是你稍不注意就会被队友骂。而我作为这个游戏的老玩家,实际上我对新人是比较友善的,因为我知道我能够理解一个新人入门一个新的东西它的难度还是有的。
所以我想探寻一种真正能够更好的学习,一门技术的切入点。作为一个计算机科班出生的人员来说。我也学习了计算机这门科学中所有的知识,但是回头望去其实计算机行业的切入点实际上到现在这个社会非常成熟的阶段,到底是什么,我认为是一门语言。语言是计算机世界和人的连接点。其实你可以没有任何计算机的常识,但是你只要会了一门语言,那么你就跟计算机基本上算是有了一个非常深的联系。
为什么说定格说是一门语言,而不是说一个操作系统或者是其它技术一款软件。我只能说一门语言是一个编程人员和计算机世界的连接点,至于其他的一般用户可能和计算机的连接点就是一个微信或者是一部手机。而切换完角色之后,你把自己切换成一个程序员的话,那么你和计算机的连接点应该就是一门语言。
而ne4j和我们一般使用它的人的连接点到底是什么呢?就是语言。但是说只是语言吗,实际上不是还有很多东西,比如说你把这篇语言学会了,但是这个数据库如何部署发布如何排错如何,保证在一个非常大规模的并行环境中还能正常运行等一系列的问题,实际上都是语言所不关心的。
就好像一个人掌握了Java语言的全部语法的精髓,但是它依然无法部署好一个大规模的服务器。因为在互联网行业运营和部署这些东西本来就不是程序员做的。程序员只负责工具内容的核心开发等,包括他们的功能都有专门的测试人员来做。其实您可以把程序员理解为一个大厨,有很多后厨给他打下手,什么洗碗刷锅之类的都不会大厨亲自上手的,那么这么说话,可能别人会觉得我非常的狂妄。而大厨之上有厨师长,厨师长之上有经理酒店的老板等一系列的人员,这些都是在大厨等级之上的,但是我给你打了个比喻的意思就是,程序员之所以相当于一个大厨,是因为他在表达厨艺和很多东西的时候有一个承上启下的作用,如果是你的切入点是一个打下手的开始,那么你可能又无法,真正理解一个厨艺的精髓。虽然很多人说一个人成功都要从跑龙套开始,但是你要知道你干工作跑龙套也是在同时学习一个工作中的精髓部分。
而一门技术的核心精髓的部分其实就是语法。因为你一旦知道了语法,你就知道如何去控制一门技术,表达你想表达的东西。至于这门技术能否正常运行,在什么情况下需要什么样的机器配置,这些都是别人会帮助你整好的,你只要表达完整自己的思想,使用这门语言,那么你就拥有了自己的一片天地。
好了,我们整了很多的闲话,我们接下来说ne4j,的语法到底是什么样子?我对很多人说我是一个程序员的时候,别人默认就是你对人很认真的英文,实际上我的英文水平就是认识26个老英文字母以外,还有一些常规的音标拼写。我高考成绩英语考了71分,然后在大学的时候英语是一直不及格的状态。但是我始终相信我是一个合格的程序员。因为程序员所有的c语言Java之类的等语言,他们的所有的单词加一起不会超过100个,如果是一门语言的关键字超过了100个,那么这门计算机语言是相当复杂的。
或者是这100个之中有一些是非标准的关键字是一些非官方的定义。我们学习一门一门语言,如果是你要了解了100个单词中的关键意义以及它们之间的联系,那么你这门语言就学会了,实际上这听上去是一个非常轻松的事情,但是实际上也是非常难的,难的并不是在英文单词上,而是在于这背后的逻辑。
就好像你要练一门武功,那个武林宗师和你说这门武功就是要控制你的四肢,手脚在空间中运动。简简单单的一句话。就概括了武功的秘籍。但是我们如何控制自己的拳脚,能够有力量协调配合具有攻击性,他不会和你短时间内说明白。所以说任何简单的东西规则都是可以严明的,但是你真正有没有体悟到一个东西,它真的靠悟性,就是你能从头简单中悟出它的价值。
所以我们开始介绍这门语言的所有关键字以及它的意思,但是以后如何使用这这些关键字串联出你自己的武功秘籍,那就是你的事情,ne4j只提供给你这些基本的功能。
虽然别人说这个工具是一个非常强大的工具,但是你要记住工具永远无法完成你对于应用的构想,它只是帮助你完成你的构想。如果是你过于依赖这个工具,那么你就会陷入到被工具反向控制的一个状态。总而言之呢,我们要了解一个工具最为精简的那部分规则,然后灵活应用创建出自己强大的应用,这就是学习一门技术的关键。
我们这里介绍的也只能介绍这个工具的基本部分,然后呢,再去讲他们之间的逻辑配合。之所以写了这么多的原因,是因为我们要如何以快速有效的方式切入到一门技术的中央大厦之中。快速的将自己的思想想做的事情,用这个工具表达出来,我认为正在探索一种非常有效的方式。
这种方式的第1步就是将一门技术的语言层面的关键字一一列出,然后看它是什么意思。第2步想你要做什么事情?比如你要构建一款微信或者QQ,或者像淘宝之类的这样的应用,第3步就是将这些关键字去搭建你需要的那个应用的模型。
那么第1步来了,恩伊斯基的所有关键字到底是什么呢?如下:
这些关键字如果都能熟悉,那我们也是这道核心内容也就基本掌握了。但是这些关键字大致有二三十个,我们还是很难记,我们应该按照什么样的方式去熟悉它呢?接下来我们将会将这些关键字逐一分类。我们在接下来的文章中,分别把这些关键字分门别类的介绍一遍,关于这篇文章先结束到这里,其实主要讲的是我们应该按照什么样的一种方式去熟悉一下新的技术,我们是用这种方式来熟悉NE4J。