第一部分 行业地图
选择:一线和次一线城市机会巨大
第二部分新手上路
1.入行前
正式入门语言:Java;
操作系统:Linux;
编程IDE:IntelliJ IDEA;
数据库设计工具;
编程框架(Spring Framework)
离散数学中的数理逻辑和集合论 (数学建模、图论、抽象代数、拓扑学、运筹学、博弈论(机器学习、AI的基础))
选择平台:去面向未来、技术驱动的公司
这家公司做的事情,要适应未来的发展
技术驱动、以技术文化为主导的公司
需求分析——>设计(技术调研、原型设计、架构设计等)——>编码——>测试
新人阶段:1.养成良好的工作习惯 2.培养自己的执行力
2.编码
代码规范、设计模式、架构模型、运维和开发的最佳实践
(1)编码规范
行业规范:《代码大全(第二版)》、《代码整洁之道》、《重构:改善既有代码的设计》、《程序员修炼之道:通向务实的最高境界》
(2)设计规范 (API接口规范、设计模式、架构规范)
《设计模式:可复用面向对象软件的基础》、《架构整洁之道》、《微服务设计》、《数据密集型应用系统设计》、《Web API的设计与开发》
(3)生产规范(一套标准化的上线流程)
《人月神话》、《SRE:Google运维解密》、《持续交付:发布可靠软件的系统方法》
优质代码:
(1)初级:可读
命名有意义;布局清晰;注释明确……
(2)中级:可扩展
可维护(面向对象和函数式的设计模式,比如状态机、声明式编程、SOLID、IoC/DIP)
(3)高级:可重用
代码可以用在很多场景(轮子可以用在马车、汽车、飞机上)
DSL、面向对象的设计模式、Web Service、”Codeless”
复杂度一般由业务逻辑、控制逻辑和数据逻辑组成,业务逻辑决定了复杂度的下限,控制逻辑决定了复杂度的上限。 分开è 解耦
设计模式、函数式编程、DSL、状态机、插件、依赖倒置和反转控制等
整洁代码:不是写出来的,而是读出来的(方便他人阅读)
代码注释:像说明书一样清晰(函数的功能以及如何使用它,example)
编程原则:
(1)避免重复原则(DRY, Don’t Repeat Yourself)
抽象成数学模型,数学建模;用一种方式解决多种问题
(2)单一职责原则
一个类或者模块应该只有一个职责(各司其职)
简单化、模块化、让你的组件不断复用
(3)高内聚、低耦合原则
内聚:一个模块内各个元素彼此结合的紧密程度
耦合:不同模块之间的依赖程度
让每一个模块做到独立,做到精益求精,同时把模块间的耦合降到最低,不会因为动了一个模块,而导致其他模块出现问题。(没有依赖就没有伤害)
(4)开闭原则
对修改是关闭的,对扩展是开放的。