当前位置: 首页 > news >正文

【随笔】五周年创作纪念日

  • 今天收到了 CSDN 的创作五周年提示,正好前几天(7.31)我也成功申请了 CSDN 博客专家,趁这个机会分享一下这几年写博客的感受吧
    在这里插入图片描述
    在这里插入图片描述

机缘

  • 关注我比较久的读者应该知道我是从学传统工科半路出家搞计算机的,这里的经历还是比较曲折的
    1. 玩航模,高中就开始自制航模飞机(固定翼),对航空很感兴趣

    2. 飞行器设计专业就读

    3. 大一开始接触飞控,玩多旋翼无人机,对控制产生兴趣

    4. 大二学单片机搞电赛,拿了很多校级电赛的小奖,纯软件部分写了一些 pid 模拟程序,喜欢上了编程的 “创造感”

    5. 了解到人工智能,觉得能自主学习的程序非常神奇,想做一个能自己学会玩贪吃蛇游戏的程序,未果,甚至连一个基本思路都没有。自此想转计算机,当时觉得此生的终极目标就是做一个能和人流畅对话的聊天机器人,可以通过图灵测试那种

    6. 大二结束时强行转了计算机科学,其实我理论力学材料力学等专业课学得也还行,但想到这可能是此生仅有的系统学习计算机的机会了,还是转了重读计算机的大二。虽然有一点嵌入式编程的底子,初期还是非常艰难,数据结构课还有算法课都是低空飘过

    7. 补计算机课的同时仍然继续搞电赛,参加了 RM 等规模更大的比赛,但基本都是参与奖

    8. 18 年参加了英飞凌的全国无人机竞赛,333个队伍中拿到了全国并列第二,终于在弱电这块拿到一个重量级的奖。期间也终于了解了飞控的原理并进行了一点二次开发,成就感很强
      在这里插入图片描述
      在这里插入图片描述
      当时有些计算机专业的同学会写技术博客,感觉是个值得学习的好习惯,但一直懒得动笔。这次比赛后心情很好,就趁这个契机,在厦门大学(决赛场地)附近的一个麦当劳写了第一篇博客 大疆Onboard SDK 3.2玫瑰线例程浅析。后来写博客就成了习惯,我本人是 intp,特别喜欢把问题条分缕析地分析清楚的感觉,所以我的博客基本都是成系列的,写得也会比较细。一度想把所有专业课笔记都记录成博客形式,但是太耗时了最后放弃了

    9. 本科期间计算机的专业课我都很喜欢。自己写过 MIPS 的流水线 CPU,写过PL/0编译器,用纯汇编写过贪吃蛇游戏,还用了一个多月写过一个电商系统,包括 app、web 前端和后台的全部代码(SSM 框架)

      当时一段时间内的终极理想是:借助 FPGA,在自己写的 CPU 上运行自己写的编译器,执行自己写的程序,最后也没实现2333

      另一方面嵌入式比赛也一直在做,成为了校 RM 队的主力队员,其实这时我已经很想去做视觉部分了,但是因为人手不足,最后我还是一直在写步兵的控制代码,配合视觉部分做自瞄联调,最后 19 年比赛时我们是赛区命中率最高的队伍

    10. 我知道我想做的是 AI,但是嵌入式部分还有一个夙愿没完成,就是最开始吸引我的无人机飞控开发,于是我用 19 年电赛的无人机题来做我嵌入式开发的收尾。这次深入了解了飞控的原理,也进行了更多二次开发。可以说只要给我足够的时间,我有信心自己写一个完整的四轴飞控了。期间的文章有

      • [随笔]2019省电赛无人机题(B题)总结
      • 超详细多旋翼无人机飞控 pid 控制器结构图(含视觉追踪)
    11. 大四保研了本校计算机专业,终于开始系统地学习人工智能了,方向选了强化学习,终于知道怎么做能自己学会贪吃蛇的程序了 2333。出乎意料的是我的终极理想也被 ChatGPT 实现了,所以我现在在做 GPT+强化学习的课题 23333


收获

  • 写了这么久博客,阅读量已经累计到 50w+,有了 8000+ 粉丝,也有不少人加我微信qq等讨论问题,认识了不少同行。这些成就在我保研时也有一定助力,非常感谢大家的支持
    在这里插入图片描述

  • 另一方面这些博文也是我自己的一个资料库,有什么东西忘了看看自己写的博客就能快速想起来,这对我很重要


日常

  • 平衡日常工作和写博客对我而言是一个挑战,因为我 intp 的习惯总会写得太长太细,反而耽误了一些事。最近在尝试写更精炼的文章。比如论文阅读部分就开了新专栏 论文速览

成就

  • CSDN 提升我这里可以放自己的项目代码,那我就放一下我 github 中的几个工程吧
    1. Telegram GPT 聊天机器人:这是我收获 star 最多的项目
    2. RL_Platform-CrossTheWall:本科毕设做的项目,是一个可视化的 RL 离散测试环境,可以直观地测试对比各种 RL、IL 算法的性能。其可视化效果图也在我的多篇博客中用作素材,如 强化学习拾遗 —— 强化学习的样本效率
    3. Inverted_pendulum_simulator:直线倒立摆模拟器,可以在此体验串级 PID 的调参过程。配套的视频讲解见 up为研究玄学,竟自学python半个月编写倒立摆模拟器
    4. Assembly-Gluttonous-Snake:纯汇编写的贪吃蛇游戏程序,详细说明见 IA32汇编语言 —— 贪吃蛇游戏
    5. RL_task_practice:我的强化学习项目仓库,其中的每个项目都是在某个环境测试某个 RL 算法,可以独立运行,致力于做到简洁清晰

