向工匠看齐,不做低级搬砖工
工作是公司的,职业生涯是自己的。——《软技能》
-
一个优秀工程师和一个普通工程师的区别,不是满天飞的架构图,他的功底体现在所写的每一行代码上
-
尽管代码规范的价值在业内得到广泛认同,但实际上却总被无情地置于脑后收获一地鸡毛
-
国内软件规模化生产起步较早发展较好的阿里巴巴给出了国内编码规范的优秀实践——《码出高效》与《Java开发手册》
-
借助这两本优秀的行业作品,阐述下个人对基础知识与企业软件规范的一二理解
建立知识体系,码出高效
码出高效的意义
-
它的贡献可以从三个方面来看:
-
1.借助阿里巴巴商业体系的成功推行软件影响力,给出了一个事实上的Java软件开发行业编码参考标准
-
2.给出了企业级软件开发参考规范,认可规范也是生产力,个性化更多的体现在系统架构和算法效率的提升上,这样才有助于整体产出减少内耗,而往往很多程序员将精力放在了琐碎事情的争论上
-
3.对每个刚进入或即将进入这个行业的年轻人提供了一套相对完善的Java基础知识体系框架
-
为什么说是“参考”,首先这是总结自一个软件厂商的实践经验,而国内的软件成熟度并不足以媲美发展更早开源运动更红火的欧美,还没法做到一个协会、组织或厂商能够推广一个强制标准,也是事实上的标准,行业认可度是全社会进步的结果,这是行业发展曲线限制的
-
再者,这是从一个主要面向电商消费者业务的软件厂商而来,部分内容带有比较鲜明的行业属性,却不一定覆盖得了所有java应用软件,而且有些内容也有待商榷
-
但作为先行者,不论是码出高效还是开发手册,都有一定的借鉴价值
Java基础知识体系框架
-
作为Java应用软件开发工程师来说,这张图囊括了Java基础知识的核心模块,参照这张图可以建立起一个Java基础知识体系框架
-
不论是刚接触企业应用软件开发的校招生,还是工作三五年的老鸟,这些都是专业面试考察的核心内容
-
这就是做一个优秀Java程序员的基本盘,以后的事情无外乎就是再向深度和周边扩展
-
以下,对阿里出品的《码出高效》这本书做了拆解并做了脑图笔记
计算机基础
-
计算机基础是迈向计算机行业的迭代0
-
从事软件开发行业的同学一样需要学习这部分知识,也就是当下计算机专业大学本科阶段的核心课程,包括操作系统、计算机网络、数据结构与算法、计算机组成原理、信息安全等
-
这些构建起了上层应用所需的底层框架与核心素养,是遴选优秀程序员的关键能力,也是培训机构速成不了的
面向对象
-
面向对象思想的解读可以参见上一篇从三个特性重新思考面向对象
-
作为面向对象的语言集大成者,Java关于面向对象的设计早已成为业界标杆
-
书中对于这部分还介绍了语言相关知识,同样值得一读,然而很多程序员使用着面向对象语言,并没有写出面向对象程序
数据结构与集合
-
数据结构是软件开发的核心,掌握数据结构是深入理解语言的提供基础数据类型的必经之路
-
Java语言本身提供了丰富的集合类型与操作范式,理解设计体系、深入底层实现、横向比较适用场景,是写出高性能程序的关键
JVM
- 与许多跨平台语言类似,虚拟机是深入理解一门语言成为高级工程师的敲门砖
- 在这里,可以看到语言的运行机制,有助于全面系统的掌握一门语言
并发与多线程
验证闭环,阿里云认证
-
最后,可以花点时间花点小钱(有免费活动时期)做个在线测试,验证下学习效果——更多的是对如何设计编码规约以及夯实基础知识框架
-
阿里云提供了完备的工程师认证体系,就有阿里巴巴编码规范(Java)认证,参见认证地址
-
通过之后会收到一个这样的证书(有效期两年),给自己一个漂亮的句号