大家好,我是Echa。
在互联网领域,推荐系统 (Recommendation Systems)的应用超级广泛 。在音视频方面,如抖音、快手、哗理等,在电商平台方面,如京东、淘宝、拼多多等。推荐有助于协助用户快速发现潜在感兴趣的内容(音视频、商品、新闻等信息流),从而提升用户体验同时有助于提升商业效率。 下面小编先揭秘抖音快手推荐系统和淘宝推荐系统具有含金量的架构图, 过把瘾。
抖音快手推荐系统底层逻辑架构图
淘宝推荐系统架构图
没有明确需求的用户访问了我们的服务, 且服务的物品对用户构成了信息过载, 系统通过必定的规则对物品进行排序,并将排在前面的物品展示给用户,这样的系统就是推荐系统
可以说,谁能掌握和利用好推荐系统,谁就能在信息分发的激烈竞争中抢得先机。 但与此同时,有着许多问题困扰着推荐系统的开发者,列如:庞大的数据量,复杂的模型结构,低效的分布式训练环境,波动的在离线一致性,苛刻的上线部署要求,以上种种,不胜枚举。
推荐系统实现物品过滤算法
推荐系统是一种通过分析用户的历史行为、个人喜好、兴趣爱好等数据信息,为用户推荐个性化的产品、服务、信息等的技术系统。 推荐系统可以协助用户快速找到自己喜爱和感兴趣的内容,提高用户的满意度和忠诚度,同时也可以协助企业提高销售额和用户留存率。
用户画像
小编总结五个方面推荐系统的工作方式:
- 数据收集和预处理: 推荐系统需要收集用户的历史行为、个人信息、兴趣爱好等数据,对数据进行清洗、过滤、转换等预处理操作,形成用户画像和行为模型。
- 特征提取和算法选择 : 推荐系统需要使用 机器学习 和 数据挖掘 等技术,对用户数据进行特征提取和算法选择,以提取用户的兴趣爱好和偏好,生成个性化的推荐结果。
- 推荐模型训练和优化 : 推荐系统需要使用训练数据集对推荐模型进行训练和优化,以提高推荐准确度和个性化程度。
- 推荐结果生成和排序 : 推荐系统需要使用推荐算法生成推荐结果,并按照必定的排序规则对推荐结果进行排序,以提高用户的满意度和忠诚度。
- 推荐结果呈现和反馈 : 推荐系统需要使用推荐引擎将推荐结果呈现给用户,并收集用户的反馈信息,以评估推荐效果和调整推荐策略。
在线推荐系统工作方式
结合上述内容,粉丝们大致初步了解什么是推荐系统,那么推荐系统意义是什么呢?小编从2个角度分析:
- 用户角度 :推荐系统解决在“信息过载”的情况下,用户如何高效的获得感兴趣的物品。例如在今日头条推荐页,抖音推荐流等。
- 公司角度 :推荐系统解决产品能够最大限度的吸引用户、留存用户、增加用户黏性,从而达到公司营收目的。例如今日头条在推荐页中添加硬广。
推荐系统一般会有若干个阶段:
- 索引&特征: 会根据内容特性提前建立若干种类型的索引
- 过滤阶段: 做业务上自定义逻辑,例如消重(内容重复、同类型内容重复),管控和用户主动屏蔽的「物品」标签与敏感词
- 召回阶段: 用户请求时会从各种索引中取出百/千个「物品」
- 排序阶段: 基于用户兴趣和平台策略对内容进行排序
- 粗排阶段: 针对召回回来的「物品」,进行第一遍打分,筛选出几百条或者千条。这个阶段的排序模型一般都比较简单,能够过滤掉一些与用户兴趣不相关的
- 精排阶段: 在得到数百个「物品」后,精排阶段将建立更精细的模型,结合用户画像、偏好、上下文以及业务目标进行排序。经过精排后的「物品」数量通常在50-100个之间
- 重排阶段: 优化「物品」多样性、产品策略逻辑、热门、置顶以及其他「物品」(如广告、推广和政治任务等)的位置混合。重排后的「物品」数量保持在5-10个之间。
简版推荐系统
借此机会,今天小编给大家13个精选开源推荐系统及算法,值得学习收藏,让正在写推荐系统及算法的小伙们有头绪和开发思路,希望对粉丝们有所协助。同时祝福大家万事如意,心想事成,身体健康,笑容常开,愿大家的生活更加美好,愿大家的未来更加光明。接下来小编给大家介绍一些推荐系统及算法,喜爱的小伙们记得点个赞和收藏。
全文大纲
- the-algorithm ( 推荐 )- Twitter推荐系统算法源代码。
- EasyRec (推荐) – 是一个阿里巴巴开源的大规模推荐算法框架。
- d2l-zh ( 推荐 )- 《动手学深度学习 Dive into Deep Learning,D2L.ai》面向中文读者、能运行、可讨论。中英文版被70多个国家的500多所大学用于教学。
- NewsRecommends – Python网络爬虫与推荐算法的新闻推荐平台。
- scikit-opt – 遗传算法、粒子群算法、模拟退火、蚁群算法、免疫优化算法、鱼群算法,旅行商问题
- recommend_system ( 推荐 )- 皮尔森(pearson)相关系数实现千人千面的推荐算法系统
- idgenerator – 雪花漂移算法,原生支持 C#/Java/Go/Rust/C/SQL 等多语言,且提供 PHP 扩展及 Python、Node.js、Ruby 多线程安全调用动态库(FFI)
- recommenders (推荐) – 微软开源的该库包含构建推荐系统的各种示例和最佳实践,以Jupyter notebooks的形式提供。
- Sudoku – 一个使用暴力破解和普通逻辑算法解题的数独分析 SDK
- PaddleRec (推荐) – 大规模推荐算法库
- SPA – 连续投影算法(successive projections algorithm, SPA) 是前向特征变量选择方法。
- gorse (推荐) – 是一个用Go语言编写的开源推荐系统。
- RecommenderSystem (推荐) – 工业界的推荐系统。
the-algorithm – Twitter推荐系统算法源代码。
Github:https://github.com/twitter/the-algorithm
Twitter推荐系统算法源代码
介绍
马斯克 的“开源承诺”,终于如约而至。Twitter推荐系统算法,当时被他宣布对外开放那一刻,仅仅数小时,在Github上便揽获上万个Star,轰动了整个互联网。
Twitter博客:推荐系统算法开源
据介绍,Twitter的推荐系统基于一组核心模型和功能,可以从推文、用户和互动数据中提取潜在信息。
Twitter的推荐系统用户和互动数据算法
Twitter的推荐系统由三大部分构成:
- 从不同的推荐源获取最好的推文,这个过程称为候选源。
- 使用机器学习模型对每条推文进行排名。
- 应用heuristics和filters,例如过滤来自已屏蔽用户的推文、NSFW内容和已看到的推文。
Twitter 推荐系统开源主要涵盖了:
- Twitter整体推荐系统架构:涵盖图数据挖掘、召回、精排、规则多样性重排、混排等。
- Twitter精排模型( Heavy Ranker ):包含模型结构、特征工程、多目标建模、多目标融合等,看了下居然是出自新浪微博DLP-KDD 2021的工作。
- Twitter图模型预训练表征( TwHIN embeddings ):基于社交异构图对用户、推文做预训练,Twiiter自研TwHIN KDD 2022的工作。
Twitter场景下推荐系统问题定义:
- 输入:Twitter network,由推文、用户、交互行为等构成的超大规模异构图。
- 输出:预测你和推文或其他用户交互的概率,进行推文或用户的推荐。
整体问题和常见的推荐系统差别不大。特色的地方在于Twitter比较关注social graph的挖掘,包括图特征、图预训练、图召回以及图模型等。
整体架构如下图,包括数据、特征工程和推荐系统服务Home Mixer。
Twitter推荐系统架构图
数据 :涵盖了社交图、用户的交互行为、用户画像数据等。数据这块是Twitter 的核心资产,由用户、推文和互动构成的超大规模异构社交图。
特征工程 :Twitter主要关注社交图的预训练、聚类、社区发现等,这也是Twitter的特色所在。图预训练得到的向量可以用于向量召回、精排特征等。此外,还包括一小部分安全相关的工作。
推荐系统核心服务 :Home Mixer,Twitter定制的Scala框架。可以认为是算法工程。类比国内大厂用的Java、Go、C++等。由三大部分构成:
- 召回 :Candidate Sources,从不同的推荐源获取最好的推文,类似推荐系统的召回阶段。Candidate Retrival。核心召回路是图召回。
- 粗精排 :使用 机器学习模型 对推文进行打分排序,Twitter分为Light Ranker和Heavy Ranker。分别类比推荐系统的粗排和精排阶段。
- 重排 / 混排 :应用启发式规则,例如过滤来自已屏蔽用户的推文、NSFW内容和已看到的推文;保证作者多样性等;以及负责广告、推文和作者混排等。
Twitter 推荐系统
EasyRec- 是一个阿里巴巴开源的大规模推荐算法框架。
Github:https://github.com/alibaba/EasyRec
EasyRec Github 主页
介绍
EasyRec- 是一个阿里巴巴开源的大规模推荐算法框架。 实现了用于常见推荐任务的最先进的深度学习模型:候选生成(匹配),评分(排名)和多任务学习。它通过简单的配置和超参数调整(HPO)提高了生成高性能模型的效率。
阿里巴巴准备了一系列的Demo协助用户快速体验EasyRec的功能,降低使用EasyRec的门槛。
这些Demo包含了在公开数据集上针对不同模型做的多种实验,涵盖了推荐系统中的召回任务和排序任务,主要包括数据集下载、预处理、模型配置、训练及评估等过程。
EasyRec的模型训练和评估都是基于config配置文件的,配置文件采用prototxt格式。在大多数任务中,我们只需要创建config文件就能满足相应的应用。
EasyRec 示例
d2l-zh – 《动手学深度学习 Dive into Deep Learning,D2L.ai》面向中文读者、能运行、可讨论。中英文版被70多个国家的500多所大学用于教学。
官网:https://zh.d2l.ai/
Github:https://github.com/d2l-ai/d2l-zh
动手学深度学习
介绍
《动手学深度学习》:面向中文读者、能运行、可讨论。中英文版被70多个国家的500多所大学用于教学。
本开源项目代表了我们的一种尝试:我们将教给读者概念、背景知识和代码;我们将在同一个地方阐述剖析问题所需的批判性思维、解决问题所需的数学知识,以及实现解决方案所需的工程技能。
我们的目标是创建一个为实现以下目标的统一资源:
- 所有人均可在网上免费获取;
- 提供足够的技术深度,从而协助读者实际成为深度学习应用科学家:既理解数学原理,又能够实现并不断改善方法;
- 包含可运行的代码,为读者展示如何在实际中解决问题。这样不仅直接将数学公式对应成实际代码,而且可以修改代码、观察结果并及时获取经验;
- 允许我们和整个社区不断快速迭代内容,从而紧跟仍在高速发展的深度学习领域;
- 由包含有关技术细节问答的论坛作为补充,使大家可以相互答疑并交换经验。
将本书(中英文版)用作教材或参考书的大学
时至今日,人们常用的计算机程序几乎都是软件开发人员从零编写的。 列如,目前开发人员要编写一个程序来管理网上商城。 经过思考,开发人员可能提出如下一个解决方案: 首先,用户通过Web浏览器(或移动应用程序)与应用程序进行交互; 紧接着,应用程序与数据库引擎进行交互,以保存交易历史记录并跟踪每个用户的动态; 其中,这个应用程序的核心——“业务逻辑”,详细说明了应用程序在各种情况下进行的操作。
为了完善业务逻辑,开发人员必须细致地思考应用程序所有可能遇到的边界情况,并为这些边界情况设计合适的规则。 当买家单击将商品添加到购物车时,应用程序会向购物车数据库表中添加一个条目,将该用户ID与商品ID关联起来。 虽然一次编写出完美应用程序的可能性微乎其微,但在大多数情况下,开发人员可以从上述的业务逻辑出发,编写出符合业务逻辑的应用程序,并不断测试直到满足用户的需求。 根据业务逻辑设计自动化系统,驱动正常运行的产品和系统,是一个人类认知上的非凡壮举。
幸运的是,对日益壮大的机器学习科学家群体来说,实现许多任务的自动化并不再屈从于人类所能思考到的逻辑。 想象一下,如果开发人员要尝试解决以下问题之一:
- 编写一个应用程序,接收地理信息、卫星图像和一些历史天气信息,并预测明天的天气;
- 编写一个应用程序,接受自然文本表明的问题,并正确回答该问题;
- 编写一个应用程序,接受一张图像,识别出该图像所包含的人,并在每个人周围绘制轮廓;
- 编写一个应用程序,向用户推荐他们可能喜爱,但在自然浏览过程中不太可能遇到的产品。
在这些情况下,即使是顶级程序员也无法提出完美的解决方案, 缘由可能各不一样。有时任务可能遵循一种随着时间推移而变化的模式,我们需要程序来自动调整。 有时任务内的关系可能太复杂(列如像素和抽象类别之间的关系),需要数千或数百万次的计算。
NewsRecommends – Python网络爬虫与推荐算法的新闻推荐平台。
Gitee:https://gitee.com/z812483032/NewsRecommends
介绍
网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐
- 权重衰减进行用户兴趣标签权重的衰减,避免内容推荐的过度重复
- 标签推荐进行用户标签与新闻标签的匹配,按照匹配比例进行新闻的推荐
- 区域推荐进行IP区域确定,匹配区域性文章进行推荐
- 热点推荐进行新闻热点的计算的依据是新闻阅读量、新闻评论量、新闻发布时间
涉及框架:Django、jieba、selenium、BeautifulSoup、vue.js
软件功能结构/页面展示
系统截图
scikit-opt – 遗传算法、粒子群算法、模拟退火、蚁群算法、免疫优化算法、鱼群算法,旅行商问题
Github:https://github.com/guofei9987/scikit-opt
介绍
该项目实现遗传算法、粒子群算法、模拟退火、蚁群算法、免疫优化算法、鱼群算法,旅行商问题。
案例截图:
recommend_system – 皮尔森(pearson)相关系数实现千人千面的推荐算法系统
Gitee:https://gitee.com/taisan/recommend_system
皮尔森(pearson)相关系数公式
介绍
Java利用 皮尔森(pearson)相关系数实现千人千面的推荐算法系统。
该系统使用java编写的基于用户的协同过滤算法(UserCF)和基于物品(此应用中指电影)的协同过滤(ItemtemCF) 利用统计学的相关系数常常皮尔森(pearson)相关系数计算相关系数来实现千人千面的推荐系统。
协同过滤算法
协同过滤推荐算法是诞生最早,并且较为著名的推荐算法。主要的功能是预测和推荐。协同过滤(Collaborative Filtering,简写CF)是推荐系统最重大得思想之一,其思想是根据用户之前得喜好以及其他兴趣相近得用户得选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐),一般仅仅基于用户的行为数据(评价,购买,下载等),而不依赖于物品的任何附加信息(物品自身特征)或者用户的任何附加信息(年龄,性别等)。其思想总的来说就是:人以类聚,物以群分。 目前应用比较广泛的协同过滤算法是基于邻域的方法,而这种方法主要有两种算法: 分别是:
- 基于用户的协同过滤算法(user-based collaboratIve filtering 简称 UserCF) 给用户推荐和他兴趣类似的其他用户喜爱的产品
- 基于物品的协同过滤算法(item-based collaborative filtering 简称 ItemCF) 给用户推荐和他之前喜爱的物品类似的物品
皮尔森(pearson)相关系数公式 定义为: 两个连续变量(X,Y)的pearson相关性系数(Px,y)等于它们之间的协方差cov(X,Y)除以它们各自标准差的乘积(σX,σY)。系数的取值总是在-1.0到1.0之间,接近0的变量被称为无相关性,接近1或者-1被称为具有强相关性。
皮尔森相关系数反映了两个变量的线性相关性的强弱程度,r的绝对值越大说明相关性越强。
- 当r>0时,表明两个变量正相关,即一个变量值越大则另一个变量值也会越大;
- 当r<0时,表明两个变量负相关,即一个变量值越大则另一个变量值反而会越小;
- 当r=0时,表明两个变量不是线性相关的(注意只是非线性相关),但是可能存在其他方式的相关性(列如曲线方式);
- 当r=1和-1时,意味着两个变量X和Y可以很好的由直线方程来描述,所有样本点都很好的落在一条直线上。
通常情况下通过以下取值范围判断变量的相关强度: 相关系数 0.8-1.0 极强相关 0.6-0.8 强相关 0.4-0.6 中等程度相关 0.2-0.4 若相关 0.0-0.2 极弱相关或无相关。
UserCF基于用户的协同过滤
ItemCF基于物品的协同过滤
由于UserCF的缺陷,导致许多电商平台并没有采用这种算法,而是采用了ItemCF算法实现推荐系统。基于物品的协同过滤基本思想是预先根据所有用户的历史偏好数据计算物品之间的类似度,然后把与用户喜爱的物品相类似的物品推荐给用户。ItemCF算法并不利用物品的内容属性计算物品间的类似度,主要通过分析用户的行为记录计算物品之间的类似度。
UserCF和ItemCF的对比
idgenerator – 雪花漂移算法,原生支持 C#/Java/Go/Rust/C/SQL 等多语言,且提供 PHP 扩展及 Python、Node.js、Ruby 多线程安全调用动态库(FFI)
Github: https://github.com/yitter/IdGenerator
介绍
- 针对大家在使用中常常出现的性能疑问,我给出以下3组最佳实践:
- ❄ 如果ID生成需求不超过5W个/s,不用修改任何配置参数
- ❄ 如果超过5W个/s,低于50W个/s,推荐修改:SeqBitLength=10
- ❄ 如果超过50W个/s,接近500W个/s,推荐修改:SeqBitLength=12
- 总之,增加 SeqBitLength 会让性能更高,但生成的 ID 会更长。
算法介绍
- 这是优化的雪花算法(雪花漂移),它生成的ID更短、速度更快。
- ❄ 支持 k8s 等容器环境自动扩容(自动注册 WorkerId),可在单机或分布式环境生成数字型唯一ID。
- ❄ 原生支持 C#/Java/Go/C/Rust/Python/Node.js/PHP(C扩展)/SQL/ 等语言,并提供多线程安全调用动态库(FFI)。
- ❄ 兼容所有雪花算法(号段模式或经典模式,大厂或小厂),将来你可做任意的升级切换。
- ❄ 这是计算机历史上最全面的雪花ID生成工具。
IdGenerator 原生语音支持
需求来源
- 作为架构设计的你,想要解决数据库主键唯一的问题,特别是在分布式系统多数据库中。
- 你希望数据表主键用最少的存储空间,索引速度更快,Select、Insert 和 Update 更迅速。
- 你要思考在分库分表(合库合表)时,主键值可直接使用,并能反映业务时序。
- 如果这样的主键值太长,超过前端 js Number 类型最大值,须把 Long 型转换为 String 型,你会觉得有点沮丧。
- 尽管 Guid 能自增,但占用空间大,索引速度慢,你不想用它。
- 应用实例可能超过50个,每个并发请求可达10W/s。
- 要在容器环境部署应用,支持水平复制、自动扩容。
- 不想依赖 redis 的自增操作获得连续的主键ID,由于连续的ID存在业务数据安全风险。
- 你希望系统运行 100 年以上。
recommenders -该库包含构建推荐系统的各种示例和最佳实践,以Jupyter notebooks的形式提供。
Github:https://github.com/recommenders-team/recommenders
Recommenders是Linux人工智能和数据基金会的一个项目。
微软的推荐系统开源库原来叫Microsoft Recommenders ,后面加入了人工智能与数据Linux基金会(LF AI&Data)!新的组织推荐团队反映了这一变化,最终才叫 recommenders。
微软希望此举能让任何人都能轻松做出贡献!微软的目标依旧是建立一个生态系统和社区,以维持推荐系统中的开源创新和合作。
该库包含构建推荐系统的各种示例和最佳实践,以Jupyter notebooks的形式提供。
推荐人的目标是协助研究人员、开发人员和爱好者进行原型设计,试验并生产一系列经典和最先进的推荐系统。
下表列出了存储库中当前可用的推荐算法案例:
Recommenders 案例
Sudoku – 一个使用暴力破解和普通逻辑算法解题的数独分析 SDK
Github:https://github.com/SunnieShine/Sudoku
介绍
一个使用暴力破解和普通逻辑算法解题的数独分析解题 SDK。目前该解决方案支持对数独的题目生成、使用逻辑技巧或无逻辑技巧解题和一些常见数独特性的验证(例如,验证是否一个指定的盘面是一个最小题目。所谓的最小题目指的是,盘面任意一个数字消失后,都会使得题目多解的题)。
API 有许多,所以这里给出其中一个基本解题的操作,提供参考。
后来,我想把这个解决方案用于 几乎所有平台 上。我可能会完成 Win11 App 项目、安卓项目、常用网络平台上的机器人(列如可能 QQ 啊,哔哩哔哩之类的)。
我很遗憾我并未创建英文版的 Wiki 内容,由于工程量太大了。我学了许多年的英语,但是对于一些描述(尤其是细节的表达)要翻译成英语依旧有点困难。
当然,你也可以使用 JetBrains 的 Rider 作为你的 IDE 来开发。随意你用什么都行,甚至是记事本(大笑)。虽说 C# 拥有一些只能在 VS 上使用的语法(__makeref 之类的关键字),不过这个项目里没有使用这些内容,因此你可以大大方方地使用别的 IDE 开发。
项目定位
这个仓库的代码适用于下面这些人群:
- 喜爱钻研数独算法的人 :如果你想要钻研数独有关的实现机制和背后运行机制的话,你可以在这个项目里找到对应的答案。
- 尝试学习 C# 有关特性的人 :这个项目使用了一些较新的 C# 语言特性,并且你可以在这里学到一些 .NET 相关的技术,列如 Windows UI。
- 我自己 :我自己会提前对之前想到的代码和算法进行一些实现,这样就防止我忘记它们的原理和处理规则。
截图
PaddleRec – 大规模推荐算法库
Github:https://github.com/PaddlePaddle/PaddleRec
PaddleRec 大规模推荐算法库
介绍
- 源于飞桨生态的搜索推荐模型 一站式开箱即用工具
- 适合初学者,开发者,研究者的推荐系统全流程解决方案
- 包含内容理解、匹配、召回、排序、 多任务、重排序等多个任务的完整推荐搜索算法库。支持模型列表
什么是推荐系统?
- 推荐系统是在互联网信息爆炸式增长的时代背景下,协助用户高效获得感兴趣信息的关键;
- 推荐系统也是协助产品最大限度吸引用户、留存用户、增加用户粘性、提高用户转化率的银弹。
- 有无数优秀的产品依靠用户可感知的推荐系统建立了良好的口碑,也有无数的公司依靠直击用户痛点的推荐系统在行业中占领了一席之地。
SPA – 连续投影算法(successive projections algorithm, SPA) 是前向特征变量选择方法。
Gitee:https://gitee.com/aBugsLife/SPA
介绍
连续投影算法(successive projections algorithm, SPA) 是前向特征变量选择方法。SPA利用向量的投影分析,通过将波长投影到其他波长上,比较投影向量大小,以投影向量最大的波长为待选波长,然后基于矫正模型选择最终的特征波长。SPA选择的是含有最少冗余信息及最小共线性的变量组合。该算法简要步骤如下图:
连续投影算法实现步骤
gorse-是一个用Go语言编写的开源推荐系统。
Github:https://github.com/gorse-io/gorse
介绍
Gorse是一个用Go语言编写的开源推荐系统。Gorse的目标是成为一个通用的开源推荐系统,可以快速引入各种在线服务。通过将项目、用户和交互数据导入到Gorse中,系统将自动训练模型,为每个用户生成推荐。
特点:
- 多源推荐:热门、最新、基于用户、基于项目和协同过滤的推荐。
- AutoML:可在后台自动搜索最佳推荐模型。
- 分布式预测:支持单节点训练,而在推理阶段支持横向伸缩。
- RESTful API:为数据CRUD和推荐请求提供RESTful API。
- 在线评估:从最近新增的反馈中分析在线推荐性能。
- 仪表板盘:提供GUI用于数据管理、系统监控和集群状态检查。
RecommenderSystem – 工业界的推荐系统。
Github:https://github.com/wangshusen/RecommenderSystem
介绍
该开源项目教你快速开发推荐系统,里面包含了 召回算法、排序算法、交叉结构算法、用户行为序列建模、重排、物品冷启动、涨指标的方法等等。
如下图:
最后
一行代码,可能会创造出下一个让人惊叹的产品;
一个创新,可能会开启一个全新的科技时代;
一份初心,可能会影响到无数人的生活;
无论是在大公司工作,还是在小团队奋斗;
无论是资深的程序员,还是刚刚入行的新手;
每个人的代码,都有力量改变世界。
创作不易,喜爱的老铁们加个关注,点个赞,打个赏,后面会不定期更新干货和技术相关的资讯,速速收藏,谢谢!你们的一个小小举动就是对小编的认可,更是创作的动力。
创作文章的初心是:沉淀、分享和利他。既想写给目前的你,也想贪心写给 10 年、20 年后的工程师们,目前的你站在浪潮之巅,面对魔幻的互联网世界,很容易把一条河流看成整片大海。未来的读者已经知道了这段技术的发展历史,但难免会忽略一些细节。如果未来的工程师们真的创造出了时间旅行机器,可以让你回到目前。那么小编的创作就是你和当年工程师们的接头暗号,你能感知到他们在这个时代的键盘上留下的余温。
#文章首发挑战赛#
- 最新
- 最热
只看作者