校招

校招

1.个人简介:

我先说一下我的情况,本科计算机科学与技术,学校是一个说出去让人以为是双非的211,排名中上等,编程能力就是能编出来,但是代码的各种性质嘛。。。。好像我写代码缩进格式还不错。掌握语言就是c++,c,python,java,c语言学了一学期,剩下的学习时间一周到一个月不等,算法最喜欢暴力。。。所选方向安卓

2.经验:

(1)下决定要早

考研就业不可兼得,一定要在你大三寒假回来就决定好,选定了不要动摇。个人觉得如果是觉得自己找不到工作而读研,那还是工作吧。就是说你一定要清晰地知道自己想要什么,权衡利弊后下决定,要综合考虑你的能力,还有本专业对学历的要求等等来决定。

(2)提前准备

选好方向就要行动。不要觉得啥也不做就能有工作,要根据自己的方向学习相关知识。对于安卓方向,要学习的就是:安卓,java,数据结构与算法(动规),操作系统,计网,设计模式(学不会,学了忘,学了不会用,就是设计模式啦),之后视情况查缺补漏。大学的基础课不能丢,多复习,千万不要小看自己的遗忘速度。

(3)多交流

不要自以为是,个人感觉大学学习比较浅显,课堂上老师并没有带学生深层次挖掘,所以你不出去问问,不知道需要怎样的深度。搞技术的人都很纯粹,只要你肯问,他们都会告诉你的,不要不好意思问。每次面试不仅仅是一个考核,也是你学习的过程,除了这个机会,你平时连大公司的大楼都进不去,没有办法当面交流,所以面试其实也是福利啦。建议还是要在复习到可以跟面试官聊十分钟左右就可以约个面试划一波重点。多听听过来人的经验成长还是很快的。

(4)心态很重要

自信:我之前觉得自信是你自己能力达到一定程度上水到渠成的事情,对于能力达不到而且学校也不好的现状,我是很自卑的,到自我介绍环节不知说啥,就很尴尬,也吃过多次亏。后来我加了一个hr的微信,我问她对于招人这回事的看法,她说“自信很重要,是一种生活态度,跟能力无关。公司都喜欢招自信的人。”感觉对我影响挺大的。

谦虚:我之前一次面试跟面试官谈了一下,他将他校招时候的经验,刚开始写代码比较跳,飞起来那种,他的面试官觉得他不够谦虚,把他拒了。如果我们自己是面试官,肯定也想要那种勤奋谦虚的孩子,这很容易理解。

平常心:其实我觉得我们的教育还是有些欠缺的,比如对挫折的教育,家长老师只告诉你跌倒了要爬起来,却没告诉你怎么包扎伤口,爬起来要怎么做。在面试没成功的时候,不要急着自我否定,真的是要愈挫愈勇,哪里不会补哪里。人生就是不断跌倒不断爬起的过程,没什么大不了的。

不着急:之前有个老程序员跟我讲的,他说他做IT这么多年,所有经验总结起来就是不着急。可能你周围有那种大神,面一个公司拿一个offer,你会有压力,但你也不能着急,不能放弃前进,不要跟别人比,要和自己比,今天的自己比昨天的好就足够了。尤其是打代码时候,越急越出bug。还有与人相处也是,不管多着急,好好说话,把问题观点表示清楚。

3.校招真题

我只记得一部分题

百度:

一面:抽象类和接口区别,手写一个排序,手写一个设计模式,栈和队列区别,final关键字,python元组与数组区别,重载和重写

二面:http与https区别,从网站输入网址到显示的全过程,网站正常返回的参数,TCP与UDP区别,编译程序全过程,arm指令集,X86系统,JVM,jvm的入口结点,自己运用抽象类和接口的思想设计Collections集合类,三级缓存,HashMap和HashTable区别,泛型,反射,手写一个死锁

爱奇艺:

一面:Activity A切换到Activity B,两个活动生命周期变化过程,活动启动模式,服务两种启动方式区别,广播有哪几种,数据存储方式,SQLite更新操作,动画有哪几种,Handler机制,final,wait()与sleep()区别,软引用弱引用区别

