2025-05-07 小灶分享
和同学们的一些分享, 包含了 C/C++、Java以及算法的一些分享~
考勤
组长考勤, 结束后把参会名单私发小学长
格式: xxx小组, 实际到场人数/总人数 | (学长需要统计, 以评估积极性)
- 记得录屏
Warning
结束后, 录屏可能会被腾讯封掉, 注意不要删除源文件, 以便加密重发!
各位如果需要录屏, 请尽快下载~ (腾讯已经封我3、4次了wc...)
舍友这边可能会有点吵, 各位凑合一下~
ゼロ、前言 と ざこもの
0.1 自我介绍
大家好, 至少在今天我还是大二~, 高中学的是日语, 一名不怎么看懂英語の程序员. 平时喜欢看番~ (ロリコン += シスコン)
主攻 现代C++, 目前比较拿的出手的是 一个C++20协程的基于Linux io_uring 的web框架, 支持无宏的聚合类反射, 系统默认支持断点续传...等等; 目前正在学习 QT (QML), 正在编写一个 C/S 都由 C++ 编写的 私有云电子书 项目...
学过一点Java, 目前仅有 HX-ANiMe 这一个前后端架构的Spring-Boot项目...
前端也学过一点, 比如目前这个博客实际上就是一个我 二次开发 主题魔改 的一个博客 HXLoLiHub 可以直接部署在 Github Page 上, 不用自己购买云服务器.
还会点py爬虫... 编写过一个 B站全弹幕获取 程序. (目前居然是我github里面start最多的项目 qwq)
0.2 笔记推荐
建议使用 MarkDown 写, 它易读易写, 程序员都要会它! github的自述文件就是它写的...
- 以后写什么项目文档, 以及看很多开源文档, 它们都是md写的~ (没人会写word文档! 如果某个誰, 让你写word, 那他肯定不是搞技术的...)
特别不建议!!! 用
word
, 能不用就不用.
Tip
推荐几个markdown
编辑器: VSCode + 插件
、Typora
0.3 笔记不推荐
- 不建议在
CSDN
上做笔记!!!
纯纯复制粘贴的垃圾论坛, 还花钱买搜索引擎, 搜索到的全是CSDN的复制粘贴偷别人
而且全tm是广告!!有时候你一个页面,它完完整整的给你占了一大半!!比tm看片网站广告还多。
而且会随机的把你的文章设置为收费。即便不是你设置的!
那你不是在帮别人免费打工吗?!
Tip
个人认为, csdn迟早倒闭! 和它上面的东西一起灰飞烟灭!
从你的笔记安全上, 我也不建议你把笔记放到这上面
血淋淋的现实:
- 我搜索
libass
, 它总是以一种好像是很厉害, 实际上就是ai的东西, 排在前面:
推荐使用:libass - 强大的字幕渲染库 - CSDN博客
2024年5月9日 · libass是一个高级字幕渲染库,用于将字幕文件渲染为视频。而libass-msvc则是libass的特定版本,该项目文件是为Microsoft Visual C++(msvc)编译器优化的。 首先,标题 …
-
并且很多东西, 实际上都是复制粘贴别人的东西! 写的人不知道这是真的假的, 那你怎么能保证用的能不能用嘞?!
-
浏览量csdn也是有人机给你刷的, 回复也是有人机在那里回复... 很多资料没有一点参考价值..
同理, 我也不推荐使用word这种, 以及非开源的笔记格式, 他们不利于保存, 也不利于迁移.
0.4 交流的推荐方式
-
看到消息了, 记得回应, 比如
OK
; 不然会被人以为失踪了 -
问问题了, 别人回答了, 请给个回应
例如:
正确方式:
-
尽量描述原因:
比如: 学长我打算xxx, 然后实现xxx, 但是xxx的时候, 变成xxx样子了
-
即便你不知道发生了什么, 截图请截全, 尽量展示更多的信息, (因为大部分的时候, 错误不会在你认为的地方出错, 不然为什么你不自己解决呢?)
代码, 运行结果, 编译报错信息
Tip
期望的: 小学长答疑, 但不是帮你写完作业! 是教会你学作业~
附: 解决问题的一般思路 (答疑的时候也是这样思考循序渐进的~)
0.5 偷偷说一下
0.5.1 とある科学のインターネット・エレベーター
Tip
科学上网, dddd. 你要上Github、各种包下载、docker镜像下载最舒服就是直接上这个... 真的方便很多...
0.5.2 AIに関する
学习的时候, AI应该是作为一种搜索引擎使用. 而不是让它帮你完成任务!
比如:
你在写算法题, 你可以:
- 自己写一版, 然后让它帮你看看有没有什么问题 (注意, 让它仅指出你的错误, 而不是帮你修改)
- 询问它这种题目需要什么知识点, 我不会; 但我应该去学什么. (让它告诉你知识点, 但不是直接给你代码)
你不应该:
- 复制题目, 然后直接复制粘贴它的代码!
但也看例外, 比如你已经完全清楚和理解为什么这样做了, 只是代码太繁杂了, 你可以偷懒, 让它帮你写.
0.5.3 Github 是学代码最好的实例
- 在 Github 上学习代码正确用法: 从别人的源码实例中学习!
直接在搜索框中搜索你希望学习的代码, 然后切换到代码视图 (具体看我操作)
- 以学习 C++20 的新特性
std::span<T>
为例: 你不知道传参是直接按拷贝, 还是按引用, 就可以看看知名项目的源码~
一、分享
1.1 个人博客
因为网络上的内容良莠不齐, 很多都是CV, ljAI, 为了流量写些有的没的, 特别是以 CSDN (赤石、低能)
为首的垃圾平台! 懒得说, CSDN辞藻药丸
因此, 建立自己笔记仓库就显得尤为重要了~~ 不然你想每次都赤石吗? 你问AI它不会, 它去搜索, 看到参考链接里面有CSDN的, 不一样是AI搬石? 还给你打包个外壳, 你不懂还看不出来...
我建议各位都可以写一下博客(笔记), 记录自己日常学习的内容, 到时候写简历也可以附上~
就像机哥说的一样, 他自己有 2个T的正经的学习资料, 要写什么东西, 直接搜索, 就有很多可以复用的、现成的代码. 完全不需要我们从头思考~
Heng_Xin个人博客 (
旧博客已停止更新, 已迁移: 旧博客)可能Github Page国内有点慢... 我自己云服务器也反向代理了一下 https://www.hxloli.com/HXLoLi/ 就可以访问了~
1.2 个人的な学习方法
1.2.1 学习方法
对于视频, 如Java xxx入门课程, 你应该完整的看完一集, 然后关闭视频, 按照自己的理解与印象, 把本节课程的知识点使用代码复现出来, 不求完全一样, 但是需要把对应的知识点给使用到; 如果有忘记或者不确定的, 可以先按照自己的理解写, 可以写注释标记一下; 如果完全不会的, 可以用注释把需要实现的内容描述出来, 然后跳过. 等完成一轮, 就可以重新打开视频, 拖动进度条跳着看, 把你不确定的办法过一下.
如果是语言类课程, 可以直接把笔记写到代码上
如果是理论类课程, 可以写到笔记上 (理解的部分, 使用自己的话描述出来. 不理解、并且需要记忆的部分, 可以先复制粘贴 (但是复制粘贴的同时, 需要把知识点过一遍自己脑子!))
每当学完一个大章节, 可以自己写一个小项目什么的, 并且运用到本次学过的知识点, 以巩固、测试自己.
对于文档, 唯有多看 + 多用 (u1s1, 有些文档是真的垃圾)
- 另外, 如果有时间的话, 拍视频复盘、讲解代码也是一个不错的复习、提升, 它不仅考验你对知识的掌握, 还可以锻炼你面对镜头的能力. (跟tm面试一样wc)
1.2.2 学习路线? (学习历程)
1.3 C语言の分享
课程: 带你学C带你飞
学习计划 & 练习: C 语言学习指北
C没有啥子东西的, 仅仅是基础语法的话.
提一下, vs2022 不支持一些诸如VLA的c99的c语言的特性:
int n;
scanf("%d", &n);
int arr[n]; // vs2022报错
也不推荐使用这个, 连linux内核都为在代码中完全移除VLA的使用而发公告庆祝。
你就应该知道, 这不是一个好东西, 也不适用于之后的cpp以及cpp的元模版编程 (总之不安全, 性能也难说)
Tip
虽然我讲过这个东西了... 但是事实证明, 还是会有人来问这个 VAL...
1.4 C++の分享
1.4.1 个人笔记 & 配套笔记项目
-
CToCpp By Github (事实证明, 这个只能作为一种目录, 只对亲手写它的人有用) -
Cpp-CMake-Template (跨平台的现代的C++ CMake 项目模版)
-
大家可以把自己的学习笔记、实验代码什么的, 发到github, 有备份, 而且有历史记录. 比如: HXTest
1.4.2 宝藏UP推荐
(基础语法找个你看得下去的就ok, 反正都不是现代C++
)
-
爱编程的大丙: 通俗易懂讲解C++的一些入门的东西.
讲的很细; 但是是C++11附近的东西, 并且没有讲
元模版编程
, 适合入门, 学习概念. -
不 面向萌新的: (此处为
现代C++
, 即便已经学过一次这些知识, 但你再看他们的视频, 一样会懵逼! 取而代之的是, nb的知识收益!!)进阶语法: ((卢瑟国-国王)白律师) mq白cpp
伟大无需多言!!! HX认可C++第一人!!! 小彭老师!
- 双笙子佯谬
- 视频量大管饱! 一个小时的视频, 你会在15min左右就开始懵逼: 发生什么事了?
-
高级现代实践: 可以看看诸如
purecpp大会
之类的会议, 里面有很多大佬分享前沿知识、技巧.
1.5 Javaの分享
1.5.1 个人项目
HX-ANiMe 已经在自我介绍处写了, 这里不重复. 也不算什么厉害的东西 =-=
我倒是为 Java 写了一个库, 之后的小项目, 应该可以用上: HXCin, 可以实现非阻塞输入, 基于swing监听键盘, 而不是手动控制台输入! 输入无需回车~
1.5.2 UP推荐
(普通的那些, 找个播放量高, 看得下去的就行), 下面是进阶的 (应该说是 后端 的通用思想了)
-
专注java后端, 可以看看他的代码review, 可以学到很多东西.
还有大厂的服务崩溃原因分析...
-
线程池、互斥锁等手写系列, 讲的很精简但又很有深度, 途中会一步步升级、修改代码. 适合java老哥深入源码~
-
以猫meme的方式, 一波三折的介绍小知识, 视频很短. 可以学到一些bug的de的方法. 尤其是如果这个bug你之前有遇到过, 说不定就在这里找到更好的解决方案!
-
这个我忘记了我为什么关注了...(顺便一起放这里了), 目前用不上实力不够qwq
1.6 算法の分享
1.6.1 0x3f
算法滴神!!!
B站: https://space.bilibili.com/206214
力扣: https://leetcode.cn/u/endlesscheng/
看看灵神题单! 力扣没有灵神, 直接就破产好吧!
打打力扣周赛, 进去灵神交流群吧, 里面全是dalao! (u1s1, 最近一年力扣为了防AI, 周赛难度急剧上升! 以前 T4 的难度, 现在 T3 都不一定比得上...)
1.6.2 学习方法 (纯个人见解)
咱们以C++为例, java方法名太长了, 没有Tab我怎么活...
时间充分情况下
- 系统的学习
数据结构与算法
, 必须要把讲到的内容都动手实现一次!!!
最好用C语言/C++(非STL)实现, 可以让你更加明白底层, 而不是被各种抽象...
- 刷题, 根据题单系统的刷, 而 不是 随机刷或者狂刷简单题!
在这个过程中, 熟悉学习到的数据结构的优点与使用场景 (根据时空复杂度判断)
一定程度了, 可以参加力扣周赛什么的
Tip
(PS 蓝桥杯官网那个周赛就是xx, 为了卖课的yy, 难度跨度很大.. 萌新会怀疑人生的)
超想提升能力的(打acm什么的), 去cf刷题, 那里很多思维题、构造题. (不过现在才知道应该有点晚了吧qwq?) 唯一的问题就是ui太丑了(简略), 番鬼佬语(Eglx), 以及阴间时间.
- 可以准备 自己的算法板子, 这类似于自己的归纳总结!
蓝桥杯真题,刷刷刷(这个好像失效了? 还是服务器炸了?) https://dashoj.com/d/lqbproblem/training/65e4d2a5fd6da41599add473
Tip
为什么不看: 如何科学刷题
1.6.3 碎碎念: 代码规范
对于代码规范! 个人认为, 该有的缩进, 不能少:
个人认为这个是一个糟糕的习惯!! 糟糕的码风!!
Tip
真正的大佬, 你看他的代码, 总是很简洁的!
因为唯有对题目的理解深刻, 才可以写出如此简洁的代码.
反倒是代码写的乱七八糟的, 他的思维也往往和他的代码一样乱七八糟的 (因为改来改去什么的..)
因此, 我们看题解什么的, 应该向他们学习!
不懂的题目, 我们学他们的思路.
写出来的题目, 我们学他们的代码!
故此, 如果你仅仅是为了就业, 那么没什么好说的, 直接刷力扣就完美了
力扣的好处:
-
界面UI漂亮
-
接口实现式编程, 这和上班写代码一样,
大多数时候, 接口都是别人架构好的
, 反而你私自改了, 你就要free了 -
友好的输入输出用例提醒. 不像
洛谷
, 大多数时候你错哪里你都不知道, 也无法排查. -
题解质量高, 如果题解有
灵神
写的, 那你放心, 即便不会你也肯定可以从灵神题解中学到东西! 反之, 某些垃圾oj, 要么没有题解, 要么题解都是别人粘贴自己那破代码, 跟加了密一样, 一点解释都没有, 这种很难有提升! -
现代, 支持许多语言, 并且支持很多新特性 (比如C++23) (要知道, 蓝桥杯比赛你可以使用的最高标准是tm的C++11, 这已经是14年前的东西了, 真以为写个C++98自己就是985啊? 幽默原始蓝桥杯)
什么你说算法竞赛要洛谷? 得从洛谷的萌新题单写起? 力扣的太简单了?
不是吧哥们? 你随机一道困难题可以10分钟内秒了吗? 力扣周赛可以国服稳前200吗?
根本不需要啥也不懂然后就听一个洛谷偏算法, 就跑去算法刷题. 实际上你连你所谓的力扣简单的题都不会写. 到时候只会拿一个没有提交, 没有用例, case数据乱七八糟的垃圾题在那里浪费人生+自我怀疑.
还不如先去新手村练习呢.
至于你说的输入输出, 你到时候随便练个几十道题, 还会不懂吗?
综上, 大家可以审视一下自己使用的刷题平台, 看看有没有这些毛病? 特别是那些使用学校的oj的. 除非你是acm oi爷, 不然你很难学到什么东西...
特别的, 对于使用全局变量的
#define ll long long
int arr[10005];
int main() { /**/ }
应该采用更加现代的C++写法: (使用STL容器, 这在-o2优化下, 无性能损失!)
using ll = long long;
int main() {
int n;
scanf("%d", &n);
std::vector<int> arr(n);
}
图也没有必要学什么链式前向星了, 下面就是一种简单的邻接表了
vector<vector<int> g(n);
while (n--) {
cin >> u >> v;
g[u].push_back(v); // u --> v
}
1.7 神奇的网站分享
1.7.1 公有
-
备忘录 Quick Reference -> 国内镜像网站: https://dev.bi/
-
OI Wiki (某大型游戏线上攻略,内含炫酷算术魔法)-> https://oi-wiki.org/
1.7.2 C++
-
C/C++ 去优化 https://cppinsights.io/ (会把语法糖转化为编译器实现、汇编)
-
白律师的
-
小彭老师的网站 https://142857.red/
-
查询c++第三方库是否为模块 https://arewemodulesyet.org/ (不常用)
-
萌新C++网站 (为什么会在我的收藏里面? 可能是我想要他网站的运行功能...) https://learn-cpp.guyutongxue.site/preface.html
1.7.3 Java
java老哥抱歉, 我都是现用现搜索的... 目前没有什么好网站
但是GPT不错捏..
二、小组
2.1 小组的管理
活用群公告
, 利用QQ群机器人!
2.2 打卡的问题 (如果有)
书写打卡表的格式:
第n天 格式一 | 第n+1天 格式二 | |
---|---|---|
Heng_Xin(计划) | 学习C++[类的虚函数] | 学习3h |
Heng_Xin(实际) | 学了虚函数和纯虚函数与接口, 并且代码练习了 | 学了字符串哈希, 刷了3道力扣困难题, 发现字符串哈希真的是字符串界的洛必达! 遇事不决就是哈希, 单哈希不行就双哈希! 去tmd的kmp、马拉车、Z函数, 老子就是哈, 比哈哈姐还能哈!~ (需要写详细一点) |
(甚至你写一个简单的日记也没有问题)
错误的写法: (我这边严厉打击嗷, 之后!)
- 计划: 刷题; 实际: 刷题
- 计划: 学习3h; 实际: 学了
(我认为是无效打卡, 监督官不要让这种情况出现! 太敷衍了! 感觉就是没有学嘛!)
-
关于监督官确认
只要你提醒了他, 你就可以确认了, 这里只是确保是监督官履行了职责~ 这样惩罚就可以直接惩罚组员了~ 而不是: 监督官没提醒 + 组员没打卡
2.3 项目考核题
审核标准:
- 全局变量/静态变量(变量类型/变量名) [不允许修改]
- 函数声明(参数, 返回值, 函数名次) [不允许修改]
- 函数的 代码实现逻辑 和 功能描述 要能
对应
上, 确保 代码质量 和 可读性!
- 除了技术官以外的同学, 不要求实现
isWin
和gameView
(你实现了, 我也不看 =-=, 我看不过来, 学长这边也有审核的) - 技术官需要另外提交运行截图(大于等于5颗落子的截图 + 胜利界面截图)
2.4 项目的准备
-
大家可以一起想一下要做什么项目了, 有了目标才有动力学习!
-
特别是感兴趣的目标!
-
... 吹水
-
寻找感兴趣的项目, 可以目标在可能可行的情况下可以激进一点, 最好有一些亮点, 这样收获会更多;
反正最后能不能做, 还是小学长来决定...
2.4.1 特别强调: 可行性分析
预告! 可行性分析, 审核非常严厉!
- 如果被打回去 次, 那么就 不允许 立项这个项目!!!
必须要好好学习可行性分析的会议, 可行性文档要求的 , , 必须要有!
另外, 不建议 画蛇添足!
可行性分析只需要把核心的数据设计按照Java语法写出来, 并且把核心的函数的功能描述清楚即可!
写多错多, 即便你这个不是什么核心的, 但是某个细节有问题, 就可能被退回!!! 不写这些, 即可减少 100% 的风险! (但是项目整体需要完整!!!)
小学长会上压力! 严格拷打!
并且在第一次提交之前, 不会有明显的思路提醒, 需要依照小组的实力, 自立自强地把第一版可行性写出来; 如果只是细节上的问题, 则小学长会提出来, 并且举例修改的地方或者思路. 然后等待第二次审核.
如果第一次提交就缺少了 核心 数据, 和 关键 函数, 则大概率要换项目了!
2.4.2 碎碎念: 架构
-
目前你只需要注意, 架构的时候必需考虑清楚界面之间切换的传参
-
也就是说, 你架构的函数必须要有对应的参数 (不能是随便的参数, 更不能是之后开发在决定!)
2.5 项目展示
-
64.0
-
C和C++游戏趣味编程 看看项目
三、太多了
rt, 不写了; 上压力就不好了.. 給点体验啊, 哥们 (不是懒)
有什么想问的?