博主是个新手,第一次写博客,有点紧张,写的不好的地方望轻吐(>。<),此文章只针对一般水平的选手,高手出门右拐,想看热闹也十分欢迎!
博主是个普通一本的学生,专业也是个小众专业,学院是学校最小的学院,本人呢也是个十分普通的人,总之一切都很平凡。没有超世之才,亦没有坚忍不拔之志,有的只有无穷无尽的坏运气,甚至有的时候博主都怀疑自己是个悲观主义者。声明一下这不是写小说,这不是主角的人设,咳咳=。=,虽然博主也喜欢看小说,看动漫,可以算的上是半个死宅了。
博主这一生(到目前为止)也没有什么重大的成就,没有那么多的机遇,或许是没发现。从初中到大学都是一个不擅长考试的人,也不太擅长处理人际关系,只知道死读书,现在才明白除了学习其他的事情也是那么重要,甚至于比读书更重要,许多人把它叫做情商。没办法博主情商低,搞砸了许多事情才明白他的重要性。人或许只有不断地经历缺失带来的后果才能不断成长吧!就像技术上踩的坑多了才能进步一样。好了废话不多说,开始进入正题。
博主是从9月中旬开始入坑的,这个时间不算太早,都错过了许多大公司的招聘,虽然大公司也进不去(-。-)。从开始的信心满满到后来的怀疑人生,再到身心俱疲,最后开始绝望(都准备开始第二年春招了),这个时候老天终于给了我一个惊喜。或许是因为踩的坑多了,从开始的笔试都过不了,然后开始刷笔试题,逐渐笔试都能过了,能进面试,再到一面无情挂,挂的我都开始觉得自己是个废材了。这时候开始认识到自己面试的技巧十分缺失,面试题也准备的不充分,而且博主发现面试的时候说话要有分寸,不可见人就说十分话,不能说多也不能话太少,话不能十分真实,也不能谎话连篇,这其中有一个度需要自己把握(博主之前总是实话实说,面试体验极差,当然这里不是教大家说谎话,我们还是说真话的好孩子,不,好青年=。=),比如自己的项目事实上确实很low,但是你却不能去贬低它,要适当 的使用一些专业术语来然自己的项目显得高大上一点,当然大佬不用理会(这里只针对一般水平的孩子)。这个时候已经是十月处了,秋招已经过了一半了,同学都陆陆续续的签了公司,辅导员也隔几天就在群里发个消息,今天又有几多几多同学签了公司,请剩下的同学抓紧时间。博主其实内心十分慌,但表面上还是要表现的十分稳的(毕竟博主是个要面子的人,手动滑稽)。
这时候有的要求不高签工作就像买菜一样,有的被打击的很受伤,不想再去接收伤害就将就自己签了自己并不满意的工作,虽然人生之事不如意者十之八九,但是现在放弃未免太草率了,博主是不敢苟同的。这里需要强调一点的就是面试要胆子大一点,脸皮厚一点,特别是面对小公司的面试官时,因为从博主的经历来看,大公司的面试官素质普遍高一点,即使你表现很差,他也不会当场表现得很嫌弃,甚至嘲讽你。大公司的面试官一般是比较可爱,比较温柔的程序员大哥哥,即使不要你,有的也会指出你的不足,给你提提意见,然你看看书,巩固基础什么的。但是小公司的面试官就不一定了,有时候你表现差一点,可能他就会当场嘲讽你,这时候并不要去否定自己,不要太在意他的评价。你要清楚他为什么只能在小公司也是有原因的,这里就不明说了。你自己只需要知道哪里不足,那个知识点没有复习到或者掌握的不熟练,事后完善自己就好了,机会后面有的是,自己堂堂大学生有手有脚还是饿死不成,最差的情况不就是回家种田搬砖么(手动滑稽),博主经常有这个来安慰自己,效果还不错。
博主的秋招之路从开始的三五成群,到最后只剩下我一人,快到绝境之时,柳暗花明,天无绝人之路说的就是这样吧!虽然博主是第一次体会到这种感觉,确实十分美妙。你可能不知道,博主每次去参加招聘会需要乘坐两个小时的车,晚上做完笔试9:30,然后匆匆忙忙驱赶最后一趟公交,还有一次博主和两个小伙伴错过了最后一班车,只能坐夜班车到最近的一站下车,然后发现特么居然连共享单车都没有,这时候已经是晚上10:30,出租车也不愿意进去我们那个鸟不拉屎的地方,不要说出高价,博主穷,没钱。然后博主看了看地图,直线距离8公里,加上今晚的公司十分坑爹,一气之下就走回去了,当时刚下过雨,地上全是泥,博主晚上是个路痴,另外两个白天也是路痴(容我先哭一会),走着走着走进了地铁施工区(哪个城市疯狂修地铁我就是不说了,保密),路被围住了,然后又回去,走着走着走进了棚户区,问了半天路才走出来。当天晚上12:30终于回到了学校,楼主的微信运动直接刷新了历史新高,小伙伴们都惊讶了。
无论是么时候都不要放弃,虽然有时候坚持下去并不能得到回报,但是你需要明白,成功并不是坚持就能获得的,如果是,那成功不就太廉价了么?历经50多天,接近两个月,博主终于碰到了属于自己的机遇,成功获得一份13k的工作,具体是个公司博主不方便透露,说实话博主自觉并不配这个高薪工作(大佬忽略),但是我会努力让自己去配的上他。
说了这么多博主要强调的是努力不一定能得到回报,但是不努力连机会都没有,遇到挫折不要轻易放弃,即使你被它虐的体无完肤,有时候明知道这是毒鸡汤也要喝下,因为你需要一个精神支撑来完成你的愿望。
说到这里博主的故事也差不多讲完了,这里给还没有找到工作或者即将找工作的小伙伴几点建议:
1、最好提前一个月或者两个月准备校招,可以先复习一下学过的只是,不如数据结构,某一门你准备从事的语言,数据库,算法,计算机网络等,大公司一般对基础要求很 高,对框架什么的要求还好。可以提前刷一下算法题,博主是在牛客网上刷的,感兴趣的小伙伴可以去看看。
2、一定要有项目经验,即使是不那么高大上的项目,就算没有项目给你做,你自己也可以写一点需求然后做一做项目,有时间的可以看看一些开源项目,然后自己做一个,一定要自己动手做,不要照着写或者复制粘贴,可以先看懂之后模仿。有的公司可能会问你项目之中遇到过哪些问题,你是怎么解决的,怎么优化的?
3、面试之前需要看看该公司是干什么的,有哪些主营业务,避免不知道引起的尴尬(楼主尴尬过,别笑)。另外面试自信一点,不要太紧张,临场发挥很重要,可以在面试之前看看中等难度的算法,保持大脑的清晰度。
4、博主是Java后台开发,这里说一下可能会问到的问题,首先Java基础知识必须熟练。
集合框架,ArrayList的扩容(最好看看底层源码)HashTable和HashMap的区别、final关键字、抽象类和接口的区别、面对对象的思想(继承、封装、多态)。
String类相关方法和特性,Object类有哪些方法。
Java异常体系(顶层接口、费检查异常和检查异常、throws和throw区别),Java反射机制,Java泛型作用。
Java常用数据结构,Java高并发编程,Java线程创建方式,线程安全(同步方法和同步代码块的锁机制区别),wait和notify区别,volatile关键字和CAS原理、重入锁ReentrantLock原理、阻塞队列的原理和数据结构选用。
Java常用设计模式,单例的几种写法,包括饥汉式、饿汉式、考虑到线程安全的双层判断、内部类实现(最高效安全)。
Java虚拟机,包括Java内存模型,java类加载机制、Java类加载的过程(多考对象的实例化过程)、GC收集算法(复制、标记清除、标记整理、分代收集等),博主推荐看看深入理解Java虚拟机(周志明)、在校期间看的这些书对面是都是很有好处的,曾经有个面试官告诉我在我前面的一位同学大学研读几本书做了六七本笔记,直接就给了offer
哈希算法,基本排序方法(冒泡、选择、希尔排序、插入排序、快速排序、堆排序等,要保证能随时手写出来)。
二叉树查找遍历(深度和广度),有的公司会问到二叉搜索树(二叉平衡树)、红黑树、B-树、B+树。考的比较多的是斐波那契数列的递归和迭代实现方式(博主遇到过无数次),另外KMP算法需要看一下有好处。
操作系统死锁产生原因和解决办法,多线程和多进程的区别,操作系统涉及到的批处理调度算法、磁盘调度算法、页面置换算法、作业调度算法(多考选择题)
计算机网络注意各种网络协议的格式和区别、流量控制、三次握手、TCP和UDP区别和优缺点比较、cookie和session区别
数据库基本增删改查、聚集函数、索引、数据库调优(了解即可,博主也不会)
Java框架中问的比较多的是spring框架的AOP和IOC、struts2的执行过程和常用拦截器、有时间和能力的可以看看框架底层源码(博主没看过,想进大公司看了机会更大)
分布式也可以了解一下(反正博主不知)
在二面的时候有的面试官会出一些创新题,他会给你讲一个新概念、你理解之后然你扩展实现他的需求、这个有点难度,但是不要怕、只要注意和面试官的交流、认真听他给你讲、即使在不知道的情况下也要认真思考、不要轻易让他提示,最后没有正确思路也可以说说你不成熟的想法,不要什么都不说就说我不知道。博主当时也没做出来,但是在聆听和思考方面给了面试官好印象所以让我过了两面。总之考察的是你的学习能力、理解能力、交流沟通的能力和思维能力。
博主暂时能想到的就这些了,这里列出来作为参考、想进BATJ的同学需要知道的更多、博主也无能为力。写了这么多,也算是对这难忘经历的缅怀吧,留给以后的自己看看也是挺不错的。博主当年没人提点,一步一步都是自己摸索的,深知这有多困难,我希望通我的分享能让更多的双非自学的同学能获得哪怕一点有用的信息,这就足够了。
博主看过的一些有用博客连接:
Java动态规划详解:http://blog.youkuaiyun.com/QuinnNorris/article/details/77484573
Java数据结构常见树(BST、AVL等):http://blog.youkuaiyun.com/sup_heaven/article/details/39313731
ArrayList实现原理:http://www.cnblogs.com/ITtangtang/p/3948555.html
Java异常体系:http://swiftlet.net/archives/998
23种设计模式:http://www.cnblogs.com/foryang/p/5849402.html
java并发编程-volatile关键字:http://www.cnblogs.com/dolphin0520/p/3920373.html