美国上市公司,专注Java培训22年

BAT对于Java程序员的招聘要求


今天整理了一篇Java程序员面试大厂的技术标准,看看你还差多少?

一、阿里巴巴

扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等

具有扎实的Java编程基础,理解IO、多线程等基础框架

熟练使用Linux系统的常用命令及shell有一定了解

精通多线程编程,熟悉分布式,缓存,消息队列等机制;熟悉JVM,包括内存模型、类加载机制以及性能优化

精通spring mvc、orm框架(ibatis或hibernate)、模板引擎(velocity)、关系型数据库设计及SQL

具备良好的面向对象编程经验,深入理解OO、AOP思想,具有很强的分析设计能力,熟悉常用设计模式

有大型分布式、高并发、高负载、高可用性系统设计和稳定性经验

熟悉面向对象设计开发,熟悉各种常用设计模式,并有在具体的应用场景落地经验

熟悉Spring、iBatis,等开源框架及消息,存储等常用中间件。有通读过开源框架源码

熟悉基于Oracle或者Mysql的设计和开发、Linux操作系统

熟悉SOA,有平台化实施经验者,有大数据量、高并发系统和大型网站构建经验

分布式系统应用架构设计与研发经验,精通Java EE、SOA、OSGI等相关技术

对各种开源的框架如Spring、Hibernate等有深入的了解,对框架本身有过开发或重构者可优先考虑

具有大型电子商务网站、O2O行业、C端产品系统架构设计经验

二、百度

熟悉常见设计模式,掌握java流行的开源框架SpringMVC/Spring Boot/Spring Cloud,熟练使用至少一种 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开发,java web开发

全面并且扎实的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);

具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力

精通MySQL或Mongo DB,熟悉缓存技术memcached、redis

有大型分布式、高并发、高负载、高可用系统设计、开发和调优经验

B/S结构系统分析及设计经验,有构建可伸缩、可扩展、高可用系统经验

有良好的开发习惯,熟悉Maven, Jenkins, JUnit等工具

精通MVC/REST架构、模板引擎、中间件的原理与应用

熟悉MySQL数据库,了解MySQL索引优化、查询优化和存储优化

BAT技术,他们的技术能力都需要达到什么程度?

通常都是百度、阿里巴巴、腾讯、,那BAT的技术相当于是腾讯T4技术、阿里P8高级技术级别,是一线Team leader或者二级域架构师,需要对一个领域的业务非常熟悉并且能够将影响力辐射到其他合作团队。

一般来说一些业务架构、应用架构、产品功能决策、技术选型、协作分工等问题应该在技术层次终结,技术是一线作战的小队长,向下提供决策,向上提供有效的信息。

BAT是国内技术大厂,所以可以参考BAT的标准,而对技术的要求是什么呢,以下4个小结可以作为参考。

1、代码能力

代码能力是基本功,Java语言本身,包括语言的各个方面包括对并发的理解,对内存使用对理解,对Java运维的理解等等,语言本身外,社区里常用的框架是否可以十分清晰的了解,包括spring,包括他实现的ioc,aop,orm,web机制是否有清楚的认识,有丰富的经验等等。

2、对常用中间件的理解

毕竟在一个大系统中,各种中间件是是否常见的,缓存中间件,消息中间件,例如 redis、memcache、rmq这些,要理解常用中间件使用场景,使用姿势(例如redis的常用命令),甚至包括他的一些运维,一旦出了问题,除了专门的运维人员,也需要你参与问题的排查,因为有时候这些中间件出现问题,是不当的使用姿势引起的。

3、架构、业务落地能力

前面提到了语言本身,各种中间件,如果你有很好的业务抽象能力和架构思维,就可以把一款部门内部产品很好的设计并实施了,这点蛮难的,想必都有过接手现有项目的经历吧,有时候真恨不得把之前的设计者拿出来批斗,作为一个设计者,你能否做到当下一个接手它的人会说一句,这个系统设计的真好,稳定又可拓展,理解起来也很容易。

4、沟通协作

毕竟一个部门内部产品,是不可能由一个人完成的,所以需要沟通协作,把设计好的方案,要和2-3个小伙伴一起实施,包括同样身份的后端人员,前端人员,产品等角色,这个级别的人可能会参与带2-3个人,例如应届毕业等,所以你自己对知识的把握,分享精神,leadership都是很好的加分项。

如果你也想进BAT,通过学技术获得更好的未来,现在就开始行动吧!

免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!


【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!

Java开发高端课程免费试学

大咖讲师+项目实战全面提升你的职场竞争力

  • 海量实战教程
  • 1V1答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • 中级Java发开工程师需要那些技术和工程师证
    中级Java发开工程师需要那些技术和工程师证
    中级Java发开工程师需要那些技术和工程师证?中级Java开发工程师通常需要具备以下技术和技能: 详情>>

    2024-04-02

  • Java高级工程师岗位要求
    Java高级工程师岗位要求
    Java高级工程师岗位要求,Java高级工程师是企业中非常关键的技术岗位,主要负责软件的设计、开发、测试和维护工作。具体岗位要求可能因企业的规模、行业、产品和技术栈的不同而有所差异,但通常包括以下几个方面: 详情>>

    2024-03-05

  • 面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?
    面试Java开发工程师一般问什么问题?面试Java开发工程师时,面试官通常会从多个角度评估应聘者的技能和经验,包括基础知识、编程能力、项目经验、问题解决能力、沟通能力以及对Java技术的理解。以下是一些常见的面试问题: 详情>>

    2024-02-29

  • 如何用Java开发游戏?
    如何用Java开发游戏?
    如何用Java开发游戏?使用Java开发游戏可以分为几个步骤,下面是一些基础的指导: 详情>>

    2024-02-29

  • Java开班时间

    收起