Java后端开发工程师
后端意味着服务器, 分布式, 数据持久, 并发.
- J2EE: Servlet, JDBC, JPA, Spring, Hibernate,
- Vert.x, Akka: 基本把握,还需要深入学习?
- Java language: Generics, Streaming. JDK, JVM, Concurrency, JIT, Bytecode
- Message Queue: 比较弱。 Openstack的RabbitMQ,ZeroMQ
- Web Server, Netty: Netty有了一定层度的了解,深入学习。
- Database: Postgres还可以, Set Path不足。
- Cache: 弱,memcache, redis, hazlecast?
- Design Pattern: 不熟练。
- OOP
- OS: Linux Kenerl:有一定的提升,但是还是比较一般。
- TCP/IP: 经过Openstack,epoll的历练和比特币技术的学习,相关知识基本够用。
- UML
- Distributed System, Cluster: 学习过一些:Ceph, GFS, HDFS有关底层存储的分布式,在线业务的分布式, mongoDB?
- Web: JavaScript.
- 性能测试框架, 工具,Profling 工具。 基本指标。基本前提(CPU, 硬盘,带宽)
- 质量管理,功能测试,单元测试,集成测试,CI测试, 系统测试。如何保证系统如期发布和运行?bug管理?
- Github, Jenkins流程? 都要会啊。
- Docker技术? 学Docker和Linux可以结合起来。虚拟化技术, Openstack获取一些。
- 系统的可诊断性。Log,data collection.
- 提高生产率的技术。Bash脚本,Python。
Urgent goal: How to be a Architect&Tech Lead.
- 系统设计与权衡: 什么系统, 分布式?
- 技术栈的选择,技术栈的迁移
- 业务和架构的调和
- 团队沟通
日常工作原则:
- 写出清晰的代码,理清代码逻辑
- 回答难以搞清的技术问题
- 能够解决复杂的bug
- 理清系统架构,有架构层的视野,知道架构的优缺点,权衡利弊;对于新系统,提出架构。识别设计缺陷,修复设计缺陷。
- 逻辑性,清晰地分析bug, 沟通bug
- 清晰,高效地沟通技术问题,推动解决技术问题。
- 能够提出新的想法,并实现它。
- 快速搭建系统,POC的能力
- 新技术的把握能力。