针对这个问题,我只能谈谈对后端的经验,但是总体而言都是差不多的.
这里的萌新主要是针对新加入团队的,对技术方向还不态了解的同学.
明确自己的学习小组是什么,以及是不是自己真正感兴趣的方向.如果确实不是自己喜欢的方向就尽早申请小组的调整. 团队目前的学习方向是:
- 后端:面向服务端开发,主要针对逻辑和数据的处理.
- 前端:界面显示,根据数据进行解析显示.
- 区块链:区块链网络的学习,主要针对网络个共识算法学习,以及通过区块链常用的框架保证数据的可靠.
- ui:产品设计和美化,建议向前端或产品经理的角色进行发展.
- 算法:机器学习,同时为开发提供算法支持.
初入团队时我以为只是掌握技术栈就可以了,现在才发现值得学习的不仅仅是不断更新的技术栈,更重要的是那些始终不变的东西. 而不变的这些东西才决定着你能够走多远,所以大一的同学应当主要学习:
- 一门开发语言(Java/Go/Python/JavaScript)
- 计算机网络原理(网络协议)
- 数据结构和算法:主要针对后端和算法方向
- 操作系统
在大二阶段是比较重要的阶段,处于一个快速学习的阶段.这时候可能会有很多项目需要进行开发,但是一定要在闲暇时学习新的东西. 这时候就需要首先学习自己开发最迫切需要使用的技能.总之一句话,就是在大二阶段尽量多的学习新技能,让自己的技术池有一定的广度:
- 后端:
- SpringCloud(非必须)/SpringBoot/SpringMVC/Spring
- Redis:非关系数据库,一般用于缓存
- MySQL:关系数据库,数据持久化
- Nginx:反向代理和负载均衡
- Mybatis/Hibernite:持久化框架
- Linux:项目的部署和运维
- Docker(非必须):用于容器化部署,简化环境冲突
- MQ(非必须,推荐RabbitMQ/Kafka):消息队列,应用解耦,异步,削锋
- ElasticSearch(非必须):关键词搜索
大三处于一个技术原理的深入找实习的阶段.当然如果学有余力的话可以适当将技术池进行拓展,但是前提是对已学的技术有一定的深入了解.
- 后端:
- 源码学习:Spring,JDK
- Java进阶:
- 多线程/并发
- 反射/动态代理
- Socket编程
- JVM原理
- Redis架构
- MQ架构
- ES架构