软件工程第一周作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/CSgrade2026
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/CSgrade2026/homework/51710
这个作业的目标 完成一篇完整的个人博客,包含自我介绍、现状分析、课程计划、阅读提问和前人心得,同时练习 Markdown 排版与 GitHub 基础操作。

github:https://github.com/cpx1210
个人博客(近期搭建,文章较少):https://blog-december.vercel.app/

1.个人介绍

大家好,我是陈鹏旭,目前就读于广东工业大学计算机科学与技术专业,同时是我们学校网络安全AD攻防工作室的成员。大一有跟着老师做一些项目,也在大小挑拿了一些奖,不过后续因为方向不和也没有继续,后续有用AI完成一些个人项目,不过还是缺乏妥善的软件工程知识,构建前后端应用,设计数据库表,部署到服务器这一套流程遇到了很多坑点,浪费了很多时间。 我的闪光点是我比较擅长网络安全相关技术,比如渗透测试,漏洞挖掘,CTF比赛,软件逆向之类的,也是在大二加入了我们学校的AD攻防工作室 我是在大二刚加入工作室的时候就开始写一些技术博客了,不过没有搭建个人博客,都是发布在一些论坛上,比如吾爱破解论坛(一个分享软件逆向,破解的技术论坛)

image

这是写一篇软件逆向的新手帖子,第一次收获将近6000的浏览量(不过实在不是什么高深技术内容,仅是小白学习贴,帖子在这里https://www.52pojie.cn/thread-2081208-1-1.html
然后开始在各大SRC平台(是各大互联网厂商开启的漏洞发现奖励计划,旨在鼓励安全研究人员发现并报告厂商产品或服务中的安全漏洞)开始了授权漏洞挖掘之路,

image

也挖了一些我们学校系统的漏洞,其中包括广工校医院小程序在内的系统漏洞,并上报给了网络中心的老师

image

我也有挖一些企业SRC,有时候挖到了高危漏洞还能赚一笔厂商的漏洞赏金。我通过了很多努力来磨练我的技术,打ctf比赛、自学技术、阅读前辈大佬的博客、自建靶场进行漏洞复现等
这是我目前的现状,可能当下能力还不突出,我也会继续磨练自己的技术。我觉得写博客是有意义的,它给了人成长的基石,我翻过去的博客可以看到自己是如何一步步成长的,在哪个专业领域学习了哪些知识,还需要补哪些知识,可以让我对未来学习,已学知识有比较清晰的了解和规划。
至于作业底线,我想我的作业底线是不抄袭,不全靠AI,有自己的思考与学习,尽力拿80分

2.现状、经验和计划

(1)专业选择与技能差距

当时选专业是想着考公好考,了解未来可能是人工智能风口所以选的,完全没有了解网络安全有关知识,但在大一经过工作室宣讲和一些ctf比赛的参与,我也是开始喜欢上了网络安全这个行业,然后就开始深入学习
技能 目前水平(0-9) 课程结束后目标(0-9) 提高手段
java/python 3 5 做项目,写小工具,结合AI以项目为导向,自项向下学习
javascript 2 5 做项目,写小工具,结合AI以项目为导向,自项向下学习,同时把typescript学了
数据结构与算法 2 5 看网课,刷算法题,学到的东西沉淀到笔记博客
数据库设计与优化 3 5 结合项目学习
版本控制 3 5 自己设计一些冲突场景,练习不同情况下如何优雅的进行版本控制,CI/CD流程
不过我比较擅长的还是网络安全有关内容,现在渗透测试可以给到自己5分,攻防能力给到4分

(2)阅读一下博客,并务必写一些心得:

a) 为何要认真上课?
虽说现在在B站、以及各种博客网站能看到很多优秀课程、帖子,但毕竟数量一多容易良莠不齐,分不清哪些是“卖课割韭菜”,哪些是“经验之谈”,所以我认为上课是给我们的知识打一个基底,树干,在其上才能长出自学来的枝枝蔓蔓
b) 师生关系与应对困难
“师者,所以传道授业解惑也”,我作为学生不希望老师只念ppt,或者大谈特谈过时技术,作为老师也不希望学生敷衍抄袭,所以我希望老师和学生能保持同频交流,解决实际问题。面对老师布置的难度较高的课程作业,我的选择是C:向老师和同学请教,花更多时间,把作业全部完成。毕竟畏难是技术的大忌,难点即是技术壁垒,逃避只会是主动放弃竞争力
c) 引用与抄袭
引用是写明原作者,在原作者之上的二次开发,是遵守了开源精神的,保障了原作者的创作权益。而抄袭是一种无视作业知识产权、创作权益,不标明原作者、不标明出处的非道德行为

