我的创作纪念日 - 2048

news2024/11/15 19:54:30

2048 ✌️

今天是 2023 年 4 月 10 日,系统说我在 2017 年 08 月 31 日那天发布了第一篇博客(【算法】编写一个能将给定非负整数列表中的数字排列成最大数字的程序),距离当时已经有 2048 天了,2048 这个数字真的很能挑起程序员的神经,既然是纪念日,那就有必要小小的总结一下了。

我将首先介绍一下我的博客发展的几个阶段:1. 机缘;2. 井喷;3. 研究生。然后,我将谈谈我的收获。

文章目录

  • 2048 ✌️
    • 我的博客发展阶段
      • 1. 机缘(2017.07~2018.12)-- 26篇
      • 2. 井喷(2019.01~2020.09) -- 约339篇
        • 2.1 软件工程大作业
        • 2.2 Python 知识的总结
        • 2.3 操作系统相关知识
      • 3. 研究生(2020.09~至今)-- 约 279 篇
        • 3.1 shell 以及 Linux 命令学习
        • 3.2 Linux 内核以及虚拟化知识学习
        • 3.3 项目相关
        • 3.4 C/C++
        • 3.5 Jailhouse 相关
    • 收获
    • 后记

我的博客发展阶段

1. 机缘(2017.07~2018.12)-- 26篇

我是在大二的时候(2017.07.17)申请的博客,申请的目的是为了记录平时学习所遇到的问题,并能够在学新知识的同时在博客上做笔记。我记得当时班里很少有人有自己的博客,或者有记录问题以及写文档的习惯,到了大三下学期的时候,班里同学才在专业课程的要求下,申请博客并提交作业(我记得当时还问过老师能不能不要局限在博客园等其它平台)。

其实博客刚开始申请下来后,自己并没有很上心地打理,不知道该写些什么内容,也不知道如何有体系地建立自己的笔记框架,与其不知道怎么做,还不如不做。所以,我就好久没有更新过。

在这个阶段,主要围绕课程以及自己的兴趣爱好为题材来写博客。举例来说,在 C 语言学习过程中遇到的有趣的题目以及在刷 ACM 题库的时候遇到的经典问题会单独拿出来分享解法,比如:简单质因数分解。此外,由于当时还在自学 Python,所以每当遇到有趣的知识点就会单独拿出来简单写一下,比如:Python 小知识点(5)。

这个阶段更多地还是在找寻建立笔记的方法,更多地体现在记录。Python 编程语言和当时正在学习的 C 语言还是很不一样,里面有很多独有的语法内容,在这个阶段所总结的 Python 小知识点系列 为我学习 Python 语法打下了坚实基础。

2. 井喷(2019.01~2020.09) – 约339篇

这个阶段是我已经决定保研后至上了研究生之后的一段时间,正如标题所说这个阶段是博文发布的井喷阶段,发布的博文总量占据了目前发布博文的一半还多。之所以这个阶段如此高产,有很多原因:1. 因为即将迎来人生的新阶段,我想要打一个很好的博客环境,以供研究生期间继续发布博客;2. 系统性地总结学习了很多知识,需要好好梳理内容;3. 该阶段涵盖了本科毕业设计,为了做好毕业设计,我需要学习很多新东西并看很多文献,所以也需要做好笔记;4. 在自己的博客上提交专业课所需要的课程大作业。

2.1 软件工程大作业

软件工程大作业

现在回看当时这门课程自己所提交的作业,我感慨良多。在第一次作业中,被问到现在最喜欢的领域是什么?,当时我的回答:

自己感兴趣的领域有三个方面。1.图像识别领域,由于本学期开设了计算机图形学这么选修课,听老师说这个领域还是有很大人才缺口的,并且由于自己做过有关二维码识别处理的相关研究,所以对这个领域还是很感兴趣的。2.数据分析与处理方向。这是因为自己曾经做过关于商品价格比较的项目,利用到了Python里面的一些机器学习库,科学计算库以及图像生成的库,此外数据分析师也随着大数据的兴起而变得紧俏起来。3.从事底层研究。由于自己有从事科研的想法,并且在目前十分重视计算机应用技术的环境下,我感觉还是缺少一些能够踏踏实实坐下来研究一些底层设计的人,不真正拨开内核,怎么能体会到计算机设计的精妙?

