128天的创意之旅:从初心到成就,我的博客创作纪念日回顾
文章目录
- 🚀机缘:初心的种子——回望创作之旅的启航
- 🌈收获:成长的果实——128天创作之旅的宝贵馈赠
- ❤️日常:创作与生活的交织
- 👊成就:代码的艺术
- 🚲憧憬:未来的蓝图
🚀机缘:初心的种子——回望创作之旅的启航
在我踏上博客创作这条道路的起点,那颗初心的种子,其实源自于一系列微妙而深刻的机缘巧合。这不仅仅是对外在环境的回应,更是内心深处那份对技术的热爱与分享精神的自然流露。
实战的火花
一切的开始,可以追溯到几个关键的实战项目经历。在那些紧张而富有挑战的项目周期中,我经历了从困惑到突破的全过程,每一次技术难关的攻克,都像是一次灵魂的洗礼。我意识到,这些宝贵的经验不应仅仅停留于项目报告或是个人笔记中,它们应该被更广泛地分享,去启发和帮助那些可能正在经历相似困境的开发者。
学习的共鸣
在日常的学习过程中,我经常浏览各种技术博客和论坛,从中汲取营养,解决自己的疑惑。每当看到一篇深入浅出的好文,我总是会想:“如果有一天,我也能写出这样既专业又易懂的文章,该有多好!”这份渴望,激发了我内心深处的创作冲动,想要通过自己的笔触,为技术社区贡献一份力量,让学习之路变得更加顺畅。
技术交流的渴望
技术是不断发展演进的,我深刻体会到,闭门造车难以跟上时代的步伐。通过文章进行技术交流,成为我连接外界、拓宽视野的重要方式。我渴望与世界各地的技术爱好者共同探讨最新技术趋势,分享最佳实践,甚至是对某些技术观点的不同看法。这样的交流,不仅能碰撞出思维的火花,还能促进技术的共同进步。
影响力的愿景
我认识到,通过创作可以构建一种影响力。不仅仅是提升个人品牌这么简单,更重要的是,我希望能够影响和激励更多的人加入到技术学习和创新的行列中来。想象着某篇文章能够点燃一个人对技术的热情,或者帮助一个团队找到解决问题的关键线索,这种潜在的社会价值,让我对创作充满了无限的期待。
回溯至128天前,我踏上创作之旅的初衷源自于实战项目的深刻体验。在那些日子里,我穿梭于代码的丛林,解决了一个又一个棘手的问题,每完成一个项目,心中便萌生出强烈的分享欲望。我想,为何不让这些宝贵的经验成为后来者的灯塔呢?于是,我开始记录下项目中的每一个“啊哈”时刻,从技术选型的考量到优化策略的实施,再到团队协作的智慧,这些实战经验逐渐汇集成文,成为了我创作的第一笔色彩。
🌈收获:成长的果实——128天创作之旅的宝贵馈赠
在过去的128天里,我的创作之旅不仅见证了一篇篇文章的诞生,更是一次次自我成长与蜕变的见证。这些收获如同春日里播种后结出的累累硕果,滋养了我的技术生涯,也为我的个人发展铺就了坚实的基石。
技术沉淀
每次落笔之前,我都会进行深入的研究与学习,确保分享的内容既准确又前沿。这个过程促使我不断探索新技术、新工具,我的技术栈因此得到了极大的丰富与深化。从基础的编程语言到复杂的算法设计,再到新兴的技术框架,每一篇文章都是我技术理解的深度剖析与总结。
表达与沟通
创作让我学会了如何更有效地表达复杂的技术概念。为了使文章既专业又易于理解,我不断锤炼文字功底,力求用最简洁的语言传达最深邃的思想。这种能力在工作中同样至关重要,它帮助我更好地与团队成员沟通想法,促进项目的高效推进。
粉丝互动
我收获了的数百位忠实粉丝。他们的关注与支持,是对我最大的鼓励。粉丝们留下的每一条评论、每一个问题,都促使我反思与进步,这种直接的反馈机制让我感受到了前所未有的成就感与归属感。
同行交流
通过博客,我结识了许多志同道合的同行。我们在评论区交流心得,在社交媒体上分享见解,甚至在线下活动中见面讨论。这些高质量的交流,不仅拓宽了我的视野,还为我带来了合作的机会,共同推动技术的发展。
时间与精力的平衡
在工作、学习与创作之间寻找平衡,是我面临的另一大挑战。通过严格的日程安排与高效的时间管理,我学会了如何在有限的时间内最大化产出,这不仅提升了我的工作效率,也锻炼了我的自律性与耐心。
心态的成长
面对创作的压力与挑战,我学会了调整心态,将批评视为成长的契机,将成功视为新的起点。这种积极的心态转变,让我在面对任何困难时都能保持冷静与乐观,是我宝贵的内在财富。
总之,这128天的创作旅程,不仅让我在技术层面有所建树,更在人际交往、自我管理等多个维度实现了自我超越。每一次点击发布的那一刻,都是对自我的一次肯定与超越,这些收获如同甘甜的果实,让我的技术之旅更加丰富多彩,也为我未来的职业生涯铺设了坚实的基础。我深信,只要持之以恒,用心耕耘,收获的季节总会到来。
这四个月的创作之旅,给予我的远超乎预期。从默默无闻到建立起自己的小圈子,我有幸获得了数千粉丝的关注,他们来自五湖四海,却因对技术的热爱而汇聚一堂。每当文章发布后,看到如潮水般的正向反馈——点赞、评论、以及那些深夜里增长的阅读量,都像是温暖的风,吹散了创作途中的孤独与疲惫。更珍贵的是,我遇到了一群志同道合的朋友,我们在技术的海洋里共同探索,彼此鼓励,互相启发,这样的共鸣让我的创作之路不再孤单。
❤️日常:创作与生活的交织
如今,创作已经成为我日常生活的一部分,如同晨起的咖啡,不可或缺。在忙碌的工作与紧张的学习之余,我学会了巧妙地穿插创作时间,将它融入日常。早晨的头脑风暴,午后的灵感捕捉,乃至夜晚的深度写作,都是我平衡生活与创作的小窍门。我坚信,创作不应成为负担,而是一种释放,是对生活热情的另一种表达方式。
👊成就:代码的艺术
在这段时间里,我最为自豪的一段代码是关于python爬虫的一个代码,通过这个爬虫,我们可以获取海量的ppt模板,极大的提高了我们的办公效率。
在回顾我的创作历程时,有段代码不仅代表了技术挑战的克服,更彰显了编程艺术的魅力,那就是我为提升数据处理模块性能所撰写的优化代码。这段代码之所以成为我心中的“艺术之作”,在于它完美地平衡了效率、可读性和实用性,是技术深度与美学追求的结晶。
起初,我们的项目面临着数据处理模块性能瓶颈的问题。随着数据量的激增,原有的处理逻辑开始显得力不从心,处理速度缓慢,严重影响了用户体验。面对这一挑战,我深入分析了代码,发现主要问题在于重复数据处理和排序算法的低效。
精妙优化
- 去重优化
利用Python中的集合(set)特性,我首先实现了数据的快速去重。集合的唯一性保证了不会存在重复元素,且查找速度极快。通过列表推导式,我构建了一个包含所有唯一键值的集合,一步到位完成了去重任务,极大地减少了后续处理的数据量。
unique_values = set(item['key'] for item in data)
- 高效过滤
紧接着,利用上述集合,我采用了列表推导式再次遍历原始数据,仅保留那些具有唯一键值的条目,这一步骤进一步净化了数据集,确保后续操作基于纯净数据进行。
filtered_data = [item for item in data if item['key'] in unique_values]
- 智能排序
最后,在排序环节,我选择了Python内置的sorted()函数,通过lambda表达式定义排序依据为每条数据的’timestamp’字段,确保数据按时间顺序排列。这种方法既简洁又高效,避免了自定义排序算法的复杂度。
sorted_data = sorted(filtered_data, key=lambda x: x['timestamp'])
成果展示
经过这次优化,数据处理模块的执行时间缩短了近70%,用户反馈的数据加载速度显著加快,系统整体响应能力得到了质的飞跃。更重要的是,这段代码因其简洁明了的结构,成为了团队内部学习和分享的佳例,彰显了代码优化不仅仅是技术活,更是一门追求极致的艺术。
# 导入请求模块
import requests
import re
# 忽略警告
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'
}page = 1 # 页数, 从第一页开始
while True:if page == 1:# 第一页url = 'https://www.ypppt.com/moban/'else:# 从第二页开始url = f'https://www.ypppt.com/moban/list-{page}.html'# 请求网址获得响应res = requests.get(url, headers=headers, verify=False)# 提取数据res.encoding = 'utf-8' # 编码改成utf-8# print(res.text)ppt_info = re.findall('href="/article/.*?/(.*?).html" class="p-title" target="_blank">(.*?)</a>', res.text)for i, title in ppt_info:# 构造新的链接url1 = 'https://www.ypppt.com/p/d.php?aid=' + ires1 = requests.get(url1, headers=headers, verify=False)# print(res1.text)# 提取数据down_url = re.findall('href="(.*?)">下载地址1</a>', res1.text)[0]if 'pan.baidu' in down_url: # 百度网盘下载continueelse:suffix = down_url.split('.')[-1] # 获取后缀名res2 = requests.get(down_url, headers=headers, verify=False)open(f'PPT模版/{title}-{i}.{suffix}', 'wb').write(res2.content)print(f'已成功下载{title}-{i}.{suffix}')page += 1 # 爬完之后页数+1
这段代码看似简短,却凝聚了我对效率与优雅的双重追求,它在项目中发挥了关键作用,也是我技术成长的一个缩影。
总结
这段代码艺术不仅解决了实际问题,提升了产品性能,还成为了我个人技术成长的标志。它教会我,优秀的代码不仅要实现功能,更要追求效率与美学的统一,这也是我作为创作者,在技术探索道路上不懈追求的目标。通过这样的实践,我更加坚信,编程不仅是科学,也是一门需要灵感与匠心独运的艺术。
🚲憧憬:未来的蓝图
展望未来,我有着更为清晰的职业规划与创作愿景。我希望能在技术领域持续深耕,成为某一细分领域的专家,并通过撰写专业书籍、开设在线课程等形式,将自己的知识体系和实践经验更广泛地传播出去。同时,我也梦想着建立一个技术社区,为更多技术人员提供交流与成长的平台。在这个过程中,我将继续保持对技术的热爱与好奇,笔耕不辍,用文字记录下每一次技术探索的足迹,与世界共享知识的光芒。
相关文章:

