Jay's Blog

知而不行为不知


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 留言

  • 搜索

简历之算法工程师的岗位描述和职责要求

发表于 2018-07-19 | 分类于 简历 | 阅读次数:
字数统计: 887 字 | 阅读时长 ≈ 3 分钟

岗位描述:

  • 京东

    1-2019年毕业,本科及以上学历
    2-研究及应用前沿互联网技术,如机器学习、深度学习、数据挖掘、推荐、搜索、自然语言处理、分布式并行算法、复杂网络、图像识别、计算机视觉、语音等
    3-至少熟悉java, c++,python中的一种开发语言
    4-良好的逻辑思维能力,良好的沟通能力、团队合作精神和学习能力

  • 阿里巴巴:算法工程师-机器学习 Software engineer -Machine Learning

    1、负责机器学习、深度学习领域的技术研发工作,包括但不限于神经元网络模型设计与优化、强化学习、迁移学习、主动学习、维度降低、核方法、谱方法、特征提取与稀疏学习、等级学习、推荐、随机优化等的算法和系统研发等;
    2、负责机器学习尤其是深度学习前沿问题的探索与研究,结合未来实际应用场景,提供全面的技术解决方案;
    3、负责提供分布式的算法实现的解决方案,大幅提升算法计算规模和性能;
    4、负责提供大数据分析建模方案,沉淀行业解决方案,协助拓展业务边界。

  • 华为:

    我们致力于软件算法的研究设计,通过算法大幅改善产品体验和性能效率
    1、可以对单点算法性能做出极致优化,或具备全局视野,能从E2E考虑算法应用竞争力体现;
    2、 负责移动终端设备人工智能、大数据挖掘算法和解决方案的研究、设计、验证和交付;
    3、 对传感器在专业运动健康、生物识别、情景感知等技术做出优秀的用户体验。

岗位要求:

  • 阿里巴巴:算法工程师-机器学习

    1、本科及以上学历,硕士博士优先,计算机、数学、电子工程、通信等相关专业;
    2、熟悉常用机器学习算法,对模式识别、深度学习、增强学习等相关领域,极佳的工程实现能力,精通C/C++、Java、Python等至少一门编程语言;
    3、候选人有数理分析方面良好的素养以及数理统计基础;
    4、良好的数据敏感能力、较强的逻辑分析能力;
    5、良好的团队合作精神,能够做到严谨、皮实、乐观;
    6、有实际成果并发表在国际顶级会议、期刊者优先,有在ImageNet、MSCOCO、ICDAR等权威数据库上提交过结果并取得优异成绩者优先;
    7、有deeplearning的经验,有linux下开发经验的,大规模数据处理经验优先。

  • 华为

    1、具备人工智能AI算法、大数据算法、数据结构算法设计和开发能力;
    2、具备前沿人工智能技术跟踪和业界趋势的跟踪和算法应用能力;
    3、至少掌握Java/Python/C其中一种开发语言,掌握Hadoop开源工具使用更佳;
    4、至少掌握一种数据挖掘工具和深度模型训练工具,如Tensorflow,caffe,matlab;
    5、具备较强的动手实践能力,能够快速把想法用算法程序的实现;
    6、具备挑战不可能的精神和创新意识,主动担责,攻坚破难;
    7、具备良好的团队合作精神,善于沟通。

简历制作之简历基本构成

发表于 2018-07-16 | 分类于 简历 | 阅读次数:
字数统计: 127 字 | 阅读时长 ≈ 1 分钟

一份简历按照5号和小5字号,加上调整页边距后的空间,一页A4纸可以容纳33到53行。

简历总体思维导图

Alt text

核心是经历。
从“岗位JD的分析”以及“经历撰写的句式与方法”两个角度,教会大家如何用职业人和职业化的口吻描述自己的经历。

** 具体的经历写法对屏幕进行了截取:**C:\Users\dell\Videos\Captures

以下是各部分的写法:

Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text
Alt text

经历是核心

Alt text

简历制作

