热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[译]技术公司十年经验的职场生涯回顾

本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。

写在前面:

我经过了一场很不寻常的月份,从十月中旬到现在未来。
上面一句话可以作为一句碎碎念,但想来和这便翻译的文章有些许异同,便就自私地加上去了。
这是一篇总结文,一位曾在 Airbnb工作并现今仍在继续自我或者忘我地在互联网公司创新创业的佼佼者之一总结她的十年生涯,嗯是个妹子呢。
不走寻常路的职业规划令人艳羡又深思又无聊又有趣。
机器学习那块真实又炫酷,亲手缝纫自己设计的服装太酷了
文末作者引用了女性主义者在 TED 演讲的部分讲义

  1. am angry. Gender as it functions today is a grave injustice.

We should all be angry. Anger has a long history of bringing
about positive change, but in addition to being angry, I’m
also hopeful because I believe deeply in the ability of human
beings to make and remake themselves for the better.

愿都能为了目标合理努力奋斗。


原文地址 : A Career Retrospective—10 years working in tech

By: sailor mercury


译文部分:

我看到过无数个 CS 毕业生在找工作时担忧他们即将进入的这个行业。毕竟目前的技术能力要求更新迭代如此之快,又怎么能责怪他们呢?以下就是我的十年职业生涯回顾— — 那些有趣或者命悬一线般恐怖的经历,而最终为什么我还呆在技术公司还在奋斗着。

在我的童年中,我非常喜欢数学和科学两门课。
与此同时,我也很喜欢艺术的东西。我花了大半生在电脑上—— 试着写写小游戏、创建网站。而同时我也会利用手上的各种纸张来画画。

当我的人生进入了「决定专研什么」和「该做什么」这种需要深思熟虑的时候,我会感觉被迫需要二选一。当我准备申请艺术院校的时候,感兴趣的学校却没有更高等的数学课程(最高课程线性代数),而其实我的内心想法是,我是需要随时且不断地学习关于灵感生活的绘画以及更复杂的数学课程学习。

所以最后我去了 MIT 读了工程专业。

而最后我又发现,如果你真的对艺术和技术感兴趣,你在机器学习这项课程上最后的感受就是:

在我毕业后做的第一件事就是搬去了日本。同时也在 HRI 继续研究机器学习 — 远离了东京的地方。我花了5个课时在大学里学习日语,并在我产生忘记念头前全部用起来。“我丝毫不知道我这一生想做什么但我百分百确定,机器人真的很酷”

Honda 机器人是一个4 尺高的人行机器人,他叫 ASIMO,哇那可是,帅到爆炸。

在Honda的时候,我主攻一个教 ASIMO 练习的加强学习算法。你可能已经知道了加强学习算法是什么,但谨防万一 这里还是提及一下:加强学习是一个机器学习领域的研究方向,而这个方向的灵感,来自于针对行为心理学的研究。

我们会让 AI 或者机器人做的事情是不断重复作出一系列的决定。例如,一个乒乓球机器AI需要不断地决定要将乒乓球拍达到平行路线的上面/下面或者原路线还原。这个机器人的输出内容即第一次发球和两个球拍(你和你的对手)的初始点。

如果计算机赢了,得分+1,反之 -1分。反复之后得到加强得分,也是为什么叫加强学习。同时我们还创建了一个 「决策系统」用来化解or降解乒乓球拍做决定的「惯性」问题,用来最大化得分的真实性。

我们让计算机不断重复打乒乓球,每一次计算机必须做出决定,而这个「决定模型」也是来源于基于计算到目前为止的状态所可能的全部下一步操作而言。这个可能模型会将目前计算机操作作为输入,而结果即作为输出。可能模型中的每个决定概率都均等。在最开始,AI 机器人需要掷一个三面骰子,分别代表为「上」「原样」「下」方向。随着计算机不断重复地赢和输也就增加了每一步输入内容的多样性,同样的也减少了输出结果为败北的可能性。所以在下一场游戏中,只有采取前一个概率要更高的结果为 「赢」的行为进行游戏才不会输。

这种人机大战最好笑的地方在于,尽管已经能看到了输赢的结局而计算机是不知道当前哪个行为促成了这次结果。即到目前为止的得分而言是全部平等的。通过对整个全部为赢方的课程训练研究发现,「好的行为」、「坏的行为」「折中的行为」都出现过。甚至在一系列「坏的行为」之后还是能够赢。所以输赢都奖励就一定是好的吗?(这里我猜想的是作者针对于赢输都奖励计算机分数(+1,or -1)机制的思考)

有个叫做监督学习的算法就对这个答案say no。算法采用的是人工控制 AI 去做每一个决定—这些决定当然都是好的一面。但最终结果也只是增加受了这些人工行为属性的AI 的占比。