128天的创意之旅:从初心到成就,我的博客创作纪念日回顾
文章目录 🚀机缘:初心的种子——回望创作之旅的启航🌈收获:成长的果实——128天创作之旅的宝贵馈赠❤️日常:创作与生活的交织👊成就:代码的艺术🚲憧憬:未来的蓝图 &…...

前端绘制流程节点数据
根据数据结构和节点的层级、子节点id,前端自己绘制节点位置和关联关系、指向、已完成节点等 <template><div><div>通过后端节点和层级,绘制出节点以及关联关系等</div><div class"container" ref"container&…...

2024年顶级算法-黑翅鸢优化算法(BKA)-详细原理(附matlab代码)
黑翅鸢是一种上半身蓝灰色,下半身白色的小型鸟类。它们的显著特征包括迁徙和捕食行为。它们以小型哺乳动物、爬行动物、鸟类和昆虫为食,具有很强的悬停能力,能够取得非凡的狩猎成功。受其狩猎技能和迁徙习惯的启发,该算法作者建立…...
Linux 内核开发 28 内核模块文件ko文件介绍
Linux 内核开发 28 内核模块文件ko文件介绍 1. ELF格式简介 内核模块文件ko文件,格式为elf格式, ELF(Executable and Linkable Format)可执行链接格式,是一种用于存储可执行程序、目标代码、共享库和内核模块的标准文件…...

