一位程序员将一款开源工具变成了价值75亿美元的帝国
他的成功,激励着年轻的程序员
为什么翻译这些程序员大佬的成功故事?
除了写代码,作为开发者,我们也需要时不时地仰望星空。我们每个人都怀有着远大的理想,希望用代码改变自己的生活、行业,甚至是这个世界。编码不仅仅是工作,更是对自己梦想和追求的执着。但是,如何开始,如何改变,有时候我们可能会陷入迷惑和困惑之中。通过翻译这些成功人士的故事,我希望能为大家带来力量和希望,让我们从中得到启发。由于翻译水平有限,敬请谅解。
本篇文章的主人公:Matt Mullenweg(马特·穆伦维格)
Matt Mullenweg是WordPress.com和其母公司Automatic的创始人。Automattic目前估值为75亿美元。最近的新闻是,Automattic从其现任和前任员工手中回购了2.5亿美元的股票。这是一个程序员Matt Mullenweg从零开始构建WordPress的故事。
全球40%的网站都是用WordPress构建的。WordPress.org最初是作为非盈利性的博客平台创建的。Matt对博客和开源软件都非常热衷。他的大想法是建立一个平台,让任何人都可以创建博客。他收到了许多科技巨头的工作邀请,但他几乎都拒绝了。这是因为如果他加入任何科技巨头,他就必须放弃自己的知识产权。
WordPress.com的母公司Automattic在全球拥有约2000名员工。Automattic的员工分布在世界各地。
马特(Matt)的童年是什么样子的呢?
马特和他的妹妹一起在休斯顿长大。他的妈妈负责管理家庭,他的爸爸则大部分时间为石油公司工作,担任计算机程序员。作为青少年,马特曾考虑成为一名音乐家,对萨克斯风感兴趣,因为他的父亲喜欢演奏它。他上了一所表演艺术高中,这所学校氛围很好,他经常通过演奏萨克斯风赚钱。他在各种地方演奏萨克斯风,比如不同的意大利餐厅。
为什么马特没有选择音乐作为职业?
“在学校里,有些孩子是真正的神童,我表现得还不错,但必须非常努力才能达到那个水平……而且我并不是最好的……这一点很明显。”
马特的父亲有一台电脑用于工作,但当他在家中得到一台电脑后,马特开始涉足计算机领域。起初,他只是玩弄几个游戏,但随着时间的推移,他开始参与不同的互联网社区。
根据马特的说法:
社区是基于共同兴趣形成的。它关乎其他人,你可以了解到在那里的其他20个人……有一个叫做IRC的聊天系统……它类似于基于文本的Slack。
马特是如何学习创建网站的呢?
在2000或2001年,建立一个网站要比现在复杂得多。马特在高中时学会了如何建立网站。他通过书籍和大量的试错来完成这个过程。当时有许多发布网站的软件,如GeoCities、Dreamweaver、FrontPage等等。
大部分时间,他都在点击某个软件上的所有按钮,然后看看会发生什么。这就是他学习任何软件的方法。当时,马特创建了一个名为footman的摄影网站,在网站上发布照片。为了启动该网站,他使用了一个名为Gallery的开源软件。它主要是一个PHP脚本,允许在网上发布照片。(那是在Flickr和Facebook出现之前的时代。)
Matt和陌生人一起创办了WordPress.org
当Matt在学习编码时,他接触到了一个开源博客平台b2 cafelog。他喜欢这个平台,因此提出了一些关于b2 cafelog博客平台的代码更改建议。b2的主要开发人员喜欢Matt的代码。Matt被要求提交一个工单并提交代码。Matt提交的代码很快被接受,并后来成为官方版本的一部分。以后更新该软件的所有人都在运行Matt的代码。
“我因为自己编写的代码被上百个网站运行而异常兴奋,这太令人激动了。”Matt开始经常为b2平台贡献代码。b2平台有来自世界各地的许多其他贡献者。b2的主要开发人员Mitchell拥有整个b2平台的控制权。2002年,主要开发人员Mitchell离开了b2。他是该项目的权威决策者。自从Mitchell离开b2之后,就没有可能对平台进行新的版本更新。这就是为什么来自世界各地的人都停止了对b2的贡献。
Mike是如何发现Matt Mullenweg的呢?
当时Matt一直在博客上记录b2平台的最新动态,他写了一篇名为《博客软件困境》的博客文章,提到他想要一种与众不同的博客平台,既要有出色的排版,又要像Blogger一样简单易用,还要像b2一样具有可扩展性,代码必须美观而灵活。
由于b2 cafelog是开源的且GPL许可,因此其主要开发人员Mitchell所做的工作并没有浪费。Matt希望通过这篇文章告诉社区中的其他人,即使有人消失了,该人创建的代码也永远不会浪费,人们可以轻松地获取该代码并继续构建自己想要的东西。
这篇文章公开后,一位名叫Mike Little的人评论说,如果Matt想要开发这样的项目,他很乐意和Matt一起工作。
最终,Matt和Mike都采用了b2 cafelog代码进行分支,作为创建全新平台的基础。Matt和Mike经常在IRC上聊天,但至少三年都没有见面。他们互相发送代码块,并通过代码的评论进行交流。
WordPress.org 这个名字从何而来?
Mike和Matt创建了他们的b2分支。当时有五到六个其他的b2分支,人们试图使用b2代码创建有意义的东西。当时,Matt是博客社区的积极成员。博客社区的成员们经常在咖啡馆或酒吧相聚,聊聊博客。当Matt提到Mike和Matt正在构建的平台时,一位名叫Christin的博主想到了WordPress这个名字。Matt喜欢WordPress这个名字,就决定采用它。
之前参与b2的很多人都喜欢Matt和Mike正在做的事情。他们中的大部分人都迁移到了这个新项目。如果你仔细查看WordPress.org的历史,你会注意到它从来没有作为一个商业项目开始,他们只是想让每个人都能更轻松、更有趣地参与到博客的创作中来。这是WordPress.org项目中所有参与者的业余爱好项目之一。
一个革命性的重要概念改变了博客的发展
WordPress.org于2003年5月正式发布,由Matt和Mike发布。世界上大多数使用过任何类型博客软件的博客作者都对WordPress感到兴奋。此外,来自各种在线社区的开发人员也对WordPress感到热情。在WordPress发布之前,Matt联系了b2的开发人员,并要求他们一起为一个项目做出贡献,而不是分别开发不同的项目。他要求他们一起做一件大事,于是他们开始为WordPress做出贡献。在发布时,WordPress有五到六名指定的开发人员,但数百名开发人员对其进行了小的改变或调整。当WordPress.org首次发布时,数百人开始在日常生活中使用它来撰写博客。
随着越来越多的人开始采用 WordPress.org,运营的总成本是多少?
随着越来越多的人开始使用WordPress.org,运行所需的成本也在增加。那时还没有亚马逊网络服务(AWS)。他们租了一台像是某处建筑物里的盒子一样的服务器。你可以在线与它交互。运营和租用这个服务器的总费用是每月425美元。当时,服务器成本是主要费用。为了支付服务器费用,Matt曾经通过帮别人建网站和修电脑,以及在某些地方演奏萨克斯管赚钱。
雅虎和 CNet 等公司的工作机会
Matt Mullenweg收到了许多大型科技巨头的工作邀请。这些公司希望他为他们工作并处理一些重要工作。其中一些公司包括雅虎和CNet,后者是最早的互联网媒体公司之一,他们之前就建立了一个内容管理系统。CNet向Matt提供的薪水约为90,000美元,而当时的Matt收入大约是每月1,000美元。对于当时20岁的Matt来说,90,000美元的工作报价就像是中了彩票。
Matt接受了CNet的工作邀请,原因如下:
“他们允许我保留我正在创建的代码的知识产权……通常当你加入像谷歌这样的公司时,你会将你创造的所有权利都签订给他们……对我来说,知识产权非常重要。”
他在20岁时是如何了解知识产权的?
“我只是在网上阅读了很多博客,并且由于我的音乐背景,我非常熟悉知识产权权利...我仍然坚信版权。”
Matt曾在Cnet担任项目经理。在Cnet,他只负责特定的项目。Matt对WordPress.org的经验帮助了Cnet的人们快速处理事务。在Cnet工作期间,他还为非营利组织wordpress.org贡献了代码。
什么促使Matt推出了盈利性的WordPress.com?
Matt向当时的Cnet CEO进行了推荐:
WordPress.org很酷,但是设置很复杂......我们可以轻松地点击几个按钮设置您的博客。我认为这会很受欢迎......我们来试试吧……
整个Cnet团队决定不进入博客托管业务。Matt对这个想法非常兴奋,于是在Cnet工作的同时,他创立了名为Automattic的公司。Matt雇用了Automattic的前几名员工。这个想法是创建商业实体作为WordPress的附加组件,并提供简单的托管服务。他们希望创造一些让普通人可以使用的东西,即使他们不懂编程,也可以创建自己的博客。
Matt 最初筹集了 0 美元来运营 Automattic 公司
Matt 最初通过自己的资金来资助整个项目。他用信用卡和 Cnet 的薪水开始了这个项目。
根据马特的说法:
我绝对过度扩张了自己。
但当公司开始运转时,他意识到自己的薪水和信用卡款项不足以资助 WordPress 的盈利版本。
Matt 回忆起有人联系他想在 WordPress.org 上进行广告投放。广告投放费用大约是每月 2000 美元。该广告商希望他们的网站在谷歌上获得更高的排名,以获得一些有价值的关键字,例如各种疾病。他告诉 Matt,由于人们复制了他们网站上的内容,他们就无法在谷歌上排名。
他想让 Matt 在 WordPress.org 上提供指向他的网站的链接。这将有助于他们在谷歌上排名更高。为了帮助这位广告商,Matt 发明了一种新的外链方式。Matt 使用 CSS 代码,以这样一种方式,如果您以用户的身份在浏览器中访问该网站,外部链接将是不可见的。如果您像 Google 这样的机器人访问 WordPress.org 网站,则会显示该网站上存在外部链接。由于 Google 使用机器人来索引网站,Matt 的策略将有助于该广告商获得数百万个有价值的关键字的新用户。这个行为背叛了成千上万人的信任。
后来,Google 发现了 CSS 代码。当他们发现这个简单的 CSS 代码欺骗了他们的搜索引擎时,Google 的人非常生气。因此,Google 决定将 WordPress 从其搜索中删除。这就像被从互联网上抹去一样。
Matt Mullenweg 通过这样做背叛了成千上万的人的信任。在此之后,Matt 修复了代码并写了一篇博客文章公开道歉。最终,Google 原谅了 Matt,并将 WordPress 重新放回搜索引擎。
Matt离开Cnet专注于创办Automattic公司
他创造的第一个商业产品叫做Akismet。这是一种反垃圾评论系统,以他的姐姐命名。Akismet是一个机器学习系统,可以分析数百万个博客的垃圾评论,并给出“赞”或“踩”的反馈。如果返回“赞”,评论就是有意义的,否则就有可能就是垃圾评论。这有助于人们自动从他们的网站上删除垃圾评论,无需手动识别垃圾评论。Akismet可以免费用于个人使用,但商业使用需要支付费用。Matt早就决定,WordPress.com将保持免费,他的商业模式将是出售WordPress插件。
为什么Matt要筹集资金?
Automattic的每个员工来自不同的城市,他们遍布全球。当时,Automattic每月的收入约为20,000美元。Matt意识到,如果在这种情况下发生了什么事,他们停止赚钱了,那么公司将无法支付下个月的工资。他开始感受到与Automattic公司有关并信任Matt的这些人的责任感。
这并不是说需要钱来经营企业,但Matt想要一些备用现金,这样他可以耐心地建立事情,或者在最坏的情况下,员工可以找到其他工作。最初,当Matt与投资者会面时,他们要求他雇用不同职位的人,例如首席执行官(CEO)、首席技术官(CTO)和公司的其他高级职位。
Matt不想雇用任何这些职位的人。后来,Matt遇到了Tony Schneider,他之前将他的一家公司出售给了雅虎,并且对与他交谈感到印象深刻。Matt聘请他担任Automattic的首席执行官(CEO)。雇用Tony Schneider作为首席执行官帮助Automattic从私人投资者那里筹集资金。当时,Tony是公司的CEO,而Matt的头衔是Automattic的总裁。
WordPress.com如何吸引人们采用其平台和服务?
据Matt所说:
“这全靠口碑……当时我们做的一件事是,在所有运行WordPress的网站的模板中默认显示‘powered by WordPress’。”
如果您访问任何运行WordPress的网站,都会看到一个链接显示这个网站由WordPress驱动。您可以单击该链接并探索WordPress。
如果在探索阶段您喜欢wordpress.com,您可以轻松尝试它。此外,在最初阶段,Matt喜欢阅读各种人的博客。当有人抱怨诸如“哦……我的网站变得很慢”之类的事情时,Matt会告诉他们有关WordPress.com服务的信息。
2 亿美元的收购要约和 Automattic 目前的估值
2007年,Automattic团队当时只有20个人。当时,Matt拥有该公司超过一半的股份,并收到了以2亿美元的价格出售wordpress.com的收购要约。对于一个仅成立2年的公司来说,这是一笔非常优秀的交易。年仅23岁的Matt将赚取约1亿美元。
他开始认真考虑这个想法。他想,他需要在这么年轻的时候退休吗?当他问自己时,他觉得退休的想法很无聊。他向他的妹妹、母亲和父亲问了一个严肃的问题。如果他们的银行账户里有1亿美元,他们会用这笔钱做什么?他们想买一辆超酷的车,买一栋房子,去度假。为了做到这一切,他只需要500万美元。那么他会用剩下的钱做什么呢?
那时他想做的是每天都编程,四处旅游遇见新朋友。他想与他喜欢合作的人共事,就这样。一旦他认真地质疑自己,他得到的唯一答案就是不要在这么年轻的时候出售公司。
2009年,WordPress下载量达到了1000万次
在2009年之前,WordPress团队添加了一个功能,使WordPress不仅可以运行您的博客,还可以管理整个网站。这个功能成为了WordPress.com的关键功能之一。它帮助WordPress成为一个内容管理系统。在那之前,WordPress只是一个日志或博客软件。后来,更大的公司被WordPress所吸引,因为他们可以通过它管理他们网站的所有页面。
Automattic的当前估值
在2021年,Matt宣布该公司现在的估值为75亿美元。在他们的旅程中,Automattic收购了像WooCommerce、Tumblr、Simplenote和其他几家公司。
结束
这是一个程序员从零开始构建WordPress的故事。全球40%的网站都是使用WordPress构建的。然而,Matt Mullenweg创建WordPress并不是为了追求商业收益,而是为了让每个人都能更轻松、更有趣地参与博客的创作。Matt Mullenweg的热情和坚持,以及他对社区和开源的信仰,激励着年轻的程序员。他的故事告诉我们,只有真正的热情和坚持不懈的努力才能让我们实现目标并获得成功。
文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多有需要的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。
原文:
https://levelup.gitconnected.com/meet-a-programmer-who-turned-an-open-source-platform-into-a-7-500-000-000-company-645e14c53c8作者:Sanjay Priyadarshi
非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正
相关文章:

