一、导读
面向在读大学生,特别是大四同学们!对于大一的同学你是否已经意识到,大一已经开学快半个学期了,是否是想过想从事软件开发这个行业,如果想从事这行,那现在是否制定了Java开发的学习目标呢和计划呢?另外,对于即将进入毕设阶段的大四同学们,你们是否感到技术掌握不够,缺乏思路呢,无力应对即将到来的毕业项目呢?那么接下来这些内容你是值得看一下的!
我们作为一个专注于技术学习和指导的博主,我们深知在学习和毕设过程中所面临的各种挑战和困惑。为了解决这些问题,我们为您提供了丰富的资源,涵盖Java、Python、数据结构、项目学习等多个领域,帮助您在学习和毕设中取得更好的成绩。
二、学习路线
针对大一学生,我们提供了全面而系统的Java学习资料。从基础语法到高级应用,我们的课程将帮助您逐步掌握Java开发技能。此外,我们还提供了Python和数据结构等相关课程,帮助您扩展技术广度,提高编程能力!
2.1 java基础和基础高级阶段
2.1.1 相关知识点
学习计算机基础知识,包括计算机组成原理、数据结构和算法等。 |
学习Java的基本语法和面向对象编程的基本概念,包括类和对象、继承、多态等。 |
掌握Java的基本数据类型、变量、运算符、流程控制语句等基础知识。 |
学习Java的常用类库,如String、Math、Scanner等,了解如何使用它们进行常见操作和处理。 |
学习编写简单的Java程序,练习基本的编码和调试技巧。 |
学习Java的集合框架,包括List、Set、Map等,了解各种集合类的特性和使用方法。 |
学习文件和IO操作,包括读写文件、序列化和反序列化等。 |
深入学习面向对象编程的高级特性,如接口、抽象类、内部类等。 |
学习Java的多线程编程,了解线程的生命周期、同步和互斥等概念。 |
掌握常用的设计模式,如单例模式、工厂模式、观察者模式等,学习如何应用它们解决实际问题。 |
2.1.2 学习视频【部分截图】
2.2 JavaWeb开发和框架
2.2.1 相关知识点
HTML基础:HTML的基本概念、标签和属性、常见的HTML标签等。 |
CSS基础:CSS的概念和基本用法、样式选择器、盒模型等。 |
JavaScript基础:JavaScript的基本语法、DOM操作、事件处理等。 |
Web开发基础概念:HTTP协议、URL、浏览器和服务器的交互过程等。 |
Servlet基础:Servlet的生命周期、Servlet的请求和响应、Servlet配置等。 |
JDBC基础:JDBC的概念和使用、数据库连接、SQL语句执行等。 |
数据库连接池:连接池的优势、常见的连接池实现、连接池的配置和使用等。 |
JSP基础:JSP的生命周期、JSP指令、JSP脚本和表达式等。【现在很多机构都不在讲jsp】 |
JSON和XML:数据格式的概念、JSON和XML的基本语法、数据解析等。 |
AJAX技术:AJAX的基本概念、异步请求、数据交互等。 |
安全性:用户认证、授权、数据加密、防止SQL注入等安全相关的技术。 |
文件上传,DiskFileItemFactory,ServletFileUpload,FileItem,多文件上传,servlet3异步化 |
Spring框架:Spring的基本概念、IOC容器、AOP、MVC模式等。 |
Spring MVC:Spring MVC的基本概念、控制器、视图解析器、表单处理等。 |
mybatis介绍,mybatis环境搭建,mybatis入门案例,常用API |
mybatis核心文件,mapper映射器,ResultMap映射定义,全局和映射配置文件,参数传递,结果集 |
Git与svn对比、Git工作流程、Git安装、Git管理文件版本、远程仓库、分支管理 |
Maven介绍、Maven安装配置、创建Maven项目、pom.xml介绍、依赖添加、修改Maven项目、JDK版本、依赖传递、模块化开发 |
2.2.2 推荐学习资料【部分资料】
2.2.3 练手项目集锦[部分推荐]
2.3 SpringBoot和中间件
2.3.1 相关知识点
Spring Boot: |
Spring Boot的概念和优势 |
自动配置和起步依赖 |
使用Spring Boot构建Web应用 |
数据库访问和事务管理 |
使用Spring Boot进行测试 |
部署和监控Spring Boot应用 |
MyBatis Plus: |
MyBatis Plus的概念和优势 |
基本的CRUD操作 |
MyBatis Plus的增强功能(代码生成器、分页插件等) |
常见的查询操作和动态SQL |
事务管理和多数据源配置 |
Linux: |
Linux操作系统的基本概念和体系结构 |
常用的Linux命令和文件操作 |
用户和权限管理 |
进程管理和服务管理 |
Shell脚本编程基础 |
Docker: |
Docker的概念和优势 |
Docker容器的创建和管理 |
Docker镜像的构建和使用 |
Docker网络和数据管理 |
Docker Compose的使用 |
Nginx: |
Nginx的概念和作用 |
Nginx的安装和基本配置 |
反向代理和负载均衡 |
HTTPS配置和安全性 |
Nginx的性能调优和高可用配置 |
Redis: |
Redis的概念和特点 |
Redis的安装和配置 |
Redis的数据结构和常用命令 |
Redis的持久化机制和高可用配置 |
Redis在分布式系统中的应用 |
Elasticsearch: |
Elasticsearch的概念和特点 |
Elasticsearch的安装和配置 |
索引、文档和搜索的基本操作 |
倒排索引和全文搜索 |
Elasticsearch的集群和分片配置 |
RabbitMQ: |
RabbitMQ的概念和消息队列的基本概念 |
RabbitMQ的安装和配置 |
生产者和消费者模式的使用 |
消息的可靠性和事务管理 |
RabbitMQ的集群和高可用配置 |
Spring Security: |
Spring Security的概念和作用 |
用户认证和授权的基本配置 |
基于角色和权限的访问控制 |
常见的安全攻击和防护措施 |
Spring Security与OAuth2的集成 |
2.3.2 推荐学习资料【部分资料】
以下资源【本博主课堂实录】
2.3.3 练手项目集锦[部分推荐]
2.4 SpringCloud分布式
2.4.1 相关知识点
Eureka、Consul、ZooKeeper等服务注册与发现组件的使用 |
实现服务的注册、发现和负载均衡 |
使用Ribbon实现客户端负载均衡 |
使用Feign进行声明式服务调用 |
调用外部服务和处理服务间的通信 |
使用Hystrix实现服务的容错和熔断 |
客户端负载均衡下的熔断机制 |
隔离、降级、限流等容错策略 |
使用Zuul或Gateway实现服务网关 |
请求路由、过滤器、限流等功能 |
统一访问入口和安全控制 |
使用Config Server进行分布式配置管理 |
配置文件的外部化和动态刷新 |
配置中心的高可用性和安全性 |
使用Nacos实现服务的注册和发现 |
服务注册、配置管理和动态刷新 |
使用Sentinel进行实时监控和流量控制 |
配置规则、熔断降级、限流等 |
使用Seata实现分布式事务管理 |
分布式事务的一致性和隔离性 |
使用RocketMQ实现分布式消息传递 |
消息的可靠性、顺序性和事务性 |
使用SkyWalking进行分布式调用链追踪 |
监控和分析微服务架构中的调用链信息 |
2.4.2 推荐学习资料【部分资料】
2.5 java进阶内容
进阶内容是面试以后找工作的一个核心技术点
2.5.1 相关知识点【部分】
学习路径相关的知识点,就先分享到这里,因为知识点太多,篇幅文章也有限,如果有想更多的了解请私聊博主,询问相关更多的资料等。下面我们就来说说大四毕业时大家最为关心毕业项目相关的话题。
三、毕业项目一般流程
1、在学校系统上进行选题;
2、导师规定时间,写开题报告和提交开题报告
3、开始写项目,具体什么时候写,由个人时间定。导师会在一定的周期内查看验收项目的进度
4、一般项目写完之后,开始写论文。论文的内容一般报告以下几大块内容:
绪论、系统的分析、系统的概要设计、系统的详细设计与实现、系统的测试、总结与展望、 参考文献、致谢等
5、论文写完之后,要进行查重,根据查重报告进行降重,降重的比例大概有这几种: 10% 15% 20% 25% 30%根据学校要求而定
6、根据导师的要求,进行修改论文和修改毕设项目的需求
7、等待通知答辩
四、选题犯了难,如何选题
- 兴趣和热情:选择一个你感兴趣的课题,这样你会更加积极主动地投入到学习与研究中。
- 实用性和可行性:选择一个具有实际应用和可行性的课题,这样你的研究成果将更有价值。
- 指导教师意见:和你的指导教师沟通,听取他们的建议和意见,他们会根据你的能力和兴趣给出合适的建议。
- 研究前沿和热点:选择一个与当前技术和研究热点相关的课题,这样可以增加你的研究的学术价值。
总结如下:
在选题的时候要尽量早点选题,这样你有很多的可选择性。在选题的时候,一定要选自己熟悉的技术和一些相对简单的功能。当然你选完之后,导师会让你重新选择其他题目,why???为什么?还是因为你的题目不够新颖和功能没有亮点。这时你要添加一些亮点,这些亮点你可以加看似很牛逼的功能,实现起来要相对简单点的,这样对自己不会有太多的压力!
也有很多的同学,一开始在选题的时间没有在意,感觉时间还早,这个时候就会导致一些简单的项目都会被其他同学选完了。你怎么办?只能强迫自己选择一个不熟悉的,又要单独学习很多技术的一个选题,你的时间你不够,哎,怎么办呢?这时你可以私信博主给你指点迷津~~~~~
五、开题报告如何写
一般开题报告内容如下:
- 研究背景和意义:介绍你选择的课题的研究背景和意义,说明该课题的重要性和现有研究的不足之处。
- 目标和研究问题:明确你的毕设的研究目标和具体的研究问题,阐述你希望通过毕设研究取得的成果。
- 研究方法和技术路线:描述你计划使用的研究方法和技术路线,包括数据收集、实验设计、算法开发等。
- 计划和进度安排:列出你的毕设的计划和进度安排,包括每个阶段的任务和时间节点,以及可能的风险和应对措施。
- 预期成果和评估方法:说明你希望通过毕设研究达到的预期成果,并提出合适的评估方法来验证和评估你的研究成果。
在完成开题报告时,你可以向你的指导教师寻求帮助和指导。他们可以为你提供宝贵的建议和意见,帮助你完善开题报告。也可私信博主要一些开题报告的模版。可以参考下面的模版:
六、开始设计功能需求
这个步骤对于大部分同学来说还是有些难度的,不知道该如何下手,数据表该如何设计?业务功能有那些?项目的环境如何搭建?现在基本上都要求前后端分离的了,更是犯了难,在学校也没有学过这啊!!!不如找博主聊聊,寻求帮助
七、论文又该如何写
一般会经历,交初稿、降重、排版,调整细节等几个步骤。以下简单说一下:
第一步:交初稿
初稿的写作是从0到1的过程,一定是痛苦且量大的,但记住,在初稿这个环节,因为工作量巨大,千万别追求完美,只要按我上面的方法,达到字数任务即可。这个时候完成比完美更重要!网上流传一句话:“当你把论文初稿糊完交上去的时候,你就成功的把痛苦转移到导师的身上了,因为他要愁怎么给你改论文。”
关于导师修改这个环节我不便多阐述,因为不同学校不同导师对论文的要求和审核程度天差地别,负责的导师会给你逐段批注修改,也有很多导师看都不会多看一眼。但不论是哪一种导师,你依然要切记,论文还是得靠自己。
在这里非实名点赞我的导师,对我的论文修改十分仔细,甚至格式问题也都一一找出,让我在初稿后就不断优化细节问题,避免了不少麻烦。感动~~
第二步:降重
要求本科论文重复率要求一般在25%以内。大多院校重复率一般是要小于20%才行,不过也是有的部分严格高校要求必须小于15%乃至于是10%的也有。
80%以上的查重系统都是知网,13个字符一样,就标红,加字解决。啊,哦这样的字不算字。8%用大雅。8%维普、2%万方。10个字扫红。
降重方法:插字。变换语法结构。陈述句改成疑问句。
导师修改的差不多后,就是降重的环节了。写初稿时那时候糊的债都要现在来偿还了,但不要被吓到,技术上并不是难事。
建议第一遍降重的时候先从学校图书馆检查一下,会有详细的重复的地方标注,便于修改。一般查重率最高的地方就是理论基础,因为可能存在大段大段复制粘贴的情况,以及引用内容较多。关于降重的方法,没有什么捷径,就是一句话一句话的修改,但是没有什么技术难度,只要用语文知识把别人的观点用自己的话重新阐述一遍就行了。这就是为什么我在前面让大家把理论基础不要放这么前面的位置开始写,也不用花太多时间——先复制粘贴就好,等降重的时候再逐句修改,但此时已经没有什么难度了,需要的只是一点点时间。
第三步:按照格式编写正文部分
第四步:排版,调整细节,提交终稿。
关于排版和细节调整,千万不要小看。虽然每个学校对排版和规范性的要求不完全一样,但严谨的排版和避免低级错误是学术规范的体现,也能最大程度上避免答辩时导师对你学术不严谨的挑刺。这方面一般学校都会有自己的规范手册,主要是细心细心再细心!并严格按照要求来修改规范化。
随便抛几张我们学校的排版规范化要求。但是最终还是需要大家找到自己学校的论文规范来细细研读,并严格按此执行。一般要求12000-18000字。外文翻译要求2万个字符。一篇或者两篇。
八、编写答辩PPT
写答辩PPT的目的是为了在毕业论文答辩时有效地展示研究成果和观点,提供清晰、简洁、有逻辑性的演示,帮助评委老师和听众理解和接受你的比设成果。以下是写答辩PPT的几个重要原因:
- 有效传达信息:通过答辩PPT,你可以将复杂的研究内容和结果以图表、表格、图片等形式直观地展示出来,使评委和听众更容易理解你的研究。
- 提供逻辑结构:答辩PPT应该有清晰的逻辑结构,按照论文的章节和内容进行组织,帮助评委和听众更好地理解你的论文框架和脉络。
- 强调重点和亮点:通过答辩PPT,你可以突出你论文的重点和亮点,将重要的研究结果和创新点明确呈现,从而吸引评委和听众的注意力。
- 控制演讲时间:答辩PPT可以帮助你控制演讲时间,通过设计合理的页面和内容,确保在规定的时间内完成演讲,避免超时或不足的情况。
- 提供参考资料:答辩PPT可以作为参考资料,供评委和听众后续阅读和查阅。你可以在PPT中添加引用文献的页面,方便他们进一步了解你的研究背景和参考文献。
总的来说,写答辩PPT是为了更好地展示研究成果和观点,帮助评委老师和听众理解和接受你的研究工作。通过合理的组织和设计,提供清晰、简洁、有逻辑性的演示,你可以更好地展示自己的研究成果,增加答辩的成功概率。
以下提供几个答辩PPT的模版的图片,其他更多的PPT模版,可以私聊博主进行索取!
九、如何顺利答辩通过
经过以上步骤,很多同学项目和论文都准备的差不多了,只剩下最后一个环节,那就是决定你能否顺利毕业的毕业答辩。最后很多小伙伴咨询关于答辩的问题,也了解到了大家比较焦虑的心理,毕竟对我们来讲,努力了四年或者三年,最主要的目的还是为了这一纸毕业证,它将是我们走向社会,通向成功的第一把钥匙,接下来我们就来聊聊这些问题。
其实如果你前期的准备工作充分,比如你的毕业设计项目自己很熟悉,你的毕业设计论文自己很清楚,那么毕业答辩是水到渠成的事儿,但是我们发现很多同学在得到项目和论文后,几乎是没怎么看过,估计是比较忙吧,或许也可能是胸有成竹,不管怎样,你今天看到了这篇文章,让我们指南针的包哥来给大家聊聊毕业答辩的那些事儿,希望对大家所有帮助。
毕业设计答辩的过程对每个人来讲都不会太长,相信你的导师,一般每个人不会超过20分钟,有例外者暂且不表,大部分10分钟左右。所以一般情况下你按10分钟左右去准备怎么比较清楚的阐述你的项目以及导师有可能问到的问题即可。
9.1 如何准备呢?
1、项目准备:包哥觉得首先你要对你的项目有一个差不多的了解,怎么着也得自己把程序跑两遍过一下核心功能吧?你总得能说清楚你的系统出于什么的目的,为什么样的客户服务,完成什么样的功能吧?如果不清楚,看看论文,上面一般会有描述。
2、论文观看:这个论文其实一般的格式就是将你项目开发的背景、目的、需求、设计、实现、测试、总结几大块全写上了,所以你认真看一遍论文,也会让你对整个软件系统的整体或局部都有一个相对清晰的认知。
3、技术查看:这个可能对大部分XDJM来说是最难的,看不懂,束手无措…..能看懂,自梳理清楚当然是最好了,如果实在是基础差,搞不明白,我觉得你可以先查一下看系统用到的相关技术是做什么用的,比如论文可能会有你项目所涉及技术的描述,Springboot框架,SSM框架,Shiro 框架等等,可能还有前端的什么EasyUI,Bootstrap,Vue,Layui等等,还有我们新爱的MYSQL数据库,先有个大概的了解。答辩不是面试,所以一般不会问你具体的技术,但一般会考察你系统的实现。
4、核心模块:这是我们准备的重点,你必须要将项目中的二三个你认为是亮点的地方,或者值得一提的地方能说个大概。比如可能你项目中大部分都有这个登陆功能,但它是不是核心功能呢?我觉得值得商榷,因为它基本是每个系统都有的,能有什么亮点?但你说这么一个普通的功能,如果老师问了,你答不上来,尴尬不?所以我觉得你可以看一看,通过个登陆把整个系统的交互流程搞明白了。然后就是准备核心业务模块和系统的核心技术应用。对大部分系统来讲,其实大多的功能还是基本的增删改查,这个你熟悉一个模块即可。但像其它的,比如系统中所拥有的图形报表功能、数据导入导出功能,这些是不是值得一说?我觉得是可以的。当然这要看每个系统的具体情况,比如你的是基于XXX的推荐系统,那就主要准备介绍一下你这个推荐的算法,业务流程的实现;比如你的是基于XXX的大数据分析,那你可能就主要放在你这个大数据是如何分析的业务模块和流程上了。
5、答辩PPT:这是一个最终的总结性步骤,你前面的所有的努力,其实都可以汇总到这个PPT上,它是你展示项目和进行答辩的一个思路凝聚,也是你答辩时因为不熟练而忘记时给你救场的救星。一般来讲,一个答辩PPT的制作无法这么几个环节,项目介绍,技术说明,功能实现,主要亮点,项目展示,最后总结。你准备的越充分,胜率也就越大,但是你的导师不可能让你把整个论文都粘贴上去的,所以它就是一个答辩的思路的梳理,你可以把核心的一些东西放上去给自己做提醒。
9.2 如何答辩
1、首先人是感情动物,导师会对你有平时的印像分和现场感受分,它是一个综合体,这时候一方面是考验你平时和导师的互动关系,一方面是考验你多年积赞的实力。所以在答辩时我觉得最重要的是要学会控制自己的情绪,言谈举卡给导师和答辩组一个良好的印像,千万不要逞一时之勇,和答辩组老师刚起来了----流泪。
2、答辩不是要拿满分,及格就行。所以在答辩时如果有答不上来的,千万不要有心理压力,你想,如果你都答上来了,老师多没面子?哈哈,所以放松。但放松不等于放弃,如果碰到一个自己答不上来的,可以引导老师提问你比较熟悉的功能或知识。比如老师问你在项目中使用到的MVC设计模式,是如果实现的,让你讲讲他的流程,如果你此时答不上来,可以说我在使用MVC的时候也同时使用了三层架构,我来介绍一下三层架构吧。我觉得也是可以的。
3、答辩时主要求稳。当然,如果你很优秀,那其实不需要包哥挂念。稳的意思是最好按你前期准备的PPT来按部就班的去介绍和讲解,不要突然心血来潮,去讲解或演示前期没有准备的一些知识点和功能。从小概率事件来讲,如果这样做,几乎都会出问题,从而造成自己的信心一落千仗,对后面的答辩不利。
4、最后的总结很重要。可能前面答辩进行的有点糟糕,但最后的总结如果你能好好总结原因,真诚的打动答辩组,让他们觉得你是一个可造之才,还是有挽回的余地的。真的,相信我,有用的。
三、常见答辩点
1、请说明一下你项目中所说的C/S和B/S架构有什么区别呢?
2、请说明一下你项目设计的整体架构什么结构的?
3、你系统中用到了什么算法,请说一下?
4、你系统中用到的R edis数据库主要是在哪个地方用的,为什么要用它?
5、你的系统的安全性是如何保障的?
6、你在开发时遇到什么技术难题,是如何解决的?
7、请您介绍一下XX模块的基本业务流程,讲解一下相关代码。
8、你说说你项目是如何实现前后端分离开发的。
9、你的小程序端开发和运行需要什么样的条件?
10、你这个商城中的购物车功能是如何进行实现的?
11、你这个系统中有没有用到什么设计模式?请说明一下。
12、你的这个图形统计报表是如何进行实现的?
13、你介绍一下你项目中所用到的各个表以及他们之间的业务关联。
14、你能否介绍一下你用的这个SSM框架中三个框架各自的职责是什么?
15、你觉得你的这个系统有什么比较新颖的地方?技术或功能点都可以。
16、Spring与SpringBoot的区别在什么地方?
17、某一个功能,你是如何做的,整体的流程是什么,以及数据库表是如何设计的?
10.结尾
整篇的文章,到这里也就结束了。最后预祝同学们在大学期间能有一个满满的收获,大四的同学们能够顺序完成毕业项目,拿到毕业证书,顺利毕业!