从程序员进阶到架构师,最全进阶详解(上篇)

2017-09-08  本文已影响47人  mikechen的博客

从程序员到架构师进阶,将涉及到数据结构和算法,Java编程语言掌握,Javaweb核心技术,数据库,Java框架与必备工具,系统架构设计等六大环节。

由于篇幅过大,故分为上下两篇。

本文作者 陈睿,优知学院创始人,10年上产品技术经验,前百度研发经理,携程定制旅游CTO。优知学院是IT人在线进阶站,帮助IT人升职加薪,提供系统的互联网产品技术入门指南、进阶干货资料和课程,以及定期的线下实战活动。

编程基础:数据结构和算法

1 算法分析与计算

算法时间复杂度和空间复杂度的分析计算

2.算法思想

递推、递归、穷举、贪心、分治、动态规划、迭代、分枝界限

3常用数据结构

数组、链表、堆、栈、队列、Hash表、二叉树等

4经典算法

排序

经典排序:插入排序、冒泡排序、快排(分划交换排序)、直接选择排序、堆排序、合并排序等

查找

经典查找:顺序查找、二分查找、二叉排序树查找

java语言掌握

Java语言基础

1语言基础

Java语法格式,常量和变量,变量的作用域,方法和方法的重载,运算符,程序流程控制,各种基本数据类型及包装类

2面向对象基础

面向对象编程思想,类与对象,成员变量和局部变量,封装,this关键字,final关键字,static关键字。

3 常用集合使用

Collection以及各种List、Set、Queue、Map的实现以及集成关系,实现原理。

ArrayList,HashMap等常用集合优劣比较。

Java语言高级

1.面向对象高级

对象的三大特性:封装、继承和多态,优缺点

如何设计类,类的设计原则。

构造函数,内部类,抽象类,接口,对象的多态性,接口和抽象类的区别。

2.异常处理

Throwable/Error/Exception,Checked Exception vs. Unchecked Exception,异常的捕捉和抛出,异常捕捉的原则,finally的使用

3.多线程

创建与启动

线程和进程的概念

如何在程序中创建多线程,线程安全问题,线程之间的通讯

线程的同步与锁

死锁问题的剖析

线程生命周期

线程池

4.输入与输出

java.io包,理解IO体系的基于管道模型的设计思路以及常用IO类的特性和使用场合。

File及相关类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应缓冲流和管道流,字节和字符的转化流,包装流,以及常用包装类使用

分析IO性能

5.反射

类加载机制原理

反射构造方法、字段、方法

Properties配置文件

代理、泛型、枚举、Java正则表达式等

6.网络编程

网络机制

Socket原理机制

UDP、TCP传输等

7.JVM深入理解

一定要深入理解JVM原理,JVM内存划分、class加载机制以及GC策略等。

内存划分,Young Generation(年轻代)、Old Generation(年老代)以及Perm Generation(永久代)。

java web 核心技术

1.前段技术

html、css语法

css需要学习原生态,对css继承等掌握

js原生语法,js原生继承等的掌握

jquery

bootstrap

2.Java Web

建议把java web从容器启动到request、filter、listener了解原理,最好的方法就是通过调试代码一层层断点进入了解源码。

3.模板引擎

常见的模板引擎的语法掌握以及源码查看

4.其他

高性能

安全

事务JTA

其他需要了解的,如:管理JMX、安全JCCA/JAAS、集成JCA、通信JNDI/JMS/JavaMain/JAF、SSI技术。

下篇将会涉及到数据库的设计和分库分表等常见的性能优化策略,以及nosql(memcaced,redis,mongoDB,Hbase)的选取策略,还有架构设计文档模板案例,架构设计重点章节,以及分布式集群、高并发等策略。

更多java程序员进阶架构师系列文章,请访问优知学院官网www.youzhixueyuan.com获取。

上一篇下一篇

猜你喜欢

热点阅读