某算法工程知识结构以及学习资料

什么是算法工程? 进可攻算法, 退可守工程. 以工程思想为基础, 以项目理解为基础, 涉及算法.
程序员是软件工程流水线上的一个工人, 如果永远机械地完成任务, 安分地呆在流水线上, 所获得的知识渐进的死亡.
如何超越流水线的束缚, 令自己的人生有更大的价值? 跳出流水线的框架, 尝试从宏观上了解产品的流水线, 从一个更高的角度认识自己和世界.

技术栈:

  1. 在线: 微服务服务器 + Redis + MySql
  2. 离线: Hive + Kafka + Flink + MySql + Redis
  3. 模型: Python + deep & wide

学习资料:

  1. Flink: Streaming Systems, 基于Apache Flink的流处理
  2. Hadoop: Hadoop权威指南大数据的存储与分析第4版
  3. Hive: HIVE编程指南
  4. Java: Java核心技术(两卷), Java编程思想 --(第四版)
  5. Kafka: Kafka权威指南
  6. Mysql: SQL必知必会, 高性能MYSQL
  7. Python: Python数据科学手册
  8. Redis: REDIS设计与实现
  9. 算法: 周志华-机器学习, 统计学习方法(第2版)
  1. java知识 -- Java编程思想 --(第四版)
    重点:
    1. 第一章: 对象导论 -- 对于Java总体设计思路的概括
    2. 第九章: 接口 -- 对于Java隔离思想的核心体现 (需要依赖访问限制符相关知识)
    3. 第十章: 内部类 -- 相比于C++,一个很大的区别
    4. 第十二章: 通过异常处理错误 -- 本文强调的重要内容之一
    5. 第二十一章: 并发 -- Java的核心开发目的
  2. Flink相关工程实现 -- 基于Apache Flink的流处理
    由于书籍较短, 先选择不太需要看的内容:
    1. 第四章 设置Apache Flink开发环境 -- 跟随着书本走一遍就行, 不用细看
    2. 第九章 搭建Flink运行流式应用 -- 也只是看一眼, 不用太注意, 后期有实践机会, 到之后再看
    3. 第十章 Flink和流式应用运维 -- 也就是看一眼
    4. 第十一章 还有什么 -- 内容不多, 进行一下归纳就好
  3. 以 机器学习基础 + Deep&Wide 为核心, 学习周边的推荐算法 -- 周志华-机器学习 + Deep&Wide论文
    周志华的机器学习中主要看关于神经网络的, 加上前三章的基础和第10,11,12的学习理论, 对于其他模型需要知道是在干什么
    1. 第 1,2,3 章 -- 作为机器学习的基础知识
    2. 第 5 章 -- 对于神经网络重点学习
    3. 第 10,11,12 章 -- 作为机器学习理论工具进行学习
    4. 对于其他章节需要知道这些模型主要是在干什么
    5. 基于Deep&Wide论文, 实现一个简单的代码demo

机器学习学习路径: 总结与修改自吴恩达的知乎

  1. 拥有基本的数学以及编程基础

    (线性代数, 概率论, 数理统计, 多元函数求导, tensorflow)

  2. 广泛地基于应用场景学习机器学习以及深度学习相关的知识

    (Machine Learning, CS231n, 周志华机器学习, 学习的同时基于小数据集进行实验)

  3. 根据自己的职业目标选择有价值的项目与团队, 建立关系网, 并反复实践

    (工程项目, 天池数据实战)

  4. 保持自律的生活, 不断再机器学习的道路上提高自己

    (对于新的算法, 新的思路保持自己认知的更新)

NLP领域的学习流程

  1. 在决定具体的任务方向之前通过学习基础知识 + 经典模型进行基本能力的提升
    1. 基础知识 = 线性代数 + 概率论与统计 + 模型评估指标 (两个专业课加上西瓜书对应部分)
    2. 经典模型 = 线性分类 + SVM + 树模型 + 神经网络 (西瓜书+NLP偏向的内容)
  2. 在决定具体的任务发现之后, 学习该任务方向以及相关的任务方向的任务范式和技巧
  3. 在对于该领域有了一定了解之后进行实际应用, 通过手动调整参数使得模型更优, 通过人工智能平台进行比赛
posted @ 2022-04-28 10:23  NoobSir  阅读(31)  评论(0编辑  收藏  举报