大专java方向校招面试找工作知识点技术栈以及实习感受分享
专科生的Java学习以及校招面试
- 作者是一个大专生,在这个遍地985的网络世界实在是不值一提,技术也菜;写这篇文章的目录是想记录一下我的校招以及经历,以及给同样是大专生的同学一些参考。
- 以下文章都只代表我的个人观点,不能以偏概全,只是提供参考。
先说一下我的编程历程
- 专科生的我也并不是学计算机的,而是啥都学的电信(电子信息工程),主要还是和硬件打交道,最开始是电路板,后面就是微控制器,plc这些。
- 最开始接触编程应该是c语言吧,那个时候疫情,我家在也在农村,再加上那段时间家里也有事。可以说真的是没有听过课,用手机写一个hello world都写不出来。
- 时间来到去年夏天,我做了我认为现阶段最正确的事,花了当时暑假工的工资买了电脑。开始了我的学习之路。那学期我们正好有python这门课程,那个时候完全的小白,也是很菜,但是python的爬虫引起了我的兴趣,从去年寒假开始闭关。开始真正开始学习编程。
- 寒假把java也简单的学习了一下,入门都不算,然后上学之后开始是在哔哩哔哩的漫长追番之路(众所周知,哔哩哔哩是一个学习软件【哔哩哔哩大学】);暑假开始学习javaWeb,然后就是ssm框架。一直到10月份找工作,勉强把springboot过了一遍。
开始求职之路
第一次求职
- 第一次面试学校的合作公司专场招聘会,是直接带着简历去面试。
- 第一次的那个公司算是一个大厂吧,准备要上市了,在学校这边来招聘,有很多岗位,其中有一个是研发,其实它上面写了学历要求是本科,但是我想着都来这边招聘了,总要试一下的。上来直接就是给我20道题目,大部分是算法,逻辑题,直接把我搞懵了。
- 其实他的那个岗位本来就是做研发的,不是业务性的;所有当然是毫无悬念的,题目都没做完。之前学过一点数据结构和算法,但是已经忘得差不多了。
- 结果就是没有后续了
网上海投
- 我们学校有一个求职系统,可以在上面投简历,好像是会同步到高校联盟上面;上面有企业会发招聘信息,但是关于IT行业的真的是少之又少,我当时找了15个职位,只要是和我学习的技术栈搭边的我都投了。
- 第一天,毫无反应。
- 第二天,毫无反应(可能是和我晚上投递的优点关系)。
- 终于在第三天的下午,我正在和我同学说投了15份简历一点动静都没有的时候,电话打过来了,叫我下周去面试。然后上完一节课,又一个电话,也是面试邀请。
第二次面试
- 面试当天在寒风中等了1个多小时,还一边看学习笔记。给人发消息一直没回,后面还是快要到点了我自己上去找的。
- 到公司了叫我坐一会,填写一个基本信息。然后过了一会叫我去面试。面试的那人应该不是搞技术的,他问我问题的时候,都是照着笔记本上面说的,答案也是看笔记本。
- 由于时间有点久了,我已经记不起来问的什么了;我记得有一个有一个问题是说springboot的核心注解还有springboot中的常用注解,那个时候我还只是把springboot赶着学了一下,我当时只知道有这个注解,叫什么完全一点印象都没有。
- 面试还好,问题基本上都回答上来了。
- 然后就是笔试,我这里说一下影响比较深刻的几个题目:
- jdbc使用的是什么设计模式。
- 受检异常(是一个选择题,好像是选择一个还是几个)
- 还有一个二进制转换为10进制的选择题。
- 怎么解决高并发问题(忘记是不是这个了,就是一个类似的简答题)
- 说一说mybatis的一级缓存和二级缓存。
- 说一说线程池。
- arrayList和LinkedList。
- 还有的我已经忘记了。记得好像还有一个算法题,笔试那个时候真的是做的不好,其实不难,就是我没有碰到过。然后就叫我回去等通知,也就没有后续了。
第三次面试
- 那天面试的人挺多了,大概有六七个左右。先是做笔试题。我就说我记得的一些题目了:
- jdbc连接数据库的步骤。
- 写一个死锁代码。
- 写一个单例模式。
- 有两个算法题,我已经忘记了。然后就是面试;这次直接就是三个面试官,而且都是搞技术的,往对面一坐,这阵仗我当时就慌了。
- 直接说问了些什么吧:
- 基本数据类型和包装类的区别。
- 重载和重写。
- 什么类不能被继承。
- 说一说了解的设计模式。
- 说一种排序算法的思路。
- 创建线程的方式。
- 聊一下线程池。
- 说几个运行时异常。
- 说一说死锁。
- 不使用工具类判断是不是合法的ip地址。
- 叫我等一会儿,大概半大小时之后通知我二面。这会儿是两个人,看着应该是大佬。问了下框架:
- Dubbo怎么实现的负载均衡。
- Dubbo怎么实现的容错。
- 后面问我有没有什么问题。
- 然后就叫我回去等通知。
学校招聘会
- 学校组织的大型招聘会,当天有400家企业;
- 但是相对于其他的,IT行业的企业也是相对少一些的。
- 在招聘会投了差不多10份简历吧,我这里只说比较合适的两个。
第四次面试
- 这个是校招上面投的,先做笔试,这次的笔试做的还是挺好的,基本都答了。就感觉笔试题很水。
- 后面的面试也挺水的,那人也不是做这个的,好像是做别的技术的,就简单的聊了下,然后等通知有一个电话面试。
- 电话面试的话主要就是问我做的项目吧,框架问了下,然后问我mysql用了几张表。
- 过了几天给我说你基础还是有的,但是开发的话还差了点,如果进来的话需要培训(培训期间要自掏腰包),后面也还有考核,然后就拒绝了。
第五次面试
- 这个也是在招聘会上投递简历的面试邀请,先做笔试,题目挺多的,它的只要做自己会做的就行,20分钟时间。
- 简单说一下涉及到的技术栈:数据结构,红黑树,mysql索引,集合框架,线程池,懒汉式单例模式,对象锁,ThreadLocal。
- 后面是面试:
- 简单的问了下java基础。
- 然后就是框架。
- redis速度快的原因。
- 问了下项目。
- 聊了下微服务(那个时候还并没有学springcloud)。
- 二面:应该是部门大佬,气质都不一样,问了javaweb相关的一些知识,还聊了一下项目。
- 后面通知还有总公司的一个电话面试。
- 总公司的电话面试问的挺细致的,主要就是java基础吧,线程,反射,然后还有就是说了下spring的IOC和AOP。
- 后面让我问他,我说我还应该要掌握哪些技术栈,叫我去了解下微服务,Nio,消息队列。
- 然后也是等通知。
Offer
First
- 收到的第一个offer是第三次面试的那家公司,就是三个面试官的那家;我其实是真的没想到这家公司会过,当时面试的时候感觉答的大差了;后面人事打电话通知我过了。
- 然后问我什么时候能入职,因为那个时候学校还没有结课,所有我说的时间比较晚,那人勉强好像答应下来了,说过几天会给我发一个线上的offer。
- 然而最坑的事情来了,过几天我啥都没有收到,我问了下,他说offer被总部拦截,无法发放。估计应该是我报道的时间太迟了,还有就是他们招聘到更好的人了。
Second
- 收到的第二个offer就是第四次面试的,后面说要培训的公司,然后还需要去别的地方,就拒绝了。
Hirdly
- 最后面试的公司,三次面试,最后一次是总公司的电话面试的。
总结
概述
- 大专生还是能找到工作的,一定不能放弃,现在你可能是一个人在独占学习,但是后面就不会了,后面就会发现很多和你一样的人都在努力。
- 说一说java要找到工作要掌握的技术栈。
- 以及大概什么程度可以开始找工作。
- 还有一些注意事项。
需要掌握的技术栈
-
java基础:
- 数据类型,包装类。
- 面向对象,封装继承和多态,重载和重写。接口,this,super,final,static。【重点】
- 集合框架,Collection,Map,特征,区别,常用方法。继承实现结构。【重点】
- 异常机制,能写出常见的受检和运行时异常,异常处理。
- io流。流的简单使用,以及序列化和反序列化。
- 线程,线程的创建,线程池,死锁,线程同步,synchronize,对象锁。【重点】
- 反射和注解,反射的简单实用,常用方法,创建对象。
-
mysql数据库
- jdbc连接数据库。
- 简单的crud语句编写。
- 常用函数的使用。
- 约束和索引。
- 事务。
-
javaWeb
- http协议。
- servlet,生命周期,请求转发和重定向。
- request,response。
- ServletContext,HttpSession,Cookie。
- 监听器和过滤器。
- jsp以及mvc规范。
- 前端三剑客。
-
框架
- spring,springmvc,mybatis(ssm)。【必须】
- springboot。【看公司,基本也是必须】
- springcloud
- Dubbo
- Rabbitmq
-
其他
- maven和git【重点】
- tomcat,linux。
- 常见的数据结构以及简单的排序算法。
6.项目 - 最好是有一个项目,加分项,但是最重要的还是基础。
什么程度可以找工作
- java基础,这个一定要牢固,面试很多问的也是基础,我上面列出来的那些也是面试常被问到的。
- javaweb,也算是框架之前的一个基础学习。对请求与响应模型有认识,以及session还有cookie。
- mysql,这个不用多说,是肯定需要的。
- ssm,spring框架在java开发中的重要地位不用多说。
- springboot是简化ssm,现在很多都是直接使用springboot,所有基本上要到这里。
- 下面就是扩展:Dubbo,redis,Rabbitmq,springcloud…
实习体验
- 我现在也是正在实习,就是我最后面试的那家公司,简单说一下我的感受吧。
- 一定一定一定要对maven和git很熟练,不然到时候公司一个项目丢过来的时候,真的是无从下手,对比自己写的项目复杂很多,主要是maven的多模块管理,以及在idea中使用集成的git,都是直接写完代码后在idea中commit和push以及pull的,所有一定要熟练使用。
- 还有就是如果面试过了,但是你还没有学习微服务的话,记得一定要学一下,项目都是各个微服务协作的,所有cloud一定绕不过去,还有是rabbitmq也会使用。
- 文章内容都只代表我的个人观点和看法,仅供参考。如果是大佬就请不要来喷我了。
关于我
- 我的GitHub地址
- 我的Gitee地址
- GreasyFork
- 个人网站【很垃圾,很多东西都还没有实现,算是一个遗留项目了】:
枫叶网