不知道是不是一语成谶,还是命中注定,我现在仍然对这三个领域感兴趣。图像识别领域与之后自己的本科毕业设计息息相关,可能在心里埋下了这个种子,所以在做本科毕业设计的时候自己每天都很充实,很兴奋,感觉陷入了心流,完全不觉得有压力。数据分析与处理和计算机基础研究方向冥冥之中指明了自己未来研究生期间的研究内容,之后在研究生期间自己选择了操作系统内核研究可能也早有心理预期。

在这之后就是零散的一些数据结构知识整理,以及准备考研时的空窗期

2.2 Python 知识的总结

Python 编程语言的学习过程是我在本科期间养成自学习惯的重要阶段。这个阶段我做了很多事情:1. 结合之前 C 语言的经验,做关于 Python 的知识点分享(Python 小记);2. 考虑到未来本科毕业设计的需要,我需要提前学习关于 OpenCV 的相关内容(OpenCV 小记),故在该领域我也做了很多笔记;3. 考虑到在本科毕业设计以及未来学习数据处理时的数据展示需求,我提前学习了 Matplotlib 工具,并做了知识点梳理(Matplotlib 整理);4. 改善 Python 程序的 91 个建议(改善 Python 程序的 91 个建议)以及关于编写高质量Python代码的心得体会(关于编写高质量Python代码的心得体会)是我首次尝试学习如何规范自己的代码习惯以及创建自己的付费专栏;5. 出于自己的兴趣爱好以及吸引读者的需要,有段时间每隔一个礼拜就要写一个有趣的 Python 小案例(Python 案例),至今已经写了近 30 个啦;6. 在本科课程接近尾声的时候,我们学校有了 《Python 程序设计选修课》,在这门课程中,我将学校线上题库中的题目以及对应的解答代码进行了整理(Python 题库、Python 答案),这两篇博文已经成为了博客的吸粉神文,深受读者好评;7. 此外,就是一些文献心得以及毕业设计相关的内容。

Python 专栏

2.3 操作系统相关知识

在这个阶段,自己已经决定好了在研究生阶段从事 Linux 内核方面的研究,故进行的一些准备工作。为了能够学好它,肯定先需要用起来,我记得当时从 B 站上找了一门关于 Linux 系统管理维护的课程(Linux 系统管理相关知识),虽然听得云里雾里,但还是有所收获。然后,自己系统性地总结了操作系统相关的理论知识笔记(操作系统)作为温习。

在这里插入图片描述

此外,还整理了实验室自己编写的学前资料:Linux内核——实模式、Linux内核——分段机制、Linux内核——中断机制、Linux内核——任务管理。让我对 Linux 内核有了一个深入的了解。

3. 研究生(2020.09~至今)-- 约 279 篇

这个阶段的博文内容主要围绕自己的研究方向 —— Linux 内核。除了自己自学的部分外,很多都是项目相关的技术整理。主要可以分为以下几个方面:shell 以及 Linux 命令学习、Linux 内核以及虚拟化知识学习、项目相关内容、Jailhouse 相关内容。

3.1 shell 以及 Linux 命令学习

既然要学习与使用 Linux 内核那么 shell 语言和 Linux 基本操作的学习是无法避开的。我整理了《Linux 程序设计》这本书中我今后可能会用到的知识点以及我所感兴趣的部分(Linux 程序设计),主要和进程间通信过程相关 —— 考虑到今后的毕业设计需要。对于 Linux 命令以及 shell 脚本的学习自己也下了较大的功夫:Linux 命令、shell 脚本编程基础、高级 shell 脚本、脚本练习。这些笔记都可以提供给大家做参考!

3.2 Linux 内核以及虚拟化知识学习

对于经典的 Linux 0.11 版本的内核源码学习,我整理总结了笔记(Linux 0.11),对于刚入门 Linux 内核的小白来说,Linux 0.11 版本是值得深入分析源码的内核版本,让你能够体会到操作系统的魅力。然后,由于自己主要工作围绕嵌入式系统展开,故我从 B 站上找了相关的嵌入式课程进行学习,并做了笔记(嵌入式系统 课程学习)。

