0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样才算成为一名合格的算法工程师

工程师人生 来源:网络整理 作者:工程师吴畏 2018-10-16 11:08 次阅读

一,Q&A部分:

1.一个特征分析的例子。。。(听不懂)

2. 还是一个机器学习的例子,(听不懂)大致,降低复杂度。

3. 传统算法合格的标准,Leetcode(简单,中等毫无压力,hard难度有一定时间思考可以解决)

4. Machine Learning算法基础,数学基础(统计学,微积分,线性代数,离散数学)

5. 数据挖掘相关的竞赛

ACM没太大帮助,仅仅针对传统算法, 针对数据挖掘的竞赛:Kagle, KDD数据挖掘)

6. 算法工程师需要博士么?

live主只有本科学历,和基础知识。

(硕士比较有必要 因为面试结果好于本科,也就是认可度较高)

7. 高维空间xxx相关的问题(还是听不懂)

8. 基础烂的人,如何学习算法?

(花时间去补基础,锻炼自己独立学习独立解决问题的能力)

9. 数据挖掘要学spark?

Live主认为python足够。

10. 合格的算法工程师需要的数学基础?

后续另外一个部分介绍

11. 怎样练习算法?指传统的算法和数据结构

1)以模块化形式 针对训练。例如学习图轮,相对于刷图论相关的题目

学习动态规划,刷动态规划相关的题目。

(根据模块学习和训练)

2)leetcode 随机刷题。自己想方案来解决

(根据实际问题选择算法解决问题)

12. 有一定高数基础和机器学习的基础概念,如何实际训练

Kaggle 和KDD 训练,

尝试写爬虫自己挖掘数据进行研究。

13. 应用数学/统计专业如何转型算法

1)学习写代码。例如python

2)稳固统计学,并学习机器学习相关的知识。

14. 数据挖掘工程师,有必要深入研究传统算法,例如算法导论么?

还是重点关注学习,统计等算法呢?

作者认为没有必要。

传统算法(算法导论)偏向系统工程方面。

数据挖掘便向统计方面。

15. 本科生非ACMER 需要什么程度才算算法合格?

作者前面说的Leetcode初级,中级无压力。高级题花时间能研究出来。

16. 算法工程师和数据 data scientist的区别

在中小企业是不做区分的。

很大的公司中会有区别。

例如算法工程师提供更底层的模块

数据挖掘工程师更偏向于业务。

17. 算法工程师的编程能力要达到什么水平?

如果不做系统级的开发对编程能力要求并不高。

系统开发,比如分布式计算,并行计算。对编程要求就高很多。

18. 传统数据结构和算法是否对于机器学习有必要?体现在什么地方?

类比参加高考的数理化训练。训练思维的方式,思考方式和基础。

传统数据结构算法接触大量计算机的解决问题的思维。

机器学习中会用到传统数据结构算法,例如图论,动态规划。

字典树,自动机等等。

---------------------------

二,正文大纲:

如何成为当下合格的算法工程师

1. 定义算法工程师

2. 所需内功和外公

3. 不可替代性和成长性

4. 如何快速成长

5. 算法岗面经

6. 量化合格的标准

1. 什么是算法工程师:

从个大招聘网站的算法岗JD开始

主流应用:音频视频,图,像数据挖掘,搜索

技术核心:机器学习

未来:人工智能

(live主认为机器学习未必是实现人工智能的唯一方式,

万一有人脑的API,那么机器学习热潮可能会退去)

live主分析了一份阿里的JD

涵盖了主流机器学习的应用和方向

C/C++要求。上手python java快。也能造轮子

(同时说明部门老大技术应该很牛,有可能上升的空间就较小)

分析一份百度的JD

C/C++要求,分布式计算,自然语言处理。JD描述看似简单

往往需要讲出自己非常牛的项目经历。

词云图:广告(DSP

java/C++/Python

数学

硕士

2. 内功和外功

1)内功

统计学

线性代数

微积分

算法和数据结构

机器学习模型

特征工程

自然语言处理

分布式计算

。..

2) 外功

C/C++/java

Pyton/R/Matlab

Hadoop/Hive

Spark/Mlib

/Mahout/Tensorflow/Caff

SASS/SPSS

Weka/Stat

MySQL/HBase/MongoDB

。..

live主认为高效的方法是先学会如何用,然后在学习如何用好。

