数据分析

数据分析

 

职位描述:

 

1.针对作业帮直播课业务线的数据挖掘及分析等相关工作

 

任职资格: 

 

1.至少熟练掌握一门编程语言、对数据结构算法设计有较为深刻的理解,动手能力强 

 

2.了解linux基本开发环境,有pythonshell等脚本处理经验更佳 

 

3.熟悉sql基本操作,有hivehadoop相关经验者优先 

 

4.具有良好的数据分析和解决实际问题的能力,较强的创新能力,对解决挑战性问题充满热情 

 

5.计算机相关专业 

 

6.至少实习3个月,每周至少5,实习6个月以上者优先

数据开发

岗位要求:
1,有较强的数据敏感性和业务理解能力
2,熟练掌握MySQLHive等数据语言
3,掌握基本的数据结构和算法
4,熟练掌握PythonawkPHP等编程语言
5,有相关的数据分析经验或BI经验优先

—————————————————————————————————————————————

至少熟练掌握一门编程语言:python,c/c++

 

  • 语言们之间的差别:

一、python虚拟机没有java强,java虚拟机是java的核心,python的核心是可以很方便地使用c语言函数或c++库

二、python是全动态性的,可以在运行时自己修改自己的代码,java只能通过变通方法实现。python的变量是动态的,而java的变量是静态的,需要事先声明,所以java ide的代码提示功能优于python ide。

java:分三大平台 java se (j2se),java ee(j2ee),java me(j2me)。java se是java ee和java me的基础

java ee是目前位置企业级开发平台中最牛的。java me是用来开发移动嵌入式程序的,例如手机游戏

java 的优点是非常适合用于开发大型企业级项目,我们曾为网通公司开发过的上千万级的项目,用的后台程序就是java ee。

java的主要领域还有开源技术,那要学的东西就太多了比如(Spring,Ibatis,DWR,Hibernate,Tapestry等)缺点是要学的技术太多,二是在底层开发中不行

C:经久不衰的语言主要应用在嵌入式编程,硬件驱动程序设计中,说白了是计算机底层的编程设计,优点是可以嵌入汇编,可以直接与硬件打交道,做底层开发缺点是在企业级开发中,几乎无用武之地

c++:我非常钦慕的语言,又AT&T的贝尔实验室研发主要开发工具是微软的Visual C++和Borload的BCB(Borload C++ Builder)

优点在于含有大量的库,如MFC,可直接调用windows库函数干很多事情其中的消息处理机制、缺点是,要想精通真不容易,主要领域一是做桌面程序,像QQ,迅雷这种桌面软件领域,二是做游戏后台开发,大部分游戏(包括魔兽等)后台语言就是使用C++

——————————————————————————————

 

  • 常见python问题:

1、pep 8:style guide for python code 一种编程规范

2、Python是一种编程语言,它有对象、模块、线程、异常处理和自动内存管理。有许多自带的数据结构,而且它开源。

3、插播线程进程的区别:

进程和线程的是不同的操作系统资源管理方式。进程有独立的地址空间,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。线程执行开销小,但不利于资源的管理和保护;而进程正相反。

4、Pickle模块读入任何Python对象,将它们转换成字符串,然后使用dump函数将其转储到一个文件中——这个过程叫做pickling。反之从存储的字符串文件中提取原始Python对象的过程,叫做unpickling。

5、Python是一种解释性语言,它的源代码可以直接运行。Python解释器会将源代码转换成中间语言,之后再翻译成机器码再执行。

6、PyCheckeris a static analysis tool for finding bugs in Python source code. It finds problems that are typically caught by a compiler for less dynamic languages, like C and C++. It is similar tolint.

7、Python装饰器本质上是一个python函数,可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。装饰器的作用就是为已经存在的对象添加额外的功能。

8、数组和元组之间的区别:数组内容是可以被修改的,而元组内容是只读的。另外,元组可以被哈希,比如作为字典的关键字。

9、python不允许程序员选择采用传值还是传引用。Python参数传递采用的肯定是“传对象引用”的方式。这种方式相当于传值和传引用的一种综合。如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值--相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象--相当于通过“传值'来传递对象。

(Python自带的数据结构分为可变的和不可变的。可变的有:数组、集合、字典;不可变的有:字符串、元组、数。)

10、延伸之深浅拷贝这篇博文

python中“没有指针,但是所有对象均为指针”。浅拷贝:拷贝对象的引用(可变对象则变,不可变对象则不变),指向同一个地址空间,相当于别名。深拷贝:重新开辟存储空间。

 

b=a #传对象的引用,别名

 

c=copy.copy(a) #浅拷贝,指向相同地址空间

 

d=copy.deepcopy(a) #深拷贝,重新开辟地址空间

11、推导式是可以从一个数据序列构建另一个新的数据序列的结构体。实例博文