举例来说,这个阶段,实验室给我布置了一个任务:探究开机的瞬间,系统中发生了什么事情?—— 从按下开机键后,电脑里面发生了什么?(Linux 0.11)

由于虚拟化研究也是操作系统研究的重要分支,故自己也看了一段时间的 x86 虚拟化手册以及一些开源 Hypervisor 的介绍:

  • x86 分页机制以及虚拟化 PPT
  • x86 架构 CPU 虚拟化
  • 什么是 ACRN?
  • 内存虚拟化
  • 分页机制

3.3 项目相关

这部分内容就要列出我所归纳整理的关于树莓派上系统启动过程的系列笔记了:

  1. 【linux 系统移植①】Raspberry Pi 4B 引导过程、官方文档、bootloader、配置文件
  2. 【linux 系统移植②】Uboot
  3. 【linux 系统移植③】makefile、relocate_code、uboot.lds
  4. 【linux 系统移植④】uboot 进入 main_loop() 前
  5. 【linux 系统移植⑤】uboot 进入main_loop() 后
  6. 【linux 系统移植⑥】以 cpu/s5pc11x、board/samsung/x210 为例讲解 uboot 启动流程
  7. 【linux 系统移植⑦】内存分配相关问题

3.4 C/C++

深入到内核源码中后,我深感自己 C 语言基础与实际应用的差距,故我开始了 C 语言的系统性学习,从头再学习一遍 C 语言(C/C++),集中花费了一段时间进行 C 语言提高与进阶,发现学校里面学的 C 语言真的只是皮毛而已,离实际应用还有差距。在这里插入图片描述

3.5 Jailhouse 相关

Jailhouse 与自己今后所从事研究方向密切相关,当时自己花费了一个月时间,每天看一篇相关论文并做笔记作为文献综述内容。此外,我还成功创建了 Jailhouse 社区,作为中文互联网首家 Jailhouse 相关的论坛(Jailhouse 社区),我今后会好好维护,提供知识分享,也欢迎大家加入呀!

在这里插入图片描述

也正是因为自己的不懈努力,最终获得了博客专家操作系统领域优秀博主的荣誉称号。

收获

从申请博客到如今已近六年时间,六年时光如白驹过隙,如今已经有了8760个粉丝相伴,正朝着万粉迈进,谢谢你们的关注与认同!我写博客的收获主要有以下几个方面:

  1. 提高了自己的技术水平:写博客需要对所学知识进行深入的挖掘和总结,这让我不断地学习和提高自己的技术水平,同时也能让我更好地理解和应用所学知识。
  2. 拓宽了自己的知识面:写博客让我接触到了更多的技术和领域,不断了解新的技术和趋势,也拓宽了自己的知识面。
  3. 结识了更多的技术同行:写博客让我有机会与更多的技术同行进行交流和互动,了解他们的思想和经验,也让他们了解我的思想和经验,从而建立起了更好的人际关系。
  4. 带来了一定的经济效益:通过写博客,我能够吸引更多的读者,进而推广自己的产品和服务,带来了一定的经济效益。

总的来说,写博客让我获得了很多收获,特别是提高了自己的技术水平和拓宽了自己的知识面,同时也让我更好地理解了技术对社会和生活的影响,让我更加热爱技术和科学。

关于操作系统内核相关知识的分享博文,我认为需要注意以下几点:

  1. 初学者友好:内核知识较为专业,对于初学者来说可能较为难以理解。因此,在写内核知识分享的博文时,需要注意语言简洁明了,通俗易懂,避免使用过于专业的词汇和术语,以便让读者更容易理解和掌握。
  2. 突出重点:内核知识非常丰富,需要在分享中突出重点,让读者能够快速掌握最重要的知识点。例如,可以着重分享内核的工作原理、安全性、优化等方面,而不是一味地介绍内核的每一个细节。
  3. 结合实际应用:内核知识分享最好能够结合实际应用,让读者能够更好地理解内核的作用和优势。例如,可以分享在哪些场景下应该使用什么样的内核,如何优化内核以提高性能等等。
  4. 注意排版和格式:对于内核知识分享的博文,排版和格式也非常重要,可以让读者更容易阅读和理解。建议使用专业的计算机技术语言,并注意排版的整齐和清晰。
  5. 不断更新:内核知识是一个不断发展和更新的领域,因此,在写内核知识分享的博文时,需要注意及时更新和补充新的知识,以保持博文的实用性和时效性。