二面:手写快排,问了为啥选安卓,然后让写一个Handler传值到主线程过程,构造适配器方法,写自定义view

三面:电梯调度算法,B+树,数组链表区别,你觉得大学学的课程有用吗,感觉这一面就是一直挖坑让你跳,你要一直反套路

四面:简单问了问学校专业,你自己的优点,对爱奇艺的了解,手里有没有offer

小米:

一面:手写查找两个单链表交点,栈和队列,synchonized关键字锁的内容是什么,a+=b与a=a+b的区别,可重入锁,静态内部类和非静态内部类区别

二面:手写单链表翻转,四种引用,JVM,树的遍历,链表数组区别,String,StringBuffer,StringBuillder区别,多线程,最后给你一个页面让你自己设计布局,为什么选择小米

美团:

问了项目需要哪些权限,手写二分查找说复杂度,自定义view,死锁系列,线程进程区别,安卓缓存机制,fragment生命周期用法,Activity生命周期

腾讯:

内部类用法及区别,c的函数指针,c++虚函数,泛型反射,JVM,从网站输入网址到显示的全过程。感觉腾讯的问题很有深度,你说的每句话都将是自己的葬身处,每次都要从你话中往深挖掘,一直到知识黑洞。

58:

一面:给9个盒子,500个苹果,则怎么装盒子,让不论说什么数每次拿的都能是完整的箱子(二进制),LinkedList和ArrayList区别,代理模式,网站返回参数302和303啥意思,安卓内存泄漏问题

二面:解释java的面向对象,泛型,图片加载缓慢怎么解,图片占用存储空间大解决(缩略图),其他的忘了。。。

hr:你自己的缺点优点,选安卓方向原因,工作地点

**华为:**安卓生态模式以及商业和技术应用,手写SQL实现自己建立一个学校选课系统数据库,找出指定信息

4.推荐资源(安卓)

两个关于java和基础知识的博客

https://github.com/Snailclimb/JavaGuide

https://github.com/CyC2018/CS-Notes

《第一行代码》郭霖

《安卓开发艺术探索》任玉刚(我看的不太懂)

《深入理解java虚拟机》

《java语言程序设计》Danel Liang

《Thinking in java》==《java编程思想》

《大话数据结构》程杰

《大话设计模式》程杰(缺点是里面没啥代码,只知道所以然,但是知其然也很重要,不然不会用啊。我理解设计模式就是努力实现低内聚高耦合)

leetcode和牛客网上的剑指offer

几个公众号:玉刚说,郭霖,算法与数据结构,痴海(python的,公众号主人超级励志),stormzhang(他转型为产品,但前期的安卓还是东西挺多的)

祝愿看我博客的大家都能找到满意的工作。

###分界线——————————以下是我的个人校招经历,如果你想找工作而看到这个博客,就不用往下看了————————如果你很好奇呢,可以继续看——————

5.校招经历

(1)前期挣扎

大三寒假回来后,大家陆续开启考研,然后我家里也希望我考研或者考教师资格证公务员啥的,感觉家长都觉得适合女生的就这几个行业。因为高考发挥失常,理综还没到200分,所以一直有些遗憾,想考研改变一下身份,所以跟着大家一起准备考研。但其实我的内心一直很抗拒,有好多原因

第一是感觉不知道自己感兴趣的方向,盲目选大数据或者人工智能,怕做不好;

第二是觉得研究生毕业也要工作,那时没有工作经验而且年龄大了找工作更困难,还不如出来占坑,有了经验什么都好说。主要是我们专业比较认准的还是能力,只有部分公司会限制985/211,我也达到了;

第三是我父母年龄比较大了,这几年我能明显感觉到他们身体情况不是很好,他们那一代年轻的时候受了很多苦,所以老了有点积劳成疾的感觉,胃病或者心脑血管疾病经常会找上门来,作为家里长女我不想让他们再那么辛苦了;

第四是高考那年病了一年半,上大学后我也深感自己的身体大不如前,怕考研撑不住