一位程序员将一款开源工具变成了价值75亿美元的帝国
他的成功,激励着年轻的程序员为什么翻译这些程序员大佬的成功故事?除了写代码,作为开发者,我们也需要时不时地仰望星空。我们每个人都怀有着远大的理想,希望用代码改变自己的生活、行业,甚至是这个世界。编…...

tmux | 终端操作软件,解决深度学习中终端相关问题
tmux 一次可运行多个终端会话。或者在后台运行终端会话。当需要一次访问多个 ssh 会话或只是为了一个便利的流程管理时,这很有帮助。例如,可以在下载最新的系统更新时运行 htop,编辑配置文件并在一个 tmux 会话中重新启动服务。 对于我来说t…...

信号 捕捉
signal 函数 作用:注册一个信号捕捉函数(注册而非创建) 原型: sighandler_t signal(int signum, sighandler_t handler);typedef void (*sighandler_t)(int);案例一: signal函数 捕捉 ctrlc 触发事件 #include<std…...

sqlserver中判断是否存在的方法
自定义变量 declare age int declare name varchar(20) set name‘张三’ --用set 方法给变量赋值 注: 此方法一次只能给一个变量赋值 select ageage from client where [name]name --查询客户张三的年龄赋值给age变量 注:此方法能一次多个变量赋值 …...

