首页 后端开发 php教程 阿里面试经历及总结(数据研发、Java研发方向)

阿里面试经历及总结(数据研发、Java研发方向)

Aug 08, 2016 am 09:27 AM
http index online php

我投的岗位“软件研发工程师”。到了面试现场,选择了Java语言(有对应的面试官)。不过,后面进行了交叉面试,被推到了“数据研发”岗位。

一面:

首先,自我介绍。

我:“我做过两个项目。写过几篇论文和专利。还参加过阿里巴巴大数据竞赛。同时,出于个人兴趣,我还阅读了一下HDFS的少部分源码,理解了一下HDFS的核心思想,实现了一个功能非常简单,并且还不完善的HDFS。”

面试官1:“说一说你写的论文中的某一篇的创新点?”

我:“我写的文章或者专利,主要遵循一个原则:将已有的理论或者模型应用到新的场景中。所以,都是偏向应用的。重点说说这篇论文吧。首先,从奇异值分解说起吧……”

大概讲了几分钟后。面试官1打断我:“你做的这些东西都偏向数据挖掘方向,为什么没有投数据挖掘呢?”

我:“因为,按照我的理解,数据挖掘这个岗位需要对机器学习算法有深入研究,然而,我做的偏向于对数据挖掘算法的应用。所以,我想投研发,偏向数据挖掘和分布式方向,从基础做起。”

面试官1:“其实,你的优势是做过数据挖掘。这样吧,我先找一个数据研发的面试官对你进行一下面试。等会儿,你再来我这。”

虽然自己也系统地学习过机器学习算法,但是接触时间太短(几个月),研究不够深入,只在比赛中用过少数几种算法:LRRFGBRT。自己的优势在于对数据的理解和特征的提取,以及算法的应用。而算法推导过程并不清楚,只是理解了其思想。我怕被问得太细致,所以不是很情愿。不过,在面试官1的坚持下,最终还是同意了。

看到第二个面试官的牌子上写着“数据研发”,我稍微舒了口气;幸好不是“数据挖掘”。

今年,“数据研发”岗位招人挺多的,很多都是去小微金服。面试完之后,我觉得“数据研发”的岗位要求是这样子的:

熟练掌握基本的SQL语句;因为有一道笔试题目。我觉得阿里应该用自己的ODPS-SQL(类似于Hive)进行数据研发,虽然这个平台挺复杂的,但是面试的时候的要求并不高。只要掌握基本的内建函数和SQL语句就行了:select, group by…。我在比赛过程中,写过几万行SQL代码(去重之后几千行),没有用到过索引和视图;经常用到内建函数,偶尔使用UDF(用户自定义函数)。但是,写的代码不包含索引、视图和UDF。也没有考优化(其实我也不懂)。

有数据研发方面的相关经历,面试官似乎很注重这一项。我参加过阿里巴巴大数据竞赛。

对数据研发有一些自己的看法。这个很关键,一定要思路清晰。我主要在讲比赛中的模型:数据的预处理->训练集、预测集->特征提取->进一步处理->正负样本比例->训练->预测。

当然会用写MapReduce的话就过更好了。阿里的平台提供了MapReduce,估计工作中会用到。这边有个详细的介绍:超级啰嗦版ODPS MapReduce入门

然后,跟第二个技术面试官开始交流。

面试官2:“自我介绍一下吧。”

我:“刚才介绍过其他经历了。那我主要介绍下与数据研发相关的经历吧。”然后,简单说了下自己参加的阿里巴巴大数据竞赛。

面试官2:“行。先做一道题目吧。”

面试官给了我一道SQL的题目:给定一个表,共四列:user_id, brand_id, time, cnt(花的钱数)。从这个表里面选出用户B对每个品牌brand购买的总额度。

一看到,有点窃喜,这跟我竞赛做的东西太相似了。跟面试官进行简单沟通后,很快写出来了;不过还是怕做错,检查了很久才拿给面试官2。顺便提了一下,如果需要处理字符串的话,我会用ODPS-SQL里面的UDF。面试官看了下程序,没说什么,就放到了一边。