憧憬

  • 以后会继续在 CSDN 发布博客的,希望能打造个人 IP,不过会更加考虑到日常工作和写博客的平衡

相关文章:

【随笔】五周年创作纪念日

今天收到了 CSDN 的创作五周年提示,正好前几天(7.31)我也成功申请了 CSDN 博客专家,趁这个机会分享一下这几年写博客的感受吧 机缘 关注我比较久的读者应该知道我是从学传统工科半路出家搞计算机的,这里的经历还是比…...

7_分类算法—逻辑回归

文章目录 逻辑回归:1 Logistic回归(二分类问题)1.1 sigmoid函数1.2 Logistic回归及似然函数(求解)1.3 θ参数求解1.4 Logistic回归损失函数1.5 LogisticRegression总结 2 Softmax回归(多分类问题&#xff0…...

【计算机网络】应用层协议 -- DNS协议

文章目录 1. DNS背景2. 域名简介3. 域名解析过程4. 使用dig查看DNS过程 1. DNS背景 DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。 TCP/IP当中通过IP地址和端口号的方式,来确定…...

ES6 - 数组新增的一些常用方法

文章目录 1,Array.from()2,Array.of()3,find(),findIndex(),findLast()和findLastIndex()4,Array.fill()5,keys(),values() 和 entries()6,Array.includes()7&#xff0c…...

【BEV感知】3-BEV开源数据集

3-BEV开源数据集 1 KITTI1.1 KITTI数据怎么采集?1.2 KITTI数据规模有多大?1.3 KITTI标注了哪些目标?1.4 转换矩阵1.5 标签文件 2 nuScenes2.1 nuScenes Vs KITTI2.2 标注文件 1 KITTI KITTI 1.1 KITTI数据怎么采集? 通过车载相机、激光雷达等传感器采集。 只提供了相机正…...

Kafka-Broker工作流程

kafka集群在启动时,会将每个broker节点注册到zookeeper中,每个broker节点都有一个controller,哪个controller先在zookeeper中注册,哪个controller就负责监听brokers节点变化,当有分区的leader挂掉时,contro…...

第八篇-Tesla P40+ChatGLM2+LoRA

部署环境 系统:CentOS-7CPU: 14C28T显卡:Tesla P40 24G驱动: 515CUDA: 11.7cuDNN: 8.9.2.26目的 验证P40部署可行性,只做验证学习lora方式微调创建环境 conda create --name glm-tuning python3.10 conda activate glm-tuning克隆项目 git clone http…...

调用feign返回错误的数据

bug描述&#xff1a; 在一个请求方法中会调用到feign去获取其他的数据。 List<Demo> list aaaFeignApi.getData(personSelectGetParam);在调用的时候&#xff0c;打断点到feign的地方&#xff0c;数据是存在的&#xff0c;并且有15条。但是返回到上面代码的时候数据就…...

【Spring】(二)从零开始的 Spring 项目搭建与使用

文章目录 前言一、Spring 项目的创建1.1 创建 Maven 项目1.2 添加 Spring 框架支持1.3 添加启动类 二、储存 Bean 对象2.1 创建 Bean2.1 将 Bean 注册到 Spring 容器 三、获取并使用 Bean 对象3.1 获取Spring 上下文3.2 ApplicationContext 和 BeanFactory 的区别3.3 获取指定的…...

redis五种数据类型介绍

、string&#xff08;字符串&#xff09; 它师最基本的类型&#xff0c;可以理解为Memcached一模一样的类型&#xff0c;一个key对应一个value。 注意&#xff1a;一个键最大能存储 512MB。 特性&#xff1a;可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512…...

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09;1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…...

Git reset、revert用法

reset reset是删除之前的提交记录&#xff0c;所有的提交点都会被清除&#xff0c;我们看下执行前后的git log区别 D:\workspace\android>git log commit 87c1277a57544c53c603b04110e3dde100da8f57 (HEAD -> develop_main) Author: test <test.com> Date: Wed…...

Redis-1

Redis 理论部分 redis 速度快的原因 1、纯内存操作 2、单线程操作&#xff0c;避免了频繁的上下文切换和资源争用问题&#xff0c;多线程需要占用更多的 CPU 资源 3、采用了非阻塞 I/O 多路复用机制 4、提供了非常高效的数据结构&#xff0c;例如双向链表、压缩页表和跳跃…...

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证&#xff08;第一次连接需要认证&#xff09;2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…...

ADC模拟看门狗

如果被ADC转换的模拟电压低于低阀值或高于高阀值&#xff0c;AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx…...

google谷歌gmail邮箱账号注册手机号无法进行验证怎么办?此电话号码无法用于进行验证 或 此电话号码验证次数太多

谷歌gmail邮箱账号注册手机号无法进行验证怎么办? 使用手机号码注册谷歌gmail邮箱账号时会遇到&#xff1a;此电话号码无法用于进行验证 或 此电话号码验证次数太多。造成注册google谷歌gmail邮箱账号受阻&#xff0c;无法正常完成注册。 谷歌Gmail邮箱账号正确的注册方法与教…...

Spring:IOC技术、Bean、DI

前言 Spring是一个开源的项目&#xff0c;并不是单单的一个技术&#xff0c;发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework&#xff1a;Spring框架…...

目标检测与跟踪 (2)- YOLO V8配置与测试

系列文章目录 第一章 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题&a…...

【Leetcode】56.合并区间

一、题目 1、题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [ s t a r t i start_i start...

设置系统编码 Beta

在yolov5环境搭建过程中会遇到如下的编码错误警告&#xff1a; 这时&#xff0c;按住“ctrlc”中止进程&#xff0c;然后设置系统编码&#xff1a; 电脑右键属性打开&#xff1a; 重启之后等安装好了&#xff0c;记得回去把bae键取消。...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...