博士圈

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1206|回复: 0

DA/DS对于coding的需求以及程度

[复制链接]

26

主题

41

帖子

217

积分

中级会员

Rank: 3Rank: 3

积分
217
发表于 2022-11-16 17:12:09 | 显示全部楼层 |阅读模式
Data Analyst也考coding吗?Data Scientist的coding要掌握到什么程度?



很多求职的朋友反馈,不少公司在analytic data scientist 甚至data analyst 的岗位面试中居然考coding 了。大家不免很紧张,问:准备data analyst 的面试,是不是也要去刷leetcode。下面会在回答这个问题的同时讲讲coding data science 领域几个不同层次的应用。

Level1: DA/Analytic DS
对于分析类的岗位,一般来说是不需要什么coding 的。日常工作用的都是用 SQL处理各种数据,还有Tableau 之类的软件来做data visualization。极少能用的上coding。但是,为什么还会考呢。据了解,一个主要原因是现在python coding 在数据科学领域应用越来越普遍,大家总感觉 atsome point 会需要用到。所以,hiringmanager 会希望candidate 最好是能有一点coding 的能力,在将来需要用到的时候,至少不会发怵。

在这些组里,工作主要还是做数据分析。所以,他们所说的coding 指的是能够用python 来弥补 SQL和Tableau 这些工具一些功能上的不足。考题侧重的不是算法,更多的是一些python的基本应用。比如用python 来做一些简单的数据处理,或者调用pandas 之类的软件包做一些数据分析。偶尔也会考一些非常简单的算法题。这些题在leetcode 的easy 题中也是属于简单的。当然,考点也仍不在于算法,而是在于解决问题的能力。面试官最希望看见的是你之前并没有见过这个题,但是经过一番思考得到一个合理的解决方案,并且把solution 用代码写出来。
面对这种面试,并不需要去刷leetcode,但是只看一些python 入门之类的教学视频也是不够的。因为coding 需要练习,有一个熟能生巧的过程。针对这个问题,可以在准备面试的时候去做一些python coding 练习题。
Level2: General Data Scientist
一般的Data Scientist 是需要经常用python 来处理分析数据和建模的。这些岗位不仅需要能够建立customized functions 来处理各种问题,还需要能够把代码模块化(简单地说也就是写class)和搭建pipeline。所以,在面试中,在这些岗位是肯定会考coding 算法题的。candidates在准备的过程中也会需要去刷一些leetcode 的题目。在刷题的时候,我觉得应该把重点放在那些经常用到的一些数据结构上,比如list、string、array和dictionary。难度以easy 为主,尽量涵盖medium。如果学有余力,也可以看看一些简单的tree 相关的题目。
总的来说,这些岗位的日常工作也就是用python 来写scripts。代码在质量上离production code 还有一定的距离。面试的时候,哪怕是engineer 来考,一般也不会考的太难。只要逻辑清晰,代码能跑也就让过了。
Level3: Machine Learning Engineer

MLE本身就是engineer,只是侧重点在machine learning 而已。所以,没什么可商量的,coding肯定会考,leetcode肯定得刷,而且是全方位地刷。于此同时,也要准备system design,只是这里的system 是recommender system 一类的 AIsystem。

在这些岗位上,是需要写production code 的。代码要求简洁流畅,层次分明。很多时候,面试官从一些很小的细节(比如空格、variable命名方式)就能一眼看得出这个candidate 的coding 习惯好不好。这也是自己刷leetcode 一个很难解决的问题。因为leetcode 主要是通过test cases 来保证代码的正确性和效率,但是并没有办法enforce coding style。所以还是得进行专门的coding 训练项目,一方面是为了形成好的coding style,另一方面则是快速建立系统的知识体系,避免做一题忘一题的低效重复。
所以,如果发现面试要考coding 的时候不要慌,要理性地针对岗位需求进行准备。虽然从理论上讲,如果把coding 算法题全部做熟,自然就可以应对所有coding 相关的面试,但实际上coding 练习是一个需要大量时间和精力的积累过程。不可能一蹴而就。而且,对于数据科学的很多岗位来说,coding只是所需要的技术之一,过度准备coding 会影响别的技术的学习掌握,也不利于有效地找工作。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|博士圈

GMT+8, 2024-12-16 21:33 , Processed in 0.015629 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表