第五是不想学政治,就像当年文理分科选理科一样的原因,想到研究生还要学政治头都大了。

但我的杀伐决断能力还是有一点问题的,缠缠绵绵一个月,才决定要工作,选方向又成了问题,我的小纠结又开始了。后来想我报考时候怎么想的,不就是做个APP嘛,然后算是有了个方向。因为我们学校专业课都集中在大三,我又想快点修完课程,多选了几门课,所以在学校期间没咋准备,只是把数据结构过了一遍。

(2)中期准备

转眼一学期过去了,到了小学期有安卓的课程,然后在这个时间学了安卓布局,做了个APP,我以为我已经掌握学好安卓了,可以出师了。后来发现东西还有好多,而且更尴尬的是大学时候学的东西忘得差不多了。所以开始复习东西,准备去找实习。

有了目标也有了时间就有了动力,感觉日子过得还可以。看java累了看安卓,安卓累了看java。感觉学的差不多了,就投实习去试水,然后就比较尴尬了,坐地铁过去20分钟,进去面试十分钟就出来了,不过面试官给我圈了重点,我才发现自己掌握的只是布局和Activity的一小部分,明白了自己做的东西有多烂,开始回来按重点好好学习,一个星期后,把《第一行代码》看得差不多了,去iHandy面试,这是我第一次正式面试,所以还是很期待的,刚进去做个笔试题,然后面试官就到了,他是我这段时间遇到的最好的面试官所以我厚脸皮地一直叫他师父,他也确实帮了我很多。面试的时候遇到我不会的他会耐心给我讲解,明明是我自己没理解到位,他会道歉说自己没说清楚,我觉得简直要暖化了,我要做一个像我师父一样的程序员。感觉我大学所有的老师只有极少数是会讲课的,其他的都是往那里一站,ppt开始念,很是无趣,而我师父将东西特别清晰,一针见血的感觉,和我高中老师一样。感觉大学老师压力太大了,忙着搞科研,讲课就不咋上心,而且会讲课和会搞科研好像是负相关的,我觉得大学应该有专门的讲师和专门的搞科研的,分工明确才好。然后留了个小作业,很尴尬的是我做了六天,觉得自己的第一个面试肯定过不了,中途玩了几天,玩够了才开始做,现在想想当初自己是智障吗?然后就去二面,二面的面试官不太友好,感觉应该是写过好多程序了,很有经验的感觉。但他不咋问我程序,一直问我性格方面,之前做的一个性格测试我也很难受,就是四个贬义词必须选一个,心情有点沉重,不知咋办好,后面的5个题都是这种,我之前做过一种测试是你前面的结果决定后面的问题,所以有点怀疑自己的人品。他因为有会迟到了好久,然后面试的时候感觉他也很忙,一会儿看看手机一会儿看看自己的鞋,反正不咋看我。他说他们公司清北人比较多,要的都是985/211院校的,然后谈论起高考,我感觉很不想谈那个事情,可能我自己说的也不是太好。当时自己很不懂事,面完还问自己有没有录用啥的。然后他总结了一下这次面试,说觉得我满腔热血,比较孩子气那种,反正就是很幼稚吧。我感觉心都要死了,回去后就坐在那里难受,哭了一晚上,第二天想想还难受,又哭了一天。那一整个星期都觉得自己很失败,我宿舍假期只有兰兰和我两个人,然后我就在那里哭,她就在那里安慰我,感谢我的兰兰。那会儿很害怕晚上,开着灯一直不敢关灯,睡着了明明醒了也不敢睁眼,做梦也梦见自己又回到那个场景,真是难受死了。然后大病了一场,感觉真是坏事总要赶到一起。后来我的初中语文老师开导我一下,感觉不管是高考还是这次找工作,我的语文老师总能在我最无助的时候拉我一把,她于我而言就是第二个妈。高考成绩出来我都不想报考了,想直接复习一年,是她肯定了我支持我的选择,这次难受也是她指点我让我再一次走出来,真的很感谢她。还有就是松哥,我安卓的引路人,也帮我很多,因为是一个学校的,我跟他交流完全没压力,乱七八糟开玩笑,当然也说正经的。

