跳到主要内容
左猫娘右猫娘

2025-05-07 小灶分享

· 阅读需 31 分钟
Heng_Xin
ここから先は一方通行だ!

和同学们的一些分享, 包含了 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; 不然会被人以为失踪了

  • 问问题了, 别人回答了, 请给个回应

例如:

正确方式:

  1. 尽量描述原因:

    比如: 学长我打算xxx, 然后实现xxx, 但是xxx的时候, 变成xxx样子了

  2. 即便你不知道发生了什么, 截图请截全, 尽量展示更多的信息, (因为大部分的时候, 错误不会在你认为的地方出错, 不然为什么你不自己解决呢?)

    代码, 运行结果, 编译报错信息

Tip

期望的: 小学长答疑, 但不是帮你写完作业! 是教会你学作业~

附: 解决问题的一般思路 (答疑的时候也是这样思考循序渐进的~)

draw.io
答疑思路

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 学习路线? (学习历程)

draw.io
学习历程

1.3 C语言の分享

课程: 带你学C带你飞

学习计划 & 练习: C 语言学习指北

C没有啥子东西的, 仅仅是基础语法的话.

提一下, vs2022 不支持一些诸如VLA的c99的c语言的特性:

int n;
scanf("%d", &n);
int arr[n]; // vs2022报错
c

也不推荐使用这个, 连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推荐

(普通的那些, 找个播放量高, 看得下去的就行), 下面是进阶的 (应该说是 后端 的通用思想了)

  • 极海Channel

    专注java后端, 可以看看他的代码review, 可以学到很多东西.

    还有大厂的服务崩溃原因分析...

  • 学java的生生

    线程池、互斥锁等手写系列, 讲的很精简但又很有深度, 途中会一步步升级、修改代码. 适合java老哥深入源码~

  • 孟小哥抓虫vlog

    以猫meme的方式, 一波三折的介绍小知识, 视频很短. 可以学到一些bug的de的方法. 尤其是如果这个bug你之前有遇到过, 说不定就在这里找到更好的解决方案!

  • 随意Official

    这个我忘记了我为什么关注了...(顺便一起放这里了), 目前用不上实力不够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我怎么活...

时间充分情况下

  1. 系统的学习数据结构与算法, 必须要把讲到的内容都动手实现一次!!!

最好用C语言/C++(非STL)实现, 可以让你更加明白底层, 而不是被各种抽象...

  1. 刷题, 根据题单系统的刷, 而 不是 随机刷或者狂刷简单题!

在这个过程中, 熟悉学习到的数据结构的优点与使用场景 (根据时空复杂度判断)

一定程度了, 可以参加力扣周赛什么的

Tip

(PS 蓝桥杯官网那个周赛就是xx, 为了卖课的yy, 难度跨度很大.. 萌新会怀疑人生的)

超想提升能力的(打acm什么的), 去cf刷题, 那里很多思维题、构造题. (不过现在才知道应该有点晚了吧qwq?) 唯一的问题就是ui太丑了(简略), 番鬼佬语(Eglx), 以及阴间时间.

  1. 可以准备 自己的算法板子, 这类似于自己的归纳总结!

蓝桥杯真题,刷刷刷(这个好像失效了? 还是服务器炸了?) https://dashoj.com/d/lqbproblem/training/65e4d2a5fd6da41599add473

Tip

为什么不看: 如何科学刷题

1.6.3 碎碎念: 代码规范

对于代码规范! 个人认为, 该有的缩进, 不能少:

个人认为这个是一个糟糕的习惯!! 糟糕的码风!!

节约几个空格,不会让你的时间多对一道题 但排bug的时间,会让你拉下几道题!节约几个空格, 不会让你的时间多对一道题 \\ \ \\ 但排bug的时间, 会让你拉下几道题!

Tip

真正的大佬, 你看他的代码, 总是很简洁的!

因为唯有对题目的理解深刻, 才可以写出如此简洁的代码.

反倒是代码写的乱七八糟的, 他的思维也往往和他的代码一样乱七八糟的 (因为改来改去什么的..)


