通常来说,判断一个人喜欢ds(数据)还是cs(计算机),还是看他最享受什么感觉。
我们从职业的角度说吧,这样最好判断。任何员工被hire到某公司,说到底都是公司掏钱“买”一个劳动力的每周40小时,然后让这个劳动力创造比工资更高的价值。不管是sde(软件工程师),还是ds(数据科学家),都是终极目标是为了该公司可以赚更多的钱。
但是再往下一层,那sde(软件工程师)和ds(数据科学家)就面对的问题不一样了。
(我们尽量用简单易懂的例子做下说明,例子可能稍显片面、稍显不足,但是仅仅是为了浅浅的举例,方便你大概感知工作的属性,判断自己的兴趣点所在。)
sde(软件工程师)是为了做技术而做技术,他们的daily routine(日常工作)可能是,“有人反馈说**page的button不work了,你们去fix下,看看code怎么回事,一定是哪里写的不对”,“接下来我们想要打造一个**平台,针对这个平台,我们打算从技术上采用a b c三种技术实现,小明你负责a和b,小红你负责c,然后你们两个最终通过d这个API互相调用,行了你们去实现吧”。
所以这种感觉更多是,哦,有一个技术需求,有一个技术上要做的事,那我就去要做这个技术,用技术手段搞定他。
但是ds(数据科学家)不是,ds是heavily rely on business(严重依赖于商业世界以及业务需求)的。比如你的日常是“公司的日活 daily active user上不去啊,这个怎么办啊,你们ds团队利用之前marketing市场部门和sales销售部门的数据,做一下ab testing和对用户分分类研究一下,看看哪些我们平台什么用户多,然后这些用户对什么样的event或者campaign(营销活动)有兴趣,那我们以后就多做这样的business活动”,或者“我们公司的revenue上不去啊,你们ds team不能光吃饭不干活啊,公司不是没有数据啊你们倒是分析啊,如果缺什么数据就对developer(软件工程师)提需求,让他们把方便你们做分析的dashboard给你们造出来,或者你们自己调数据自己造也行。。。因为接下来公司是业务淡季,你们稍微预测一下我们的业务量走势,然后我们基于以前的数据来建模判断一下,怎么度过这个难关”。所以其实可以看到ds的确更像是一个做生意的人要操心的事,就感觉自己守着一摊业务,然后面对着各种数据和指标,你得把revenue(公司营收)弄上去。只不过怎么做业务,为什么选***来帮助业务提上去,那,,,基于数据与机器学习的这个part是交给ds来做的。
所以这个是为了做业务而“碰巧”,或者说“不得不”使用技术(包括机器学习,前端)来做一些直接support business的事
正因为ds team是严重依附于业务的,所以需要和人交流的要更多。而sde更多就是,这个平台,develop出来就靠你了,你自己造吧,至于和人交流,well,也是有的,但是偏少。因为比如老板让你去学习下x技术,那cs的技术这么多这么多,就算大家都是developer(软件工程师),也不见得其他人就也学过x,如果没学过你问别人也没用,还是得自己学。就算有人学过,但是毕竟你是take ownership of (主要负责)这个东西,所以你还是得自己学会,最多有个啥不会的,问别人一两句而已。
反正就大概是这么个意思。相信如上的例子可以帮助你判断你是喜欢CS还是DS。