Java学到什么程度才能找到工做?从国内各阶层互联网公司分析

刚开始学习Java的小伙伴,尤为是那种又没钱又没有背景的,刚开始学习Java都关心这么一个问题:到底把Java学到何种程度才能找到第一份工做呢?程序员

每一个人都很现实,目标都是至关的一致,都是为了能拿到像别人高薪的工做。那到底一个Java初学者要学多少Java知识,才能找到第一份Java工做呢?面试

Java学到什么程度才能找到工做?从国内各阶层互联网公司分析

在好久之前我曾经写过一篇关于本身的文章,记录了我IT职场中第一次面试,当时个人技术水平跟你们差很少,就是刚入门的水准,毕竟是一个刚接触的小白。算法

可是做为一个刚开始工做的新手,找到一家小型公司的Java开发工做仍是比较容易的,毕竟如今最多的就是互联网公司,每一个公司对于员工的要求也是天差地别。数据库

好比阿里、华为这样的公司,他们可能对于学历要求比较高。而一些只有几十我的的创业公司,他们更加注重这我的的技术能力、实践能力、解决问题的能力。编程

我想应该用不一样的公司来做为标准,只有这样我才以为有现实意义:缓存

创业型小公司

创业型小公司的特色就是人气比较少,平时作事情比较杂。在这里我说的是不到百人的创业公司,这样公司在国内是最多的,以我多年在职场的经验来看,大多数这样的创业型公司,他们很难招聘到很是优秀的技术人才。网络

第一个是他们没有这样的实力去给他们发工资;数据结构

第二是比较优秀的人才必定是被大公司挖走的。这样的公司自己没有什么底气,因此他们对于应聘者要求也会比较低,学历基本都是不看的,Java基础知识能良好的掌握,能独立作几个Java Web项目,基本均可以应聘上,最基本的CRUD能够独立完成。对于这样的公司,已是不错了。并发

这种小型的创业公司招聘人才的渠道很是少,每月的薪水得不到保障,并且整个办公环境也比较差,可是工做时间却是一点都很多。因此,像去这种类型的公司找工做,只要本身真正的学了一些本领,基本上均可以很容易找到工做。负载均衡

中小型公司

通常定位中小型企业,都是说那些100人以上,500人如下的成熟公司。广泛都是叫不上名字,可是公司还算有发展潜力的,这样的公司稍微正规一点,整个的办公环境会好不少,以及一些福利待遇,并且不用担忧发不出来工资的问题。

招聘技术人才和培训人才会有本身的一套标准。他们的要求通常都是大专学历以上的,对于我的的技术上把关更严格一点,除了能够良好的掌握Java基础知识和项目以外,还会考查你的debug能力,代码规范、异常处理能力,以及对一些Java高级特性的理解能力,可能最好多用过一些框架。这就要求咱们在学习的过程当中,多付出精力写代码,而且对于一些原理问题要搞清楚。

总的来讲,这样公司在选拔技术人才的时候,标准更加模范化,更加有体系。不会像创业型公司那样随意,只要领导拍个板就行。在我看来,他们这样的公司其实也吸引不到太多优秀人才,但不一样的是,确实会有一些能力不错的公司骨干。

二三线互联网公司

这种类型公司范围很是广,好比你们常据说的搜狐、畅游、新浪、360,还有一直萎靡的迅雷、金山、猎豹,甚至是爱奇艺、携程这类现状比较不错的企业等等。

这种级别的公司还挤不到BAT TMD等一线互联网行列,可是若是你能进入这样的公司,已是很是不错了。薪资不会低于年薪40万。它们这样的公司对于技术人才的要求就要很是高了。

他们的最低要求就是本科学历,对Java基础知识要达到精通的程度,要能够很是熟练的阅读源码,若是你没看过源码,那么在源码方面的面试题必定要好好准备一下。除此以外,通常来讲他们还会考察你网络知识、操做系统,考察的不会太难,能把面经上的知识点掌握了就算是比较扎实了。

这种类型的公司通常不会考太复杂的题目,他们招聘的需求通常都是中级程序员,只要知识面可以广,考你的题目都能说到关键点上面,其实不须要掌握得特别深刻,也能够有机会拿到offer。

总结来讲,我认为二三线互联网企业不太可能和战斗在一线的互联网公司争夺人才,因此他们通常争取的都是二线人才,不须要太优秀,但至少要是中级程序员的水平,因此这种类型的公司对不少Java程序员来讲机会仍是很是大的。

最新技术学习资料(^_^) → lezijie007(程序员暗号999)

一线互联网公司和独角兽

BAT、TMD等互联网企业都属于这类公司,这种规模的公司和二三线互联网公司的发展差距仍是比较大的。公司的人数规模、市场市值、还有股价方面,业务以技术为基础,所以规模的公司的技术就是互联网业内最顶尖的技术。好比阿里的云计算和中间件,头条的推荐算法、腾讯的游戏技术等等。

想要进这样使人羡慕的公司,必需要掌握Java基础、计算机基础知识,而且是很是熟练地掌握,你须要深刻理解每个知识点,由于面试官会不断深刻地向你提问,了解你的知识深度,同时,你须要对源码有所理解,在读懂源码的基础上去理解框架的实现、JDK的实现。分布式、高并发、大数据、算法这些都是在考察的范围以内。

另外,很是须要你对JVM虚拟机有很是清晰的认识,不只仅只是了解简单的结构,垃圾回收原理,甚至还要知道如何在遇到线上问题时经过JVM调优来解决它们。

同理,你还须要对Java并发编程和网络编程的使用方法与底层实现原理很是熟悉,不只仅答出NIO和BIO的区别,或者是synchronized和lock的区别,你还须要知道NIO的底层实现epoll是什么,synchronized对应的mutex lock是什么,lock和condition的实现原理又是什么,而lock自己也是经过AQS、CAS操做类等组件来实现的,其中的内容实在太多,毫不只是几道面试题就能够搞定的。

除此以外,这些公司对数据库、缓存、分布式技术等方面的要求都会比其余公司要高得多,你最好要搞懂MySQL的存储引擎、索引和锁的实现原理,Redis缓存的数据结构、备份方式、底层实现。

同时若是你能理解负载均衡算法、CAP理论,甚至是raft和paxos算法,以及分布式经常使用技术如消息队列、zookeeper等等,那么无疑也是能够为你加分的技能。

为何这些顶级的大公司的要求这么高,由于它们是世界上最好的互联网公司,要招的天然也是最优秀的人才,若是考察底层原理还不能知足他们筛选人才的须要,他们也会考察面试者的算法能力,好比LeetCode上medium难度的原题,或者是剑指offer的变式题等等,算法题相对考察理论基础而言,筛选度更高,能够淘汰的人也更多。

最后总结

我曾经在阿里呆过两年,最后离开的缘由是实在受不了天天加班到12点的做息时间。可是在阿里的这段日子,成长确实是很是大的。大公司也并无你们想的那么好,除了工资高以外,其余的都是够人受的,几乎没有升职空间,由于人才太多了。几乎天天都加班,没有太多的生活体验。并且条条框框特别多,天天都是在被限制。固然了,若是你有实力进入大公司,最好仍是去锻炼几年,年轻人嘛,仍是闯一闯。

获取学习资源技术干货,lezijie007(暗号999)

相关文章
相关标签/搜索