文章目录

  • 前言
  • 一、语言基础
    • Python
    • C++
    • 算法数据结构
  • 二. 基本开发技能
  • 三.机器学习与深度学习
  • 四.大数据基础知识
  • 五.专业知识

前言

大家好,我是晓云。

前两天有同学私信我,让我推荐一下算法工程师入门书单。今天就和大家抛砖引玉聊聊这个话题。

对于一个算法工程师来说,能力一般可以拆解成几个部分:

语言基础
算法与数据结构
基本开发技能
机器学习与深度学习
大数据基础知识
专业知识(论文、博客、实际经验)
我们就从这几个角度逐一来说。


一、语言基础

推荐配置:Python、C++、Java(或Go),重要性依次递减。

Python

Python毫无疑问是必须的,毕竟现在绝大多数的算法模型都是用Python搭建的。那么基本的Python编程能力肯定是要有的,但一般也不会涉及过多的Python技能。像是什么装饰器、元类这些都很少用到,主要还是停留在对于Python的基础语法以及常用工具的应用层面,并且面试过程当中一般也不会进行Python相关的考察。

推荐书籍:
Python cookbook

fluent Python(流畅的Python)

C++

C++主要用在面试时的算法题和白板编程,目前来说,在刷题领域C++还是主流的刷题语言。个人感觉要比Java和Python更加适合一些。

除此之外,在搜索算法等一些领域也会使用到C++,因此基本的C++开发能力还是必须的。

既然要使用C++进行刷题,除了C++基本语法之外,同样还需要学会使用STL的基本用法,可以大大简化刷题时的编码。

推荐书籍:
C++ Primer

effective STL

算法数据结构

这几年各大公司的面试风格越来越向外企靠拢,更加看重算法和数据结构。夸夸其谈说得天花乱坠,题没写出来也只能凉凉。

但是说到算法和数据结构,很多人第一想到的就是《算法导论》和《算法》这种经典的大部头书。老实讲这些书并不是质量不好,而是太过偏理论,实际看完可能理论学了一大堆,但是具体算法应该怎么用,代码应该怎么写可能还是懵的。而且太过理论的书老实讲读起来也挺费劲。

所以这方面还是更推荐一些偏实际应用和实战的书,主要也是一些竞赛的入门书籍。

推荐书籍:
编程之美

剑指offer

挑战程序设计竞赛

算法竞赛入门经典

二. 基本开发技能

开发技能和书籍其实关系不大,主要在于一些实战训练。

可以适当做一些小项目锻炼一下工程能力,比如开发一个网站,做一个小app等等。

三.机器学习与深度学习

机器学习与深度学习是算法工程师的立身之本,也是面试里的大头。

这里面的东西很多,既有理论也有实战,因此想要全部吃透是一个大工程,绝不是随随便便看两本书就可以搞定的。书籍只能作为入门学习的资料,除了读书之外一些实战也必不可少。

推荐书籍:

统计学习方法

机器学习(周志华)

机器学习实战(基于sklearn,keras和TensorFlow)

机器学习实战

动手学深度学习(pytorch版)

TensorFlow 官方文档

四.大数据基础知识

算法工程师要做算法模型,离不开海量数据,自然也就离不开大数据相关的基础知识。

由于只是使用方,而不是开发和维护方,所以也并不需要太过深入的知识储备。只需要对于大数据的各个系统有一定的认知,知道原理,能够使用就可以了。

这里推荐买的也是一些入门读物。

推荐书籍:

hadoop权威指南系列

精通spark数据科学

利用Python进行数据分析

五.专业知识

这部分主要基于想要从事的算法方向来决定。

比如说目前算法常规可以分成:搜广推(搜索、广告、推荐)、CV(计算机视觉)、NLP(自然语言处理)、知识图谱等几个领域。

这些领域相对来说都比较前沿,文献较多,但成体系的书籍很少。

推荐书籍:

深度学习推荐系统

自然语言处理入门

李飞飞 CS231(斯坦福公开课,大佬推荐)

不知道大家看到这么多书有什么感觉,估计看着就觉得头大,怎么这么多内容。

我在整理的时候看着也有点恐怖,但真正当你进入学习的过程,其实倒也还好,没有这么痛苦。很多事情只是开头艰难,入门了之后会越来越快。比如机器学习的基础打扎实了再学深度模型,不说轻轻松松,但用到的思路和方法论都是完全相通的。

中间可能也会遇到许多困难,但整体上来说理解起来要容易很多。再比如有了一些开发经验之后再去研究大数据相关的知识,尤其是再结合一些分布式系统的原理和理论的话,你会发现大数据、分布式、后端、 算法,这一套闭环当中很多内容是相通的。