也就是先学习外功,再慢慢弥补内功。

如果只专注内功而忽略外功,很容易成为理论家,而不会实际应用。

数学基础:

机器学习,统计学习符号,能够看懂技术书籍上的推导证明

参考学习路线图。

(1,2,3,4,5)完成5条路线可以胜任大部分的应用。

3. 算法工程师不可代替性

1)非增删改查开发接口等体力活

2)大脑价值大于代码价值

3)技术业务两手抓,容易成为项目核心

4)行业热点,不懂技术的老板也知道大数据重要

5)如何量化不可代替性,工作交接时间长

成长性高

待遇高,5年以后薪资成长迅猛

有机会接触到更多IT大牛

大多数ACM获奖的应届生选择算法岗位

挑战性极强,工作难度大

会随着大数据热潮变得抢手

4. 如何快速成长

1)从外功入手,兼顾内功修炼

《集体智慧编程》+《统计基本方法》

所见即所得,有实际反馈。

2)这是工科,不是理科,因此需要更多实际项目的训练

LeetCode + Kaggle

需要更多练习,接近实际的练习。

leetcode训练传统算法

Kaggle数据挖掘竞赛(特征工程,大于学习模型本身的重要性)

3) 训练自己快速阅读paper的能力

ICML NIPS AAAI CVPR等

机器学习相关的期刊的名称。

比如深度学习,可以通过期刊了解到新等模型体系,可以有针对性的做一些学习。

5.算法岗面经

C/C++

1.白板编程:反转二叉树,单链表中删除特定值的节点。

2.Vector空间的增长方式,容器是否线程安全,map的时间空间复杂度,allocator原理,string内存分配。

3.父类和子类中构造函数以及析构函数调用顺序

4.引用和指针的区别,右值引用的特点以及应用场景(移动构造函数),性能提升原因

5.解释深拷贝和浅拷贝并说明应用场景 (自定义拷贝构造函数)

6.C++的优势与劣势,如何看待C++中繁多的特性

C++11 和C++14标准

算法与数据结构

1. 分治,快排思想:求第k大数(中位数)

2. 堆,优先队列:找出出现最多的top100个值

3. 动态规划:数字金字塔,求两个字符串的编辑举例,最长不下降子序列

4. 并查集:求好友圈个数,注意路径压缩优化

5. 线段树,树状数组: 区间更新和查询

6. KMP,AC自动机:海量字符串检索比较

Python

1. 数据分析:numpy,scipy,sklearn, pandas, matplotlib

2. 爬虫: requests, urllib, scrpay, beautifulsoup, selenium, 中文编码

3. 白板编程:重新实现filter, map, reduce, 反转二叉树

4. Python的优势与劣势,分析为何GIL带来影响。如何解决

如果是初入门可以看廖雪峰的博客进行学习,否则看官方文档。

统计学:

1. 量化统计模型结果好坏(准确,召回,ROC,AUC, F1-Measure)

2. 样本于理论推测的偏差:卡方检验 X^2 = sigma ((A-T)^2/T)

3. 比较两个变量波动性 变异系数 CV = sigma(x) / E(x) = STD(x) / AVG(x)

4. 正态分布N(u, keshi^2) 如何检验正态分布

阅读课本。

数据挖掘:

1. 介绍Logistics Regression, Random Forest, GBDT并分析其优缺点

2. 阐述L1和L2正则项并做比较

3. 如何解决推荐系统冷启动问题

*4. 特征工程:可用性评估,采样,无量纲化, PCA/LDA, 衍生变量

5. 各个模型的损失函,数牛顿学习法,SGD如何训练

6. 如何生产标签并构造用户画像(word2vec, kmeans, LDA, TF-IDF)

【live主认为特征工程是最重要的】

量化合格标准

语言:C++/Java/Python

能使用擅长的语言造轮子,写爬虫,数据分析和挖掘

算法和数据结构:以独立完成Leetcode为佳

(poj, zoj训练)

统计:熟悉基本统计方,法要有自己完整的统计体系。

指标分析-》提出猜想-》验证-》结论-》模型

机器学习:熟悉常见模型和特征工程方法

同样要有自己完整的特征工程体系,对模型优劣有基础认识,

以纯手工实现逻辑回归为佳

一些学习资料

美团点评技术 - 《机器学习中的数据清洗与特征处理综述》 http://tech.meituan.com/machinelearning-data-feature-process.html