总之,写内核知识分享的博文需要注重初学者友好、突出重点、结合实际应用、注意排版和格式以及不断更新。通过这些措施,可以让读者更好地理解和掌握内核知识。

最后,再次谢谢粉丝的关注,我们一起变强!

后记

硕士研究生嵌入式操作系统方向在读,深耕 Linux 内核中… 欢迎志同道合的朋友联系我,如果有什么我能够解答的问题,我将知无不言。如果你有不懂的小程序或者需要我帮你完成的程序都可以来联系我。此外,如果你需要咨询软件著作权申请相关的问题,我也可以为你解答。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/410822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短期突击面试攻略,收offer如砍瓜切菜!!!

​​​​​现在的面试是什么样的? 面试官拿到简历后会先看下你的技术栈,他面试你的问题就来自这些技术栈 面试官都是看人下菜碟,每次面试问的问题都不一样,会根据你回答问题的情况来决定深入的程度,直到了解清楚你的…

△形网络和Y型网络的变换

△形网络和Y型网络的变换 △形网络也称三角形网络,Y也称星形网络 我们今天就来看下这两种网络是如何变换的。 看下面的电路 如何通过计算得出电流表的读数? 显然电路的串并联结构并不是那么纯粹,Ra Rb Rc构成了一个 △形网络,如下图所示。…

小学数学题升维思考,降维打击

目录一、背景二、题目三、过程1.形式转换2.个位数相加只能向前进一位嘛?3.十位数上要填写的内容?4.如何下意识的去做结构化?四、总结五、升华一、背景 公司的产品是做K12的教育平台,马老板也受感染研究起了小学数学题。一道二年级的题让我窥…

Java阶段一Day19

Java阶段一Day19 文章目录Java阶段一Day19对象流字符流WriterReader转换流缓冲字符流BufferedWriter与PrintWriterBufferedReader异常Throwable、Error、Exception异常处理机制throwthrowstry-catchfinally面试题教师总结新单词JAVA IO对象流对象输入流构造器方法例transient关…

求根号n下界

目录 求根号n 程序设计 程序分析 求根号n 【问题描述】设计一个计算的算法,n是任意正整数。 除了赋值和比较运算,该算法只能用到基本的四则运算操作。 【输入形式】输入一个正整数 【输出形式】输出答案 【样例输入】10 【样例输出】3 【样例说明】表示对n开平方后向…

Linux线程基础:控制和封装

