必备技能(以终为始)

所以做为Java后端开发, 你要至少

  1. Core Java, JDK核心类的实现, JVM调优, 字节码, JIT, Java 8 new featurs, Java 并发技术, Slave/Squeeze JDK.
  2. (技术)熟悉至少一种 Web Server。 例如, Apache。 知道它的适用场景, 架构, 配置, 源代码, 性能. 如果是架构师的话, 还要了解的更多. Others: Nginx
  3. (技术)熟悉数据库技术, 关系, NoSQL。 譬如说 Postgres, SQL. SQL, 存储过程必须玩得转. 一致性, 事务控制的基本概念, 表的设计.
  4. (技术)Servlet & Servlet Container. 最常用的就是Tomcat。 架构, 配置, 源代码, 优缺点,适用场景. (J2EE技术)
  5. (技术)Java访问数据库的技术: JDBC, Hibernate, iBatis, SpringDao, JPA
  6. (技术)应用程序框架: Spring。目前是足够了。
  7. (技术)不同的Java进程之间的通信: RESTful API, Message Queue(ZeroMQ, RabbitMQ)
  8. (技术)序列化技术: JSON(Jackson), ProtocolBuffer
  9. (知识)网络协议: HTTP深入一些, TCP/UDP基本.
  10. (知识)操作系统: Linux? 作为Java后端开发工程师, 操作系统方面应该必备那些知识和技能? Java是如何利用多核的?
    其他?: JSP, Netty(IO框架, 高性能后端需要), Akka(异步)/Vert.x, 缓存技术(Ehcahe)
  11. 设计模式
  12. 数据结构和算法
  13. 分布式: 水平扩展技术, 分布式文件系统(HDFS), 分布式计算框架(Hadoop, Spark), 流计算(Storm).
  14. 分析技能: 架构级别的把握能力, 当前架构的优缺点, bug的快速把握能力, 用户角度的视角, 前端的视角, Release节奏的把握, 团队/人的角度。 多学些, 多锻炼, 多积累? 写技术日志? 有相关的书籍吗?

Web Server(Apache) -> Servlet Container (Tomcat) -> 应用程序框架(Spring) -> 数据库访问技术(JDBC/Hibernate) -> 数据库(Postgres).

如何能够获得相关经验? 最好的方式是我都做过. 要不就是自学(最好能做些东西)。 提高自学能力, 如果实在学不来, 还是深挖自己负责的那一块先.

这些技术不一定都要深入, 但基本的东西要会, 因为社会化分工和个人的精力不够, 和这方面的专家合作, 自己是其中某些方面的专家, 但是不是精通的地方, 你要有基本的视角和能力去把握它, 在需要深入的时候,知道方向和脉络,能够快速深入下去, 或者通过和那方面的专家沟通交流来把握它。如果你要走架构师,技术这一条线,也不一定全部精通。

如何学习这些技术?
书籍, 搜索, 基本练习.

如何精通其中的某些技术?
看源代码, 总结架构, 看出技术的优缺点和趋势.

你的目标是最快地把握需要学习的软件, 你可以学习别人的网上写的资料, 有一些程序员会觉得, 我也要从源代码总结出这些, 不愿意看别人的分析, 这当然是不合理的, 我们就是个协作的社会, 别人的资料对你很有帮助为什么不看呢, 省下来的时间和精力, 干点别的不好嘛.

results matching ""

    No results matching ""