从 2021 年顶级明星 Github 存储库中了解技术趋势、人口统计和开发者文化
动机、方法和热门领域
动机:Github 是世界上最大的源代码托管商,拥有超过 2.54 亿个存储库(根据 x-lab 报告,2020 年至少有 5200 万个公共存储库)。 除了源代码之外,Github 已成为全球超过 7300 万开发人员(2021 年新增 1600 万)的更广泛的社区中心。
方法论:截至 12 月 27 日,我在 Github 上下载了 247 个热门存储库的数据(按净明星增长),并有条不紊地对每个存储库进行分类:首先是技术存储库还是教育存储库,然后是子类别。
出现了六个明显的趋势领域——每个领域都深入到以下部分:
- 教育资源(~70/250):模式、面试准备、构建列表……
- Web 开发技术 (~43/250):框架上的框架
- 开发人员工具 (~35/250):IDE、终端和真正随机的东西
- 数据、人工智能、机器学习(~21/250):主要是深度学习
- 新语言:TypeScript、Go 和 Rust
- MISC:微软、Dev Counterculture 和 Surveillance
可以在此处下载完整的存储库列表(包括每个存储库的描述、总贡献者、分叉、问题和拉取请求计数),我在下面提供了一个汇总表。
Category | Subcategory | Total # Repos | Total 2021 New Stars | |
---|---|---|---|---|
Tech | webdev | 43 | 601,062 | |
Other | 35 | 342,338 | ||
Dev-utility | 28 | 339,440 | ||
Data, AI, ML | 16 | 162,183 | ||
App | 8 | 84,383 | ||
Dev-misc | 7 | 67,452 | ||
Crypto | 5 | 53,638 | ||
Programming language | 4 | 41,489 | ||
Education | Other | 27 | 422,935 | |
Patterns | 20 | 317,162 | ||
Interview Prep | 6 | 111,918 | ||
Interviews-leetcode | 6 | 96,322 | ||
Build | 6 | 84,508 | ||
Data, AI, ML | 5 | 64,338 | ||
webdev | 1 | 43,460 | ||
Cybersecurity | 1 | 9,226 | ||
MISC | 29 | 401,110 | ||
Grand Total | 247 | 3,242,964 |
领域 #1:教育资源
虽然 Github 旨在存储代码,但它已成为众包知识和教育资源的主要枢纽。事实上,今天只有 3/10 的顶级 Github 存储库是“技术”(Vue、React 和 Tensorflow),而到目前为止,Github 上最受欢迎的存储库是一个免费的、非盈利的编码营。
值得注意的子类别和示例:
- 模式列表:各种编程语言(例如 javascript、python、unix、go)中流行算法的最佳实践实现
- 面试准备:面向工作面试准备的资源(例如编码面试大学、技术面试手册)。其中一半是面向 leetcode 平台的,其中大部分也有中文翻译。
- 构建项目:精选的 DIY 项目列表,以提高技能并获得乐趣(例如,构建您自己的 x、应用程序创意、初学者真棒、首次贡献)
我们可以从开发者文化和人口统计中推断出什么?
大量劳动力正在进行技能培训。全球有数百万人第一次学习编程——他们的动机通常是经济解放。这是强大的,但也受到劳动力市场深刻变化的推动。世界经济论坛估计,到 2025 年,技术将消除约 8500 万个工作岗位,同时创造约 9700 万个新工作岗位(链接)。不是每个人都能成功地实现这一转变,我们需要记住这一点,我们需要机制来支持那些没有成功的人。
开发人员❤️ 学习和构建。我最喜欢在科技行业工作的一件事是参与其中的人:喜欢持续学习的书呆子和喜欢建造的创客!
创始人和创业领袖能带走什么?
内容营销为王:通过为持续学习者和/或为喜欢构建的制造者提供教育来编写好的内容😃
标记“良好的第一个问题”可能是有效的:一些“构建项目”列表实际上主要是开源存储库中标记为“良好的第一个问题”的问题的汇编……如果你,新开发人员可以磨练他们的技能,同时成为你的项目的贡献者引导他们走向更容易的机会。在 Github 的 2021 Octoverse 报告中,实际上有一整节是关于使用这个标签的效果的!
给予获得:教育可用于创建护城河并解锁新的 TAM。例如,dbt Labs 社区已成为整整一代数据分析师寻求提升技能的事实上的来源,并正在帮助数千家公司加入现代数据堆栈。他们有自己的一套在线课程。甚至还有一些独立的项目,例如分析工程师俱乐部,提供为期 10 周的基于群组的项目。
另一个有趣的例子是 Conduktor,该公司利用广受欢迎的在线 Udemy 课程并围绕企业 Kafka 平台建立了一个社区,该平台简化了 pub 子系统的管理。
亮点:开发者路线图
作为出色可视化的粉丝,我想重点介绍我最喜欢的教育资源库之一:Kamran Ahmed 的开发者路线图。 请注意,有前端、后端、DevOps 和特定语言的交互式版本。 它们非常酷,请在 https://roadmap.sh/ 上找到它们,这对于试图在更高层次上理解各种技术领域的人们也很有用。
领域 #2:Web 开发
我包括下面的顶级仓库。 Ant-design 位居榜首,尽管我怀疑手头有一个数据怪癖。
跨平台框架正在流行:谷歌的多平台框架 Flutter 越来越受欢迎。 Tauri 是一个利用前端技术开发桌面应用程序的框架,是该列表中相对增长最快的框架之一。 WebAssembly 的发展将如何进一步启用这个空间仍然待定。
名单上有两个 Firebase 的开源替代品:Supabase 和 Appwrite。 我将在即将发布的文章中撰写有关开源替代方案的文章。
关于前端 Web 开发技术的短暂性的说明
Web 开发技术发展得非常快,Web 开发人员的偏好非常短暂。 例如,请参见下面的两个图表:
随着时间的推移,顶级 Web 开发存储库的贡献者
前端框架相当善变:
- Gatsby,后来的紫色高峰,从 2017 年 6 月到 2020 年 6 月飙升,然后同样迅速下降
- Flutter,黄色,在 2021 年 3 月达到顶峰,然后开始突然下降
- 甚至 Next.js 也在 2021 年 3 月左右开始略有下降
- React-native,粉红色,在 2017 年左右迅速达到顶峰,然后开始下降)
后端框架更持久:尤其是 Rails、Django 和 Node
随着时间的推移,顶级 SRE¹(想想云原生)存储库的贡献者
请注意,SRE¹ 堆栈的核心技术的崛起速度和持久性似乎要慢得多,尤其是紫色的 Kubernetes,它是所有项目中活跃和合格贡献者数量最多的。
注意:我将在以后的文章中写更多关于这种方法的内容,以及从这个角度来看更详细的基准测试......
创始人和创业领袖能带走什么?
不要成为一招一式的小马,尤其是在前端:考虑到该领域的变化速度,单一的趋势 Web 开发技术不太可能维持一家大型且经久不衰的公司。即使在开发偏好更加持久的领域(想想早期的数据基础设施公司锁定 Hadoop),坚持单一核心技术也是公司的垮台。认识到这一点,在 Next.JS 仍然广受欢迎的同时扩展它,并聘请 Svelte 的创建者,是 Guillame Rauch 才华横溢的一部分。我们可能会开玩笑说每个人都会为 Vercel 工作,但这可能是该领域罕见的可行持久策略!
知道你的社区生活在哪里:
至少在 Github 上,Web 开发人员的数量仍然远大于数据或其他开发人员的数量。 在 2021 年的前 250 个存储库中,Web 开发存储库收集了约 60 万颗星,而与数据、AI 和 ML 相关的存储库仅约为 162K,减少了 4 倍。 请注意,根据以下 2018 年 Slashdata 的估计,Github 可能准确地表明当今世界上以网络为中心与以数据为中心的*开发者*要多得多。
我想有两种力量在起作用,会改变这种动态:1)随着时间的推移,越来越多的“软件工程师”将开始主要利用数据基础设施与 Web 框架并与之交互,2)越来越多的非技术数据从业者(任何业务分析师)都将变得越来越技术化,无论是通过学习 Python 还是 SQL/dbt……虽然不太确定是否会成为 Github 的铁杆用户!
领域 #3:开发工具
老实说,我在这里没什么好说的……Github 上到处都是古怪而酷的开发者工具。其中一些顶级存储库是 shell、终端、IDE 或代码编辑器,它们可能是开发人员体验中最重要的组成部分:
- 微软的 VS Code 以 20K 星位居榜首,并且可能是当今最好的代码编辑器之一,这对许多人来说是一个难以接受的事实 😅 Ofc,Powershell 也在 2021 年以约 9K 星位居榜首
- Coder — 浏览器中的 VS Code,也是其他活动指标增长最快的存储库之一
- 列表中还有一些新的 shell,包括 Tabby 和 Nushell,它们都有大约 7K 星,尽管 Nushell 是一个更新得多的项目
还有一些有趣的插件,同一组工具的附加组件:
- Fig 于 2020 年底开始,今年几乎从零开始增长了约 8000 颗星,它为您的终端添加了高级自动完成功能,无论您选择使用哪个
- 有点滑稽的是,Github(65K 星)上较旧且更受欢迎的实用程序和总体上更受欢迎的存储库之一是“thefuck”,它会自动更正您以前的控制台命令
- 另一方面,Starship 有助于自定义您可能正在使用的任何 shell 的提示
领域 #4:数据、人工智能和机器学习
这并不奇怪:深度学习是最受欢迎的子类别,包括面部转换器存储库、YOLOv5、Tensorflow 和 Deepmind 的 Alphafold。令人惊讶的是,列表中唯一合适的基础设施-ey 存储库是 Meilisearch 和 Clickhouse,考虑到 VC 世界中收到的所有炒作数据基础设施,这有点令人惊讶,但同样,可能只是最终用户人口规模的问题 + 是否有数据科学家们在 Github vs. Web Developers 上花费了大量时间……
我还有很多关于数据的文章要写,计划发布未来的帖子……现在,我将重点介绍另外两个很酷的资源:
AI 专家路线图(交互式网页)
似乎从上面链接的开发人员路线图中获得了灵感,非常棒。我喜欢他们如何区分不同的角色,从数据科学家到机器学习,再到深度学习,再到数据工程等等。浏览起来真的很棒而且很有趣!将其与前面提到的开发者路线图以及分析工程师俱乐部并列也很有趣,因为他们收集了很多现代技术,有点 MECE² (#BCG) 方式😃
2. 我喜欢的第二个仓库是 Eugene Yan 的 Applied ML 仓库。
这是一个绝妙的想法,实际上是我计划在我不存在的空闲时间随意做的事情……无论如何,这是一份来自顶级工程团队(Netflix、亚马逊、Pinterest、Linkedin 等)的技术帖子的精选列表.) 详细说明他们如何构建不同类型的 AI/ML 系统(例如预测、推荐、搜索和排名等)。 Ofc,它专注于 AI/ML,但可以为传统或面向 BI 的分析堆栈以及流媒体世界制作类似的东西,对从业者来说超高价值!顺便说一句,我在 BCG 最喜欢的事情之一是查看我们的 IT 架构团队的参考架构图……理解技术的最佳方式是查看大量的东西是如何构建的……它很有趣!
区域#5:街区的新语言
迄今为止,Typescript 是 2021 年热门技术存储库中的主导编程语言,其次是 Javacript、Python、C++、Go 和 Rust。有点有趣的是,顶级教育存储库的组成非常不同,Javascript #1、Python #2 和 Java 仍然排在第 3 位。
技术存储库可能反映了黑客对什么和未来感到兴奋,而教育存储库则反映了当今哪些语言仍然最受欢迎。一位朋友向我建议,这也与“最容易进入障碍”的语言有关,这是有道理的!
为此,我在下面比较了另外三个编程语言流行度的数据源。看起来,查看热门的 Github 存储库实际上是未来最强大的前瞻性指标!
Github 实际上发布了他们自己在整个服务中使用的编程语言的排名:
您可以在下面看到 Typescript 的趋势有多强,尽管 Rust 和 Go 甚至还没有进入该列表!
2. 也许最普遍的来源是 TIOBE 索引,它聚合了跨搜索引擎对不同编程语言的搜索。
令人惊讶的是,Java 和 C 在这个榜单上仍然占据主导地位,Python 仅在上个月超过了它们!
3. 另一个有趣的来源是查看 Stack Overflow 上的标签。
Python 在这里确实占主导地位,但我确实认为,大量面向数据的人利用该网站可能存在一些选择偏差……但是,C# 是 2009 年平台上最流行的,而 JavaScript 仍然表现良好。 你也可以看到 Typescript 的好转。
区域 #6:几个 MISC 点
A.就开源、开发人员友好性和更广泛的公司战略而言,微软已经走了很长一段路。
微软的高级战略主管曾经将开源公司比作那些导致互联网泡沫危机的公司——不负责任和不计后果地免费提供服务。比尔盖茨甚至曾经声称开源对工作不利😂
2014 年任命 Satya Nadella 为 CEO 以及 .NET 堆栈的开源(维基百科对这一切都有很好的回顾)带来了重大变化。今天,微软在 Github 上发现了 2021 年最受欢迎的 8 个存储库:
- 三门教育课程——面向初学者的 Web Dev、ML 和 IoT。注意重新使用教育资源作为营销策略,至少 ML 课程链接到各种 Azure 服务。谷歌也经常这样做,Collab notebooks 经常被用来演示教育材料。
- 开发工具和实用程序,包括 VS Code、Microsoft Terminal 和 PowerToys,
- Web 开发技术,包括占主导地位的 TypeScript 语言,以及用于浏览器自动化测试的越来越流行的 Selenium 替代品:Playwright
B.黑客体现了一种健康的反文化
反买东西,反广告,强烈支持劳工💪
- 绕过付费墙 chrome 是一个插件,它完全按照它所说的那样做,让用户绕过网站付费墙来访问内容。请注意,如果可以,请为优质新闻付费。
- 阻止现场有助于阻止互联网上的广告。我不喜欢隐藏的、广告驱动的商业模式。这实际上是我更广泛地喜欢企业与消费者技术、更清洁和合乎道德的商业模式的重要原因
- 996.ICU 是一个了不起的资料库,基本上是中国不良科技雇主的名单(现在可能更广泛)。它在 2019 年开始流行时受到了媒体的极大关注。他们自己的描述如下:
996.ICU这个名字指的是“996工作,ICU病房”,这是中国开发者的讽刺谚语,意思是按照“996”的工作时间表,你有进入ICU(重症监护室)的风险。 )
C.有一些粗略的趋势,并不是所有的技术都很好(例如,结束事情的一种不那么有趣的方式)
AI/ML 很棒,会给世界带来很多好处,但也存在严重的风险和安全考虑。加强监视和国家控制肯定是其中之一,也许最成熟的滥用用例之一就是面部识别。 2021 年最热门的存储库之一是腾讯的 GFPGAN,它“旨在开发用于真实世界面部恢复的实用算法”。另一个趋势库是 DeepFaceLab,用于创建深度伪造。
顺便说一句:在这个名为 Awful AI 的存储库中有一个非常好的 AI 糟糕用例汇编
另外两个趋势存储库用于在社交媒体帐户中定位人们:Sherlock 项目和社交分析器 - 有点粗略地看到像这样的技术在公共和易于下载的域中漂浮,并很好地提醒我们在互联网上的生活是多么公开。
[1] SRE — 站点可靠性工程,例如CNCF
[2] MECE — 互斥、集体详尽、超级咨询发言(链接)
最新内容
- 4 hours ago
- 4 hours 17 minutes ago
- 3 days 5 hours ago
- 3 days 18 hours ago
- 5 days 5 hours ago
- 5 days 23 hours ago
- 5 days 23 hours ago
- 5 days 23 hours ago
- 5 days 23 hours ago
- 5 days 23 hours ago