后面,我们主要在讨论阿里巴巴大数据竞赛:我做了什么,用什么模型、算法做的,准确率是多少。(这块讨论时间最多)

还好,我主要讨论的是对业务和数据的理解,没有深入讨论数据挖掘算法。

讨论很顺利。结束之后,面试官2把我带回面试官1

回来后,继续与面试官1主要讨论我写的论文。由于之前对自己写的论文进行过总结,思路很清晰。并谈论了写论文的体会和收获。

总之,第一面的面试官很和蔼,交谈也很开心。

再次稍微提一下:个人觉得面试官主要有两类,一类是用技术把你问死,从而判断你对技术的掌握深度。另一类是,简单的技术问题之后,让你去表现,引导你来讲,从而看你这个人的思想、表达能力、个人观点等综合素质。

当然,一个面试官如果看到你不善于表达,就只能一直问你问题了。

很荣幸,我碰到的是第二种面试官。面试跟聊天一样轻松。

最终,顺利通过。

二面:

二面的面试官是做Java研发的。

刚开始,还是讨论比赛和分布式。后面问了我一道大量文本处理的问题“找出一个大文本中的Top3的字符串”。没有做过这方面的研究,答的不好。

Java问题:“讲一下JVM的结构。”

网络问题:“TCP/IP的三次握手、四次挥手”

然后,就开始问关于JavaWEB的问题。

这方面我只是了解过,面试官3说:”没事,说下自己的理解就行了。“

面试官3:“淘宝用户的数据(购物车……)存在那里?怎么满足高并发?”

这方面不了解,面试官让我自由发挥;回答的也不好。

面试官3:“那我们问一下你的算法问题。输入两个整型数组,返回一个数组:两个数组中的公共值。”

其实,到这个时候,自己有点思路混乱了,有点紧张。我从快速排序算法开始写,然后用的方法也不是最好的。面试官不是很满意。

后面吃午饭的时候,我想到其实可以为O(nlgn)排序后,再O(m+n)就可以了。跟别人讨论的时候,我想到,针对某些特殊的情况;其实这个可以用哈希的思想来做。复杂度O(K)K为数组中的最大值。

面试官3:“考一下你对递归的掌握。写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。”

当时,只做到了逆序输出(打印),并没有做到逆序返回字符串。

吃完午饭,跟别人讨论的时候,我突然想到这个要用到二叉树递归求解深度、叶子数等问题的一些思想:每次返回的时候加上上一次的返回值。

这个时候,面试官不是很满意,正好也该吃饭了。然后,面试官3说:“这样吧。我帮你找个数据研发的,你再去面试一下。让他来做评价吧。”虽然不情愿,但是还是同意了。毕竟这次表现太差了。

为了避免下午问到同样的问题。午饭后,跟其他同学把算法问题讨论明白了。

然后就是面试官4,还属于二面阶段。

面试官4:“就当做我们在聊天,讨论技术问题。讲一下你的相关经历吧。“

这样就放松了很多,像前面一样,对不相关的经历一句话概括。最后重点讲述阿里巴巴大数据竞赛。

面试官4对竞赛挺感兴趣,所以,就从头到尾一直围绕竞赛来讲。主要讨论到了模型、算法、特征。重点讨论了我对数据的理解,并且得到了面试官4的认可。

我说:“比赛的时候,我们每天都要盯着数据提取特征。如果,仅仅把这个当作数字来看,确实很枯燥。但是,我们会把它当作一种用户行为对待和分析。这样就变得很有趣了。比如,数据清洗后,我看到某个用户每天都在点击某一个品牌,他就是不买,很显然这就是屌丝;有些人一直在购买,明显的高富帅啊。”

总之,就是很轻松地在聊比赛相关的事情,以及自己对数据的理解。

最后,顺利通过。

三面

早就听说,今年很多进入HR面试的还是有很大可能被淘汰。于是,比较小心。