到现在我都很遗憾没有进IHandy,因为我师父实在是太好了,看到他我就充满了动力,后面面试难受的时候我想想不能给师父丢脸就挺过去了,神奇!我准备把他照片打印出来,和乔布斯的照片一起放在我以后的桌上当激励。但现在我还是很感谢iHandy的,如果没有这次的打击,我还是一直长不大的孩子,性格养成是一个缓慢过程,很难说哪本书真的令你脱胎换骨,都是一个累积效应,成长也是,是每一段时间的经历逐渐驱动的结果,只能说这次的驱动力很大。

(3)后期进攻

一周后缓过来了,就开始校招,因为开始的晚,有一些公司校招网申都完事了,还是硬着头皮投了十家大公司,反正自己已经这样了,最坏的结果就是十家都失败了呗,事实还真的就是这样,要么根本不理我,要么简历筛选没过,要么笔试没过,要么死在了一面。期间买了考研的资料,不过不是为了考研,单纯想巩固一下专业课,然后开始刷牛客网和leetcode算法题,校招有笔试环节,最后的两个一般都是编程题,自己之前搞不懂的算法竟然速成了,amazing,后面的校招笔试中不能全ac也能做出一个,平均下来,算每次做对1.5个吧,我也不知道后台怎样,我不会做的就会想办法碰测试用例,有一次竟然碰了100%的用例,黑盒测试还是有漏洞啊!这段时间算法和基础课唤醒了部分记忆,java又忘了,很感谢完美世界,那个面试官给我推荐了四本java的书,还说了每个书适合哪个阶段,回来很激动地把集合类学了一遍,又看完了一本java基础书,然后又投了十家公司再战。

后面就是不断查缺补漏过程了,所以起码一面不是问题了。而且前期哭够了,后期就不想哭了,失败了回来休息一下,总结一下当天的知识,继续按原计划学习。每次面试都会和人交流,都有不同的收获。最后这段时期加了几个微信好友,有程序员还有hr,从他们的角度我知道他们需要怎样的人,想要什么性格,所以也算是知己知彼了。

面试完最后一家公司,回去等消息。突然觉得结果不重要了,很释怀,因为我已经知道了自己接下来要怎么做,不再是黑夜里乱撞的孩子,而是提了一盏灯。

从学习上的收获就是知识的深度要不断扩展,要类比,比如网络连接有Socket长连接短连接,安卓有Binder机制,同样的Linux也有,这些有什么区别,什么情况下使用,底层实现是什么,这种结构使得它呈现怎样的特点,还有什么优化方法等,所有原理问到底层就真的回归到了大学基础课,甚至到了硬件上面。还有就是要想走的远一些底层的源码一定要看。从其他方面就是谦虚是IT最美好的品质,在华为面试时候一面的面试官跟我说,你的技术我这里真的过不了,但我觉得我应该给你一个机会,你的态度让我很感动,我觉得你的学习方式也对,这样坚持一年后肯定不是现在这样的。虽然最后华为面试失败了,但我真的很感动,起码我人品和方法应该没问题了,只需要时间。后来有几次面试面试官虽然没有这样说,但我觉得他们肯让我过还是跟我自身的性格有一些关联的。

(4)花絮

因为我github一直用来看别人代码,自己没提交过,有一天心血来潮想把自己课设放上去,结果没操作成功,但我以为成功了。去华为面试面试官说我看了你github的代码,写得还行,但是逻辑上有点欠缺,可见你代码量不够。回到学校,我打开github,发现我里面根本没有代码。。。。他看的是谁的?

自我介绍一直是坑,我不知道说啥,有一次跟面试官说你直接问吧,我不介绍了。。。。面试官都凌乱了,其实这样有点不礼貌。

爱奇艺面试时,问我为什么选安卓不选ios,我说我抵触苹果,他说你倒是很诚实。

面试等待的时候遇到了一个人,他问我学校,我说我学校挺差的,他说没事你说吧,我报出了学校后,他说,没事,其实我本科也是双非,考研才考上好学校的,我。。。