本节重点: 1. 了解线程概念,理解线程与进程区别与联系。 2. 学会线程控制,线程创建,线程终止,线程等待。 3. 了解线程分离与线程安全概念。 Linux线程概念 在一个程序里的一个执行路线就叫做线程(threa…

机器学习 00 归一化/标准化

目录 一、归一化/标准化 1.1 为什么我们要进行归一化/标准化? 二、归一化 2.1 定义 2.2 公式 2.3 归一化总结 三、标准化 3.1 定义 3.2 公式 3.3 标准化总结 一、归一化/标准化 1.1 为什么我们要进行归一化/标准化? 特征的单位或者大小相差较大,或者某…

我的软件研发套路

春节回来之后,调整到一个新的团队工作。 团队,是已有的;所用的技术栈,不熟悉;所做的业务领域,也涉猎甚少。挑战比较大。 管理层对团队的产出不满。我的首要任务,是提升团队的效能。 目前团队…

左中右 三栏式 布局

一、中间 自适应&#xff0c;左右两边 宽度固定 方法1&#xff1a;box容器 Flex布局&#xff0c;center设置为 flex:1 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible&q…

神经网络/深度学习(一)

感知机 多层感知机&#xff08;神经网络&#xff09; 误差逆传播&#xff08;error BackPropagation&#xff0c;简称BP&#xff09;算法 深度学习 卷积神经网络&#xff08;Convolutional Neural Networks, CNN&#xff09; 递归&#xff08;循环&#xff09;神经网络&#xf…

sonar覆盖率、代码覆盖率、分支覆盖率的计算方式

代码质量的覆盖率分为三种&#xff0c;覆盖率、代码覆盖率、分支覆盖率&#xff0c;那每一种的计算方式是怎么样的呢&#xff1f; 举例&#xff1a; 上面最有疑惑的是覆盖率&#xff0c;不知道怎么算出了来的&#xff0c;后面再说。 通过sonarqube可以分析出&#xff1a; 指标…

232:vue+openlayers选择左右两部分的地图,不重复,横向卷帘

第232个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers项目中自定义js实现横向卷帘。这个示例中从左右两个选择框中来选择不同的地图,做了不重复的处理,即同一个数组,两部分根据选择后的状态做disabled处理,避免重复选择。 直接复制下面的 vue+openlayers…

springmvc入门和两个配置类放置时的问题

springmvc 替换之前的servlet&#xff0c;用注解型标记进行操作的servlet类&#xff08;就是之前servlet类上面的Webservlet注解中参数&#xff1a;当前类的访问路径名&#xff09;&#xff0c;然后响应也用注解&#xff0c;据体如下&#xff1a; 先创建web项目 再导入需要的包…

边学边记——Java数据结构☞树和二叉树

目录 一.树 1.定义 2.一些基本概念 3.树的表示形式 二.二叉树 1.概念 2.两种特殊的二叉树 3.二叉树的性质 4.二叉树的存储 5.二叉树的遍历&#xff08;The traversal of A binary Tree&#xff09; 一.树 1.定义 树是一种非线性的数据结构&#xff0c;它是由n&#x…

1676_MIT 6.828 xv6中的CPU alarm_资料翻译整理

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 我觉得看了几个MIT的课程之后让我觉得我的大学四年有点浪费时光&#xff0c;看起来MIT的课程的确是很有饱满度。 这里&#xff0c;再整理一份课程中的作业要求。 …

每天分享五款工具,让你的工作办公更顺心

快乐不是在于拥有什么,而在于我们和别人分享什么。每天分享五款工具&#xff0c;让大家工作办公更顺心就是我最大的快乐。 1.绘画——Krita Krita是一款免费的开源绘画软件&#xff0c;适合专业和业余的绘画爱好者&#xff0c;支持多种画笔和图层。你可以使用Krita来创作各种…

HTTP与TCP区别

1、TCP对应与传输层、而HTTP对应于应用层&#xff0c;所以HTTP协议是建立在TCP协议之上的&#xff1b; 2、HTTP底层是利用TCP协议传输的&#xff0c;所以支持http也就一定支持TCP&#xff1b; 3、TCP是网络传输协议&#xff0c; HTTP是超文本传输协议&#xff1b; TCP是底层协…

Java中创建线程的方式以及线程池创建的方式、推荐使用ThreadPoolExecutor以及示例

场景 Java中创建线程的方式有三种 1、通过继承Thread类来创建线程 定义一个线程类使其继承Thread类&#xff0c;并重写其中的run方法&#xff0c;run方法内部就是线程要完成的任务&#xff0c; 因此run方法也被称为执行体&#xff0c;使用start方法来启动线程。 2、通过实…

盘点手机Type-c充电接口5个实用功能

目录 1、手机通过Type-c转HDMI&#xff0c;高清输出电视 2、通过OTG Type-c扩展手机功能 3、实现手机通过网卡有线上网 4、电脑通过手机Type-C有线上网 5、手机通过Type-C收听高清音频 今天给大家聊聊手机Type-c充电接口的5个实用功能&#xff0c;希望对大家日常使用…

Java每日一练(20230410)

目录 1. 二叉树的锯齿形层序遍历 &#x1f31f;&#x1f31f; 2. 从中序与后序遍历序列构造二叉树 &#x1f31f;&#x1f31f; 3. 平衡二叉树 &#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专…