基于Kettle跑批的案例说明
需求概述 通过动态配置表的方式完成在kettle里动态配置参数,并调用ktr,实现跑批的目的。 问题分析 定义一个ktr读取配置表的信息并将拷贝记录到结果定义一个ktr从结果里获取记录并设置变量定义业务ktr(即按照业务需要开发的…...

2023 最新版网络安全保姆级自学指南
前言 如今,组织的信息系统和数据面临着许多威胁。而人们了解网络安全的所有基本要素是应对这些威胁的第一步。 网络安全是确保信息完整性、机密性和可用性(ICA)的做法。它代表了应对硬盘故障、断电事故,以及来自黑客或竞争对手攻击等防御和恢复能力。而…...

Chapter9.3:线性系统稳定性分析及综合实例
该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。 自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468…...

EXCEL 在复杂查询时摒弃vlookup() sumif() 等公式,而使用数据透视表的初步学习
1 为什么要用数据透视表 如果不用,就可能需要写很复杂的,查询公式 比如,vlookup各种sumif,sumifs 等等,如果还是多个表进行统计,那写起来更酸爽所以感觉 vlookup sumif,sumifs 更适合,简单情况下的查询&am…...

C 文件读写
C 文件读写 本章我们将介绍 C 程序员如何创建、打开、关闭文本文件或二进制文件。 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节。C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存…...

Linux中实现程序开机自启——将程序配置为系统服务
一、需求说明 当我们在Linux系统上安装软件时,希望软件实现开机自启,或程序崩溃后自动重启,提升软件运行的稳定性;而linux系统中的systemd刚好可以满足我们的要求(可将软件注册为系统服务)。 二、systemd systemd 是一个 Linux 系统基础组件的集合,提供了一个系统和服务…...

【洛谷刷题】蓝桥杯专题突破-广度优先搜索-bfs(13)
目录 写在前面: 题目:P1443 马的遍历 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述: 输入格式: 输出格式: 输入样例: 输出样例: 解题思路: 代码: AC &am…...

【新2023Q2模拟题JAVA】华为OD机试 - 总最快检测效率 or 核酸检测效率
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:报数 题目 一百个人围成一圈…...

基于主成分分析的混音方法
一、简介: 基于主成分分析的混音方法是一种常见的音频混音技术,它利用主成分分析(PCA)对音频信号进行降维和重构,从而实现混音。 二、基本步骤如下: 采集和存储需要混音的音频信号。 对音频信号进行主成分…...

Code Two Exchange Crack
CodeTwo Exchange 迁移允许直接从早期版本的 Exchange(从 Exchange 2010 开始)安全、轻松地迁移到 Exchange 2019 和 2016。此服务器应用程序还允许您集中管理来自 Microsoft 365 (Office 365) 的邮箱迁移以及来自基于 IMAP 的电子邮件系统(例…...

jQuery.form.js 详细用法_维护老项目使用
概述 jquery-3.3.1.min.js : http://jquery.com/download jquery.form.min.js :http://malsup.com/jquery/form/#tab7 jquery form 是一个表单异步提交的插件,可以很容易提交表单,设置表单提交的参数,并在表单提交前…...

【Java】关于你不知道的Java大整数运算之BigInteger类超级好用!!!
目录 一、BigInteger类简单介绍 二、BigInteger构造方式 (1)构造方式 (2)输入方式 三、BigInteger常见的成员方法 (1)方法介绍 (2)方法使用演示 1.加减乘除余 2.比较 3.绝…...

运维是不是没有出路了?
瑞典马工的《是时候让运维集体下岗了》一出,就让运维人为之一颤,人人自危。文章开篇就提到:明人不说暗话,在云原生和DevOps成熟的今天,运维作为一个岗位和团队已经完成了历史任务,应该退出舞台了…...

【C++笔试强训】第七天
选择题 解析:内联函数(inline)一般用于代码较少,代码块里面没有递归且频繁调用的函数,是一种以空间换时间(不是指内存,而是指令变多编译出来的可执行程序会变大)的做法。内联函数在预…...

mysql binlog 一直追加写,磁盘满了怎么办?
文章目录 mysql binlog 清理策略1、设置binlog最大的文件数和文件大小2、定时清理过期binlog文件3、手动清理binlog文件4、禁用或启用binlogmysql binlog用于记录mysql数据库所有变更(数据库的DDL、DML操作)包括用户执行的语句,以及底层引擎所执行的操作的二进制日志,主要用…...

缓存穿透、缓存雪崩、缓存击穿解决方案
什么是缓存 缓存就是数据交换的缓冲区(称作Cache),是存贮数据的临时地方,一般读写性能较高。 添加 redis 缓存 给店铺类型查询业务添加缓存 需求:添加ShopTypeController中的queryTypeList方法,添加查询缓存 缓存更新…...

web + servlet + jdbc mysql 实现简单的表单管理界面
目录数据库创建数据库连接servlet创建,这里注意一下我的数据库我自己改了一下名字lhx网页html运行文件目录展示首先我们准备好开发使用的工具以及配置 idea2020 tomcat8.5 创建javaweb参考idea编译Tomcat详细步骤 IDEA通过JDBC连接数据库请参考jdbc连接数据库 需要登陆注册界面…...

Maven 国内镜像仓库
镜像仓库目标 当我们未定义任何远程仓库时,使用 Maven 更新依赖时,其会去默认远程仓库中拉取,默认远程仓库 是国外地址,所以在国内访问特别慢,想提升访问速度,需要将国外地址换成国内地址 更换仓库地址的…...

day21 ● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先
二叉搜索树的最小绝对差 二叉搜索树(Binary Search Tree,简称 BST)是一种特殊的二叉树,它的每个节点都满足以下条件: 左子树上所有节点的值均小于该节点的值;右子树上所有节点的值均大于该节点的值&#…...

大学计算机(软件类)专业推荐竞赛 / 证书 官网及赛事相关信息整理
大学计算机专业(软件)推荐竞赛 / 证书 官网及赛事相关信息 一、算法类(丰富简历): 1、ACM国际大学生程序设计竞赛: 官网:https://icpc.global/ 国内:http://icpc.pku.edu.cn/index.htm 报名方式:区域预赛一般每年9-1…...

Metasploit入门到高级【第九章】
预计更新第一章:Metasploit 简介 Metasploit 是什么Metasploit 的历史和发展Metasploit 的组成部分 第二章:Kali Linux 入门 Kali Linux 简介Kali Linux 安装和配置常用命令和工具介绍 第三章:Metasploit 基础 Metasploit 的基本概念Met…...

JDK之8后: 协程? 虚拟线程!!!
特性官方文档: https://openjdk.org/jeps/436 Java协程 近三十年来,Java 开发人员一直依赖线程作为并发服务器应用程序的构建块。每个方法中的每个语句都在线程内执行,并且由于 Java 是多线程的,因此多个执行线程同时发生。线程是Java的并发…...

体验 jeecg
体验 jeecg官网地址事前准备安装升级 node 和 npm 版本验证安装安装 pnpm clidocker 启动 MySQLdocker 启动 redisgit clone 项目启动JAVA项目 jeecg-boot启动Vue3项目 jeecgboot-vue3官网地址 http://www.jeecg.com/ 事前准备 (1) 为了回避Could not find artifact com.mic…...

投稿指南【NO.13】计算机学会CCF推荐期刊和会议分享(人工智能)
前 言国内高等院校研究生及博士毕业条件需要发表高水平期刊或者顶会(清北上交等重点学校毕业要求为至少发一篇顶会),很多同学私信问到一级学会的会议论文怎么找、是什么,比如前段时间放榜的CVPR论文就是人工智能领域的顶会国际会议…...

一份sql笔试
1、 select substr(time,1,10),count(order_id),count(distinct passenger_id) from order where substr(time,1,7)2023-08 group by substr(time,1,10) order by substr(time,1,10);2、 select city_id from (select * from order where substr(time,1,7) 2022-08) t1 left j…...

交换瓶子
交换瓶子 贡献者:programmer_ada 有N个瓶子,编号 1 ~ N,放在架子上。 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么…...