12、lambda表达式是匿名函数的构造器,冒号前是参数,后是返回值。

map():根据提供的函数对指定序列做映射。(函数,可迭代对象)

map(lambda x:x**2, [1,2,3])
map(int,input().split())

filter():过滤掉不符合条件的元素,返回filter类,相当于一个迭代器。(判断函数,可迭代对象)

a = filter(lambda x:x%2==0, range(10))

reduce():根据提供的函数对指定序列做运算。(函数,可迭代对象)

reduce(lambda x,y:x+y, [1,2,3,4,5])

13、迭代器和生成器

迭代器协议(对象需要提供next方法);迭代对象(实现了迭代器协议的对象)。
生成器:在需要的时候才产生结果。(生成器函数(yield语句)/生成器表达式(返回产生结果的对象而不是结果列表))

 

生成器是实现迭代器的一种机制。

14、在Python中,所有的名字都存在于一个空间中,它们在该空间中存在和被操作——这就是命名空间。它就好像一个盒子,每一个变量名字都对应装着一个对象。当查询变量的时候,会从该盒子里面寻找相应的对象。

15、Pass是一个在Python中不会被执行的语句。在复杂语句中,如果一个地方需要暂时被留白,它常常被用于占位符。

16、遍历器用于遍历一组元素,比如列表这样的容器。

17、在Python中,unittest是Python中的单元测试框架。它拥有支持共享搭建、自动测试、在测试中暂停代码、将不同测试迭代成一组,等等的功能。

18、Slicing是一种在有序的对象类型中(数组,元组,字符串)节选某一段的语法。[:]

19、Python中文档字符串被称为docstring,它在Python中的作用是为函数、模块和类注释生成文档。

20、Xrange用于返回一个xrange对象,而range用于返回一个数组。不管那个范围多大,Xrange都使用同样的内存。

21、在Python中,模块是搭建程序的一种方式。每一个Python代码文件都是一个模块(createp.py),并可以引用其他的模块,比如对象和属性。模块中可以建立类。(class person) 【具体

构造函数_init_(). 析构函数_del_()

self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
一个包含许多Python代码的文件夹是一个包。一个包可以包含模块和子文件夹。

 

作为一种解释型、交互式、面向对象的高级编程语言,Python和别的一些使用标点符号的语言不同,它使用了大量的英语单词作为关键字,因而具有很好的可读性。而且Python跟其他编程语言相比,有着更少的语法结构,因而深受个人和企业的喜爱。

 

22、面向对象三大特性是:封装(把客观事物封装成抽象的类),继承(可以让某个类型的对象获得另一个类型的对象的属性的方法),多态 (一个类实例的相同方法在不同情形有不同表现形式

23、小程序汇总

24、python读取大文件:

f=open(file_name)
for line in file:
    dosomething(line)

—————————————————————

 

  • c/c++常见问题

1、c和c++对比:

c是结构化语言,重点在于算法和数据结构。c是面对过程,c++是面对对象。对于大规模数值运算,c/c++和java/.net之间没有明显的性能差异。如果运算涉及向量计算、矩阵运算,可以使用Fortran或者matlab编写计算组件。大规模用户界面相关的软件可以使用.net进行开发,而且.net和com之间的互操作十分容易,同时.net对数据库访问的支持也很好。

——————————————————————

 

  • sql数据库

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键程序主键

 

参考文献

范式的好处:

 1.减少数据冗余(这是最主要的好处,其他好处都是由此而附带的)

 2.消除异常(插入异常,更新异常,删除异常)

 3.让数据组织的更加和谐

 

参考文献2

各级范式:

 如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。

地址可以再分为省市县等就不符合第一范式。

若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF

(其中码是表的候选键,候选键之外的所有属性都完全依赖于候选键)

表中的属性必须完全依赖于全部主键,而不是部分主键。

消除非主属性对码的传递依赖,则称R ∈ 3NF。

消除主属性对于码的部分与传递函数依赖,则称R ∈ BCNF。

 

group by、cube和rollup

 

 

shell和终端的关系就是终端程序会自动调用shell程序。体现在每次打开终端(伪终端、虚拟终端)的时候,终端程序都会去调用shell。

 

——————————————————————

  • 大数据、数仓、hadoop

数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,它用于支持企业或组织的决策分析处理。

 

Hadoop:分布式处理的软件框架

1、HDFS:分布式文件系统(存储)

2、mapreduce:编程模型(计算)(映射-归约)

 

hive:基于Hadoop的一个数据库工具,将sql语句转换为mapreduce任务运行

Hbase:数据库、存储实时数据。Hadoop静态数据仓库,Hbase数据存储一些操作会改变的数据。

 

数据库基本的日常的事务处理。mysql,oracle,sqlserver
数据仓库支持复杂的分析操作,侧重决策支持提供直观易懂的查询结果。AWS Redshift,Greenplum,Hive

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值