(3)几年后,你可以做学术研究、做软件项目、做其他专业的工作、做公务员、出国深造、回家继承家族企业... ,不同的选择有不同的努力方向, 你今天是怎么为将来准备的?

我将来还是继续深耕网络安全领域,做渗透测试,护网行动,蓝红队攻防等。今天我自学网络安全有关知识,比如sql注入,越权漏洞,远程代码执行等漏洞,了解常见的开发框架比如springboot,springcloud,django,fastapi,thinkphp以及它们的常见漏洞,在各大厂商SRC范围内开展授权漏洞挖掘,积累实战经验。写好简历提前准备找实习岗积累社会工程经验。我的优势是有从大一开始对口技术沉淀,有获得CTF(网络安全竞赛)省级奖项,独立挖掘过厂商中高危漏洞,这些实打实的成绩能成为我的一大优势。本学期的规划是加强开发能力,代码审计能力,在代码审计,软件逆向时更能阅读出潜藏漏洞点

我在这门课的计划

我计划在这门课积累一些软件工程思维,了解如何优雅的构建一个前后端分离应用,如何进行系统设计,我对这个课程的期待是学习和掌握新的软件开发思维与方法。不算AI协助生成,目前代码量Java在1000行左右,能比较熟悉springboot应用开发框架,知道如何设计controller、DAO、Service等层以及mybatis连接数据库操作,为了有资格入职一流网络安全公司,大概要熟悉java/go,能编写网络安全工具,不算AI生成协助,大概要5000+代码量,事实上,我打算和其他课花一样多的时间完成这门课,做到中等水平即可

3.提有质量的问题,给认真的反馈

问题一:第1章 概论 - "足够好"的软件定义是否缺少维护性维度?

原文引用(第1章): 软件工程的一个重要任务,就是要决定一个软件在什么时候能"足够好",可以发布。

我的问题
书中"足够好"的定义主要从用户功能满足和发布时机角度来谈。但我认为,代码本身的可维护性也是衡量软件是否"足够好"的重要维度。很多软件功能满足了用户需求,但代码写得混乱不堪,技术债务累积,后来人想改改不了,只能推翻重写。这种软件能算"足够好"吗?

我的困惑
在实际开发中,经常遇到"工期紧,先上线再说"的情况,技术债务不断累积,最后拖垮整个项目。书中是否应该更明确地强调:"技术债务也是衡量软件质量的一个核心维度"?当交付压力和代码质量冲突时,学生应该如何平衡?

问题二:第6章 敏捷流程 - 学生项目是否过度强调"可工作的软件胜于完备的文档"?

原文引用(第6章 敏捷宣言): 可工作的软件胜于完备的文档。

我的问题
工业界强调敏捷是对的,但在学生课程项目中,团队成员每学期都在换,项目通常只做一个学期就结束。如果我们只追求"跑起来就行",而忽视文档的撰写,是否会培养学生"只写代码不写字"的坏习惯?

我的经历
我参与过一个团队留下的项目,代码能运行,但没有任何文档,迁移到本地部署配置环境花费了很多时间,要理解整个架构花了很久。如果当初写好完备的文档,后来者能节省很多时间。学生项目是否也应该坚持一定程度的文档要求?写文档本身不就是一种重要的训练吗?