最后尤其要感谢红红,每次面试都陪着我,我不想面试也是她鼓励我,拉着我去坐地铁。余生很长,多多指教。

在准备的过程中,对于 Java 工程师岗位来说,搭建合适的开发环境是入门的第一步。虚拟机(VM)常用于模拟企业级服务器环境,以便学习者能够在接近真实场景中进行开发和调试。 ### 虚拟机配置指南 1. **选择虚拟机软件**:常见的虚拟机软件包括 VMware Workstation、VirtualBox 和 Hyper-V。对于初学者而言,VirtualBox 是一个免费且功能强大的选择,支持多种操作系统作为客户机运行[^2]。 2. **操作系统选择**:大多数 Java 项目运行在 Linux 环境下,因此建议选择 CentOS 或 Ubuntu Server 作为虚拟机中的操作系统。它们拥有广泛的社区支持,并且与大多数 Java 开发工具链兼容[^2]。 3. **硬件资源配置**: - 内存:至少分配 4GB RAM,如果运行大型项目或数据库服务,建议增加到 8GB 或更高。 - CPU:至少分配 2 核心。 - 硬盘空间:建议分配不少于 40GB 的磁盘空间,以确保有足够的空间安装开发工具、数据库、中间件等。 4. **网络配置**:通常使用“桥接模式”或“NAT 模式”来配置虚拟机网络。“桥接模式”可以让虚拟机获得独立的 IP 地址,更接近生产环境的配置;而“NAT 模式”则更适合快速联网和开发测试。 5. **安装必要软件**: - JDK:安装 Oracle JDK 或 OpenJDK,建议使用 JDK 11 或 JDK 17,这两个版本是目前企业广泛采用的长期支持版本。 - Maven/Gradle:用于项目构建和依赖管理。 - Git:版本控制工具,便于代码管理和团队协作。 - IDE:如 IntelliJ IDEA 或 Eclipse,推荐使用 IntelliJ IDEA 社区版或旗舰版。 ### 虚拟机搭建教程(以 VirtualBox + Ubuntu 为例) 1. **下载镜像文件** 从 Ubuntu 官网下载最新的 Ubuntu Server 镜像文件(ISO 格式)。 2. **创建虚拟机** 打开 VirtualBox,点击“新建”,输入虚拟机名称(如 Ubuntu-JavaDev),选择类型为 Linux,版本为 Ubuntu(64-bit)。 3. **分配内存和 CPU** 按照上述建议配置内存和 CPU 数量。 4. **创建虚拟硬盘** 选择“现在创建虚拟硬盘”,选择 VDI 格式,动态分配空间,初始大小建议为 40GB。 5. **设置启动盘** 在虚拟机设置中,选择“存储”,点击“空”光驱,选择“选择磁盘文件”,加载之前下载的 Ubuntu ISO 文件。 6. **安装 Ubuntu 系统** 启动虚拟机,按照提示完成 Ubuntu 的安装流程,设置用户名、密码等基本信息。 7. **安装增强功能(Guest Additions)** 安装 VirtualBox 增强功能,可以提升虚拟机性能并支持共享文件夹等功能。 8. **配置共享文件夹(可选)** 在 VirtualBox 设置中配置共享文件夹,便于主机与虚拟机之间传输文件。 9. **安装 Java 开发环境** 登录系统后,通过命令行安装 JDK: ```bash sudo apt update sudo apt install openjdk-11-jdk java -version ``` 10. **安装 Maven 和 Git** 安装 Maven 和 Git: ```bash sudo apt install maven git mvn -version git --version ``` 11. **配置 SSH 服务(可选)** 安装并启动 SSH 服务,方便远程连接: ```bash sudo apt install openssh-server systemctl status ssh ``` 12. **测试开发环境** 创建一个简单的 Java 项目进行测试,确保环境配置正确。 通过以上步骤,可以完成一个基础的 Java 开发虚拟机环境搭建,适用于准备中的项目实践和技能训练。确保在虚拟机中模拟真实的企业开发场景,有助于提升实际编码能力和问题解决能力。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值