专栏名称: java一日一条
主要是讲解编程语言java,并且每天都推送一条关于java编程语言的信息
目录
相关文章推荐
芋道源码  ·  谈一谈 分库分表 vs NewSQL数据库 ·  8 小时前  
芋道源码  ·  如何加快 SQL 查询速度的同时保持 ... ·  8 小时前  
芋道源码  ·  Spring Boot 3.2 ... ·  昨天  
芋道源码  ·  解放大脑:ChatGPT + ... ·  昨天  
芋道源码  ·  如何搭建漂亮的 SpringBoot 脚手架? ·  2 天前  
51好读  ›  专栏  ›  java一日一条

二本毕业,我是如何逆袭成为BAT年薪40W的Java工程师的?

java一日一条  · 公众号  · Java  · 2018-12-06 12:00

正文

请到「今天看啥」查看全文



当时我以为这就是优秀程序员的核心能力,就鼓足勇气去投了一些大公司的职位,却没收到一个面试邀请函。后来投了几个小公司的面试,收到了面试却没收到offer,因为有的面试题我根本没有概念,比如:


相比关系型数据库,NoSQL的优势在哪里,你们在什么场景下会用到?

分析日志里存的都是账号登陆信息,一天100G左右,找某一时间段内登陆次数最多的一个账号

你们的并发量有多大,对于雪崩现象是如何规避的?


这些问题让我意识到:语法与设计模式只是程序员基本技能而已,要想进一步发展,必须在 数据结构、高并发、分布式技术等 方面提高。最开始学习的时候是很艰难的,基础弱,加上工作中又没有这些技术的使用场景,所以只能在论坛、博客等看零碎的文章,进步比较慢。


要想系统的学习,图书和网络课程是比较好的选择。我买了诸如《 java并发编程实践 》、《 大型分布式网站架构设计与时间 》、《 Spring Cloud与微服务构建 》等书,来来回回看了好几遍。然后在网上看了些视频,有免费的,也有收费的。我还花了近半年时间系统性地学习了一套课程,学完之后对Java相关的技能有了更为体系化的了解。同时, 对于非科班出身或基础知识不够扎实的工程师来说,也可以有效起到查漏补缺的作用。



之后我就试着在工作中利用这些技术,当时的状态就是“拿着锤子后,看到哪里都是钉子”,学到一个新技术后,就想强行用在任何项目上,leader有时候说我疯了,可我觉得也不必鄙视这种经历,凡事都有一个认知过程,这也是一种积累。

知识深化阶段


大概17年下半年,我就投了一些大的互联网公司职位,比上次好一点,有一些公司给我了面试邀请,但最后却都还是没收到offer。


后来复盘一下面试问题,发现我在整体技术面上回答得较好,但在细节技术点上,有点吃力,比如面试官问:


聊一聊你对JVM的原理,如何减少Full GC的情况?

消息队列如何保证顺序消费?如何保证at least once特性?







请到「今天看啥」查看全文