因此, 我们看题解什么的, 应该向他们学习!

不懂的题目, 我们学他们的思路.

写出来的题目, 我们学他们的代码!


故此, 如果你仅仅是为了就业, 那么没什么好说的, 直接刷力扣就完美了

力扣的好处:

  1. 界面UI漂亮

  2. 接口实现式编程, 这和上班写代码一样, 大多数时候, 接口都是别人架构好的, 反而你私自改了, 你就要free了

  3. 友好的输入输出用例提醒. 不像洛谷, 大多数时候你错哪里你都不知道, 也无法排查.

  4. 题解质量高, 如果题解有灵神写的, 那你放心, 即便不会你也肯定可以从灵神题解中学到东西! 反之, 某些垃圾oj, 要么没有题解, 要么题解都是别人粘贴自己那破代码, 跟加了密一样, 一点解释都没有, 这种很难有提升!

  5. 现代, 支持许多语言, 并且支持很多新特性 (比如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++

应该采用更加现代的C++写法: (使用STL容器, 这在-o2优化下, 无性能损失!)

using ll = long long;

int main() {
int n;
scanf("%d", &n);
std::vector<int> arr(n);
}
C++

图也没有必要学什么链式前向星了, 下面就是一种简单的邻接表了

vector<vector<int> g(n);

while (n--) {
cin >> u >> v;
g[u].push_back(v); // u --> v
}
C++

1.7 神奇的网站分享

1.7.1 公有

1.7.2 C++

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 项目考核题

审核标准:

  1. 全局变量/静态变量(变量类型/变量名) [不允许修改]
  2. 函数声明(参数, 返回值, 函数名次) [不允许修改]
  3. 函数的 代码实现逻辑功能描述 要能对应上, 确保 代码质量可读性!
  • 除了技术官以外的同学, 不要求实现isWingameView (你实现了, 我也不看 =-=, 我看不过来, 学长这边也有审核的)
  • 技术官需要另外提交运行截图(大于等于5颗落子的截图 + 胜利界面截图)

2.4 项目的准备

  • 大家可以一起想一下要做什么项目了, 有了目标才有动力学习!

  • 特别是感兴趣的目标!

  • ... 吹水

  • 寻找感兴趣的项目, 可以目标在可能可行的情况下可以激进一点, 最好有一些亮点, 这样收获会更多;

反正最后能不能做, 还是小学长来决定...

2.4.1 特别强调: 可行性分析

预告! 可行性分析, 审核非常严厉!

  • 如果被打回去 33 次, 那么就 不允许 立项这个项目!!!

必须要好好学习可行性分析的会议, 可行性文档要求的 格式格式, 内容内容, 必须要有!

另外, 不建议 画蛇添足!

可行性分析只需要把核心的数据设计按照Java语法写出来, 并且把核心的函数的功能描述清楚即可!

写多错多, 即便你这个不是什么核心的, 但是某个细节有问题, 就可能被退回!!! 不写这些, 即可减少 100% 的风险! (但是项目整体需要完整!!!)

小学长会上压力! 严格拷打!

并且在第一次提交之前, 不会有明显的思路提醒, 需要依照小组的实力, 自立自强地把第一版可行性写出来; 如果只是细节上的问题, 则小学长会提出来, 并且举例修改的地方或者思路. 然后等待第二次审核.

如果第一次提交就缺少了 核心 数据, 和 关键 函数, 则大概率要换项目了!

2.4.2 碎碎念: 架构

  • 目前你只需要注意, 架构的时候必需考虑清楚界面之间切换的传参

  • 也就是说, 你架构的函数必须要有对应的参数 (不能是随便的参数, 更不能是之后开发在决定!)

2.5 项目展示

三、太多了

rt, 不写了; 上压力就不好了.. 給点体验啊, 哥们 (不是懒)

有什么想问的?

请作者喝奶茶:
Alipay IconQR Code
Alipay IconQR Code
本文遵循 CC CC 4.0 BY-SA 版权协议, 转载请标明出处
Loading Comments...