引言前段时间面试了一位三年工作经验的Java程序员,期望薪资10k。在程序员这行业,三年工作经验,又是一线城市,这期望薪资算是一般。面谈了一会,觉得该程序员技术水平一般,对多线程,线程池,动画属性这些并没有 ...
引言前段时间面试了一位三年工作经验的Java程序员,期望薪资10k。在程序员这行业,三年工作经验,又是一线城市,这期望薪资算是一般。 面谈了一会,觉得该程序员技术水平一般,对多线程,线程池,动画属性这些并没有掌握牢固。虽然这三年期间做了好多项目,但大都是类似的,普遍是一些增删改查,项目核心技术较少,其技术含量实际相当一年工作经验的水平。 很多时候,我们会误以为工作时间越长,工作经验就越丰富,薪资待遇也应该会越好。其实不然,薪水的高低不仅要依据工龄,还需要依据技能、经验、薪酬体系等多方面因素,高薪一般都是在积累了丰富的经验后才能拥有,除非你有过人之处亦或是显赫的家族地位,那另当别论。 为什么有的Java程序员工作多年还是老样子?是能力不足,还是目标不明确,甘愿平凡,还是其他原因?我个人总结了以下原因,如果有不对的地方还请指正。
那么要如果提高自身的核心竞争力,这里给几点建议: 一、阅读源码阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在阿里面试中,MyBatis,Spring等框架的底层原理是经常会被问到的 ![]() 二、分布式架构阿里巴巴有很多大团队,这种大团队里有很多小团队,到小团队之后,做的业务都不相同,如果想立足成为一线互联网公司中的万能选手,最主流的分布式架构中有很多知识都是必须要去了解与学习的。并且在阿里面试过程中,面试官会问到实际应用场景的问题:比如微服务化、用户量、并发量、业务复杂度以及可扩展程度等,这里不多赘述。本屌提供一个分布式架构的学习思路也是自己目前还在学习中的体系: ![]() 三、微服务架构微服务是现在互联网架构技术中最火热的话题之一,也是本屌目前正在学习研究的方向。在阿里面试过程中,面试官很少会问到关于微服务相关的问题。但作为一名开发者,一名有技术梦想的程序员微服务架构是现在必须要去了解的主流技术,小编给自己制定了一个微服务技术的学习计划: ![]() 四、并发编程并发编程几乎是所有互联网公司面试必问问题,并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能。它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰、思维缜密,这样才能写出高效、安全、可靠的多线程并发程序。目前网上没有系统的全面的并发编程学习大纲,我搜集了很多资料总结出来一个最全面的学习大纲: ![]() 五、性能优化性能一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,性能方面就会下降,特别是阿里巴巴这样的一线互联网公司最为注重,因此想进入阿里,性能优化一定是要去深入学习与理解的一环,本屌在性能优化这一块虽然不能算专家,也可以自信的说是精通了(注意:自己的简历上一定不要写精通xxxx,要不然面试官会怼死你。好在本屌这一块还算自信) ![]() 六、设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。 ![]() 七、底层知识从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:
![]() 以上七大知识体系是我从业多年总结出来的经验,都是当前最主流的技术。如果对Java分布式、工程化、高并发、微服务,JVM等技术感兴趣的可以关注我,私信回复“架构资料”我已将知识体系整理好,欢迎私信获取。 转发后私信我“架构资料” |
请发表评论