计算机专业大学四年应该如何规划(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与大数据工具提升认知,规划智能外脑存在下的认知体系和学习方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/417074.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

枚举(蓝桥练习)(反倍数、特别数的和、找到最多的数、小蓝的漆房、小蓝和小桥的挑战)

目录 一、枚举算法介绍 二、解空间的类型 三、循环枚举解空间 四、例题 (一、反倍数) (二、特别数的和) (三、找到最多的数) (四、小蓝的漆房) (五、小蓝和小桥的…

Linpmem:一款功能强大的Linux物理内存提取工具

关于Linpmem Linpmem是一款功能强大的Linux物理内存提取工具,该工具专为x64 Linux设计,可以帮助广大研究人员在执行安全分析过程中快速读取Linux物理内存数据。 该工具类似Windows下的Winpmem,Linpmem不是一个传统的内存转储工具&#xff0…

scons,一个实用的 Python 构建工具!

目录 前言 什么是SCons库? 安装SCons库 使用SCons库 SCons库的功能特性 1. 基于Python的构建描述语言 2. 自动化依赖管理 3. 多种构建环境支持 SCons库的应用场景 1. C/C项目构建 2. Python项目构建 3. 嵌入式系统开发 4. 持续集成环境 5. 跨平台项目构建 总…

如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

【InternLM 实战营笔记】大模型评测

随着人工智能技术的快速发展, 大规模预训练自然语言模型成为了研究热点和关注焦点。OpenAI于2018年提出了第一代GPT模型,开辟了自然语言模型生成式预训练的路线。沿着这条路线,随后又陆续发布了GPT-2和GPT-3模型。与此同时,谷歌也…

Failed to build tree: parent link [base_link] of joint [lidar_joint] not found

参考&#xff1a; Failed to build tree: parent link [base_link] of joint 在古月居gazebo 的基础教程里&#xff0c;运行古月居的mbot的launch文件报错&#xff0c;小机器人不出现。 主要原因是提供的xacro文件的宏定义没有放在xacro的命名空间。 解决&#xff1a; 将<mb…

Linux系统编程之线程互斥锁的使用方法

文章目录 一、Linux上线程开发互斥锁概要二、创建及销毁互斥锁2.1 示例&#xff1a;主线程等待两个线程退出&#xff0c;1线程和2线程打印信息 三、互斥量的初始化问题 一、Linux上线程开发互斥锁概要 互斥量&#xff08;mutex&#xff09;从本质上来说是一把锁&#xff0c;在…

小白水平理解面试经典题目leetcode 606. Construct String from Binary Tree【递归算法】

Leetcode 606. 从二叉树构造字符串 题目描述 例子 小白做题 坐在自习室正在准备刷题的小白看到这道题&#xff0c;想想自己那可是没少和白月光做题呢&#xff0c;也不知道小美刷题刷到哪里了&#xff0c;这题怎么还没来问我&#xff0c;难道是王谦谦去做题了&#xff1f; 这…

Dockerfile(6) - EXPOSE 指令详解

EXPOSE 通知 Docker 容器在运行时监听指定的网络端口 EXPOSE 端口号 EXPOSE 端口号/协议 默认协议是 TCP 同时在 TCP、UDP 上暴露端口 EXPOSE 80/tcp EXPOSE 80/udp EXPOSE 原理 个人理解&#xff1a;EXPOSE 暴露的端口更像是指明了该容器提供的服务需要用到的端口EXPOSE…

【比较mybatis、lazy、sqltoy、lambda、操作数据 】操作批量新增、分页查询

orm框架使用Lambda性能比较 环境&#xff1a; idea jdk17 spring boot 3.0.7 mysql 8.0测试条件常规对象 orm 框架是否支持xml是否支持 Lambda对比版本mybatis☑️☑️3.5.4sqltoy☑️☑️5.2.98lazy✖️☑️1.2.3-JDK17 数据库表(含有唯一性索引s_u) CREATE TABLE sys_u…

机器学习|线性回归

线性回归是尝试使用一条直线去拟合出图上的节点。 e i e_i ei​为第i个点构成的误差&#xff0c;使用平方的好处一是可以避免正负抵消&#xff0c;二是平方有利于放大大于1的误差的影响&#xff0c;同时缩小误差小于1的影响。 将平方项进行展开&#xff0c;以w作为变元&…

Floyd算法、Dijkstra算法、基础拓扑排序

Floyd算法 Dijkstra算法 基础拓扑排序

简单了解B树和B+树

目录 B树 B树 B树和B树的结构示意图 总结 B树和B树是两种非常重要的树状数据结构&#xff0c;它们广泛应用于数据库和文件系统的索引结构中。这两种数据结构能够帮助我们高效地管理、查询以及更新大量的数据。下面&#xff0c;我将简单介绍它们,以及他们之间的区别。 B树 B…

内存飙高问题如何排查?

目录 1、查看日志 2、查看GC情况 3、分析堆内存对象占用情况 4、分析堆内存快照文件 内存飙高如果发生在java进程上&#xff0c;一般情况是因为创建了大量对象导致&#xff0c;持续飙高说明垃圾回收跟不上对象创建的速度&#xff0c;或者内存泄漏导致对象无法被回收&#x…

unity学习(42)——创建(create)角色脚本(panel)——UserHandler(收)+CreateClick(发)——服务器收包2

1.解决上一次留下的问题&#xff1a; log和reg的时候也有session&#xff0c;输出看一下这两个session是同一个不&#xff1a; 实测结果reg log accOnline中的session都是同一个对象&#xff0c;但是getAccid时候的session就是另一个了。 测试结果&#xff0c;说明在LogicHan…

小程序中使用echarts地图

一、下载并安装echarts 1、下载echarts-for-weixin组件 echarts-for-weixin项目提供了一个小程序组件&#xff0c;用这种方式可以在小程序中方便地使用 ECharts。 下载ec-canvas项目&#xff08;下载地址&#xff09; ​​ 注意&#xff1a;下载的 ec-canvas 中的echarts的版本…

嵌入式怎么学?工程师学习路线都在这

在嵌入式系统领域&#xff0c;硬件与软件工程师是不可或缺的重要支柱&#xff0c;分别承担着不同的职责和角色&#xff0c;但两者又紧密相连&#xff0c;共同构成了嵌入式系统的核心。今天本文将详细探讨工程师需要学什么&#xff0c;希望对小伙伴们有所帮助。 嵌入式硬件工程师…

iOS App冷启动优化:Before Main阶段

iOS应用冷启动时&#xff0c;在 UIApplicationMain(argc, argv, nil, appDelegateClassName)方法执行前&#xff0c;主要经历以下阶段&#xff1a; 1. 执行exec&#xff08;&#xff09;启动应用程序进程 2. 加载可执行文件&#xff0c;即将应用程序的Mach-O文件加载到内存…

QT C++实践|超详细数据库的连接和增删改查操作|附源码

0&#xff1a;前言 &#x1faa7; 什么情况需要数据库? 1 大规模的数据需要处理&#xff08;比如上千上万的数据量&#xff09;2 需要把数据信息存储起来&#xff0c;无论是本地还是服务上&#xff0c;而不是断电后数据信息就消失了。 如果不是上面的原因化&#xff0c;一般…

Linux系统中make/Makefile的介绍

文章目录 前言一、make命令二、makefile功能介绍1.makefile文件的编写格式2.hello.c文件内容3.makefile文件4.安装make命令 总结 前言 在linux系统中&#xff0c;我们对项目文件进行处理的时候会不方便&#xff0c;因此我们需要对文件的编译进行自动化处理。 下面就是在Linux系…