但同时也显示出即使是很谨慎地奖励所有行为(给赢方的每个行为)以及处罚所有败方的行为—— 像监督学习的方式一样,这依旧有利于学习。只要有足够的迭代次数,计算机就能算出最优解。在这样的情况下,我们其实可以利用监督学习的方式将这个机器人送上火星了:在火星不断统计和创建新的分支,甚至是你都不知道的新挑战(如元素,物种,环境等等)(读到这里感觉有些兴奋呢)。

同时能在我职业生涯中意识到上面这些点对于我而言也很有帮助。这让我觉得自己是个很自律的人。加强算法告诉我一个机器从最开始的空白,不断的做决定做决定做决定它就会变得更聪明和伶俐(有点像人类一样)。所以尽管我对我的职业一无所知(或者任何事情,这里可以指任何感兴趣的事情),我还是敢自信的说:通过不断作出更好地决定我会得到我想要的那种生活。

我在 Honda 研究的加强学习算法正在 MIT 的多媒体实验室里被研发。他们集成为一个人脸识别 SDK 打包使用。这个人脸识别sdk会将视频作为输入,同时也能将面部表情区分为「高兴」「悲伤」「失落」「吃惊」等多种多样的表情。这款软件最初开发的目的是用来帮助有自闭症的孩子,让他们能够学习去读懂其他人的情绪和表情。

所以,通过使用第三方集成sdk,以及通过 ASIMO 收集到的视频画面,我们能够检测到目前 ASIMO 和志愿者的沟通是开心还是沮丧的等等。而这些情绪反应,有别于输或者赢,又可以用来帮助 ASIMO 去加强它的学习算法。到这里我才意识到,我以前以为的计算机科学就是完全的逻辑化应用,我也很喜欢那种和人们交互的行为假定。机器会从对人类情绪的理解中获益同时也能将其利用到合适的场景当中去。

这是我和 ASIMO的合照 @ Honda

我非常喜欢日本,喜欢到又再待了一年。所以我又在东京大学的 Igarashi 实验室(也可理解为多媒体实验室)待了一年,在这段时间 我主要在从事指导工作,会在他们的项目中进行调查辅助。但也同时,他们也会询问如果资金充裕的话我想干什么。我非常吃惊! 我曾经提到过我一直想设计一套自己的服装。我喜欢缝纫,缝纫也是非常考验几何学认知的一项技术—— 也是美学必不可少的元素。而且我也一直相信,计算机可以让服装设计模式更加容易。所以当我把这个想法和他们说了后,我得到了资金,并且我还在吃惊于自己的这个项目完全成为了实际的研究对象。

制作服装用到的「接口」直接是真人大小的人体模具,你可以直接在上面绘画出一条裙子— — 通过一个动作跟踪(montion-tracking)笔,通过这支笔系统会检测到你的所有路径并基于此生成一个 3D 的穿着这条裙子的模特。例如你可以去掉袖子部分和领口甚至是后背部分。程序之后会用到扁平算法将 3D 变成 2D,这样你就可以开始剪裁和缝纫了。从 3D 到 2D 需要算法预估出最小的方块用来评估两个维度的最小差距,之后就用这个算法生成 2D效果。

我花了接近一年的精力从事这件事情,从用户调研(我最自豪的是其中一位用户是前 Vogue Australia的编辑),到最后发布一篇论文。

在实验室里我最觉得幸运的是自己能看到许多有趣的实验项目。一天,我看到一个同事正在切他在扳手腕游戏中赢到的 Rilakkuma 熊,有些恐慌的我问了下原委他解释说不必担心:他正在往熊的身体里增加一些传感器。他正想办法将熊改造成一种按摩椅的控制器(不明觉厉啊)。最后可以通过这把椅子来直接控制给熊按摩!

归结为一句话,如果你想干一些超级有创意的项目,最佳方式之一是找到一群比你更有疯点子的疯子一起干活!

以上我的描述方式看起来会觉得东京是我整个职业生涯中的顶峰。的确是。但这也是我职业生涯中最糟糕的一段时光。我并没有提及(也害怕提及,因为我更希望人们关注我的研究和论文paper)的是在我的项目一周里,分配来指导我的调研顾问告诉我说,他有些建议和意见提给我,但只能在私下的晚餐时告知(嗯 无疑sex harrassment)。随着我待在实验室的日子变久,他的坚持也演变成试图送我回家并强吻我。我感到非常的担忧(如果我们只是这个实验室唯一的案例的话)。之后我便开始申请将他的名字移除在我的发表论文里—— 从始至终他没有给到我任何建议。有个同事注意到了我的担忧和异常,我委婉地表达了我的顾问在我身上的恶意行为(在看到有同事提及和关心对我也是一种解脱),我的同事回复了这么句话:“哇,你真的很相信自己呢,想必任何情况下你都能绝处逢生!”

