招聘 [杭州] 阿里巴巴招聘测试开发工程师 P6-P7 (全职)

codeskyblue · April 07, 2020 · Last by 徐健 replied at August 26, 2021 · 7857 hits

背景

有一天老大找到我,说希望我能多引荐几个人。想来想去,来社区发帖应该是最合适的了。(PS:也许过去在社区发了太多的帖子,喜欢社区的这个氛围)

招聘内容

阿里巴巴 - 淘宝测试开发工程师 需要招很多人,人数 N 个。

岗位要求

  • 至少 3 年以上工作经验
  • 本科及以上学历,硕士生,研究生,博士生更佳
  • 精通C、C++、Java、Python 等至少一种编程语言
  • 熟悉软件研发流程,掌握软件测试理论和方法,有设计和开发测试工具和自动化测试框架能力更佳
  • 喜欢钻研技术,对质量捍卫有热情,不断追求产品用户体验的完善
  • 善于沟通,善于团队合作

特别备注:该岗位不是外包

地点

浙江杭州阿里巴巴西溪园区

有到滨江,黄龙体育中心的班车。所以住在滨江也不用太担心。

薪资

互联网公司的工资,大家都知道的,我就不细说了。

简历发到哪里?

对我们来说,想找到一个合适的人实在是太难了。所以我这里给你设置了一点障碍。

下面是一道算法题

一个射击运动员打靶,靶一共有 10 环,连开 10 枪打中 90 环的可能性有多少种?

如果你成功算出来了结果,比如结果是 99。
打开浏览器的开发者选项,将下面的代码复制到 Console 标签中。
然后再输入getEmail(99) (注:这个 99 并不是正确答案,需要你自己计算),就获取到了要接受简历的邮箱。

如果答案是你动手算出来的,恭喜你,你将有很高的概率被录取。如果你能暴力破解出来,也是可以的。

function getEmail(N) {
  const m = N % 1024;
  const encoded = [185, 181, 190, 191, 169, 177, 163, 184, 182, 175, 191, 154, 189, 183, 187, 179, 182, 244, 185, 181, 183];
  const decoded = encoded.map(i => {
    return i ^ m
  })
  return String.fromCharCode.apply(null, decoded)
}

邮件格式

标题为:2020 阿里淘宝测试开发 - 面试-{你的姓名}
正文:校招还是社招。附上解题思路
附件:简历建议是 Word 格式,PDF 格式也可以的

我和我的团队将以最快的速度联系你 _. 非常期待你的加入。

结语

最后来一句洗脑神句子:梦想是要有的,万一实现了呢。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 66 条回复 时间 点赞

解出来,一开始以为是阿里邮箱误导了下,很好玩。。。

😂 介不介意被裁的来占个楼

简历发过来

陈子昂 回复

你可以直接取消一面了,直接 2、3 面了

codeskyblue 回复

😂 我先去解个题哈哈哈。简历先不急

Author only

题目都没看懂。。

Good, 你可以不用笔试了。来来,简历发来,粗糙一点没关系。

为啥用 gmail 了。。。

codeskyblue 回复

妥。我修修

67Floor has deleted

完美的 gmail....

现在招聘贴都出这么多花样了么😂

Author only
肥狐 回复

Just because...

62Floor has deleted
Nisir · #61 · April 08, 2020
Author only
Author only

negtive

codeskyblue · #58 · April 08, 2020 Author
Author only
Author only
codeskyblue · #56 · April 08, 2020 Author
Author only
Author only
ELes · #54 · April 08, 2020
Author only
ELes · #53 · April 08, 2020
Author only

能百度出来的面试题不是好的程序员

Author only
codeskyblue · #50 · April 08, 2020 Author
Author only
codeskyblue · #49 · April 08, 2020 Author
Author only
48Floor has deleted
codeskyblue · #47 · April 08, 2020 Author
Author only
Author only

对大佬有所了解的,就会知道大佬有个很厉害的开源项目,这个开源项目托管在一个很厉害平台上,这个平台允许用户添加一个很厉害的邮箱,这时你就有了 50% 的概率,是或者不是😂 ,然后翻下评论,这时概率提升到 99%

44Floor has deleted
codeskyblue · #43 · April 09, 2020 Author
Author only

大圣,你得改下坐标了。Netease => Baba

Liu Xiao 回复

好的,改好了

Author only
海豚 回复

可以,不影响的

