• 校招


    今天面了两家公司总结一下吧

    1:RH测试工具的开发,下午去的公司。进门第一眼,让人印象深刻的Logo直接映入眼帘。整个办公环境没的说,干净整洁。来来往往有许多人,我心想这么老牌的公司业务是有多忙,后来才知道原来正在布置中秋Party的现场。废话不多说了,进入正题。

    首先被一个带着医用口罩的女员工领入了一个非常小的Office,手上拿了一份10来页的笔试题,很基本也很全面。包括了一个测试开发工程师所需要掌握的所有必备技能,让我们来看一看这都包括哪些内容。顺序不太记得了,我尽量按照原先顺序吧。

    第一:linux常用操作:这一部分非常基础,一般接触过linux的同学一般都能回答上来,类似什么常用的linux命令之类的,里边比较重要一些的就是/root,/proc,/etc/,sys,/boot,/user这些文件夹内的内容。这些网上也都有很多介绍。

    第二:shell命令:一般考察常用的shell 命令代表什么意思,不过有一个命令连续出现了在3个小题中,就是touch,都知道是创建一个文件,但是它出题的角度很有意思 touch a{1,2,3,4,5,6,7,8,9} ,这我就懵了,从来没这么用过。。。百度之后才知道,原来就是创建a1,a2...a9多个文件。这一部分就是送分题。

    第三:数据结构:里边包含三个选择题,基础的我都觉得尴尬,1.单链表的插入,2.前序遍历的顺序,3不记得了反正很简单

    第四:操作系统:里边比较有意思的就是linux的启动需要哪些文件以及内核的存放位置,这些都学过可惜出校门后就基本没用过了。这里给出网址http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html,我觉得这一本分还是比较重要的,所以总结一下就是 

      第一步、加载内核 读入/boot下的内核文件。

      第二步、启动初始化进程 开始运行第一个程序 /sbin/init,它的作用是初始化系统环境。由于init是第一个运行的程序,它的进程编号(pid)就是1。其他所有进程都从它衍生,都是它的子进程。

      第三步、确定运行级别 Linux预置七种运行级别(0-6)。一般来说,0是关机,1是单用户模式(也就是维护模式),6是重启。运行级别2-5,各个发行版不太一样,对于Debian来说,都是同样的多用户模式(也就是正常模式)。(这里我说6是图形化界面。。。汗颜)init进程首先读取文件 /etc/inittab,里边包含了运行级别的配置文件。不同的运行级别会启动不同的加载程序

      第四步、加载开机启动程序

      第五步、用户登录

      第六步、进入 login shell 这里首先读入 /etc/profile,这是对所有用户都有效的配置,一般系统的通用设置放在 /etc/profile,用户个人的、需要被所有子进程继承的设置放在.profile,不需要被继承的设置放在.bashrc。这里给出之间关系 http://blog.csdn.net/yanjiangbo/article/details/6427580

    第五:Python的使用:包括类型转换、re库、装饰器、生成器等字符串方面的。并没有问我最近常用的multiprocess、multithreading之类的较高级模块,虽然我很想回答。

    至此笔试内容介绍完毕。测试时间是一个小时,时间到了我还有一页没写完。。。

    过了5分钟就开始面试,主要包含的问题都是比较零碎的,印象比较深刻的就是提问当gitpush的时候push失败(不是有conflict),而是发现是由于master版本已经跟目前本机master版本不一致时应该如何操作。后来百度一下才知道,本地仓库向远程仓库push前,要保证和远程仓库版本的同步。所以最好先pull一下,以确保除自身修改内容外的文件同步。还有就是有关手写实现python中dict的用法,当时不知道想考察什么,现在网上搜了一下才知道,主要想考察这些:

    #默认迭代key
    for k in d:
        print k
    
    #iterkeys()返回key迭代器
    for key in d.iterkeys():
        print key
    
    #itervalues()返回value迭代器
    for value in d.itervalues():
        print value
    
    #iteritems()返回键值对迭代器
    for key,value in d.iteritems():
        print key+"="+str(value)
    
    #判断对象是否可迭代:通过collections模块的Iterable类型判断
    from collections import Iterable
    print isinstance(d,Iterable)
    
    #带下标迭代:Python内置的enumerate函数可以把一个list变成索引-元素对
    l=range(5)
    for i,value in enumerate(l):
    
    print i,value

    #列表生产式
    [exp for val in collection if condition]

    #字典生成式
    {key-exp:val-exp for value in collection if condition}

    #集合生成式
    {exp for value in collection if condition}

    #嵌套列表生成式
    L1=[['Cathy','Li'],['Zhang','Wang','Mike','Tom','Jack']] print [name for list in L1 for name in list if name.count('a')>0] #运行结果: ['Cathy', 'Zhang', 'Wang', 'Jack']

    还有关于generator的用法:

    #1.创建一个generator,只要把一个列表生成式的[]改成(),就创建了一个generator:
    g=(x for x in range(1,10))
    print g.next()
    print g.next()
    
    #2.定义generator的另一种方法。如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator:
    def fib(n):
        a=1
        b=1
        i=0;
    
        yield a
        yield b
    
        while(i<n):
            a,b=b,a+b
            i+=1
            yield b
    
    for x in fib(10):
        print x

    以上部分来自 http://www.cnblogs.com/janes/

    第二家是MT,明天接着说。。。

  • 相关阅读:
    个人冲刺二(7)
    个人冲刺二(6)
    个人冲刺二(5)
    个人冲刺二(4)
    对称二叉树 · symmetric binary tree
    108 Convert Sorted Array to Binary Search Tree数组变成高度平衡的二叉树
    530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
    pp 集成工程师 mism师兄问一问
    17. Merge Two Binary Trees 融合二叉树
    270. Closest Binary Search Tree Value 二叉搜索树中,距离目标值最近的节点
  • 原文地址:https://www.cnblogs.com/lirunzhou/p/5858542.html
Copyright © 2020-2023  润新知