学编程之前就听说--不必纠结语言。经过一段学习有所积累之后愈发觉得如此:编程最不重要的就是语言,更多的还是四大件基础和工程能力,至于具体用啥语言,更多要取决于场景。 本人有点C++基础,再看Java的语法确实轻车熟路。何止是相通,这不完全是一家人吗?
如此相似是因为二者同为OOP,面向对象的模式。 入门语言无外乎搞清楚几件事:
基础语法
面向对象
核心类库
基础语法的通用性最强,所有编程语言都离不开这些思想和相关用法的实现,不过是在写法上略有出入: 基本数据类型、运算符、输入输出、流程控制、函数、数组、指针、泛型;
面向对象也是一种设计思想,许多语言都支持。核心内容无外乎:类和对象;封装、继承、多态;
再进一步就是一些简单的类库,比较常用的是 数据结构容器、文件流与IO、异常、Object等。
以上的便是Java的大门,这些只是一门语言的冰山一脚但同时也是所有编程语言的的基石。对以上内容和思想有有所了解并熟悉相关语法,已经称得上入门。
再想精进一步想拿下各种核心类库、新特性。这些知识便不局限于语言本身,而是对计算机内功--四大件基础的理解和运用。比如与操作系统相关的多线程,网络相关的网络编程,数据库操作等。
把应用层东西玩明白,可以试着独立完成项目。Java的生态也很丰富,最常见的是服务器后端。但注意编程语言本身从不局限于某些领域。Java同样可以做网络爬虫(网络编程)、桌面、移动端应用程序(媒体、文件和图形绘制)、游戏(数值、逻辑和美术)。生态是否丰富完善决定了我们做某一件事的难以程度--一键启动还是从铁矿开始造火箭。
若想继续研究,就要深入底层,java的运行机制,核心类的实现方式等。最终是对编译原理和计算机基础的理解。
学习嘛,本就要讲究一个循序渐进。先画一张地图,明白知识的相互联和逻辑,看到自己所处的位置,使用合适的学习材料--并阶段性检验自己的学习成果。
做规划总是简单的,但其中的任何一个点拿出来多都无数的细节和用法。我想写一些路标性阶段性的规划、搭配一些资料、自检项目。既作为学习记录,也便后来人参考。