问题三:第5章 团队和流程 - 当你的团队只有一个人,如何实践"团队工程"?

我的问题
作为学生,大部分课程项目都是单人开发。那些为多人协作设计的流程(如代码审查、任务看板)似乎无从谈起。但转念一想:清晰的 commit message、README 文档、合理的函数命名——这些是否可以视为"与未来的自己协作"的工程实践?
如果是这样,那么软件工程的本质,或许不仅是"多人协作的规范",更是"让代码具备可理解性与可延续性"的一套自律体系。正如书中所说:"代码是写给人看的,只是顺便让机器执行。"

我的困惑
单人开发时,哪些工程实践是必须坚持的,哪些可以简化?比如,一个几千行代码的课程作业,是否真的需要严格遵循多人协作的所有规范?还是说,工程习惯的训练本身就是目的,不管项目大小?

问题四:第16章 IT行业的创新 - 灵光一闪真的能产生伟大创新吗?

原文引用(第16章): 创新分两种:1. 持续性创新 2. 颠覆性创新。创新的几点迷思:灵光一闪,伟大的创新就来了?创新之前,要有很多的基础准备工作,知识的储备。

我的问题
书中已经批驳了"灵光一闪产生伟大创新"的迷思,这点我赞同。但我有一个延伸问题:大学课程项目中,老师经常要求我们"创新",但大多数学生其实只是在已有技术基础上做应用集成。这种情况下,什么样的创新算是合格的?必须要有"颠覆性创新"吗?
根据我的观察,学校里所谓的"创新项目",很多只是把已有的技术排列组合一下,解决一个具体问题。这算创新吗?还是说,持续性的改进也是有价值的创新?

我的困惑:
作为本科生,我们是否应该先练好基本功,再谈真正的创新?还是说,从大一开始就要鼓励创新,哪怕是不成熟的,如果基础都没有,大谈创新是不是太浮躁了一点?

问题五:第17章 软件工程的未来 - AI编程普及后,软件工程的核心能力是否已经改变?

原文引用(第17章): 讨论了自动化工具对开发流程的影响。

我的问题
现在我们写代码时,已经习惯让 AI 补全函数。这极大提升了编码速度,但也带来新问题:生成的代码是否可维护?是否隐藏了安全漏洞?是否削弱了我们对底层逻辑的理解?
更进一步,如果 AI 能自动生成测试用例、撰写文档、甚至规划架构,那么软件工程师的核心能力是否将从"写代码"转向"定义问题"和"评估输出"?《构建之法》所强调的沟通、需求分析、质量意识,在 AI 时代是否会变得更加重要,而非被削弱?

我的困惑
我倾向于认为 AI 只是工具,它放大了工程师的能力,但不会取代工程师对问题本质的理解。但我还是不确定:这种理解在多大程度上需要通过"亲手写代码"来训练?如果我们从一开始就依赖 AI,会不会永远无法建立起对底层逻辑的直觉?

关于课程反馈

我会选择: D:经常提问题,平时就经常给老师和助教提反馈 有问题及时说,有想法及时反馈,这不仅帮到自己,也帮到其他同学和老师改进教学。既然选择了认真学,那就认真反馈。

4.前车之鉴

我选择了三篇文章阅读,以下是我的感想:

篇一:小智《偏科生自学摸索的道路》
原文链接:https://www.cnblogs.com/xiaozhi_5638/p/4485805.html
这篇文章给我最大的触动是作者对"偏科"的坦然和对自学重要性的强调。作者出生农村,高中偏科严重,英语和化学特别好,其他科目一般,最后考上普通二本。但他靠着自学,毕业四年就和师兄一起创业,公司从4个人发展到十五六个人。
作者总结了四点最重要的建议:自学、英语、重视基础、眼界。这四点我深以为然:
自学:作者说"90%的知识是靠自学得来的",课本和老师不会讲所有最新的知识,能否高效自学决定了你能走多远。这个观点我非常认同——大学不是高中,等着老师喂知识点是走不远的。
英语:作者因为偏科英语一直不错,工作后发现很多问题中文搜索解决不了,英文搜索才能找到高质量的答案。这点我也有体会,很多最新的技术资料都是英文的,英语不好就相当于闭着一只眼睛。
重视基础:最让我警醒的一句话是——"不要瞧不起大学里的基础课,面试官看应届生,主要看基本功是否扎实"。很多同学大一就忙着找实习做项目,忽视了数据结构、操作系统这些基础,面试的时候一问就露馅。作者说"基础越好,成长越快",这话值得记下来。
眼界:作者说"每天养成习惯看看 IT 科技新闻,关注前沿技术动态,多泡技术社区",这点我做得不够。现在想想,技术变化这么快,关起门来读书确实容易脱节。
对"实习经验对应届生重要吗?"这个问题,我的看法:
作者没有直接说,但从他的经历看,实习确实能让你提前认识职场,知道企业需要什么。但前提是你基本功已经扎实了,不然实习也只能做打杂的活。基础比实习更重要——这个观点我同意。
这篇文章让我明白:出生不好、学校不好、偏科,这些都不是终点。关键是你有没有持续自学的能力,有没有把基础打牢。很多牛人都是从普通学校走出来的,路是一步步走出来的。

篇二:刘帅《在失望中寻找希望》
原文链接:https://book.douban.com/subject/4006425/discussion/22803961/
刘帅的故事让我浑身一震——他说自己"科班出身,但没学懂计算机"。他本科毕业工作三年后考研,进了清华软件学院,但他反思自己大学学习方式:"以机械记忆为主,看题目先看答案,让答案指引我的思路,而不是自己想问题。这种方式短期内提分快,但长期来看,使人丧失判断力和思考能力。"
他面试"完美时空"时被问得哑口无言:Lucene 的索引怎么实现?自动化测试框架怎么设计?游戏升级算法如何设计保证平衡性?几乎每个问题都答不上来。他总结说:"知其然不知其所以然,这是我一贯的问题。"
我们很多人其实都是这样:上课记笔记,考试背笔记,考完就忘记。写项目的时候照着教程抄,能跑就行了,不理解为什么这么写。遇到面试一深入问,就露馅了。
刘帅最后说:"加强实践与执行力,出来混,总是要还的,你不会的知识,总是会在一个必要的时候提醒你、惩罚你。"这句话太扎心,但也太真实了。现在偷的懒,将来都会加倍找回来。

篇三:陈皓《谈谈职业规划》
原文链接:http://blog.csdn.net/haoel/article/details/1688104
左耳朵耗子陈皓给新人的八点建议,每一条都分量十足。我印象最深的是这两条:
"毕业后前五年,踏踏实实地专研技术,千万不要把心思放在钱和职位上"
现在网上到处都是"三个月转行拿高薪"的焦虑营销,让人浮躁。但陈皓说,前五年是量的积累,后五年才是质的飞跃。30岁以前好好学习技术、学做人、学做事,不要急着升官发财。这个观点让我安心很多——慢慢来,比较快。
"技术不是主要的,主要的是通过技术能够解决什么样的问题"
很多初学者(包括我)容易陷入"技术崇拜",为了用新技术而用新技术。但陈皓提醒我们:始终要记得,技术是用来解决问题的,不是用来炫技的。这个观念摆正了,学习才不会走偏。
他还特别强调 soft skill(软技能)的重要性:"hard skill 像树根,soft skill 像枝叶,树根让你站稳,枝叶让你伸展。"这点我之前不太重视,现在意识到——技术到了一定层次,拼的就是沟通、协作、表达这些软技能了。
我的感想:
陈皓的建议放到十几年后的今天依然不过时。职业规划就像软件工程,需求变更是最大的风险,所以需要迭代调整,但大方向不能错——打好基础,持续积累,厚积才能薄发。

posted @ 2026-09-07 14:27  cpx1210  阅读(4)  评论(0)    收藏  举报