算法工程师从零开始学java
Java学习
0 概述
作为一名算法工程师,一般的的工作流程是:
建模完成后,会得到一个模型文件或者算法逻辑。而算法的上线则依赖于服务端开发工程师,需要他们按照算法工程师的开发文档进行二次开发。
这种工作模式存在很多的缺陷:
- 增加沟通成本。算法工程师需要写技术方案、与服务端工程师讨论可行性、开技术评审会议,需要编写完整的技术文档供服务端工程师参照开发。
- 难以保证开发质量。服务端开发工程师会兼容开发其他项目,虽然上线前会对当前模型的结果进行验收,但难以保证上线时不受其他逻辑的影响。算法工程师以为自己开发的模型已经上线,实际上线上并没有生效或者还存在其他干扰逻辑。
- 各自为政,不能兼容考虑开发量。各自为政,每个人都只想将自己负责的工作做好。因此大部分算法工程师在做算法的时候,恨不得所有的准备工作、所有的特征处理过程都是由服务端完成;而服务端开发则会认为,我只要知道输入是什么,在调用一下模型文件,就可以得到输出了,所有的准备工作、特征处理过程都应该由算法工程师完成。实际上有些工作适合模型去做,有些工作适合服务端做,两者是互相交叉进行的。
- 开发链路变长,降低算法迭代效率。算法工程师完成模型后,还需要依赖服务端工程师的排期,并不是无缝衔接。且开发过程中难免会遇到沟通不充分而导致返工,职责不明确而导致互相扯皮的情况。
当然,较大的公司可能对算法比较重视,配备了足够的算法和服务端工程师,且能力都比较高,这种情况会比较少见。但是在普通或小型的公司,往往人力资源是不够的,且很多人是多线开发,上述4种情况是经常会遇到的。为了提高开发效率,准备从今天开始以算法工程师的视角从零开始学习java开发。
2020-01-09开始系统学习java
1. java技能图谱
学习之前先根据先行者的经验对Java的技能进行一个全面的整理