直到我的一年拜访研究及论文发布结束,我才敢公开这些有关顾问的行为。并且我已经离开了日本。在对他的一年行为调查之后,他并没有被立即解雇,但是他和这所大学的联系已经无法再次申请了。同时我也申请学校开设「反骚扰」训练的条例(针对调查顾问以及在顾问提出建议时的约束条件),学校方也同意了。总之这是一个乐观的开始—— 尤其对比于其他人关于骚扰的控诉结果而言,但关于这此调查结果而言有个问题一直萦绕着我:”我们觉得 Amy 的个人行为让他觉得他有(追求Amy) 的机会。“ 我们生活在一个这样的世界中啊(指被强吻还是暗示在给男方机会的想法)。

以调查为工作的日常生活非常有趣和新颖。但我仍然想试试做一个人们日常想要用到的事物来看看。所以接下来我搬到了三番在一个小创业公司当一个网页工程师。我很开心在这样一个小工程团队里能够做任何想到的点子。从前端架构到数据库内容甚至是用户反馈支持。每一天我都告诉自己多么幸运和感激从而一直谦逊而行。所以我还是经过了一段时间才意识到网站一垮掉他们就开始假设主要还是我的锅。而只有他们去查看git 上的代码提交日记才发现其实是主管自己提交过的变动。我也会经常提出建议,而这些建议只有当某个男开发者重复提出才会被继续采纳。我有提及我是唯一的女工程师么?而性别成了每天都需要提及和忍受的关键词之一。在我提出离职申请之后,公司创始人告诉我应该放弃技术而转投时尚行业—— 因为他们认我我更适合后者。更惨的是,随着每天不停地被强调我的代码和糟糕以及我的点子也不咋样,我几乎就这么相信创始人说的话了。
所以我开始寻找至少有 HR 部门(可以让我去吐槽的地方)的小创业公司。我很喜欢在Airbnb 做前端的日子,同时也是增长团队里的核心成员之一。最有趣的一点就是要根据不同国家语言和文化对网站进行优化。有些网页可以稍后再进行国际化目标优化,但是如果你在东京有为美国旅游者提供的民宿,那么做一份日语版本的网站则很有必要了,当然支持语言越多当然也就越好了。

我还是很怀念折腾一些古怪又有趣的项目,所以我在业余时间里也依旧在尝试创作一些好玩的东西。 我的同事兼朋友 Matt Baker,Frank Lin 和我一起折腾了一个叫 Legoizer 的web app。它会将上传图片的所有颜色压缩到乐高颜色的色彩范围内(乐高的总共颜色只有33种),告诉你每一种颜色需要多少乐高块,以及拼接到一起的用户指南。同样也还要考虑到乐高块三位空间的距离计算。因为1:1的乐高并不是1个像素点,而是有高有低之间有距离差异。乐高玩具的拼接在我来看像是砖块的拼接。

下图是将星空图转变后的成果,结果表明,乐高在表达印象派画风的画上表现还是挺不错的。

下图则是我们用同样方法还在进行中的壁画:

我还在进行的一个项目(很多人也参与进来了: ALanna Scott ,Arthur Pang,Matt Redmond,Dave Augustine, 和 Ben Hughes),是为了黑掉一个缝纫机。灵感来自于80年代的 Nintendo 广告,广告的推荐点在于在视频游戏中插入 Kotaku 的广告。并且在一篇游戏软文中提及这些广告都是从不间断的。

广告里提及的游戏有点像 Mario paint 的画风,但是它会将你画的设计图进行「缝纫风格化」。去大多数的评论是“lol,终于懂我为什么做不出来了2333”。但是我觉得这是世界上最棒的点子。而且我想实现它。我研究调查了下是否 Nintendo 有任何可用的原型进行参考——可惜 并没有公开化。但是我发现八九十年代缝纫机非常流行便觉得这是一个点子可以跟踪的方向。而从90年代,用来存储「缝纫样式」的计算机主要是通过软盘。于是我在我们的机器上仿真了一个软盘,然后通过接上去的 USB 接口给机器发送模拟缝纫机的1 位位图。然后我们把这个软盘放到服务器上,最终我们上船图片时就能通过一个web接口将图片内容传递给「缝纫机」从而出效果图。

两年前,在 Airbnb 待了3年(待得最久的公司),我又一次决定挑战新的事物。

在孩童时代,我一直希望数学书应该有更多新颖的插画图。这样不仅仅是说明数字问 题,更是用来解释一些概念或者逻辑化一些疑难说明。而从孩提时代起,我就梦想着长大后去学习画 数字和科学课本的插画。