后面才知道,其实不一定是HR刷的。因为,几轮面试都通过之后,面试官还要商量到底录不录取;如果确定录取的话再给Offer。有些被刷掉的人可能是因为前面表现不好,被技术面试官刷的,并不是HRjj刷的。我听说,一般HR通过之后,数据挖掘和算法刷人比较多;对于其他岗位,很少被刷。

不过,面试官人太好了。聊着聊着,我就口无遮拦的什么都开始说了。

聊到了:平时怎样提高自身技术能力;自己的优缺点;阿里巴巴的花名等等。

面试过程中,主要强调了两点(用自己的经历):

我很喜欢跟别人讨论问题,这样总会得到意外的收获。并且,还举了项目、竞赛以及平时的例子。甚至,我还说了,刚才技术面试官的问题我没有回答上来,但是,私下与其他面试的同学(我不认识)讨论过程中,我就豁然开朗了。

把工作当作生活的一部分,愉快地工作。这个主要说了,我在比赛过程中,怎样把一些无聊的事情做成很有意思的事情。

最后,面试官问我还有什么问题。

我说:“参加比赛时,加了阿里旺旺的群,里面有很多内部员工,通过他们对阿里认识了很多;所以,没有要问的了。”

结束

面试,就这样结束了。出来之后,赶紧看了下自己的状态“三面通过”;过了一会突然变成了“面试结束”。听别人,说面试结束就是挂了的意思。

于是,问了下外面的工作人员,他们说:“这是回去等通知的意思。”HR面试之后,状态是“三面通过”“四面通过”“面试结束”等。这是正常的。因为他们还要根据前面的综合表现进行筛选。并不是“面试结束“的都不到Offer,都有可能收不到的。后面听说,有的甚至“四面通过”的都不会收到Offer

回到学校后,一直等到凌晨三十八分才收到短信。然后,兴奋了一个晚上。

总结:

对于,基础比较扎实的人,那就让面试官随便问吧。不过,我觉得任何人都有可能别问死的,因为他们想通过这种方式看看你的掌握深度。

对于我呢,基础知识一般:数据结构、排序算法和递归,能写出来;操作系统,懂一些基本理论;计算机网络,懂一些基本概念和理论。就只能充分发挥自己的竞赛、项目、论文和专利的优势了。

面试过程中,有一点很重要,把握面试官的兴趣点,并将面试官带入自己的优势。当然,如果自己的优势不是面试官非常了解的领域,但是面试官又比较感兴趣,那就更好了。对于我的几位面试官,聊天的时候,我注意到,面试官1对我的论文和专利感兴趣,面试官2和面试官4对阿里巴巴大数据竞赛感兴趣,面试官3对我的基础能力感兴趣,HR对合作能力感兴趣。面试官3只想问我的基础,虽然多次尝试把他带到我的优势(数据挖掘和分布式)上面来,但是,都被他强制带回去了。其他几位面试官,都是被我有意识地将话题转移到阿里巴巴大数据竞赛上面。正好他们都没有深入了解过这个竞赛,对此有一定的兴趣;然后,大部分时间都在讨论这些内容了。

总而言之,把自己的优势发挥到极致。

免费领取LAMP兄弟连原创PHP教程光盘/细说PHP》精要版,详情咨询官网客服:http://www.lampbrother.net

PHPCMS二次开发http://yun.itxdl.cn/online/phpcms/index.php?u=5

微信开发http://yun.itxdl.cn/online/weixin/index.php?u=5

移动互联网服务器端开发http://yun.itxdl.cn/online/server/index.php?u=5

Javascript课程http://yun.itxdl.cn/online/js/index.php?u=5

CTO训练营http://yun.itxdl.cn/online/cto/index.php?u=5

以上就介绍了阿里面试经历及总结(数据研发、Java研发方向),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

我后悔之前不知道的 7 个 PHP 函数 我后悔之前不知道的 7 个 PHP 函数 Nov 13, 2024 am 09:42 AM

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

php程序在字符串中计数元音 php程序在字符串中计数元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? 什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

See all articles