这个作业属于哪个课程 | https://bbs.csdn.net/forums/2401_CS_SE_FZU |
---|---|
这个作业要求在哪里 | https://bbs.csdn.net/topics/619258010 |
这个作业的目标 | 掌握Markdown语法、CodeArts托管,清晰自己的人生规划,安排学习路线。 |
其他参考文献 | 无 |
1 准备工作
1.1 CodeArts注册
根据作业所提供的链接指引,按步骤申请CodeArts试用版,进入控制台。
1.2 文件创建与git
在本地打开终端,cd到你想放置仓库克隆的位置,输入命令git clone。cd进去后,我创建了一个README.md,里面随便写点内容。
然后我们直接commit push就好,推送到远程仓库。
接着我们再打开CodeArts,发现已经成功推送上去了。
1.3 仓库地址
点击访问仓库页
2 回首过去
2.1 当初你为什么选择软件工程这个专业?
因为我很小的时候就已经开始接触计算机,也对计算机相关内容产生了浓厚的兴趣。从小学的海龟画图到初高中的OI,我发现我对计算机相关的内容较为擅长,并乐于在上面花时间,因此我在报志愿的时候只报了计算机院的专业。
至于为什么是软工,在给这些计算机院的专业排序的时候我综合考虑了多个因素。排第一的是计科,因为这门学科最“正宗”,开设时间最早,学习内容注重于整体的计算机素养的培养,内容偏理论。软工我排在了第二,因为在本科教育阶段,软工和计科的课程内容几乎可以认为没有区别,计科会涉及更多的硬件内容,软工会涉及更多的开发内容和软件内容,更偏实践。同时因为在FZU中,计科的分数比软工多,贯彻不浪费分数的原则,也促使我把计科排第一,软工排第二。至于剩下的专业:大数据、AI、信安等他们的学科特异性较强,当时对我没有多大吸引力。
那之所以来到软工,毋庸置疑就是因为计科没录上(),不过也在我的期望之内。
2.2 当初对软件工程这个专业的期待和想象是什么?
能够自己开发出一个像那么回事的软件,把专业知识学扎实,然后努力能在以后得到一份高薪工作。
2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗
因为计算机的相关技术的迭代速度十分地快,课堂讲授的内容已经远远落后于时代,所以不自学、与时俱进的话最终将无法在社会上立足,或者将被很快淘汰。因此,我不能仅仅满足于课堂的内容,必须在空余的时间里进行知识补充和自我提升。
我在初一的时候就把C语言学下来了,后面也学了一点python,写简单的脚本。高考结束后的暑假,我在洛谷上我找了点题目做,旨在把对因高考而搁置的C语言的熟练度提升回来。
Flag:对自己的大学生涯不后悔,充实过完本科四年,并努力保上研究生深造。
3 立足当下
3.1 简历
吴荣榜 | ![]() |
---|---|
GitHub | https://github.com/ROBINRUGAN |
邮箱 | wurongbang@foxmail.com |
1220045015 |
教育背景
福州大学 211
双一流
- 专业成绩:GPA 3.78/4 ( 排名1/157 专业前0.64% )
- 就读专业: 软件工程
福州大学SDN可编程网络实验室
- 网内安全与验证测试:可编程网络数据平面验证测试 / P4测试
技能特长
- 英语:英语水平较好,拥有一定文献阅读能力。
CET-4 576
CET-6 553
- 数学:数理基础较好,
概率论97
,离散数学98
,线性代数96
,高等数学90
,在数竞和数模中取得较好奖项。
所得荣誉
年份 | 荣誉 |
---|---|
2024 | 第十四届蓝桥杯大赛软件类省赛省级二等奖 |
2024 | 第十五届中国大学生服务外包创新创业大赛 万维艾斯东部区域赛决赛三等奖 |
2024 | 全国大学生英语竞赛初赛三等奖 |
2024 | 福州大学2023-2024年度校级三好学生 |
2024 | 福州大学2023-2024年度院级创新创业标兵 |
2024 | 中国高校计算机大赛-网络技术挑战赛省级三等奖 |
2024 | 第17届中国大学生计算机设计大赛省级三等奖 |
2024 | 福州大学2023-2024学年第二学期一等奖学金 |
2024 | 福州大学2023-2024学年第一学期一等奖学金 |
2023 | 美国大学生数学建模比赛Finalist奖 |
2023 | 福州大学数学竞赛校级一等奖 |
2023 | 福建省大学生人工智能创意赛决赛省二等奖 |
2023 | “Prediction of Word Game Trends and Human Behavior Based on ARIMA and BP Neural Networks“, 第一作者, EI |
2023 | 第十四届蓝桥杯大赛软件类省赛省级三等奖 |
2023 | 福州大学第二十届程序设计竞赛暨校ACM/ICPC集训队选拔赛三等奖 |
2023 | 福州大学2022-2023年度校级三好学生 |
2023 | 福州大学精神文明先进个人 |
2023 | 福州大学2022-2023学年第一学期一等奖学金 |
2023 | 福州大学2022-2023学年第二学期一等奖学金 |
2023 | 福光优秀学生奖学金 |
专业水平
- 掌握的编程语言:
Java
、C
、C++
、html
、JavaScript
、TypeScript
、P4
、CSS
、Python
- 技术框架:
Springboot
、Vue
、PyQt
- 开发软件:
PyCharm
、Clion
、IDEA
、VsCode
、MySQL
- 累计代码量:10w+
部分项目经历
P4 Tutorial——P4 language tutorials
- GitHub 地址:https://github.com/p4lang/tutorials
Open Source
- 贡献部分内容勘误
FZU-WIKI——福州大学校园指南
- 技术栈:
Next.js
React
Yarn
mdx
TypeScript
- GitHub 地址:https://github.com/west2-online/fzu-wiki
- 负责部分内容贡献和页面维护
益诊EasyCare——跨平台协同健康管理系统
- 技术栈:
Vue
Pinia
TypeScript
Vant4
VueRouter
Docker
SinoDB
Axios
Yarn
- GitHub 地址:https://github.com/ROBINRUGAN/Web_Round5
- 负责前端开发、跨平台迁移、前端部署
古厝新数,行迹福州——福州大学计算机与大数据学院2024寒假社会实践数字地图
- 技术栈:
Vue3
Pinia
TypeScript
ElementPlus
Yarn
Vite
Sass
- Github 地址:https://github.com/ROBINRUGAN/digital-map
- 负责整个地图项目开发与部署
新苗同学——智慧新生迎新平台
- 技术栈:
Echarts
Sass
Vue
Pinia
TypeScript
ElementPlus
VueRouter
Docker
Axios
Yarn
- GitHub 地址:https://github.com/ROBINRUGAN/new-sprout
- 负责前端开发、前端部署
MewStore闲猫——二手游戏交易平台
- 技术栈:
Kotlin
Retrofit2
Vue
WebSocket
SpringBoot
MyBatis-Plus
Flask
Docker
SpringJwt
- GitHub 网页端地址:https://github.com/ROBINRUGAN/Web_Round5
- GitHub 安卓端地址:https://github.com/ROBINRUGAN/Android_Round5
- 负责Web前端,Android前端开发,项目部署
好二游——二手游戏交易平台
- 技术栈:
Vue
WebSocket
SpringBoot
MyBatis-Plus
Radis
Durid
Sa-Token
- GitHub 地址:https://github.com/ROBINRUGAN/game-trade
- 负责Java后端开发
UU考勤教师端 - uuAttendance for Teachers
- 技术栈:
Vue
ElementUI
VueRouter
Axios
- GitHub 地址:https://github.com/ROBINRUGAN/uu-attendance
- 负责教师端前端开发、前端部署
社会工作
职位 | 机构 | 时间 |
---|---|---|
福州大学西二在线工作室核心成员、F届前端组长 | 福州大学 | 2023.07 - 至今 |
福州大学2022级软件工程3班学习委员 | 福州大学 | 2022.09 - 至今 |
福州大学高等数学助教 | 福州大学 | 2023.10 - 2024.02 |
福州大学图书馆(铜盘校区)义务馆员 | 福州大学 | 2022.09 - 2023.09 |
4 展望未来
4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考
4.1.1 关于多人合作中的代码如何同步?
在团队项目里,最重要的就是用好 Git 这个工具。每个人都可以在自己独立的分支上工作,不用担心互相影响。比如说,在开发一个功能的时候,会从主分支拉一个自己的分支出来,完成后再合并回主分支。
在多人合作的开发中,一般我们会采用分支+pr的形式,每个人建立一个自己名字的分支,然后在开发之前先开个会,确认一下分工和模块的划分,比如说谁做主页的模块,谁做个人中心的模块,这样可以先大幅减少冲突的情况,此外github上一旦出现新pr都会以邮件的形式提醒。我们就能及时review然后合并到主分支,以及及时pull,更新自己的代码。针对一些更大的项目的话,或者是一些wiki类的,可以引入自动化测试,每次提交代码后,CI 工具会自动跑测试,做一波初步的代码审阅,这样就可以节省大量时间。
不过当遇到合并冲突的话,这时候就需要我们阅读比对,处理好传入传出的代码,看看是取其一还是合并,还是自己重新改。最后手动merge到主分支。
4.1.2 团队角色可以按需配置么?
那肯定是可以的。因为从西二的合作轮组队,到数据库实践,甚至后续的软工实践或者未来的项目开发,开发团队的规模,每个人各自擅长的部分都是不一样的,那我们就需要根据项目需求以及结合每个人的真实情况进行分配。比如,对于像西二合作轮这样的情况,一个很完美的组队配置是1美术、2前端、2后端,或者1美术、1产品、2前端、2后端。取决于项目规模以及队友的数量。如果就只有三个人,那就只能1美术/产品,1前端,1后端了。
反正无论如何对于一个正常的项目,前端后端是必须会有的,纵使是极小规模的编程合作,比如就2个人,那也必须是1前端1后端,缺少前端的后端就是一个枯燥的终端玩具,缺少后端的前端就是个没有灵魂的空壳。 如果实在找不到美术/产品同学,就只能前端想办法,要么自己设计,要么直接套组件库。团队角色的配置取决于具体的情况和需求,没有严格限制。
4.1.3 如何理解 PSP 收集的数据所反映的学生与职业程序员的区别?
从数据来看,职业程序员花在“需求分析”、“测试”等方面的时间比重较大,在“编写代码”的比重相对较小。以下是我的思考理解:
首先职业程序员以业务为主,他们真正关心的最终目标是这个业务能不能正常运作,能不能完成kpi,因此需求分析,编码前的准备工作以及编码后的测试环节就尤为重要,确保功能万无一失,所以所花时间比重会更大。但其实“编码时间”占比略低,并不是说职业程序员不重视代码编写环节,恰恰相反,反而是因为职业程序员经过长期的代码训练,对代码的编写熟练程度远高过学生,所以编写代码的效率反而更高,在此视角下这些看似无关紧要的“分析”、“测试”环节就变得重要了,这其实体现了一个发展的过程,毕竟职业程序员曾经也是学生。
那么至于学生的数据为何会恰恰相反?我的理解是学生在编码过程中同时伴随学习,学生通常喜欢各种尝试,或者琢磨怎么写出最优的代码,他们的视角下更关心代码本身。或者还有一种情况,学生对于编写完的项目,总是不爱做完整的项目测试。一方面是觉得浪费时间,或者没用,尤其是在此类项目作业都是建立在作业、ddl之上。因此学生会更偏向“能跑就行”的趋向,这其实有很大程度也归因于学生的编码技能不够熟练和扎实。
4.1.4 变量命名是否应该有描述?
首先我的答案是,描述尽可能地写。 对于规模较小的项目,有些变量的含义可以通过他的命名就很清晰地展示了。通过采用驼峰命名法或者匈牙利命名法这两个规范方法对变量名命名即可足够。
但是对于一些科研代码类的变量名,或者是非常大型的项目,变量名用英文怎么叙述都很不清晰,或者很冗长,这个时候就需要利用注释补充说明。vscode会自动将变量名和它对应注释链接起来,等到你在下文使用这个变量时,鼠标移上去就可以看到对应的注释了,所以的话对应变量名信息不清晰的问题就能圆满解决,而且可以同时保证变量名的简短。对于后者情况,我们就应该采用各种缩写方式,比如用各个单词的首字母合成一个短词、换一种表达等就可以了。
4.1.5 有了GPT类的应用,传统的搜索引擎是否会被完全替代?
目前不会,未来不一定。
目前的GPT-4是支持联网功能的,但是依旧不够成熟。虽然搜索引擎的本质是爬虫,确实可以通过编写prompt来让ai帮我们生成检索词,然后帮我们预处理搜索结果后返回。但是目前的GPT4依旧可能会抓取不准确的信息,尤其是某些广告网页具有迷惑性。此外,GPT4反馈的搜索结果并不丰富,不能满足我们的需求,而且他的分析速度还不如我们直接google。搜的信息好歹是一手资料,最全最准确。
而且目前的GPT4的联网搜索功能本来也只是为了辅助GPT的分析,并不是为了发展我们的搜索功能,如果日后有专门结合LLM技术对搜索引擎的二次封装优化,并在性能上做了提升,我感觉确实有可能会替代传统的搜索引擎。
4.2 你未来的职业规划是什么?
保持成绩,去名校读研。根据研究生的学习情况再分流,看走学术方向还是工作方向,并在研究生中后期做决策以及对应准备措施。
4.3 对于软件工程实践课程,你有什么理解和期望?
- 你希望通过软件工程课程学习到什么技术(前端、后端、平台、语言、框架、工具、软件、研究方向等,仅列出一个即可)、提高哪些方面的能力?
- 我希望能在这个课上学习到一些比较深入的知识。比如一些框架的原型设计,以及一些更硬核的原理技术,通常是被我们称为“轮子”的玩意。目前的话我有独自全栈开发、前端开发并与后端对接、后端开发并与前端对接的经验,因此对于整个开发流程范式,代码实现部分还是较为熟悉的。其实总的来看,传统的软工开发其实就是curd,因此对技术的理解要更为深入。
- 对于我个人而言,我更喜欢前端+UI的方向,因此我也打算进一步打实我前端的功底。
- 你对老师助教有什么期待?
- 能够因材施教吧。
5 学习路线
5.1 思维导图
我针对自身情况时代需求,整理了一份前端+UI的学习路线。为了思维导图的完整性以及复习查阅,我把较基础部分的内容以及自己已经掌握的内容也归了进来,方便日后对比归纳。