这是一个创建于 186 天前的主题,其中的信息可能已经有所发展或是发生改变。
名校毕业,精通各类算法,tensorflow, pytorch 如数家珍,面试不会写排序
实战经验丰富的 CRUD 工程师,连个 Group By 都不会,来应聘机器学习工程师
想要一个基础扎实的,认真刷刷 LeetCode 和 Kaggle 题的面试者,好难啊
大家跳槽或者找工作的的时候都在哪里玩儿,拉钩,boss 直聘,v2ex ?
大家觉的 Python 算法工程师 这个 Title 会有吸引力吗?
感觉大家好像对这个topic感兴趣,,我顺便贴个招聘连接,
经过和同事们的交流,还是觉的这种二合一人才,其实是对应聘者有点误导
我们的部门的确可以让工程人员来进行模型方面的工作,但是绝对不是一上来就做模型,还是要从研发做起
所以先招工程师吧,谢谢大家给的建议和回复
脚本语言入门简单,很多人不讲究,基本数据结构 都搞不清,就更别说算法了 反正没有什么不是一个 import 解决不了的 我昨年一段时间负责爬虫工程师的招聘,一个月,面试几十个,没招到一个 如果要招算法工程师,语言不是很重要,python 和各种 package 以及机器学习框架,比算法优先级低很多 |
算法和工程差别会越来越大,就跟软硬件工程师一样 |
楼主可能对专家特征比较执着。观察过市场上的从业者,2000+年后的基本如此,怀疑和学术思潮有关。 在目前 DL 可以完胜人工专家特征的情况下。。。为什么还对专家特征如此执着?目前机器学习应该是联结主义的天下。 |
这不就是专业分化的趋势吗?搞理论的跟搞工程的逐渐分成两拨人。 |
写业务代码的,和作算法研究应用的当然是不同的人呀 |
python 太网红了,直接导致不合格的 python 程序员太多,调过几个包看过几本算法理论书就自称 python+机器学习,然而最基础的数据结构关很多人都不重视 |
“帅的男人没有钱, 有钱的男人不帅, 又帅又有钱的男人却靠不住” 所以只能是: “虽然我没有车,虽然我没有房,但是我......” |
没有问题是 import 不能解决的,如果有,就再 import 一次。 -- 调包侠 |
嗯嗯,遇不上啊,拉钩职位挂了半个月,,,我最后的面试方法是,我靠的是 leetcode 这道题,你查 10 分钟再写一下,,, |
最适合的人选是本身是有经验的 Pyhon 开发,想往算法方面转,而且还自己向前走了一段,比如认真刷了几个月 Kaggle 题这种 |
现在别人学 python 也怕找不到工作的。别人都说拉勾一百年匹配不上。换个地方试试吧。 |
我在的公司 是 fintech 方面的,DL 在图像语音这些方面的确完胜人工, 但是在面临不同的场景的时候,其实人还是更有优势的,需要真对场景提出不同特征和模型 |
团队由 4 名经验丰富的 90 后工程师组成,各个都是独挡一面的大拿。 都是大拿了,相信对他们来说简单说下你要求的这些东西应该很快搞定的了。 |
你这个还是招 python 服务开发和机器学习开发,两个分开,就好搞了,你这招聘要求多了 我们公司研发部门也就三百来人 我这种 java 出生的爬虫工程师导师经常开发小型 python 服务,用来部署一些机器学习模型(如贷款评分卡) |
如果用 Xception 的思路的话,把人的判断作为模型的特征量或许可行。但其实也是把人当成传感器使了。。。 |
这是用一个人的钱干两个人的活。 当然难招了。 |
专业分工这个是真的,但是其实程序员更熟悉业务,其实慢慢是可以朝着数据科学家发展的,现在只是太缺人了,所以硬生生改成两拨人了 ,,,,工程能力好的调包侠,,,感觉就是大熊猫 |
看标题,感觉这估计是 py 在历史上被黑的最惨的一次 |
可惜我还没毕业…给我留下了市场很需要我的幻想 |
尝试过分开招,但是跟大厂一个招聘策略的话,那就注定我们这种中小场,开发和算法都 找不到比较好的人,很多时候就是人家过来拿个 offer 当个跳板。 最后留下混的好是那种有经验的开发,然后想转机器学习的开发,这样的人自驱能力比较强 |
,单做现在的业务,其实我们都能远程办公了,但是比如别人的团队都在成长,我们团队规模没上来,新机会抓不住 |
應該有不少研發工程師有憑自己興趣玩過一些機器學習,嘗試一下這部分人群吧。 |
看到这个标题,我就知道说的是我这种人,前两年做 java,python 高并发后台,最近两年转行做机器学习,哈哈,看到身边的纯算法同事各种代码看不懂我就表示很欣慰。 |
确实很多搞学术的代码写的太烂了 对他们来说,能用就行了,工程不是重点方向。 |
真的啊,做的好的研发,转算法成本很低,安心干两年业务,熟悉了流程其实发展很好 |
国内能顺溜的把冒泡写完整了的所谓"程序员"都少, 所以到处缺人呢, 人力紧缺啊, 这种档次的只能叫人肉 |
leetcode 刷过,python 搞过机器学习,但是没用 python 开发过项目,应该不满足楼主的要求了,1-3 年后不知道能不能达到,想请教下这个岗位的薪资 在多少范围(北京)? |
如果是初级,其实比较合理的是 18k 左右,可以简历发来看看 |
认识的算法大牛都去玩 c++了,你让他们用 py 写业务?不可能的? |
基本都是 py 原型验证 上线的时候再用 c++重写吧 会 C 之类的 py 就是一脚本语言 边看文档边写就够了 |
看了 JD,还是有需求混淆的问题... 作风控和数学模型,这本身已经是个单独的岗位了,数学统计专业最佳,有金融和风控行业更棒(这个薪资水准嘛,招不到的)。 还想同时满足一线去写业务系统代码,招人更难。 相关 python 代码实现,得另外找个 有风控系统相关经验(没有也问题不大)的 python 码工就行了 |
#53 补充,是看的 “闪银-数模组” |
今天在 boss 上刚刚刷到这家公司。就来 v2 上看到了 |
这要求发散下去就差手写汇编了。。 |
我个人刷题都是用 Python 的...搞 CV 有时候也需要实现一些 tricky 的算法,而且很多人都是这样,所以我觉得不成立 |
看了此贴,坚定了继续一面开发一面搞一下算法的决心。。。但是真的很累啊。。。 |
这么说吧,去微博微信上面搜一下,xx 小时学会 py,xx 小时学会爬虫、xx 万数据爬虫、xx 分钟建立模型;无力吐槽;爬虫隔一天重发一次,n 年前的,除了给网站增加压力不知道还有什么效果。。。哦对刚想起来,培训机构出来的都很“屌” 再者 py,偏重工程实现效率,所以都是直接 import 大法了;数挖熟悉的不是经典算法; |
如果 group by 都不会,那就。。。(想起前同事吐槽他现在的公司的港中高材生不会安装 py。。。) |
现在的机器学习难道不是调参数工程师么? |
算法一般会出到 LEETCODE 什么难度的。。如果是 HARD 的而且没做过的,估计没把握在半个小时的面试里面手写出来还能 debug 过·· |
我见过算法好的 任意图灵完备的语言都玩得转 说到底语言只是表达方式而已 |
确实如此 不过现在 mit 也有两本书是用 python 来讲 CS 和数据结构的 只是出得有点晚 可能过几年就不同了 |
我会写排序可是我找不到工作啊,hhh |
这方面搞得好的都去大厂或者高知名度例如商汤之类的公司了,楼主组内没有知名大牛,职位描述吸引力也不是很大。 |
话说你们是只考虑一直写 Python 的吗?像有的工程师可能并不专注于某一种语言。 业务强 + Python 强,感觉已经筛掉了很多人。不妨直接招业务极强并且有往你们方向上靠的意愿的工程师,然后开始培养。 |
我倒是发了简历,完全没人鸟我 。。。。 可能我还是太 low 了吧 |
感觉搞算法的话,不懂 python 也可以理解,用 c 写个包给 py 调用就可以了吧。 |
你见过哪 AI 包是 python 写的?还不都是 C++,连 java 都少,因为性能。 算法确实用任何一门通用编程语言都可以描述。 问题是 py 是个以包多省事儿慢得出翔的胶水脚本语言。 python 算法工程师听起来简直就跟清纯的岛国动作片女演员一样。 |
Python递归算法Vip干货!人工智能核心课程,算法入门就用它了!
用或其他应用扫描二维码
Python递归算法Vip干货!人工智能核心课程,算法入门就用它了!
若未安装客户端,可直接扫此码下载应用
八大排序,三大查找是《数据结构》当中非常基础的知识点,在这里为了复习顺带总结了一下常见的八种排序算法。 常见的八大排序算法,他们之间关系如下: 下面,利用Python分别将他们进行实现。 直接插入排序的核心思想就是:将数组中的所有元素依次跟前面已经排好的元素相比较,如果选择的元素比已排序的元素小,则交换,直到全部元素都比较过。 因此,从上面的描述中我们可以发现,直接插入排序可以用两个循环完成: 第一层循环:遍历待比较的所有数组元素 希尔排序的算法思想:将待排序数组按照步长gap进行分组,然后将每组的元素利用直接插入排序的方法进行排序;每次将gap折半减小,循环上述操作;当gap=1时,利用直接插入,完成排序。 同样的:从上面的描述中我们可以发现:希尔排序的总体实现应该由三个循环完成: 第一层循环:将gap依次折半,对序列进行分组,直到gap=1 第二、三层循环:也即直接插入排序所需要的两次循环。具体描述见上。 简单选择排序的基本思想:比较+交换。 从待排序序列中,找到关键字最小的元素; 如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; 从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 因此我们可以发现,简单选择排序也是通过两层循环实现。 第一层循环:依次遍历序列当中的每一个元素 第二层循环:将遍历得到的当前元素依次与余下的元素进行比较,符合最小元素的条件,则交换。 堆:本质是一种数组对象。特别重要的一点性质:任意的叶子节点小于(或大于)它所有的父节点。对此,又分为大顶堆和小顶堆,大顶堆要求节点的元素都要大于其孩子,小顶堆要求节点元素都小于其左右孩子,两者对左右孩子的大小关系不做任何要求。 利用堆排序,就是基于大顶堆或者小顶堆的一种排序方法。下面,我们通过大顶堆来实现。 堆排序可以按照以下步骤来完成: 首先将序列构建称为大顶堆(这样满足了大顶堆那条性质:位于根节点的元素一定是当前序列的最大值); 取出当前大顶堆的根节点,将其与序列末尾元素进行交换(此时:序列末尾的元素为已排序的最大值;由于交换了元素,当前位于根节点的堆并不一定满足大顶堆的性质); 对交换后的n-1个序列元素进行调整,使其满足大顶堆的性质; 重复2.3步骤,直至堆中只有1个元素为止。 冒泡排序思路比较简单: 将序列当中的左右元素,依次比较,保证右边的元素始终大于左边的元素( 第一轮结束后,序列最后一个元素一定是当前序列的最大值); 对序列当中剩下的n-1个元素再次执行步骤1。 对于长度为n的序列,一共需要执行n-1轮比较(利用while循环可以减少执行次数)。 快速排序的基本思想:挖坑填数+分治法 从序列当中选择一个基准数(pivot),在这里我们选择序列当中第一个数最为基准数; 将序列当中的所有数依次遍历,比基准数大的位于其右侧,比基准数小的位于其左侧; 重复步骤1.2,直到所有子集当中只有一个元素为止。用伪代码描述如下: j--由后向前找比它小的数,找到后挖出此数填前一个坑a[i]中。 i++由前向后找比它大的数,找到后也挖出此数填到前一个坑a[j]中。 再重复执行2,3二步,直到i==j,将基准数填入a[i]中 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个典型的应用。它的基本操作是:将已有的子序列合并,达到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。 归并排序其实要做两件事: 分解:将序列每次折半拆分 合并:将划分后的序列段两两排序合并 因此,归并排序实际上就是两个操作,拆分+合并 首先依次从第一段与第二段中取出元素比较,将较小的元素赋值给temp[] 重复执行上一步,当某一段赋值结束,则将另一段剩下的元素赋值给temp[] 在这里,我们采用递归的方法,首先将待排序列分成A,B两组;然后重复对A、B序列分组;直到分组后组内只有一个元素,此时我们认为组内所有元素有序,则分组结束。 基数排序:通过序列中各个元素的值,对排序的N个元素进行若干趟的“分配”与“收集”来实现排序。 分配:我们将L[i]中的元素取出,首先确定其个位上的数字,根据该数字分配到与之序号相同的桶中 收集:当序列中所有的元素都分配到对应的桶中,再按照顺序依次将桶中的元素收集形成新的一个待排序列L[ ] 对新形成的序列L[]重复执行分配和收集元素中的十位、百位...直到分配完该序列中的最高位,则排序结束。 根据上述“基数排序”的展示,我们可以清楚的看到整个实现的过程。 写完之后运行了一下时间比较: 从运行结果上来看,堆排序、归并排序、基数排序真的快。 对于快速排序迭代深度超过的问题,可以将考虑将快排通过非递归的方式进行实现。 |