xiaoc · #38 · April 12, 2020
Author only
codeskyblue · #37 · April 12, 2020 Author
Author only
36Floor has deleted
Author only
codeskyblue · #34 · April 14, 2020 Author
Author only
codeskyblue 2020年 第一季度招聘贴 中提及了此贴 22 Apr 17:00
uasier · #32 · June 22, 2020
Author only
Cvbnx · #31 · June 23, 2020
Author only
codeskyblue · #30 · June 24, 2020 Author
Author only
· #29 · June 24, 2020
Author only
28Floor has deleted
Author only
Author only
25Floor has deleted
K · #24 · September 08, 2020
Author only
Author only

哈哈 这是个经典算法题 可通过递归算法来进行求解,运动员在射击的过程中,每次射击有 11 种可能:命中 0 环到 10 环之间的环数。

Author only
lt1023 回复

招啊,帖子不撤,找人不止

Author only
Author only
uasier 回复

P6 确实不招了,我仔细看了一下,P7 难度太大了

题目不太严谨,脱靶算不算?排列还是组合?
最多 100 环,脱得 10 环怎么分配到 10 个格子,概率论不难。
所以懒得算了,暴力了一把,10000 以内的找到 10 个答案

218,1242,2266,3290,4314,5338,6362,7386,8410,9434
email 是在如下的 jwt token 中:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXN1bHQiOiJjb2Rlc2t5Ymx1ZUBnbWFpbC5jb20iLCJuYW1lIjoiUGV0ZXIgUGVuZyIsImVtYWlsIjoicGV0ZXIucGVuZzEyMTVAZ21haWwuY29tIn0.5Bnqrt-VXcAb-wH8v0vR02i104Q8ohpmmolb48griSc

s = 0
for a1 in range(11):
    for a2 in range(11):
        for a3 in range(11):
            for a4 in range(11):
                for a5 in range(11):
                    for a6 in range(11):
                        for a7 in range(11):
                            for a8 in range(11):
                                for a9 in range(11):
                                    for a10 in range(11):
                                        if (a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10) == 90:
                                            s = s + 1
print(s)
Author only
Author only
codeskyblue · #10 · February 13, 2021 Author
Author only
我们仨 回复

Happy 牛 year

#62 优秀哈哈哈😀

7Floor has deleted

解题思路:
1.设置矩阵高度和长度为 x,y;如 3,3 的矩阵如下,行代表次数,列代表环数
[
[0, 1, 2, 3],
[0, 1, 2, 3],
[0, 1, 2, 3]
]
2.设 z 为目标总环数,f(x,y,z) 为可能的情况总数。
推到出公式

$$f(x,y,z)=\sum_{i=0}{n}f(x-1,y,z-i)$$

def get_nums(length, height, nums):
    r = 0
    if length == 1:
        if 0 <= nums <= height:
            r = 1
        return r
    for i in range(height + 1):
        r += get_nums(length-1, height, nums-i)
    return r

分析发现上面会进行很多无用的调用,导致执行时间太长,对调用过程进行剪裁,加入约束 z-y <= z-i <= (x-1)*y

def get_nums(length, height, nums):
    r = 0
    if length == 1:
        if 0 <= nums <= height:
            r = 1
        return r
    for i in range(height + 1):
        if nums-height <= nums-i <= (length-1)*height:
            r += get_nums(length-1, height, nums-i)
    return r

得出结果:92378

看到了这个 刚好有时间弄一下 我可没有大神会算法 我只会暴力

<html>

<head>
    <title>获取邮箱</title>
</head>

<body>
    <p>获取邮箱</p>
    <button onclick="at()">获取</button>
</body>

<script>
    function getEmail(N) {
        const m = N % 1024;
        const encoded = [185, 181, 190, 191, 169, 177, 163, 184, 182, 175, 191, 154, 189, 183, 187, 179, 182, 244, 185, 181, 183];
        const decoded = encoded.map(i => {
            return i ^ m
        })
        return String.fromCharCode.apply(null, decoded)
    }
    function at() {
        for (i = 50; i < 500; i++) {
            if (getEmail(i).indexOf('com') >= 0 || getEmail(i).indexOf('COM') >= 0 || getEmail(i).indexOf('cn') >= 0 || getEmail(i).indexOf('CN') >= 0) {
                window.alert("暴力破解 = " + i + "邮箱 = " + getEmail(i))
                break;
            }
        }
    }
</script>

</html>
匿名 #4 · April 07, 2021

/**
*
* @param i 第几枪 总共 10 枪
* @param j 剩余可 miss 环数, 总共可以 miss 10 环
*/
public int num(int i ,int j,int count){
count++;
while(i>1) {
i--;
while(j>0){
count = num(i, j,count);
j--;
}
}
return count;

}

Author only
Author only
徐健 回复

大佬,我有三年工作经验了,可以加入你们了吗?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up