1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00
2019-03-25 17:19:36 +08:00

82 lines
10 KiB
Java
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

  身边的朋友或者公众号的粉丝很多人都向我询问过:我是双非/三本/专科学校的我有机会进入大厂吗非计算机专业的学生能学好吗如何学习JavaJava学习该学那些东西我该如何准备Java面试......这些方面的问题我会根据自己的一点经验对大部分人关心的这些问题进行答疑解惑现在又刚好赶上考研结束这篇文章也算是给考研结束准备往Java后端方向发展的朋友们指名一条学习之路道理懂了如果没有实际行动那这篇文章对你或许没有任何意义
### Question1:我是双非/三本/专科学校的我有机会进入大厂吗
  我自己也是非985非211学校的结合自己的经历以及一些朋友的经历我觉得让我回答这个问题再好不过
  首先我觉得学校歧视很正常真的太正常了如果要抱怨的话你只能抱怨自己没有进入名校但是千万不要动不动说自己学校差动不动拿自己学校当做自己进不了大厂的借口学历只是筛选简历的很多标准中的一个而已如果你够优秀简历够丰富你也一样可以和名校同学一起同台竞争
  企业HR肯定是更喜欢高学历的人毕竟985211优秀人才比例肯定比普通学校高很多HR团队肯定会优先在这些学校里选这就好比相亲你是愿意在很多优秀的人中选一个优秀的还是愿意在很多普通的人中选一个优秀的呢
  
  双非本科甚至是二本三本甚至是专科的同学也有很多进入大厂的不过比率相比于名校的低很多而已从大厂招聘的结果上看高学历人才的数量占据大头那些成功进入BAT美团京东网易等大厂的双非本科甚至是二本三本甚至是专科的同学往往是因为具备丰富的项目经历或者在某个含金量比较高的竞赛比如ACM中取得了不错的成绩**一部分学历不突出但能力出众的面试者能够进入大厂并不是说明学历不重要而是学历的软肋能够通过其他的优势来弥补** 所以如果你的学校不够好而你自己又想去大厂的话建议你可以从这几点来做**尽量在面试前最好有一个可以拿的出手的项目有实习条件的话尽早出去实习实习经历也会是你的简历的一个亮点有能力在大厂实习最佳参加一些含金量比较高的比赛拿不拿得到名次没关系重在锻炼**
### Question2:非计算机专业的学生能学好Java后台吗我能进大厂吗
  当然可以现在非科班的程序员很多很大一部分原因是互联网行业的工资比较高我们学校外面的培训班里面90%都是非科班我觉得他们很多人学的都还不错另外我的一个朋友本科是机械专业大一开始自学安卓技术贼溜在我看来他比大部分本科是计算机的同学学的还要好参考Question1的回答即使你是非科班程序员如果你想进入大厂的话你也可以通过自己的其他优势来弥补
  我觉得我们不应该因为自己的专业给自己划界限或者贴标签说实话很多科班的同学可能并不如你你以为科班的同学就会认真听讲吗还不是几乎全靠自己课下自学不过如果你是非科班的话你想要学好那么注定就要舍弃自己本专业的一些学习时间这是无可厚非的
  建议非科班的同学首先要打好计算机基础知识基础计算机网络操作系统数据机构与算法我个人觉得这3个对你最重要这些东西就像是内功对你以后的长远发展非常有用当然如果你想要进大厂的话这些知识也是一定会被问到的另外一定学好数据机构与算法一定学好数据机构与算法一定学好数据机构与算法重要的东西说3遍
### Question3: 我没有实习经历的话找工作是不是特别艰难
  没有实习经历没关系只要你有拿得出手的项目或者大赛经历的话你依然有可能拿到大厂的 offer 笔主当时找工作的时候就没有实习经历以及大赛获奖经历单纯就是凭借自己的项目经验撑起了整个面试
  如果你既没有实习经历又没有拿得出手的项目或者大赛经历的话我觉得在简历关除非你有其他特别的亮点不然你应该就会被刷