使 sklearn做特征 程 http://blog.csdn.net/xw_classmate/article/details/51331787

Max Kuhn / Kjell Johnson - Applied Predictive Modeling

Trevor Hastie / Robert Tibshirani / Jerome Friedman - Elements of Statistical Learning

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1574

    浏览量

    68690
  • 算法
    +关注

    关注

    23

    文章

    4635

    浏览量

    93494
收藏 人收藏

    评论

    相关推荐

    月薪 3 万的嵌入式工程师都在用,串口屏到底神在哪?

    作为一名资深的嵌入式工程师,我深知在选择硬件组件时,性能、可靠性、易用性和成本效益都是至关重要的考量因素。月薪3万的嵌入式工程师们之所以倾向于使用串口屏,主要是基于以下几个方面的考量
    的头像 发表于 02-12 10:33 211次阅读
    月薪 3 万的嵌入式<b class='flag-5'>工程师</b>都在用,串口屏到底神在哪?

    为什么嵌入式驱动开发工程师可以拿高薪?

    技术领域具有不可替代的地位。 成为一名优秀的嵌入式驱动工程师只需要深耕以下几点: 1)坚实的技术基础: 首先,需要有坚实的基础,包括计算机组成原理、微处理器与微控制器架构以及电路设计与硬件接口知识
    发表于 01-07 16:56

    GpuGeek云平台正式上线,专注AI算法工程师需求

    近日,备受瞩目的Gpugeek云平台于1月6日正式亮相并投入使用。该平台是个专为算法工程师量身打造的AI基础设施平台,致力于为用户提供全方位、站式的GPU
    的头像 发表于 01-07 10:40 314次阅读

    图像算法工程师的利器——SpeedDP深度学习算法开发平台

    随着人工智能的兴起,AI工程师特别是基于图像的算法工程师日益成为炙手可热的香饽饽。特别是在些行业市场例如工业领域等行业领域,需要根据具体场
    的头像 发表于 11-08 01:06 432次阅读
    图像<b class='flag-5'>算法</b><b class='flag-5'>工程师</b>的利器——SpeedDP深度学习<b class='flag-5'>算法</b>开发平台

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题() Q:FPGA中的FPGA算法工程师、FPGA逻辑工程师、FPGA原型验证工程师
    发表于 09-23 18:26

    嵌入式软件工程师如何提升自己?

    嵌入式软件工程师如何提升自己? 作为一名嵌入式软件工程师,在这个充满机遇和挑战的领域里,如何提升自己显得非常重要,它决定了你未来的发展方向和成就。接下来,我们起探讨
    发表于 06-12 11:20

    M16连接器14芯怎样合格

      德索工程师说道M16连接器14芯作为种高性能的电气连接器件,其合格性不仅关乎产品的基本性能,还涉及到其在实际应用中的稳定性和可靠性。以下从多个方面详细阐述M16连接器14芯的合格
    的头像 发表于 06-07 17:47 964次阅读
    M16连接器14芯<b class='flag-5'>怎样</b><b class='flag-5'>才</b><b class='flag-5'>算</b><b class='flag-5'>合格</b>的

    索尼诚邀软件工程师参与PS免费手游平台设计

    据悉,近日,澳大利亚知名媒体TweakTown发现,索尼互动娱乐正在为其旗下的PlayStation Studios Mobile招募一名资深的软件工程师,负责设计PlayStation的免费手机游戏平台。
    的头像 发表于 05-23 17:08 800次阅读

    个电源工程师的成长路径

    即将走马上任电源工程师这个岗位,请问各位大佬,这个岗位的职业路径般是怎样的?
    发表于 04-08 14:19

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之成为一名嵌入式C语言高手
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    如何成为一名嵌入式C语言高手? 嵌入式系统是当今科技领域的核心,而C语言则是嵌入式系统开发中最常用的编程语言之成为一名嵌入式C语言高手
    发表于 03-25 14:12

    单片机如何通过代码控制硬件:一名工程师的分享

    今天跟大家聊聊单片机是怎样通过代码来操控硬件的。作为一名单片机工程师,我们平时的工作就像是给单片机编写“指令集”,让它按照我们的意图去驱动各种硬件设备。
    的头像 发表于 03-06 14:46 1666次阅读
    单片机如何通过代码控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程师</b>的分享