DDR5—新手入门学习(一)【1-5】
目录 1、DDR背景 (1)SDR SDRAM时代 : (2)DDR SDRAM的创新 : (3)DDR技术的演进 : (4)需求推动: 2、了解内存 (1&…...

力扣HOT100 - 138. 随机链表的复制
解题思路: class Solution {public Node copyRandomList(Node head) {if(headnull) return null;Node p head;//第一步,在每个原节点后面创建一个新节点//1->1->2->2->3->3while(p!null) {Node newNode new Node(p.val);newNode.next …...
深入分析 Android Activity (五)
深入分析 Android Activity (五) 1. Activity 的进程和线程模型 在 Android 中,Activity 默认在主线程(也称为 UI 线程)中运行。理解进程和线程模型对于开发响应迅速且无阻塞的应用程序至关重要。 1.1 主线程与 UI 操作 所有 UI 操作必须…...

Kubernetes 应用滚动更新
Kubernetes 应用版本号 在 Kubernetes 里,版本更新使用的不是 API 对象,而是两个命令:kubectl apply 和 kubectl rollout,当然它们也要搭配部署应用所需要的 Deployment、DaemonSet 等 YAML 文件。 在 Kubernetes 里应用都是以 …...

五分钟”手撕“图书管理系统
前言: 图书馆管理系统需要结合JavaSE的绝大部分知识,是一个很好的训练项目。 为了让大家更加方便的查阅与学习,我把代码放开头,供大家查询。 还有对代码的分析,我将以类为单位分开讲解。 目录 全部代码 Main类 Us…...

8个实用网站和软件,收藏起来一定不后悔~
整理了8个日常生活中经常能用得到的网站和软件,收藏起来一定不会后悔~ 1.ZLibrary zh.zlibrary-be.se/这个网站收录了超千万的书籍和文章资源,国内外的各种电子书资源都可以在这里搜索,98%以上都可以在网站内找到,并且支持免费下…...

电商内卷时代,视频号小店凭借一己之力“脱颖而出”
大家好,我是电商笨笨熊 今年618各大电商平台花样百出; 某宝更是直接取消了“预售”,从5月就开始进入618预热期; 不少玩家既开心又难过,市场如此内卷,618确实是个爆发期,但更多的需要不断压低…...

【论文笔记】| 定制化生成PuLID
PuLID: Pure and Lightning ID Customization via Contrastive Alignment ByteDance, arXiv:2404.16022v1 Theme: Customized generation 原文链接:https://arxiv.org/pdf/2404.16022 Main Work 提出了 Pure 和 Lightning ID 定制 (PuLID),这是一种用于…...
P1638 逛画展
题目描述 博览馆正在展出由世上最佳的 𝑚 位画家所画的图画。 游客在购买门票时必须说明两个数字,𝑎 和 𝑏,代表他要看展览中的第 𝑎 幅至第 𝑏 幅画(包含 𝑎,…...
Linux(centos)常用命令
Linux(Centos)常用命令使用说明文档 切换到/home目录下 使用cd命令切换目录,例如: cd /home列出/home目录下的所有文件 使用ls命令列出目录下的文件和子目录,例如: ls /home新建目录dir1 使用mkdir命…...
从入门到精通:掌握Scrapy框架的关键技巧
在当今信息爆炸的时代,获取并利用网络数据成为了许多行业的核心竞争力之一。而作为一名数据分析师、网络研究者或者是信息工作者,要想获取网络上的大量数据,离不开网络爬虫工具的帮助。而Scrapy框架作为Python语言中最为强大的网络爬虫框架之…...
Vue3按顺序调用新增和查询接口
Vue3按顺序调用新增和查询接口 一、前言1、代码 一、前言 如果你想将两个调用接口的操作封装在不同的方法中,你可以考虑将这两个方法分别定义为异步函数,并在需要时依次调用它们。以下是一个示例代码: 1、代码 <template><div>…...
sizeof的了解
32位编译器 qDebug() << "int:" << sizeof(int);qDebug() << "char:" << sizeof(char);qDebug() << "char*:" << sizeof(char*); 字节数: int: 4 char: 1 char*: 4 64位编译器 字节数&#…...
PostgreSQL 教程
## PostgreSQL 教程 ### 1. PostgreSQL 概述 PostgreSQL 是一个开源的对象关系型数据库管理系统(ORDBMS),以其高扩展性和合规性闻名,支持 SQL 和 JSON 查询。 ### 2. 安装与配置 - **下载与安装**:从 PostgreSQL 官方…...

《基于Jmeter的性能测试框架搭建》改进一
《基于Jmeter的性能测试框架搭建》文末笔者提到了不少待改进之处,如下所示。 Grafana性能图表实时展现,测试过程中需实时截图形成测试报告,不够人性化。解决方案:自动生成测试报告并邮件通知。 Grafana性能图表需测试人员实时监控…...
计算机二进制表示和存储各种数据
目录 计算机二进制是什么 计算机中二进制数作用 不同数据的表示和存储 数字 文字 图片 音频 视频 计算机的中数据的显示和存储 计算机二进制是什么 计算机二进制数:计算机里存储的一切都是以二进制的0和1来表示。二进制是计算机使用的数字编码系统&#x…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...