另外,学习是一个持续且长久的过程,毕竟算法领域日新月异,每年都有新技术、新方法、新思路提出,整个产业都在飞速的迭代升级。想要跟上时代,跟上技术潮流就是要不断学习的,这是大势所趋。

所以不要畏惧,也不要心虚,只有自己最了解自己,也只有自己是自己最好的老师,勇敢地去自学吧。

加油!

算法工程师书籍推荐——典藏版相关推荐

  1. 从零实现来理解机器学习算法:书籍推荐及障碍的克服

     从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...

  2. python算法工程师书籍_在自学的情况下如何成为一名算法工程师?

    先尝试回答题主的问题:1.在两年的时间里是否能够通过自学达到算法工程师的要求? 答案:两年时间应该是比较充足的,足以在学校里面看完周志华的<机器学习>和深度学习的花书或者其他的机器学习类书 ...

  3. python算法工程师书籍_算法工程师路线图(经验浓缩,纯干货!)

    说起算法(Algorithm),需要值得注意的是,数据结构与算法,机器学习算法都可简称为算法,但两者是完全不同的.数据结构与算法是计算机科学中的一门基础课程,主要内容是关于如何设计计算机程序,使得程序 ...

  4. 十年研发经验嵌入式工程师书籍推荐

    从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步. 为什么选择学习嵌入式? 嵌入式系统无疑是当前最热门最有发展前途的IT应用 ...

  5. 岗位推荐 | 腾讯音乐娱乐招聘推荐算法工程师、推荐后台工程师

    PaperWeekly 致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁. 如果你需要我们来帮助你推广实习机会或全职岗位,请添加微信号「pwbot02」. 腾讯音乐娱 ...

  6. 计算机视觉算法实战书籍推荐_岗位内推 | 字节跳动招聘NLP、计算机视觉、推荐算法实习生...

    PaperWeekly 致力于推荐最棒的工作机会,精准地为其找到最佳求职者,做连接优质企业和优质人才的桥梁.如果你需要我们帮助你发布实习或全职岗位,请添加微信号「pwbot02」. NLP算法实习生 ...

  7. python算法工程师书籍_我是如何成为算法工程师的,超详细的学习路线

    一.前言 各位十一过得如何? 假期,我回了趟老家,文章停更了几天. 写文章以来,被问到最多的问题就是「算法的学习路线」. 今天,它来了. 我会带着大家看看,我们需要学些啥,利用这个假期,我甚至还收集整 ...

  8. 基于协同过滤算法的书籍推荐 毕业设计-附源码101555

    摘  要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准 ...

  9. (附源码)python+mysql+基于协同过滤算法的书籍推荐 毕业设计101555

    摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确 ...

  10. 微信红包业务,为什么采用轮询算法?(荣耀典藏版)

    目录 前言 1.基本的负载算法 1.1.轮询算法 1.2.随机算法 1.3.权重算法 2.平滑加权轮询算法 3.一致性哈希算法 3.1.通过其他分发算法实现缓存 3.2.致性哈希核心-哈希环 3.3. ...

最新文章

  1. 运营书籍:新媒体运营实战笔记
  2. VMware 虚拟化编程(7) — VixDiskLib 虚拟磁盘库详解之三
  3. Node.js 官方文档中文版
  4. css中的em 简单教程 -- 转
  5. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python函数)
  6. latex导数_Latex:导数【高中常用公式】
  7. 围棋棋盘怎么编程python_围_围是什么意思_围字怎么读_围的含义_围字组词-新东方在线字典...
  8. 十字路口待转区什么用_都知道“左转待转区”,但到底该怎么走?老司机给你一次讲清楚...
  9. 深入浅出InfoPath——如何在项目中引用GAC中的dll文件
  10. Filter过滤器处理JSP中文乱码
  11. MyBatis实现模糊查询的几种方式
  12. 初学css常用属性整理
  13. opencv 运动检测 二帧差法
  14. Metasploit之——基本后渗透命令
  15. 微信Android热补丁方案Tinker
  16. Nginx的rewrite(地址重定向)剖析
  17. edm java_EDM推送
  18. Windows 系统debug级 进程调试工具 ntsd 详解
  19. 基于sklearn实现Bagging算法(python)
  20. ES6中的entries

热门文章

  1. Java入门级项目 汽车租赁系统
  2. treetable怎么带参数_treeTable的使用(ajax异步获取数据,动态渲染treeTable)
  3. 2020年CVTE的Web前端开发在线笔试题
  4. QTableview
  5. Java导出Excel(自定义格式)
  6. Ubuntu1804安装STM32CubeIDE出现的冲突
  7. 微信网页支付之H5支付
  8. 【181008】VC++九宫格拼图游戏源代码
  9. 用两个队列实现栈---用两个队列实现栈
  10. SpringCloud学习路线