DataSciences版 - Data Analyst也考coding?Data Scientist的coding要掌握到什么程度? |
|
|
|
|
|
a********a 发帖数: 1 | 1 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 需要练习,有一个熟能生巧的过程。针对这个问题,我们把为
machine learning 课程准备的几十道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。这也是为什么我们在有leetcode 这些资源的情况下,还是开
了coding 训练项目。一方面就是为了帮助形成好的coding style,另一方面则是帮助
学员快速建立系统的知识体系,避免做一题忘一题的低效重复。
所以,如果发现面试要考coding 的时候不要慌,要理性地针对岗位需求进行准备。虽
然从理论上讲,如果把coding 算法题全部做熟,自然就可以应对所有coding 相关的面
试,但实际上coding 练习是一个需要大量时间和精力的积累过程。不可能一蹴而就。
而且,对于数据科学的很多岗位来说,coding只是所需要的技术之一,过度准备coding
会影响别的技术的学习掌握,也不利于有效地找工作。 |
|
|
|
|
|
|