热门标签 | 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 个故事需要被经历和克服才能实现一个震惊的故事。

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



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 前端性能优化无损压缩webp格式的图片
    一、什么是webpWebP格式,谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的23,并能节省大量的服务器宽带资源和数据空 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
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社区 版权所有