我投的岗位“软件研发工程师”。到了面试现场,选择了Java语言(有对应的面试官)。不过,后面进行了交叉面试,被推到了“数据研发”岗位。
一面:
首先,自我介绍。
我:“我做过两个项目。写过几篇论文和专利。还参加过阿里巴巴大数据竞赛。同时,出于个人兴趣,我还阅读了一下HDFS的少部分源码,理解了一下HDFS的核心思想,实现了一个功能非常简单,并且还不完善的HDFS。”
面试官1:“说一说你写的论文中的某一篇的创新点?”
我:“我写的文章或者专利,主要遵循一个原则:将已有的理论或者模型应用到新的场景中。所以,都是偏向应用的。重点说说这篇论文吧。首先,从奇异值分解说起吧……”
大概讲了几分钟后。面试官1打断我:“你做的这些东西都偏向数据挖掘方向,为什么没有投数据挖掘呢?”
我:“因为,按照我的理解,数据挖掘这个岗位需要对机器学习算法有深入研究,然而,我做的偏向于对数据挖掘算法的应用。所以,我想投研发,偏向数据挖掘和分布式方向,从基础做起。”
面试官1:“其实,你的优势是做过数据挖掘。这样吧,我先找一个数据研发的面试官对你进行一下面试。等会儿,你再来我这。”
虽然自己也系统地学习过机器学习算法,但是接触时间太短(几个月),研究不够深入,只在比赛中用过少数几种算法:LR、RF和GBRT。自己的优势在于对数据的理解和特征的提取,以及算法的应用。而算法推导过程并不清楚,只是理解了其思想。我怕被问得太细致,所以不是很情愿。不过,在面试官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教程有兴趣的朋友有所帮助。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。

PHP中使用clone关键字创建对象副本,并通过\_\_clone魔法方法定制克隆行为。1.使用clone关键字进行浅拷贝,克隆对象的属性但不克隆对象属性内的对象。2.通过\_\_clone方法可以深拷贝嵌套对象,避免浅拷贝问题。3.注意避免克隆中的循环引用和性能问题,优化克隆操作以提高效率。

PHP适用于Web开发和内容管理系统,Python适合数据科学、机器学习和自动化脚本。1.PHP在构建快速、可扩展的网站和应用程序方面表现出色,常用于WordPress等CMS。2.Python在数据科学和机器学习领域表现卓越,拥有丰富的库如NumPy和TensorFlow。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

记事本++7.3.1
好用且免费的代码编辑器