双非二本大四学生,电气工程及其自动化专业,非科班。大二开始实习,秋招拿了360、海康威视等5家offer,其中三家大数据,两家Java开发。
2017年底,在朋友的帮助下,开始接触编程学习,也是他帮我选择了Java这个方向,其实在学习之初能有个人指点下方向其实是件很重要的事。首先是慕课上看了一个讲Java基础的课程,后来朋友给我分享的黑马Java培训视频,就直接开始看黑马视频了。
这个过程挺曲折的,一方面面临本专业期末考试,另一方面自学编程确实是件挺艰难的事情,这个感觉在刚接触Web开发,页面调Bug的时候体会的更深刻。
2018上半年,主要是在一边学习本专业课程,一边自学Java,我开始体会到,学习这些东西应该去打一些比赛练练手,为此我还特意找了辅导员,导员估计也是一脸懵逼,毕竟我们专业是学电气的,用Java的很少,他建议我去学校官网留意一些比赛通知,自己找队友组队参加。
于是开始了招募队友之路,基本问遍了我们专业有哪些人在学编程,后来找到了个会php的哥们,我和一个软工专业的同学搞网页开发,这个哥们就做后台,参加了一个校级的比赛,拿了三等奖。后来就开始了web开发的学习,SSM,SSH,Dubbo、Mysql、Redis、SpringBoot、SpringClound电商项目,SpringBoot和Cloud是看寥雪峰老师的课。
2018暑假,在认识的一个老师合伙的小公司里实习做了个SSM的商业项目,开始在实践过程中,疯狂锻炼开发调试能力。这期间对调BUG的能力有了很大的提升,如果不考虑分布式高并发高可用这一块,这个时候已经有能力独立开发一个web项目了。
2018下半年,开始了大数据开发学习,同样也是看的黑马大数据,这期间,还参加了两个省级比赛、一个国家级比赛。更重要的是,2017-2019这两学年,我分别拿了本专业的一等奖学金、二等奖学金、连续两年国家励志奖学金、三好学生、优秀学生干部,同时加入了党组织,这其中的艰辛其实可想而知。
2019上半年,看深入理解Java虚拟机这本书,学完了Linux、Zookeeper、Hadoop,MapReduce、Kafka、Storm、Hbase、Hive、Netty,Scala、看Spark源码,学习做了几个大数据项目。
春招找实习的时候,投了五六家,三四家挂在了笔试上,由于我前期的学习上并没有去学习计算机网络、数据结构、算法等计算机基础课程,这次实习拿到学校本地一家公司和海康威视的Java开发实习生Offer。最后还是放弃了这两个机会,暑假全身心留在学习计算机基础以及大数据开发学习上。
2019暑期,开始补计算机基础,liuyubobobo老师的玩转数据结构、算法与数据结构、深度实战玩转算法游戏、王道计算机网络、操作系统,买书看书,leetcode刷了几百道编程题,牛客剑指Offer等。
2019秋招的时候,刚开始的几个面试都挂了,问的问题我好像都会但都答不上来,很慌,生怕浪费面试机会。后面朋友给我推了锋哥微信,锋哥给跟我聊了一会,指出我存在的几个问题:
1..心态不好,秋招才刚开始就觉得自己不行。
2.简历结构写的不好,项目过于简单。
3.知识体系很零散,不系统化。
后面按锋哥的指导的路线走,基本就是面一家过一家,先后拿了海康威视(大数据)、大华(大数据)、奇安信(原360企业安全)(大数据)、两家小企业Offer(Java)。
深演智能大数据开发经历了两轮技术面,一轮HR面,又加面了一轮CTO面,最后还是没有给Offer,估计他们CTO需要能力更强的人。58大数据开发两轮技术面,聊的其实挺愉快的,二面面试官还答应我是过了二面的,不过没后续了。
还有些其它小厂经历了至少两轮面的。拿了几个offer后也不想投了,就签约打游戏去了,学了那么多不就为放松这一刻吗。。最后选择了奇安信(奇安信听说不加班,实习发现确实如此)。
实习经历
2019年12月到奇安信实习,来的时候组里在对大数据各个组件做一个监控告警平台,我到的时候监控差不多做了30%,用的开源软件是之前没有学习过的,很快熟悉了软件,接下来的所有监控以及告警这块全部是我负责了,告警这块用的开源项目是我自己调研的,然后自己修改组件源码、写python脚本等来满足我们的需求。
平台80%的线上组件的告警用的都是我修改后的项目来做的,组里是做分布式存储的,纯搞技术,做底层源码的修改,也为社区提供一些支持,后面我主要的工作和Kafka有关。这跟我一开始学习偏应用开发不一样,不过好在之前做过不少项目,锻炼了开发调试能力,基本工作进行的都很顺利。
接下来贴一下秋招面试题,都是我遇到的实战题,有Java,有大数据:
1.死锁、乐观锁、悲观锁、synchronized底层原理及膨胀机制ReetrantLock底层原理、源码是如何实现公平和非公平的synchronized和lock的区别volitale理解?
2.volitale保证可见性的意义什么是指令重排序,为什么要禁止指令重排序介绍java中的基本数据类型及所占大小2的8次方是多少,Integer最小值是多少。
3.说数值scala中Int和Long是怎么实现的,丰富的API是如何实现,scala中String是怎么实现的,这么多丰富的方法是怎么实现的?
4.隐式转换介绍Java中你知道的所有Map、Set、List的类,比较他们的区别,哪些是线程安全?怎样使用线程安全的集合,并发安全的容器都有哪些?HashMap和ConcurrentHashMap的原理HashMap的key如何设计?HashMap死循环问题HashMap为什么使用红黑树不使用B树、B+树说一下平衡二叉树的插入删除操作?树的层序遍历说说?多进程和多线程的区别,进程和线程的区别?
5.Callable和Runnable的区别谈一谈?线程怎么实现?讲讲Java中的线程池?自定义线程池,你是如何考量七大参数的,设计思路?如何优化synchronized,CAS的缺点
6.countdownlatch、cyclicbarrier和semaphore谈一谈,说说你是怎么用的Kafka存储机制,Kafka选型,ISR机制,Kafka集群数量是怎么考量的?
7.有一个共享变量,现在多线程操作,如何设计保证线程安全,并优化
8.JVM分哪几个模块?JVM垃圾回收算法?挑一个垃圾回收算法讲一讲原理?挑一个垃圾回收器讲讲?
9.说说类加载和双亲委派机制?介绍JVM内存模型,我创建了一个对象,它有一个变量,这个变量在JVM哪里,是线程安全的吗?
10.springMVC流程说说?spring的IOC和AOP?AOP项目中使用过吗?IO和NIO的区别?
11.netty看过源码吗?你写netty rpc的时候网络传输是怎么做的?使用netty比nio有什么好处?
12.spark看过哪些源码?spark算子有哪些?哪些会导致shuffle,action和transformation算子?stage如何划分,task怎么分配?spark缓存不够用了怎么办?spark和kafka的选型问题?
13.storm的ACK机制?你做的storm项目,topology如何设计的?
14.springboot了解吗?微服务知道吗?double源码看过吗?springmvc和springboot区别?hibernate和mybatis区别?
15.你的大数据项目,怎么保证最后结果的正确性?
16.spark任务提交流程,面试官提示了applicationmaster,需要说yarn cluster模式下的流程?spark堆外内存?sparkshuffle中的瓶颈?说下spark的hashshuffle和sortshuffle,现在使用哪个?
17.mysql和redis的区别?redis缓存雪崩?mysql表和视图的区别?mysql的四大事务?关系型数据库和非关系型数据库的区别?
18.TCP/IP网络体系结构说下?ICMP是哪一层的协议?Linux有哪些常用命令?
19JVM调优做过吗?说说看?介绍一个调优的案例说下?JVM性能监控工具有哪些?分别是做什么用的?JVM调优和性能监控工具基本是必问的,建议搞一个案例总结一下
20.排序算法也很重要,面试官让介绍常用排序算法,时间复杂度,稳定性,升序排序用小顶堆还是大顶堆之类;10亿整数找出现次数最多的topN,单机内存不足;反转链表,链表入口,数组之类的编程题也有;
能回忆起来的差不多就这些了,还有一些项目有关的就不说了。
最后就是想转型要趁早,越早成本越低,庆幸自己能比较早的去参加比赛并且实习,自己去创造环境,也感谢一路上帮助我的朋友、老师、锋哥,学习路上有人指导真的可以少走很多弯路,让自己不轻易放弃。
--end--
推荐阅读:
五年Java外包转型大数据架构
北美零基础转行开发求职面经
双非硕士阿里大数据开发面经
一位材料专业研究生的Java转型复盘
从车辆工程到大数据开发,我经历了什么?
我,30岁,部队服役5年,零基础转大数据
Java干了半年,我机智地跳到了大数据开发
传统金融IT男转型互联网大数据码农,图啥?
从安卓主管转型大数据开发,我经历了什么?
专升本程序媛,实习期间月薪10K,有点厉害
我是程序媛,从事大数据开发两年,我有话说
两年车间技术员转型大数据开发,说说转型这点事儿
3年Java开发转型大数据开发,如何跳出CRUD舒适区?
我是DBA,从大数据小白到阅读框架源码,薪资翻了三倍
国企车间流水线5年,重新考研,弯道超车,收割百度腾讯offer
被培训机构坑了,面国企要求唱歌...谈谈我转型大数据的心酸历程
警犬专业专科生,过阿里一面,又收作业帮offer,跟你聊聊大数据学习
学了三年的嵌入式,但我还是转型了大数据,跟你聊聊我学习的心路历程
扫描下方二维码
添加好友,备注【交流群】
拉你到学习路线和资源丰富的交流群