百度篇
1.熟悉常见设计模式,掌握java流行的开源框架SpringMVC/Spring Boot/Spring Cloud,熟练使用至少一种 ORM 框架
2.熟练掌握基本的数据结构和算法,有系统分析和设计的实践经验
3.熟悉Rest,HTTP,Socket、webservice、HTTP协议,具备并发、多线程的编程经验
4.对Mysql、Redis、MongoDB 等数据库有研究或者项目经验
5.具有大型互联网服务设计及开发经验
6.熟悉JVM,对JVM有一定理解,并能借助相关工具进行JVM性能调优
7.熟悉常见的开源分布式中间件、缓存、消息队列等,熟悉nginx,MySQL,Redis,mongodb 等常用的开源软件
8.熟悉 MySQL 数据库设计和优化,有 NoSQL 数据库使用经验
9.具有大数据存储或者高性能计算平台架构、设计及开发等方面经历
10.具有大型互联网服务设计及开发经验
腾讯篇
1.精通Web后台开发语言至少一种(PHP、Java、.Net、C++),有一定的架构能力和良好代码规范
2.熟悉linux/unix系统与开发环境
3.熟悉TCP/IP协议,socket编程
4.熟悉mysql以及SQL语言
5.有高性能大容量服务系统设计开发经验
6.精通面向对象设计,精通J2EE开发,java web开发
7.全面并且扎实的软件知识结构(操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全);
8.具备良好的分析解决问题能力,能独立承担任务和有系统进度把控能力
9.精通MySQL或Mongo DB,熟悉缓存技术memcached、redis
10.有大型分布式、高并发、高负载、高可用系统设计、开发和调优经验
11.B/S结构系统分析及设计经验,有构建可伸缩、可扩展、高可用系统经验
12.有良好的开发习惯,熟悉Maven, Jenkins, JUnit等工具
13.精通MVC/REST架构、模板引擎、中间件的原理与应用
14.熟悉MySQL数据库,了解MySQL索引优化、查询优化和存储优化
总结
可以看到大厂对程序员的要求还是挺高的,优秀的程序员有很多,但每个人精通的点并不完全相同,项目也千差万别,对于企业而言,不是需求饱和,而是真正的人才不多。那么如何成为一名优秀的程序员呢?(这话我不敢说)我只发表在我看来做一个合格的程序员需要的的一些东西:
- 基本功扎实
- 对框架熟悉
- 有项目经验
那么针对以上的技术经验,小编特意整理了相关的资料,
领取地址:点点我,即可领取
最后总结
ActiveMQ+Kafka+RabbitMQ学习笔记PDF
关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦
a+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