铁打的大厂,流水的程序员。大厂究竟在招的都是什么“神人”?

落花浮王杯 提交于 2020-08-10 18:26:55

话不多说,先上长图,看看主流大厂用人要求。


通过这张长图,再结合各大招聘网站岗位要求,可以分析出当下一线企业对于Java岗位的要求,无非注重考核这些能力:

编程功底(源码阅读、设计模式),海量数据处理能力(数据库),主流框架的驾驭能力(分布式、微服务、中间件),业务对口的实战能力,架构思维(可扩展、可用性、实时性)。

因此,是否具备大规模系统的架构和设计能力,是区分普通程序员和高级程序员,尤其是架构师的一个分水岭。如何去准备和提升相对应的能力呢?这里贴上一张进阶学习Xmind图和学习思维导图,图中将大厂用人需求中的每一项能力具体学习哪些技术分项,多罗列出来,供大家查漏补缺。

编程语言

  • 强类型:C++、Java
  • 弱类型:Javascript、Python
  • 标记型:XML、HTML、JSON、YAML

开发框架

  • 表现层:React、Vue、Flutter、Weex
  • 领域层:Spring、Spring Boot
  • 数据层:Hibernate、MyBatis、JPA
  • 基础层:Log4j、LogBack、Quartz、C3P0

程序设计

  • 面向对象设计 OOD
  • 设计模式 Design Patterns
  • 领域驱动设计 DDD

数据库类

  • 关系型:MySQL、PostgreSQL、Oracle
  • NoSQL:Redis、MongoDB、HBase、Neo4j
  • SQL、存储过程
  • 查询优化(索引、存储、分区)

操作系统

  • Linux、Windows、Android、iOS
  • 进程、存储、文件、设备、作业等

网络协议

  • 网络层:IP
  • 传输层:TCP、UDP
  • 应用层:HTTP、FTP、SMTP、NTP

中间件类

  • 消息类:ActiveMQ、Kafka、RocketMQ
  • 容器类:Apache、Tomcat、Nginx
  • 检索类:Lucene、Solr、ElasticSearch

安全机制

  • 身份认证 OAuth2.0
  • 权限鉴权 RBAC
  • 风险漏洞:XSS、CSRF、SQL 注入、脚本注入
  • 防范措施:验证码、数字签名、数字证书

基础架构

  • 资源选型、容量估算
  • VPC、网络域、IP 网段、域名
  • 防火墙策略
  • 负载均衡策略(F5、LVS、HAProxy、Nginx)

数据架构

  • 数据建模
  • 存储方案
  • 数据库选型
  • 高可用方案(读写分离)
  • 备份方案(冷热、主从)
  • 容灾方案(同城、远程)
  • 同步方案(实时性)

应用架构

  • 架构选型:C/S、B/S、SOA、微服务(Dubbo \ Spring Cloud \ Service MeshServerless
  • 架构视图:逻辑、过程、开发、部署等
  • 接口设计:RESTful、JMS、IPC、RPC

分布式系统

  • 扩展性设计
    • 垂直扩展
    • 水平扩展


  • 可用性设计
    • 限流
    • 熔断
    • 降级


  • 一致性设计
    • ACID、BASE、CAP等理论
    • 分布式事务(锁)
    • 分布式一致性算法


  • 分区容错性
  • 可靠性设计
    • 服务隔离
    • 异步调用
    • 资源冗余

综合技能

  • 软件工程
  • 项目管理
  • 自我销售:写作、PPT、演讲、培训、咨询

架构师,是我们程序员打怪升级的主要方向,它不像某单项技能报个培训班就能获得,胜任架构工作需要慢慢积累许多技能,既有硬技能还有软技能。一口吃不成胖子。从程序员到架构师也无法一蹴而就,它是一个循序渐进、稳步提升的进阶过程,每个阶段都有每个阶段要掌握的技能,多项技能之间还存在先后顺序。特别推荐这本书《程序员面试宝典》适合所有的小伙伴阅读,当然如果你想往架构师转型升级,那你可以在日常工作中有意识地储备这些技能。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!