首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >只要看完这些书,你就是个算法工程师啦!

只要看完这些书,你就是个算法工程师啦!

作者头像
TechFlow-承志
发布2022-08-26 18:53:57
发布2022-08-26 18:53:57
1K0
举报
文章被收录于专栏:TechFlowTechFlow

作者 | 梁唐

大家好,我是梁唐。

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

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

  • 语言基础
  • 算法与数据结构
  • 基本开发技能
  • 机器学习与深度学习
  • 大数据基础知识
  • 专业知识(论文、博客、实际经验)

我们就从这几个角度逐一来说。

语言基础

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

Python

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

推荐书籍:

Python cookbook

Python cookbook

fluent Python(流畅的Python)

fluent python(流畅Python)

C++

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

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

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

推荐书籍:

C++ Primer

C++ Primer中文版

effective STL

Effective STL中文版:50条有效使用STL的经验》

算法数据结构

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

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

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

推荐书籍:

编程之美

编程之美

剑指offer

剑指Offer

挑战程序设计竞赛

挑战程序设计竞赛

算法竞赛入门经典

算法竞赛入门经典(第2版)

基本开发技能

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

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

机器学习与深度学习

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

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

推荐书籍:

统计学习方法

统计学习方法

机器学习(周志华)

机器学习》(周志华)

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

机器学习实战》([法]奥雷利安·杰龙(Aurélien,Géron))【摘要书评试读】- 京东图书

机器学习实战

机器学习实战

动手学深度学习(pytorch版)

《动手学深度学习》

TensorFlow 官方文档

大数据基础知识

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

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

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

推荐书籍:

hadoop权威指南系列

hadoop权威指南

精通spark数据科学

精通Spark数据科学

利用Python进行数据分析

利用Python进行数据分析(原书第2版)

专业知识

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

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

这些领域相对来说都比较前沿,文献较多,但成体系的书籍很少。老梁没有接触过CV和知识图谱等领域,只能推荐几本我相对比较熟悉的书。

推荐书籍:

深度学习推荐系统

深度学习推荐系统

自然语言处理入门

自然语言处理入门

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

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

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

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

另外,这当中的内容老梁基本上都是自学的,其实也不只是我,据我所知大部分业内人士也一样是自学的。毕竟算法领域日新月异,每年都有新技术、新方法、新思路提出,整个产业都在飞速的迭代升级。想要跟上时代,跟上技术潮流就是要不断学习的,这是大势所趋。

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

加油!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 语言基础
    • Python
      • Python cookbook
    • fluent Python(流畅的Python)
    • C++
      • C++ Primer
      • effective STL
  • 算法数据结构
    • 编程之美
    • 剑指offer
    • 挑战程序设计竞赛
    • 算法竞赛入门经典
  • 基本开发技能
  • 机器学习与深度学习
    • 统计学习方法
    • 机器学习(周志华)
    • 机器学习实战(基于sklearn,keras和TensorFlow)
    • 机器学习实战
    • 动手学深度学习(pytorch版)
    • TensorFlow 官方文档
  • 大数据基础知识
    • hadoop权威指南系列
    • 精通spark数据科学
    • 利用Python进行数据分析
  • 专业知识
    • 深度学习推荐系统
    • 自然语言处理入门
    • 李飞飞 CS231(斯坦福公开课,大佬推荐)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档