系统学习java Day 01

Java的学习之路

作为一个软件工程专业的学生,在学习Java的过程中走了不少弯路,也迷茫了很久,肯定有不少的小伙伴和我一样,不知道该怎么学,以及学什么,因此特地找了些我觉得好的问题分享一下;
一、学习的过程中容易走进哪些误区?
1.不顾基础,盲目地追求前沿技术,其实基础概念和路线非常重要;
2.语言不分好坏,看自己的目标岗位和用途;
3.觉得自己代码总是记不住。其实不用完全记住。我们需要最终熟记的就是代码的设计,还有编码上的一些模式和流程。
4.学习学到怀疑自己的能力,觉得编程就得靠天赋。其实这主要跟我们的经历,眼界,经验不足有关。因为我们作为初学者,很难看到问题背后的一些东西。解决这个问题只能靠多努力,多积累经验。
5.孤军奋战,不喜欢和人交流。其实有些时候我们自己对代码的理解很有可能是错的。
6.到处搜集各种各样的资料,但是从来不看。其实资源在精不在多。
7.觉得自己学了就忘,是不是不适合编程?其实这是很常见的问题,可以通过总结回顾,实际开发上用上来解决。有的时候忘了也没有关系,至少我们把这个概念弄懂了,以后再复习起来也没那么难。

二、如何获得项目经验?简历上该怎么写?
不知道有没有人和我一样,没有进过实验室,没有参加过比赛,也没有什么实习经历。一直在惆怅简历该怎么写,如何与他人竞争。
其实,也不要太过于悲观。
1.项目经历要求不是特别高,重在考察基础。比如编程语言,数据结构与算法,算机网络、操作系统、数据库、设计模式。
2.项目、比赛、实习确实是加分项、但是如果没有基础的话也不行。
3.善于利用开源项目比如github上的项目。我们在学习开源项目的过程中,不应该死记硬背。在正式学习开始之前,我们的基础的语言底子要熟,然后像一些网络协议,基本工具,基本框架,甚至一些设计模式,这个都要熟。
在正式开始时,首先全局了解一下这个开源项目所用到的一些主要技术点,或者是主要的技术组件,然后把项目运行起来。可以打断点调试,修改某一处代码。能够看到自己预期的效果。 针对关键模块各个击破,细看。做好记录,反复的看这些东西因为一遍肯定是看不懂的。最后把这个开源项目变成自己的,比如代码优化,功能创新。
5.可以尝试研究知名框架或软件的源码。
6.善于挖掘已有项目的技术亮点。
最后,如果没有什么时间的话,不如基础来的实在。

三、Java后端学习路线
基础部分:
1.语言基础:基础语法、面向对象、接口、容器、异常、泛型、反射、注解、I/O;
2.JVM虚拟机:类加载机制、字节码执行机制、JVM内存模型、GC垃圾回收、JVM性能监控与故障定位、JVM调优;
3.多线程/并发:并发编程的基础,线程池、锁、并发容器、原子类、JVC并发、工具类;
4.数据结构:字符串,数组,链表,堆,栈,队列,二叉树,哈希,图;
5.算法:排序,查找,贪心,分治,动态规划,回溯;
6.计算机网络:App协议、IP协议、ICMP协议、TCP /UDP协议、DNS/HTTP/HTTPS、session/cookie;
7.数据库:SQL语言的书写、SQL语句的优化,事务隔离级别、索引、锁;
8.操作系统:进程线程、并发、锁、内存管理和调度、I/O原理
9.设计模式:单例、工厂、代理、策略、模板方法、观察者、适配器、责任链、建造者;
研发工具:
1.集成开发环境:Eclipse、IDEA、或VScode;
2.Linux系统:常用命令、shell脚本;
3.项目管理/构建工具:Maven、Gradle;
4.代码管理工具:SVN、Git;
应用框架
后端:
1.spring家族框架:spring(IOC、AOP)、springMVC、springBoot(自动配置、开箱即用)、整合Web、整合数据库(事务问题)、整合权限(shiro、springSecurity)、整合各种中间件(Redis、MQ、RPC框架、NIO框架)
2.服务器软件:web服务器(Nginx) 应用服务器(Tomact、Jetty,Undertow)
3.中间件:缓存(Redis(5大基础数据类型、事务、管道、持久化,集群)
4.消息队列:RocketMQ、RAbbitMQ,kafka;
5.RPC框架:Dubbo,gRPC,Thrift,spring cloud,Netty;
6.数据库框架:ORM层框架(Mybatis,Hibernate,JPA)
连接池(Druid,HikariCP,C3po)
分库分表(MyCAT,sharding-JDBC,sharding-sphere)
7.搜索引擎:ElasticSearch,solr;
8.分布式/微服务:服务发现/注册(Eureka,consul,zookeeper,Nacos)
认证和鉴权(spring Security,OAuth2,SSO单点登录),分布式事务(JTA接口-Atomikos 组件、2PC,3PC,XA模式、TCC模式(tcc-transaction,ByteTCC、EasyTransaction,seeta)SAGA模式(ServiceComb,Seata),LCN模式(tx-lcn),任务调度(QuartZ,Elastic-Job)链路追踪和监控(zipkin,sleath,Skywalking)日志分析与监控-ELK(ElasticSearch,Logstash,kibana)
9.虚拟化/容器化:容器技术(Docker),容器编排技术(kubernetes,swarm)
前端:
1.基础套餐:三大件(HTML,JavaScript,CSS)基础库(jquery,Ajax)
2.模块框架:JSP/JSTL,Thymeleaf,FreeMarker
3.组件化框架:Node,Vue,React,Angnlar
运维知识:
Web服务器:Nginx
应用服务器:Tomact,Jetty,Undertow
CDN加速
持续集成/部署:Jenkins
代码质量检查:sonar
日志收集和分析:ELK

谢谢大家的收看;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值