计算机专业大学四年应该如何规划(Java方向)
计算机专业的学生,如何在大学四年内提高自己的竞争力,毕业之后直接进大厂工作?
以下将从大学四年计算机专业的学习规划、课程设置、能力提升、参考书籍等方面,为同学们提供一些建议和指导。

大一:
主攻技能学习并且达到能够独立开发前后端完整项目, 独立解决业务需求, 养成良好的编程思维和编程习惯,预计12个月,为之后进入实验室开发助理打好基础。
1. 必备技能学习和掌握程度
1. 熟练深入掌握spring,springmvc,Spring Security ,springboot,mybatis等常用框架
熟练使用各种常用的架构,如Vue、Netty、 Mybits、 Mybatis-Plus等,并且能理解其原理的前提下快速使用开发。
2. 熟练深入掌握RabbitMQ消息中间件以及消息机制和缓存redis。
3. 熟练深入掌握Spring Boot的特点并且熟练应用快速搭建 、自动配置 、Stater 、应用日志 、应用安全 、应用监控。
4. 熟练掌握SpringCloud各个组件以及工作原理,会基本的构建。
5. 熟练深入掌握设计服务,设计数据模型,设计适合需求的合理架构,服务调优。例如,前端需要当前比较流行的特效,自己提炼前端组件。有独立调优项目能力。
6. 熟练掌握数据库MySql、 Oracle,并且多在项目当中使用。
7. 熟练掌握Linux基本指令,Docker容器基本用法。
8. 熟练掌握javaSE,JavaWeb,前端基础,MySQL,JDBC。
推荐书籍:
《Java核心技术》
《图解数据结构-使用Java》
《Java8函数式编程》
《Java多线程编程技术》
《Java程序员的修炼之道》
《Head First 设计模式》
《TCPIP详解卷3》
《Java多线程编程技术》
《Java核心技术(Core Java)》
《Head First 设计模式》
《java并发编程实战》
《JAVA解惑](美)布洛赫》
《重构_改善既有代码的设计》
《微服务架构与实践(王磊著)完整版》
2. 课外技能扩展学习内容
除了JavaSE编程技能之外,还有以下几个方面可以扩展学习:
1.深入学习JVM:了解JVM底层原理以及优化技巧,这可以帮助您更加高效地运行Java程序,并且有效避免性能问题。
2.学习多线程编程:理解并发编程的本质,并掌握并发编程的技术和相关工具。这将有助于您构建可伸缩性更好、响应更快的应用程序。
3.学习框架:对于一个Java开发者来说,熟练掌握一到多个流行的框架是非常必要的。不论是Flink、Storm还是Open-IM等,都可以帮助您更快地开发出复杂的业务系统。此外,了解其他领域如Web、大数据等其他相关框架也会让自己更有竞争力。
4.面向对象设计模式:学习面向对象设计模式,掌握设计模式并能够合理运用到实际开发中,可以极大地提高代码质量和可维护性。
5.JDK源码:阅读JDK源码不仅可以帮助您更好地理解Java底层运行机制,还可以学习到Java最佳实践。这将有助于您在日常开发中避免一些常见的错误。
6.推荐学习Hbase列组数据库。掌握基本概念,区分和和正常数据库的存储区别,存数据取数据等操作。
大二:
结合计院学习内容,补充增强计算机底层理论、算法、数据结构、设计模式、操作系统、计算机网络等理论深入,结合业务级开发实践相互印证交替提升开发能力与架构思维,参加蓝桥杯WEB组竞赛,准备参加大创赛事/挑战杯与大英比赛,参与校内实验室提前做学术铺垫 获取更多保研加成。
1. 算法和数据结构:要掌握各种算法的时间和空间复杂度分析,熟练使用各种算法解题,同时学习对应的数据结构的实现原理。重点是树、图、排序、查找、字符串匹配等经典算法。掌握各类算法的时间和空间复杂度分析,熟练掌握递归、动态规划、贪心、分治等算法设计方法。在LeetCode或牛客网上练习算法题,参加算法竞赛,在竞赛中检验算法的应用能力。通过大量算法练习,提高编程能力和逻辑思维能力。并在后续项目中运用所学算法,提高开发效率。
2. 操作系统:学习操作系统内核、进程/线程、死锁、内存管理、文件系统、IO等知识,掌握操作系统的基本结构和工作机制。可以做一些模拟操作系统调度的项目。
3. 计算机网络:全面学习计算机网络体系结构、TCP/IP协议、Socket编程、HTTP协议等知识。结合项目实现一个简单的客户端/服务器通信程序。深入了解HTTP HTTP2 HTTPS TSL WS 协议应用于加密封装,对 持久化 服务发现 负载 防注入 微服务等进行了解
4. 设计模式:学习各种设计模式的分类和适用场景,掌握单例模式、工厂模式、适配器模式等,学会在项目中应用设计模式。
5. 技术深入:学习汇编语言,理解计算机系统底层工作原理。选择一个方向进行源码级实践,如数据库、Web服务器等。
7. 学习并实践沟通、组织、协调、管理、规划、演讲等社会性专业技能,提升综合软实力,提升安全意识和团队协作意识,并找机会主导事务来进行实践 开始准备互联网+创新创业大赛
8. 积极与校内研究室导师教授联系, 争取试验助理身份进入实验室参与课题研究, 为之后保研提前进行学术积累 开始准备论文。
9. 提升专业知识笔面成绩,同时追绩点尽量进入专业前25%,提前准备参加大英赛
大三:
大三准备申请社会实习机会, 进入企业并且进一步提升对口专业相关能力, 锻炼面试能力 通过暑期实习进入大厂。
1. 408准备:这是考研的重要环节,要提前做好准备,熟悉考试大纲和题型,然后进行针对性训练。多做模拟题,查缺补漏。
2. 实习经历:向一线互联网公司申请暑期实习,争取进入核心岗位。实习期间全力以赴,完成实习项目和任务,积累工作经验。
3. 开源项目:选择一个有价值的开源项目进行贡献,或者自己初始化一个项目。这可以丰富简历,展示自己的编程和团队合作能力。
4. 社会实践:可以参与学校社团的活动,组织或参加一些有意义的志愿活动。这会增强社交能力、沟通能力和解决问题的能力。
8. 开始联络第一梯队新加坡大学相关专业(元宇宙 web3 XR 区块链 高性能计算)等专业教授,进行提前沟通联络
9. 学习准备自我介绍 个人规划和核心优势 如何引导面试话题 如何介绍项目 如何从项目讨论体现自身技术深度和横向技术栈认知 对学员进行面试前的针对性模拟面试 面试后的面试复盘总结 优化话术 优化表达能力和表达逻辑
大四:
秋招面试就业准备
简历规划:个人信息亮点设计,专业技能递进描述,项目经验描述优化,简历全面优化
简历投递策略: 学习招聘平台规则 投递方式 打招呼方式
面试准备:
学习准备自我介绍 个人规划和核心优势 如何引导面试话题 如何介绍项目 如何从项目讨论体现自身技术深度和横向技术栈认知
面试复盘:
对学员进行面试前的针对性模拟面试 面试后的面试复盘总结 优化话术 优化表达能力和表达逻辑
offer选择:
根据学员实际情况和意愿, 辅助学员选择最合适的offer, 并且根据offer情况进行工作指导建议
帮助学员尽可能的在实习期多利用公司资源进行提升, 传授相应的经验和技巧
职业生涯长期规划
1.具备整体工程设计、架构、部署、调优、协调的能力,能够清晰划分项目需求与实际需求,在保证安全可扩 展的前提下进行项目设计实现。
2. 对WEB技术全栈进行扩展学习: DB、运维、设计、产品、服务、分布式、 并发系统、微服务、SSR、 DevOps等,渐进式提升全链条技术视野和技术能力。
3. 在业务级多尝试了解不同层级不同领域的业务范例和业务环境,支付业务、订单业务、审核业务、IM通信业 务、视讯业务、金融汇付业务、鉴权业务、内容审核管理业务、统计分析业务、AO业务流程等,尽可能提升 业务认知广度与深度。
4. 熟练掌握各种开发范式,能够针对业务逻辑数据搭建合适的模型,构建数据结构,业务逻辑抽象。遵守编程 设计原则进行代码实施,熟练运用各种设计模式与编程原则书写高质量可复用的编码单元。
5. 学习并实践沟通、组织、协调、管理、规划、演讲等社会性专业技能,提升综合软实力,提升安全意识和团 队协作意识,并找机会主导事务来进行实践。
8. 对工程流程:代码管理 > 开发调试 > 代码编译 > 项目构建 > 模块管理 > 配置部署 > 测试支撑 > 性能检测 > 性能分析 > 安全扫描 > 规范约束 > 统计分析> 运营支撑 的每个环节都要重新审视,从全局的角度洞悉节点。
9. 探索大数据 人工智能 方向的理论与基础实践, 善于利用AI与大数据工具提升认知,规划智能外脑存在下的认知体系和学习方式。
相关文章:
计算机专业大学四年应该如何规划(Java方向)
计算机专业的学生,如何在大学四年内提高自己的竞争力,毕业之后直接进大厂工作? 以下将从大学四年计算机专业的学习规划、课程设置、能力提升、参考书籍等方面,为同学们提供一些建议和指导。 大一: 主攻技能学习并且达…...
算法D27|回溯算法4| 93.复原IP地址 78.子集 90.子集II
93.复原IP地址 本期本来是很有难度的,不过 大家做完 分割回文串 之后,本题就容易很多了 题目链接/文章讲解:代码随想录 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔…...
C++实现XOR加解器
#include <Windows.h> #include <iostream> #include <fstream> #include <string>// 加解密函数,使用XOR运算 void XORCrypt(char* data, int size, const std::string& key) {int keyLength key.length();for (int i 0; i < siz…...
Kubernetes的Sevice管理
服务原理: 所有服务都是根据这个服务衍生或者变化出来,根服务---- 服务感知后端靠标签 slelector 标签选择器 kubectl label pods web1 appweb kubectl cluter-info dump | grep -i service-cluster-ip-range 服务ip取值范围 Service 管理: 创建服务: --- kind: Serv…...
C# 高阶语法 —— Winfrom链接SQL数据库的存储过程
存储过程在应用程序端的使用的优点 1 如果sql语句直接写在客户端,以一个字符串的形式体现的,提示不友好,会导致效率降低 2 sql语句写在客户端,可以利用sql注入进行攻击,为了安全性,可以把sql封装在…...
vue3+vite+ts配置多个代理并解决报404问题
之前配置接口代理总是报404,明明接口地址是对的但还是报是因数写法不对;用了vue2中的写法 pathRewrite改为rewrite 根路径下创建env文件根据自己需要名命 .env.development文件内容 # just a flag ENVdevelopment# static前缀 VITE_APP_PUBLIC_PREFIX"" # 基础模块…...
开创未来:探索OpenAI首个AI视频模型Sora的前沿技术与影响
Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展,AI视频模型已成为科技领域的新热点。而在这个浪潮中,OpenAI推出的首个AI视频模型Sora,以其卓越的性能和前瞻性的技术,引领着AI视频领域的创新发展。让我们将一起探讨…...
Redis---持久化
Redis是内存数据库,是把数据存储在内存中的,但是内存中的数据不是持久的,如果想要做到持久,那么就需要让redis将数据存储到硬盘上。 Redis持久化有两种策略: RDB > Redis DataBase RDB机制采取的是定期备份AOF …...
从 Flask 切到 FastAPI 后,起飞了!
我这几天上手体验 FastAPI,感受到这个框架易用和方便。之前也使用过 Python 中的 Django 和 Flask 作为项目的框架。Django 说实话上手也方便,但是学习起来有点重量级框架的感觉,FastAPI 带给我的直观体验还是很轻便的,本文就会着…...
状态码转文字!!!(表格数字转文字)
1、应用场景:在我们的数据库表中经常会有status这个字段,这个字段经常表示此类商品的状态,例如:0->删除,1->上架,0->下架,等等。 2、我们返回给前端数据时,如果在页面显示0…...
Pytorch 复习总结 4
Pytorch 复习总结,仅供笔者使用,参考教材: 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为:Pytorch 深度学习计算。 本文先介绍了深度学习中自定义层和块的方法,然后介绍了一些…...
YOLOv9中加入SCConv模块!
专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,主力高效涨点!!! 一、本文介绍 本文将一步步演示如何在YOLOv9中添加 / 替换新模块,寻找模型上的创新! 适用检测目标: YOLOv9模块…...
代码随想录算法训练营第四十七天丨198. 打家劫舍、 213. 打家劫舍 II、337. 打家劫舍 III
198. 打家劫舍 自己的思路: 初始化两个dp数组,dp[i][0]表示不偷第i户,在0-i户可以偷到的最大金额,dp[i][1]表示偷i户在0-i户可以偷到的最大金额。 class Solution:def rob(self, nums: List[int]) -> int:n len(nums)dp […...
龙蜥Anolis 8.4 anck 安装mysql5.7
el8没有用mysql5.7了,镜像里是mysql8。 禁用 sudo dnf remove mysql sudo dnf module reset mysql sudo dnf module disable mysql 修改Yum源 sudo vi /etc/yum.repos.d/mysql-community.repo [mysql57-community] nameMySQL 5.7 Community Server baseurlhttp:…...
【踩坑】修复xrdp无法关闭Authentication Required验证窗口
转载请注明出处:小锋学长生活大爆炸[xfxuezhang.cn] 问题如下,时不时出现,有时还怎么都关不掉,很烦: 解决方法一:命令行输入 dbus-send --typemethod_call --destorg.gnome.Shell /org/gnome/Shell org.gn…...
python学习笔记 - 标准库常量
Python 中有一些内置的常量,它们是一些特殊的值,通常不会改变。以下是其中一些常见的内置常量及其详细解释以及使用示例: True: 表示布尔值真。给 True 赋值是非法的并会引发 SyntaxError。 x True print(x) # 输出:…...
视频和音频使用ffmpeg进行合并和分离(MP4)
1.下载ffmpeg 官网地址:https://ffmpeg.org/download.html 2.配置环境变量 此电脑右键点击 属性 - 高级系统配置 -高级 -环境变量 - 系统变量 path 新增 文件的bin路径 3.验证配置成功 ffmpeg -version 返回版本信息说明配置成功4.执行合并 ffmpeg -i 武家坡20…...
02| JVM堆中垃圾回收的大致过程
如果一直在创建对象,堆中年轻代中Eden区会逐渐放满,如果Eden放满,会触发minor GC回收,创建对象的时GC Roots,如果存在于里面的对象,则被视为非垃圾对象,不会被此次gc回收,就会被移入…...
R语言数据可视化之美专业图表绘制指南(增强版):第1章 R语言编程与绘图基础
第1章 R语言编程与绘图基础 目录 第1章 R语言编程与绘图基础前言1.1 学术图表的基本概念1.1.1 学术图表的基本作用1.1.2基本类别1.1.3 学术图表的绘制原则 1.2 你为什么要选择R1.3 安装 前言 这是我第一次在博客里展示学习中国作者的教材的笔记。我选择这本书的依据是作者同时…...
网站添加pwa操作和配置manifest.json后,没有效果排查问题
pwa技术官网:https://web.dev/learn/pwa 应用清单manifest.json文件字段说明:https://web.dev/articles/add-manifest?hlzh-cn Web App Manifest:Web App Manifest | MDN 当网站添加了manifest.json文件后,也引入到html中了&a…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
