熟悉常见设计模式,掌握java流行的开源框架SpringMVC/SpringBoot/SpringCloud,熟练使用至少一种ORM框架
熟练掌握基本的数据结构和算法,有系统分析和设计的实践经验
熟悉Rest,HTTP,Socket、webservice、HTTP协议,具备并发、多线程的编程经验对Mysql、Redis、MongoDB等数据库有研究或者项目经验具有大型互联网服务设计及开发经验熟悉JVM,对JVM有一定理解,并能借助相关工具进行JVM性能调优熟悉常见的开源分布式中间件、缓存、消息队列等,熟悉nginx,MySQL,Redis,mongodb等常用的开源软件熟悉MySQL数据库设计和优化,有NoSQL数据库使用经验具有大数据存储或者高性能计算平台架构、设计及开发等方面经历具有大型互联网服务设计及开发经验腾讯精通Web后台开发语言至少一种(Java\.Net\C++\PHP),有一定的架构能力和良好代码规范熟悉linux/unix系统与开发环境熟悉TCP/IP协议,socket编程熟悉mysql以及SQL语言有高性能大容量服务系统设计开发经验精通面向对象设计,精通J2EE开发,javaweb开发全面并且扎实的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力精通MySQL或MongoDB,熟悉缓存技术memcached、redis有大型分布式、高并发、高负载、高可用系统设计、开发和调优经验B/S结构系统分析及设计经验,有构建可伸缩、可扩展、高可用系统经验有良好的开发习惯,熟悉Maven,Jenkins,JUnit等工具精通MVC/REST架构、模板引擎、中间件的原理与应用熟悉MySQL数据库,了解MySQL索引优化、查询优化和存储优化BAT技术专家,他们的技术能力都需要达到什么程度?
通常都是百度、阿里巴巴、腾讯、,那BAT的技术专家相当于是腾讯T4技术专家、阿里P8高级技术专家级别,是一线Teamleader或者二级域架构师,需要对一个领域的业务非常熟悉并且能够将影响力辐射到其他合作团队。
一般来说一些业务架构、应用架构、产品功能决策、技术选型、协作分工等问题应该在技术专家层次终结,技术专家是一线作战的小队长,向下提供决策,向上提供有效的信息。
BAT是国内技术大厂,所以可以参考BAT的标准,而对技术专家的要求是什么呢,以下4个小结可以作为参考。
1.代码能力
代码能力是基本功,Java语言本身,包括语言的各个方面包括对并发的理解,对内存使用对理解,对Java运维的理解等等,语言本身外,社区里常用的框架是否可以十分清晰的了解,包括spring,包括他实现的ioc,aop,orm,web机制是否有清楚的认识,有丰富的经验等等。
2.对常用中间件的理解
毕竟在一个大系统中,各种中间件是是否常见的,缓存中间件,消息中间件,例如redis、memcache、rmq这些,要理解常用中间件使用场景,使用姿势(例如redis的常用命令),甚至包括他的一些运维,一旦出了问题,除了专门的运维人员,也需要你参与问题的排查,因为有时候这些中间件出现问题,是不当的使用姿势引起的。
3.架构、业务落地能力
前面提到了语言本身,各种中间件,如果你有很好的业务抽象能力和架构思维,就可以把一款部门内部产品很好的设计并实施了,这点蛮难的,想必都有过接手现有项目的经历吧,有时候真恨不得把之前的设计者拿出来批斗,作为一个设计者,你能否做到当下一个接手它的人会说一句,这个系统设计的真好,稳定又可拓展,理解起来也很容易。
4.沟通协作
毕竟一个部门内部产品,是不可能由一个人完成的,所以需要沟通协作,把设计好的方案,要和2-3个小伙伴一起实施,包括同样身份的后端人员,前端人员,产品等角色,这个级别的人可能会参与带2-3个人,例如应届毕业等,所以你自己对知识的把握,分享精神,leadership都是很好的加分项。
如果你也想进BAT,通过学技术获得更好的未来,现在就开始行动吧!
千锋Java学科从创立之初,一直都是行业的领先者。每年至少2次课程升级,增加课程知识量和技术的深度以及广度,整合教学项目、联合项目、企业内训项目以及企业实战项目资源,让学生学会自主开发,增加更多的项目经验,才更有利于成为大厂招聘的香饽饽!马上扫码或者阅读原文报名免费试听千锋JavaEE课程??????
▲扫码即刻预约课程课程试听、学习资料、课程介绍欢迎添加小千学姐领取~