发表于 2018-07-16 | 分类于 简历 | 阅读次数:
字数统计: 226 字 | 阅读时长 ≈ 1 分钟

__ 以下的几篇都是前辈学院-实习僧的简历课程 __

简历制作前需要搞清楚的三个核心问题:

  1. 首先,同学们在什么情况下会使用简历?
  2. 其次,简历在整个求职过程中有什么功能?或者说站在求职者和雇主的不同角度上,需要它实现什么功能?
  3. 最后,hr们在筛选简历时候的标准是什么?基于这种标准,同学们制作简历应该遵循怎样的原则?

Alt text
Alt text
解决了这三个核心问题,还需要了解雇主在筛选简历时关注些什么,我们动手做简历才会更有把握。

根据筛选简历,确定制作简历的原则:

履历根据项目要求来写,匹配;
能一页就一页;
重点在实习,实践经历、项目上;
体现优秀;

面试算法之贪心算法

发表于 2018-07-16 | 分类于 面试算法 | 阅读次数:
字数统计: 110 字 | 阅读时长 ≈ 1 分钟

Alt text

贪心算法的难点在于证明这个问题可以用贪心算法来解
很少单独考贪心算法

简单贪心问题

lc455,392

贪心算法与动态规划的关系

lc435
贪心是动态规划的特例

如何证明贪心算法的正确性

  1. 数学归纳法;
  2. 反证法;

最小生成树和最短路径都用到了贪心算法,贪心只是其中一步

面试算法之动态规划基础

发表于 2018-07-15 | 分类于 面试算法 | 阅读次数:
字数统计: 761 字 | 阅读时长 ≈ 2 分钟

这是 H1

面试中对动态规划的考查难度不是很难

来源

以斐波那契数列为例,单纯方式的递归会造成指数级的时间复杂度,因为其中有大量重复的计算过程;
因此考虑将重复的数字用数组记录下来–记忆化搜索:自上向下的解决问题
动态规划:自下向上的解决问题

关联

递归问题—重叠子问题+最优子结构(针对最优解问题)—记忆化搜索:自上向下的解决问题
| |
|—动态规划:自下向上的解决问题(可以没有递归过程)

用自上向下的方式去思考,用自下而上的方式去实现。
最优子结构:通过子问题的最优解,可以得到这个问题的最优解

许多实际问题是斐波那契问题:
如爬楼梯,120,64

以343为例:
首先这个问题用暴力搜索方法去思考,由于分割成多少是不知道的,因此不能用循环方式(O(n2)),因此使用递归的方式;
通过画图分析,发现有大量的重叠子问题,因此可以用记忆化搜索来实现。
lc343分别用记忆化搜索和动态规划的思路来实现了。(可以看出,记忆化搜索的方法比较容易想到)
【实际上,这个问题用暴力解法的话:回溯遍历将一个数做分割的所有可能性O(2^N)】

279,91,62

tips:

  1. 注意对状态的定义(函数的定义);【做什么】状态定义不同,则解决方式不同
  2. 根据对状态的定义,决定状态的转移,状态转移方程。【怎么做】

198,309这两个问题除了动态规划也可以用其他方法来做

背包问题

时间复杂度:O(NC)
空间复杂度:O(N
C)–O(C*2)–O(C)

  1. 完全背包问题:每个物品可以无限使用;
  2. 多重背包问题:每个物品不止一个,有num(i)个
  3. 多维费用:考虑物品的体积和重量两个维度,变成三维数组

背包例子:416,322,377,474,139,494

最长上升子序列问题LIS

注意状态的定义
lc300的两种实现
LIS(i)表示以第i个数字为结尾的最长上升子序列的长度;
LIS(i)表示[0…i]的范围内,选择数字nums[i]可以获得的最长上升子序列的长度。【注意是选择,不是考虑】
lc300的O(n^2)解法;
O(NlogN)解法。链接(新开了数组进行存储有序的序列,并进行二分查找)

更多动态规划问题

  1. LCS:

动态规划给出具体解