### Question4: 我该如何准备面试呢面试的注意事项有哪些呢
下面是我总结的一些准备面试的Tips以及面试必备的注意事项
1. **准备一份自己的自我介绍面试的时候根据面试对象适当进行修改**突出重点突出自己的优势在哪里切忌流水账
2. **注意随身带上自己的成绩单和简历复印件** 有的公司在面试前都会让你交一份成绩单和简历当做面试中的参考
3. **如果需要笔试就提前刷一些笔试题大部分在线笔试的类型是选择题+编程题有的还会有简答题**平时空闲时间多的可以刷一下笔试题目牛客网上有很多但是不要只刷面试题不动手code程序员不是为了考试而存在的另外注意抓重点因为题目太多了但是有很多题目几乎次次遇到像这样的题目一定要搞定
4. **提前准备技术面试** 搞清楚自己面试中可能涉及哪些知识点那些知识点是重点面试中哪些问题会被经常问到自己改如何回答(强烈不推荐背题第一通过背这种方式你能记住多少能记住多久第二背题的方式的学习很难坚持下去)
5. **面试之前做好定向复习** 也就是专门针对你要面试的公司来复习比如你在面试之前可以在网上找找有没有你要面试的公司的面经
6. **准备好自己的项目介绍** 如果有项目的话技术面试第一步面试官一般都是让你自己介绍一下你的项目你可以从下面几个方向来考虑对项目整体设计的一个感受面试官可能会让你画系统的架构图在这个项目中你负责了什么做了什么担任了什么角色 从这个项目中你学会了那些东西使用到了那些技术学会了那些新技术的使用项目描述中最好可以体现自己的综合素质比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如:用redis做缓存提高访问速度和并发量使用消息队列削峰和降流等等
7. **面试之后记得复盘** 面试遭遇失败是很正常的事情所以善于总结自己的失败原因才是最重要的如果失败不要灰心如果通过切勿狂喜
**一些还算不错的 Java面试/学习相关的仓库相信对大家准备面试一定有帮助**[盘点一下Github上开源的Java面试/学习相关的仓库看完弄懂薪资至少增加10k](https://mp.weixin.qq.com/s?__biz=MzU4NDQ4MzU5OA==&mid=2247484817&idx=1&sn=12f0c254a240c40c2ccab8314653216b&chksm=fd9853f0caefdae6d191e6bf085d44ab9c73f165e3323aa0362d830e420ccbfad93aa5901021&token=766994974&lang=zh_CN#rd)
### Question5: 我该自学还是报培训班呢
  我本人更加赞同自学你要知道去了公司可没人手把手教你了而且几乎所有的公司都对培训班出生的有偏见为什么有偏见你学个东西还要去培训班说明什么同等水平下你的自学能力以及自律能力一定是比不上自学的人的但是如果你连每天在寝室坚持学上8个小时以上都坚持不了或者总是容易半途而废的话我还是推荐你去培训班观望身边同学去培训班的大多是非计算机专业或者是没有自律能力以及自学能力非常差的人
  另外如果自律能力不行你也可以通过结伴学习参加老师的项目等方式来督促自己学习
  总结去不去培训班主要还是看自己如果自己能坚持自学就自学坚持不下来就去培训班
### Question6: 没有项目经历/博客/Github开源项目怎么办
  从现在开始做
  网上有很多非常不错的项目视频你就跟着一步一步做不光要做还要改进改善另外如果你的老师有相关 Java 后台项目的话你也可以主动申请参与进来
  如果有自己的博客也算是简历上的一个亮点建议可以在掘金SegmentfaultCSDN等技术交流社区写博客当然你也可以自己搭建一个博客采用 Hexo+Githu Pages 搭建非常简单写一些什么学习笔记实战内容读书笔记等等都可以
  多用 Github用好 Github上传自己不错的项目写好 readme 文档在其他技术社区做好宣传相信你也会收获一个不错的开源项目
### Question7: 大厂到底青睐什么样的应届生
  从阿里腾讯等大厂招聘官网对于Java后端方向/后端方向的应届实习生的要求我们大概可以总结归纳出下面这 4 点能给简历增加很多分数
- 参加过竞赛含金量超高的是ACM
- 对数据结构与算法非常熟练
- 参与过实际项目比如学校网站
- 参与过某个知名的开源项目或者自己的某个开源项目很不错
  除了我上面说的这三点在面试Java工程师的时候下面几点也提升你的个人竞争力
- 熟悉PythonShellPerl等脚本语言
- 熟悉 Java 优化JVM调优
- 熟悉 SOA 模式
- 熟悉自己所用框架的底层知识比如Spring
- 了解分布式一些常见的理论
- 具备高并发开发经验大数据开发经验等等