数据分析师写的代码与程序员写的代码有什么区别?各自的发展前景怎么样?
网友解答: 谢谢邀请!数据分析师编写的代码以数据分析和呈现为主要任务,目的是给人看的,而程序员写的代码主要以实现系统功能为主,目的是给人用的。数据分析师编写的代码包括算法设计、算法实现、
谢谢邀请!
数据分析师编写的代码以数据分析和呈现为主要任务,目的是给人看的,而程序员写的代码主要以实现系统功能为主,目的是给人用的。
数据分析师编写的代码包括算法设计、算法实现、算法验证、算法应用几个关键步骤,关键在于发掘数据背后的价值(规律),数据分析往往与场景的结合比较紧密。数据分析师通常并不需要考虑程序的性能、安全性、分布式架构等系统级问题,所以往往数据分析师选择的编程语言都非常实用,包括Python、R等语言,看两个Python实现的例子:
程序员编写的代码主要是给用户使用的,需要考虑的内容就比较多了,比如程序的稳定性、简洁性(友好)、速度、并发、资源管理、权限管理等等内容,这里面既包括逻辑性问题又包括系统级问题。程序员往往分为应用级程序员和研发级程序员,研发级程序员解决系统级问题(容器开发),而应用级程序员往往解决功能实现的问题,可以说程序开发是一个非常系统化的流程,每个环节还要有严格的测试。看一下Zookeeper Session的流程图:
数据分析师在完成数据分析任务之后,如果需要把这部分数据分析功能进行产品化封装,通常情况下就需要程序员来做相关的工作。举个例子来说,数据分析师往往采用Python来做数据分析的算法实现,但是程序员在进行功能封装的时候,往往会采用Java等语言对其代码进行重写以满足系统对性能的要求。
有的研发团队会设置专门的算法设计岗位和算法实现岗位,算法设计专注于算法本身,而算法实现则专注于算法的程序化实现。但是现在很多团队的算法设计师即要做算法设计也要做算法实现,所以现在的算法设计师往往也要懂得编程。
作者简介:中国科学院大学计算机专业研究生导师,从事IT行业多年,研究方向包括动态软件体系结构、大数据、人工智能相关领域,有多年的一线研发经验。欢迎关注作者,欢迎咨询计算机相关问题。
网友解答:谢邀,简单说两句吧。刚好我自己是偏做数据分析工作的,周围也很多写代码开发的程序员。题主备注的意思没错。数据分析师写代码,自然偏向数据的统计分析挖掘,并且在语言选择上也偏向R,Python这些专用的,入门快的编程语言,Python的科学计算库丰富且强大,语法简洁易懂,深受分析师欢迎。但软件开发工程师,很少见用Python去开发,多是Java体系,C#等,个中原因请自行百度。Python不是万能的,各种语言都是自己合适的场景。
一般情况,数据分析师不要求完整的代码素养,一般写的代码也就自己看,追求快速出结果,快速验证自己的想法。程序员多要求严谨的代码逻辑,保障程序稳定持续地运行,要求高并发,低占用内存等等。而分析师则巴不得自己的程序在允许范围内尽量多的使用内存以加速计算,二者的目标,代码产出物的受众有比较大的区别,分析师的代码一般要求即用即写,用完可能废弃,产出数据一般也就自己做记录分析,内部分享,或者出研究报告。程序员普遍意义上要求程序面对广大的人民群众,兼容各种IE8,firefox等浏览器,适配安卓苹果五花八门的手机,不能闪退,崩溃,应对各种不可思议的神操作且不能出错。
分析师一般自己就是需求,要自己挖空心思去想如何做如何分析数据,而程序员多是别人说怎么做,你只管实现就好了,产品原型都画好了。
认同我的看法,欢迎点击右上角红字“关注”,谢谢。