以300LIS为例,给出具体的最长递增子序列,倒着查找
\0-1背包问题,反向重构,需要指出的是,由于反向重构时,需要利用原来的信息,因此对空间优化的方法就不行了

面试算法之二叉树与递归

发表于 2018-07-14 | 分类于 面试算法 | 阅读次数:
字数统计: 101 字 | 阅读时长 ≈ 1 分钟

递归和二叉树的紧密关系

基本上二叉树的大部分操作都会用到递归,因为二叉树本质上就是一种递归的数据结构

写递归函数时要注意:
先写递归终止条件;
递归过程。

递归的返回值
129,257

更复杂的递归逻辑
437,

二分搜索树(二分查找树)

235,98,450,230,236

面试算法之栈队列优先队列

发表于 2018-07-14 | 分类于 面试算法 | 阅读次数:
字数统计: 163 字 | 阅读时长 ≈ 1 分钟

使用栈的原因是,需要在嵌套关系中获得最近的一个元素。

递归和栈的紧密关系

递归算法:
二叉树144,94,145

写递归函数时要注意:
先写递归终止条件;
递归过程。

使用栈模拟系统栈,写出非递归程序;(三种遍历方式的统一写法)
教科书上的经典非递归方法

队列的基本应用–广度优先遍历(对于树,层序遍历;对于图,无权图的最短路径)

103,107,199

BFS与图
279,127,126

优先队列

leetcode347,23
k分的归并排序(我们一般的是二分归并)

面试算法之在链表中穿针引线

发表于 2018-07-13 | 分类于 面试算法 | 阅读次数:
字数统计: 141 字 | 阅读时长 ≈ 1 分钟

206,83,86,328,2,445

一般来说对链表的操作,基本都要求不能改变node的值,但是有一个例外,237

技术
预先创建几个节点,将每个变量所对应的节点明确出来,画图,进行穿针引线

技术
设立链表的虚拟头结点:203,82,21,24,25(在需要对头结点需要额外操作时),尤其是在删除链表中的某个节点时

双指针技术
删除倒数第n个节点:19,61,143
判断有没有环
回文链234

面试算法之查找表的问题

发表于 2018-07-13 | 阅读次数:
字数统计: 145 字 | 阅读时长 ≈ 1 分钟

有序数组的二分查找;
set;(二分查找树[红黑树]实现和散列表[哈希]实现)
map;(二分查找树[红黑树]实现和散列表[哈希]实现)

二分查找树实现查找用logN时间,保留了数据的顺序性,提供更多的功能,即java中的treemap,treeset;
散列表就是查找用常数时间,即java中的hashset。

当键都是长字符串时,

leetcode 1,15,18,16【16并不是查找表】,454,49,447,149

最关键的是:

到底应该查找什么?

滑动窗口+查找表
lc219,217,219

面试算法之数组问题

发表于 2018-07-12 | 分类于 面试算法 | 阅读次数:
字数统计: 217 字 | 阅读时长 ≈ 1 分钟

如何写出正确的程序?(参照二分查找的代码)

明确变量的含义;
循环不变量;
小数据量调试;
大数据量测试。

leetcode 283 movezeros

定义:k,数组中,[0,k)的元素均为非0元素。

leetcode 26 remove duplicated from sorted array

leetcode 75 sort colors

没有思路时,可以先使用任意一种排序算法,以先解决问题为目的
计数排序:分别统计0.1.2的个数(适用于类别特别少的)
三向快速排序:定义清楚索引的意义

215 Kth largest element in an array

这个问题用快速排序解决很经典

167 two sum II

利用有序:二分查找
对撞指针:一前一后直至对撞

双索引技术:

对撞指针
滑动窗口(参考leetcode209,3,438,76)

** 子数组需要明确是连续的还是不连续

<i class="fa fa-angle-left"></i>1…24252627<i class="fa fa-angle-right"></i>

264 日志
34 分类
38 标签
GitHub Zhihu Wechat
© 2024 史海杰 | Site words total count: 722k
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4