程序员需要掌握的技术:
1. 计算机原理/数据结构/算法,网络协议(4层/7层)
2. java 代码和java高级应用,python,golang,linux操作系统基础使用
3. 技术组件(redis/mq(amqp&mqtt协议)/mysql(设计,查询优化,基础语句))
4. nginx(肯定要会的),走一个流程 web----》nginx(lb)---》node1
5. docker 虚拟化,kubenetes,搭建一个
6. 高级模块开发设计(缓存/静态化/job/解压解析) 代码能力/设计能力/技术选型,owner
7. 模块化设计,
8. 架构设计,linux操作系统kernel
java基础:
集合
多线程
创建(三种)
生命周期(新建,就绪,运行,阻塞,死亡)
控制(join,sleep,yield,改变优先级)
同步 4种方式(临界区,互斥量,信号量,事件)7种方法(同步方法,同步代码块,volatile,重入锁,局部变量,阻塞队列,原子变量)
通信(全局变量,消息,事件CEvent类)
线程池
相关类(threadlocal类,线程安全集合类等)
Spring
算法:
选择排序
冒泡,希尔,插入,
桶,基数,计数(这三种很像,都用到桶的概念)
进阶知识
Docker,Kubernetes,zookeeper,Dubbo,netty,springcloud,redis,mongo,