两年前我有了一次顿悟。即我要开始为数学及科学课本进行插画设计了。

我决定用 Zines 来记录自己关于计算机科学主题的插画。我在kickstarter上发起了众筹。第一天的众筹非常吃惊,不到一个小时就已经到了众筹的预需资金,同时 纽约客也发布了一篇文章来描述我如何让计算机科学变得更亲近,同时也通过这次众筹更有参与感。而这一天也是我在airbnb度过的最后一天,我的同事们都很支持这个项目并一直在鼓励着我—— 导致我几乎一整天都在哭(23333)

所以,为什么是 Zines, Zines又是什么?为什么这个项目重要到我需要辞去我的全职工作?

如果你之前没听过,Zines 是一种自媒体式的在线杂志体。在90年代它们非常受欢迎,部分朋克和 DIY元素精神都依旧保留。自媒体氏的gone 能对我而言非常重要,理由有几种:对于我想说的和话的内容有自主控制权 —— 我不需要一位编辑告诉我说一位13 岁的孩子不爱阅读以及加密方面的知识;我也不需要编辑告诉我没人会对这些杂志上心,去画一些好玩的东西。这种自媒体方式对我而言也很重要—— 我想用户对成果展示也不会抱太大的期待(与我而言也是一种放松)。因为我一直把这个项目延期—— 主要我感觉自己既不算事一个好的工程师,也不算一个优秀的艺术家。但zines可以用 FEDEX-Kinkos 常规打印出来。那么随后孩子们也可用这个不完美的作品上挥洒自己的想法了。所以在我理解中 Zines 给了我空间去犯错,去实现不完美—— 也让我对这个项目一直上心,感到不可怕,也感到念念不舍。

我还有接近一年的计划时间在 Zines 上写杂志。包含了「操作系统如何工作」「图像处理」和「计算机语言」等等主题。接下来干什么我不确定,但百分百确定的是我拥抱和期待这种未知性。回顾我的事业生涯,感觉我有个不寻常的职业路径。但是最终都会走到一条路上去——尽管可能一开始我不知道要做什么。

我也有朋友从毕业之后一直从事着相同的工作。我也有朋友做到了爬到了事业的顶端(合伙人),从实习生、中级工程师到最后的技术领导人或者项目经理。我为他们高兴也为他们自豪。我也为任何做到这个层面的你们感到高兴和自豪。尤其是边缘人群(女性。有色人种,残疾人士和 :LGBTAQ 人群以及更复杂的融合人群)。而我自己也确信走这条路不会让我满足,我也想告诉你如果你也深有同感是很正常的。

我的求职之路不寻常,和大部分循规蹈矩有清晰化职业路径的人不一样。但对我而言还是很重要的。对我而言,我对科技和艺术的喜爱让我走上了这条路,而每每一条古怪的求职路径都会让我将这两点结合起来。又因为每天都在做这样的事情,也让我想要技术更加亲民和随时可触变成了可能。

另外一点还需要针对我的特殊职业路径做出一个解释,我为什么会选择这样做 — — 我和twitter 上一位好友聊到为啥选择了计算机科学。在高中时,我非常喜欢玩计算机,同时只要我在计算机上编程实现的事物在现实生活中成为了可能我会非常高兴,这也是个非常奇妙的经验。

但这样的奇妙经验也会很快消失。我依稀记得在课间挣扎着上课,怀疑我自己并不是足够优秀。我也依稀记得被前任们说愚钝而且甚至毕不了业。我记得被跟踪被骚扰—— 我一无所有,就只能专注于学术研究。我记得有一个交换机会最终化为泡影是因为我的幻想(应该是得了抑郁症)而非我对我自己的事业精湛感兴趣(而被认可得到)。我记得被同事和领导低估能力—— 这个倒最可能是发生在你身上的经历如果你的专业不是计算机,或是上述所说的特殊群体。我记得因为爱穿裙子而被说不是个工程师。所以我记得唯一觉得被认可的感受就是自己开一个公司做自己的CEO。
上面的这些说法当然不是一直涵盖在我的职业生涯中的,因为我早就远离了这些问题的年纪了。这些说法都属于是一些极端糟糕的例子。每一个震惊故事的背后都有一位在技术圈子被被边缘化的人,他至少还有 50 个故事需要被经历和克服才能实现一个震惊的故事。

作为上述这些经历的总结,很多时候儿时计算机给我的魔幻力量逐渐已经消失。但是,我做的每一个将技术和艺术结合的项目,每一个我黑掉的缝纫机,每一个我画的插画,每一本我写的杂志,我所做的一切——为了让魔幻力量重新找到,也或者帮助其他人找到它们的力量,这也是我所求的了。这也是我为什么还在这里,还在不断奋斗。



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
author-avatar
孜雪颖2000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有