原文地址:
http://www.toutiao.com/i6410735167484199425/
我相信很多工作了3-5年的开发人员都会经常问自己几个问题:
- 为什么总是感觉技术没有质的提高?
- 如何能够有效和快速的提高自身的技术水平?
- 如何进入到一个牛逼的大公司,认识牛逼的人?
这篇文章就针对是这种情况的Java后端的开发人员来写的,以我们的经验来帮助大多数的技术人员来突破瓶颈,从而走上升职、加薪、赢取白富美的成功之路。
那么如何突破瓶颈呢,就我来看就是从三个方面加强技术:
- 自己先把基础知识加强巩固。
- 提升自己某一块领域的深度
- 提升自己对后端技术的视野广度
那么下面我将针对这几点写一下自己对于这几个方面的思考和总结,希望对大家有所帮助。
首先聊聊基础知识点包括什么?我觉得不管工作中是否有需要,是时候去了解Java1.8的新特性,因为现在Java1.8已经已经是主流了的JDK版本了,里面加了很多十分有用的特性,然后就是并发包的掌握,任何大型或者互联网公司都会对并发技术有大量的需求,所以并发包必须熟悉和掌握。最后就是设计模式。一个项目拥有好的结构,可以使得项目的可维护性和可阅读性大大提高,也是展现开发人员的技术水平最好的方式。
接着就是工具的使用,俗话说工欲善其事,必先利其器,所以说熟悉、掌握并且精通常用的开发工具是一个必不可少的步骤,熟练掌握了之后,可以大大提高工作效率,工具包括git、maven、jenkins、静态检查代码工具等等。掌握了这些工具的使用方式之后,可以使得你项目的质量和工程化结构大大提高,同时也使得项目的后续可维护性大大增加。
因为这篇文章主要针对的是java服务端的开发人员,我们必须首先要去了解java的web容器的标准协议和运行流程。然后后端服务是要和前端进行相互配合的,所以还要了解Restful接口的标准,同时服务端内部逻辑也有很多标准协议比如:DateTime标准、 OpenId标准、 OAuth2标准、等等。我们需要掌握这些标准或者协议的较好的实现,因为这些内容可以让你知道业内的标准,从而来提高自身的技术素养和技术水平。往往开发过程中具体实际的项目太大,难以全部掌握所有的细节,但是我们觉得从官方制定好的协议入手进行学习相对简单,因为制订好的协议都是标准,相比于具体的技术实现要简单、清晰、明了很多。
接着对于服务常用的场景需要进行了解,因为都是后端服务,但是由于业务的场景不同,从而导致使用的技术大相径庭。我们可以很容易列举的常见业务场景所使用的技术有定时任务、认证/鉴权、数据存储、数据缓存、消息队列、搜索、rpc服务、服务框架、日志收集、服务监控、大数据、推荐等等,但是一个小的项目往往不会牵扯这么多的技术,所以大家针对这些技术都进行一定成都的了解和学习,然后再针对自身的情况,比如:自己感兴趣,或者工作中有交集,或者以后想研究的方向入手,选择一到两种技术进行深入学习。这样的做法就是同时满足了增加知识的广度和深度,是一种挺好的学习手段。
最后除开服务端的开发知识以外, 还有一点非常重要的就是运维体系,作为一个合格的服务端开发人员,对于运维的知识体系也要有所掌握。因为服务开发不仅仅是写代码,对于已经上线的服务的运行维护也是有很大的工作量的。通过了解运维体系,可以知道如何能够更好的部署服务。
作为技术人员,平时也要工作,所以很难有很多时间去研究所有的技术,所以说要成为所谓的“全栈”工程师是难上加难,所以我们建议大家从一个方向入手深入学习,触类旁通,而不是盲目的去追求所谓的“全栈”。最后在学习的过程中如果有一起学习的同伴和有丰富经验的工程师指导,则会事半功倍。
然后附上一个整理的知识点概览图,希望能够能更佳好的帮大家梳理后端知识。
最后如果觉得所讲的东西能够帮助到你,并且希望进行更详细的深入的学习,欢迎加群632109190进行讨论和学习。