作者 | Aleksa Gordić
译者 | 弯月
出品 | CSDN(ID:CSDNnews)

最近,我拿到了 DeepMind 的研究工程师职位!对我来说,这无疑是梦想成真,我简直不敢相信!

我没有机器学习的博士学位,没有机器学习的硕士学位,实际上我没有任何与机器学习有关的学位,我的本科专业是电子工程,我所接受的正规教育就这么多。在攻读电子工程硕士学位期间,我发现自己自学的效率更高,于是就选择了退学。

我第一次接触机器学习是在 2018 年,而我第一次接触编程是 19 岁(现年 27 岁)。那么,我究竟是怎么做到的?(注意:我并不是特别聪明,你也可以!)

我将在本文中分享所有的经历。为了尽可能地提供帮助,我会知无不言,言无不尽。这篇文章除了我个人的情况介绍,自学软件工程以及机器学习的过程,还有我顺利通过面试进入 DeepMind 的心得,希望能对各位有所启发。

本文大致分为三个部分:

  1. 个人的背景介绍,以及截止到目前的学习历程。我不想误导你们,让你们觉得即便没有扎实的基础和自学经验,没有机器学习的学位,仍然可以在短时间内实现这一目标。
  2. 我将详细介绍自 2018 年第一次接触机器学习以来,自学机器学习的整个过程。
  3. 最后,我将介绍如何准备 DeepMind 的面试。
    注意:虽然本文谈论的是 DeepMind,但这些经验同样适用于任何一流的 AI 实验室或公司,比如 OpenAI、FAIR、AI2 等。

下面,我们开始!

第一部分:背景介绍(没有机器学习学位)

那是 2017 年的夏天,我在一家名叫 Telocate 的德国小型创业公司实习,担任Android 开发。当时我即将从电子工程专业毕业,这个专业主要学习的是数字/模拟电路,计算机科学方面的课程并不多。

在我的本科学习即将结束之际(2016 年底),我发现我非常想转到软件行业。与硬件行业相比,软件更有意思,而且更加开放,还有各种黑客马拉松和数据马拉松,而且薪资待遇非常可观。

于是,第二年(2017年)早些时候,我开始自学 Android,并获得了此次实习的机会。当时我非常兴奋,觉得整个世界都是我的。

回到 2017 年的夏天。有一天,我和一位朋友聊天,我知道他是一位非常成功的软件工程师,曾在 MSFT、Facebook、Jane Street 等多家公司实习,而且当时他是我的同期,在聊天中我意识到自己落后了很多(至少在软件工程方面)。我的一些朋友从高中时代就开始参加各种编程比赛。如今,算法和数据结构已经成为了他们的第二天性。

我想申请大型科技公司的职位,但我突然意识到,在科技巨头的公司面试中,我多年来积累的所有技能都微不足道。没人在意我会说 5 种语言,我知道很多关于微控制器工作原理的细节,如何从零开始搭建模拟高频电路,以及计算机的工作原理,但实际上人们在乎的只有算法和数据结构。

我感到既困惑又愤怒。有个孩子年仅 16 岁(当时我 23 岁)就已经在Leetcode 上做了 9 个月的编程题,尽管他缺乏大量的基础工程知识,但事实就是,连他都遥遥领先于我。

那种感觉非常糟心,我至今记忆犹新。我这个人一直很有上进心,而且勤奋刻苦,但如今却落后了。我很后悔为什么没有早一点看清这一切。可是,又能怎样呢?这个世界本来就是不公平的,但这种不公平干激励了我。我暗暗下决心,接下来几年我会加倍努力,飞速追赶。

实习结束以后,回到学校我顺利毕业了。我记得我的一些朋友庆喝着啤酒,聊着天,前后庆祝了三个多星期。我呢?只在周末庆祝了一下顺利毕业,然后就立即开始制定计划。我感觉自己承担着某项使命。

我象征性地注册了硕士课程(研究生可以获得一些津贴),但我心里明白我很想进入大型科技公司工作。因此,我动手制定了一份软件工程的学习计划,此外,还参加了大学的算法课程,尽管我并没有注册这些课程。我和比我小两岁的学弟学妹们坐在一起上课。

在接下来的几个月里,我疯狂地学习,而且还申请了很多公司。不久之后, 2017 年 12 月我参加了 Facebook 的面试,但在第一轮就惨遭失败。

我一直在坚持学习,还收到了微软的面试邀请,定在 2018 年 3 月。于是,我努力地学习。我参加了黑客马拉松和数据马拉松,并开始编程比赛(主要是在Topcoder上 )。

2018 年 2 月,我听说微软组织了一个机器学习暑期培训班。于是,我申请了这个培训班,并参加了为期 3 天的入学考试,最后我居然被录取了!我有一种强烈的直觉,这是一次向微软展示自己的机会!

大约在同一时期,我拿到了一家巴西公司的实习机会。这是一次奇妙的生活体验(我和 11 位巴西人共同生活了一段时间,而且还不得不学习说葡萄牙语),但算不上技术实习。这次实习紧跟在微软暑期培训班的后面。

2018 年 3 月,我参加了微软的面试。但我未能通过笔试。幸运的是,两个月后他们又给了我一次机会。我又试了一次,而且还通过了笔试,并参加了 4 轮的现场面试,然而三周后,他们告诉我目前没有空缺职位。我心里明白,我被拒绝了,又一次……

因此,如果说某人非常理解这个领域的新人,那么这个人就是我,我知道这整个求职过程有多么煎熬。

2018 年夏天,我参加了微软的机器学习培训班,并全力以赴。我非常投入,学到了很多知识,我们的最终项目被评为内部最佳项目(用深度强化学习解魔方)。暑期培训班结束后,2018 年 8 月上旬,我立即踏上了飞往巴西的飞机。然而三天后,我接到了微软的电话。我拿到了 Offer,并要求我尽快到岗。

那一刻,我悲喜交加。我不得不离开只住了一个多月的巴西。他们告诉我,接纳我的是“HoloLens 团队”,就是举办暑期培训班的团队。我肯定不能放过这个机会。于是,我接受了 Offer。

2018年 9 月,我进入微软担任软件工程师。我居然真的成功了,我欣喜至极。从此,我的软件工程以及机器学习的职业生涯就开始了。

然而,自从参加了暑期培训班后,DeepMind 和那种遥不可及的感觉深深地在我的潜意识中扎了根。我认识的 DeepMind 的人(他们曾在培训班讲课)都是牛津或剑桥毕业的高材生。但我的内心一直被那个没有可能性的挑战所吸引。我心想,曾经我以为微软遥不可及,但如今还是如愿以偿了。DeepMind 又何尝不可呢?所以,这个念头就深埋在我的潜意识里。

从 2018 年至 2019 年,在微软工作期间,我付出了巨大努力,尽可能地学习软件工程。我阅读了很多编程书籍,比如 Scott Meyers 撰写的 C++ 编程等。工作之余,我利用空闲时间学习机器学习。

在 2018 年底之前,我完成了 Coursera 上所有 Andrew Ng 的课程。此外,还参加了内部的机器学习黑客马拉松,并积极地参加了公司组织的机器学习培训班,同时还开始阅读研究论文。逐渐地,我开始对自己的机器学习知识越来越有信心。2019 年初,我分享了第一篇机器学习的博客。2019 年底,我在微软公司内部调整了岗位,并被派往 ICCV 2019 大会。

回来以后,我拿到了一个任务,要求利用 PyTorch 从零开始实现一篇论文。那时我对 PyTorch 一无所知。不用说,通过这个任务我学习到了很多知识。我再一次得到飞速成长。但这一次,我更聪明了,在网上分享了整个学习过程。

第二部分:机器学习课程(2020 年 1 月 - 2021 年 6 月)

2020 年,新年来临了。我建立了自己的 YouTube 频道,分享我的机器学习之旅。同时,我展开了紧张的学习。我决定在接下来的一年里学习AI的各个子领域,我大致地计划了一下,打算在每个子领域投入三个月的时间。

然而,刚开始的学习并不顺利,我只能再想办法。我学习的第一个子领域,神经风格迁移(Neural Style Transfer,即 NST),所花的时间超过了三个月,因为我觉得这个主题很有趣,又何必着急呢?

一路上,我为自己找到了一个完美的策略。我按照以下方式组织学习。我有一个“宏观”学习周期(每三个月学习一个子领域),并在此基础之上穿插了多个微学习周期。

微学习周期有两种类型:

  1. 输入模式:大量摄入信息。目标是对某个子领域的结构有一个高层次的理解(通过博客和视频等),或者是对某个主题(通过研究论文和书籍等)有一个深入的了解。
  2. 输出模式:分享我学习到的知识。制作 YouTube 视频、建立 GitHub 项目或编写博客文章。后来,我也开始在推特和 Discord 上分享文章。
    然而,棘手的问题是如何一边利用空闲时间学习,一边做好微软的全职工作。这需要强大的毅力。每天早上醒来,首先我会写两个小时的代码,然后去散散步。回来以后,开始投入微软的工作。结束工作后,小睡 30 分钟。晚上睡觉前我还会再工作 2~3 个小时。我一直保持着这种疯狂的节奏。
    关于时间管理和抗压能力,总结起来就几句话:强大的毅力、正确的心态以及合理的休息(小憩非常奏效)。
    下面,我来详细谈一谈我学习的有关机器学习的详细知识,主要包括三个子领域:NST、DeepDream 和 GAN。

1.NST(神经风格迁移)

在那段时间里,我学习了神经风格迁移。我阅读了一堆研究论文,实现了三个不同的项目,然后将代码公开到了 GitHub,还制做了一系列的 YouTube 视频。
我进一步加强了 PyTorch 知识,学习了很多关于 CNN 以及优化的知识,提高了我的演讲技巧,能够更熟练地阅读研究论文,并从总体上提高了我的软件工程技术力。
下面是使用我编写的代码合成的 NST 图像:

2. DeepDream

自从第一次看到用 DeepDream 制作的图片,我就深深地着迷。于是,我下定决心认真学习这门技术以及每一个细节。我无法满足于只使用在线生成器,我希望了解其背后的工作原理。
我阅读了很多博客文章,阅读了 reddit 上关于 DeepDream 的子版块,并探索了各种代码库。大多数代码都是用 Torch & Lua 编写的。为了在 Windows 设置这个环境,我浪费了很多时间。后来换到了 Linux 上,终于可以正常工作了,但我意识到我永远不会使用这个代码库。
我根据对 DeepDream 背后理论的理解,用代码生成了一些美丽的图像,下面是一个例子:

3.GAN(生成式对抗网络)

2020年初,GAN 依然非常流行。而我缺乏这方面的基本知识,于是我决定接下来学习GAN。

我阅读了很多开创性的论文(以及一些不太突出的论文),并实现了若干 GAN、cGAN(条件 GAN)和 DCGAN 模型。下面是我训练的 DCGAN 模型输出的图片:

图:从男人逐步演变成女人

4. NLP & transformers

我想学习更多关于 BERT 和 GPT 系列模型的知识。Transformers无处不在,但我不太了解。

我尝试从零开始实现 Transformer,并决定创建一个英德机器翻译系统。因为我会说这两种语言,所以我觉得这样调试起来更加容易,而事实也确实如此。

5.图/几何机器学习

在开始尝试 Transformer 之前,我就想更深入地研究图机器学习。
回想起来,我很高兴自己先学习了 Transformer/NLP,因为 NLP 对该领域产生了巨大的影响。GAT 的灵感直接来源于 Transformer 论文、Word2Vec 的 DeepWalk 等。

我用 PyTorch 实现了一个流行的 GAT,后来这个实现非常受欢迎,有人说这是一个非常适合初学者的资源。

6.RL(强化学习)

一直以来,我都很想学习强化学习,很巧 DeepMind 以其强化学习的突破性发展而闻名。我需要了解的论文和项目实在太多了, 比如 AlphaGo、DQN、OpenAI 的机械手等等。该领域与机器学习的其他子领域有很大的不同。数据点的独立性假设在此不成立,随机种子可能会导致代理无法收敛,等等。

幸运的是,我在接触强化学习之前就积攒了很多经验,否则我很有可能失去动力。这一次,我仍然从我最感兴趣的方面入手:计算机视觉,通过它来丰富的机器学习知识。后来,又慢慢地转向了其他我知之甚少的话题。

以上就是我学习的主要内容。我记录了整个学习过程:

除了这条学习“主线”之外,早在 2020 年初阅读论文时,我就意识到自己在数学方面有些欠缺,所以我花了一些时间阅读了《面向机器学习的数学》。此外,我还阅读了以下书籍:
●《PythonData Science Handbook》,第 5 章:帮助我学习了 SVM、PCA、线性回归等基本知识。
● 《Automatethe Boring Stuff with Python》,跳过了前 11 章:自从快速学习了这门语言以来,我觉得至少应该读一本Python 的书。这本书让我建立了良好的心态,从总体上提高了我的生产力(概括:自动化重复的工作)。
●《DeepLearning》:我只读了第一部分,因为我意识到我不需要理解所有的理论。你可以将这本书作为参考手册。
●《The Bookof Why》:读这本书是因为我对因果关系非常感兴趣。
此外, 在微软工作期间,我一直在从事各种软件工程与机器学习的项目:
● 开发了一个眼镜检测算法,作为 HoloLens 2 设备上眼动追踪子系统的一部分。眼动追踪子系统的目的是预测用户眼球的视线向量,并实现用户与全息图的交互。它还可以为特定用户显示正确的图形(每个人的眼睛都不相同,因此瞳距也不同)。
● 使用视频编码器,为各种 VR/MR 设备添加注视点渲染功能。这样就可以节省耗电量,因为不需要渲染周边视觉中的内容。我阅读了 H.264 编码器的整本参考手册。
● 实现了一篇研究论文中的一个想法(在 PyTorch 中从零实现),用于跟踪用户身体上的特征点,并表明我们正在考虑的特定传感器是一个可行的选择。我也通过这个项目学习了PyTorch。
● 编写各种脚本,用于验证标签是否正确。开发内部指标流水线的一部分,处理渲染和改进合成数据,各种量化,以及进行性能和计算量之间的平衡实验(因为我使用的是边缘设备),等等。
● 面试了一些微软软件工程/机器学习职位的实习生。这让我熟悉了面试过程,并对面试官有了一定的了解。
● 在机器学习培训班中辅导学生、讲课以及举办研讨会。

第三部分:DeepMind 向我敞开大门的经过

2021 年 4 月,我经一位朋友的介绍(我们在网上讨论机器学习认识的),找到了一家猎头。在看了我制作的 YouTube 视频以及 GitHub上的代码库后,他答应向 DeepMind 推荐我,并安排了一周后的面试。
一句话总结,人际关系非常重要。没有人愿意推荐一个不认识的人,包括我自己在内。除非我们很熟悉这个人,或者通过某个渠道了解这个人的能力。

最终面试准备

我申请的是研究工程师的职位。要想拿到 DeepMind 的 offer,你必须拥有扎实的背景。如果我没有在 GitHub 建立一系列机器学习相关的项目,没有之前的经验和一些成果物,肯定没有机会参加 DeepMind 的面试。

注意:我没有任何原创的论文。事实证明,申请研究工程师这个职位不一定需要发表论文。但是研究科学家可能会有所不同,这个职位肯定需要参加顶级会议的经历和博士学位。

我心里明白,即使你再优秀,也可能会遭到科技巨头的拒绝。对他们来说,宁可拒绝一个优秀的工程师,也不愿接受一个糟糕的工程师。因此,也不要有太多压力。

其次,面试中经常遇到问题可能在日常工作中根本用不到,因此你必须花费精力认真做准备。
下面是一些面试技巧:
● 认真研究你的每一位面试官。了解他们来自哪里以及他们是做什么的,这样你可以提出相关的问题。不要浪费他们的时间。你可以通过 LinkedIn、推特或其他渠道查看他们的个人资料。如果可能,请阅读他们的所有论文,或者阅读引用次数最多的论文。对于我的 DeepMind 面试官,我阅读了十多篇他的论文。虽然可能不是很必要,但我的确有这样的热情。
● 透彻地研究简历中注明的每一个项目。无论是 GitHub 上的项目,还是在以前的公司做过的项目,你都必须能够与面试官深入讨论这些项目。
● 模拟面试。找一些从事 AI 工作的朋友,充当你的面试官。
为了准备DeepMind的面试,我认真地研究了一下 AGI,并阅读了一些 AI 论文:
● 智能定义合集
○ https://arxiv.org/abs/0706.3639
● 通用智能:机器智能的定义
○ https://arxiv.org/abs/0712.3329
● 关于智能的测量
○ https://arxiv.org/abs/1911.01547

以前我也研究过阿兰·图灵的一些论文“计算机与智能”以及 John Searle 等论文。此外,我还观看了很多人都视频。

我做这项研究是因为这是 DeepMind 的使命:破解 AGI 并用它来解决高难度的科学问题。我觉得面试的时候肯定会有围绕这些主题的问题,所以我想全面了解一下。

下面,我们来看看 DeepMind 招聘研究工程师的流程,主要包含以下几个步骤:

  1. 与招聘人员的首次沟通。让他们了解你主要对机器学习的应用感兴趣,还是对核心研发感兴趣。你应该谨慎对待这个面试。
  2. 小测验。这是为了测试你对数学、统计、计算机科学以及机器学习基本主题的掌握程度。
  3. 编程面试。与 Google、微软以及其他大型科技公司的软件工程师面试一样。
  4. 团队负责人面试。你们将讨论各种主题。简历上的任何内容都可能被问及,此外还包括机器学习问题以及个人行为问题。
  5. 团队高级负责人面试。结构上与上一次面试非常相似。此次面试是为了更明确地评估你是否适合这个团队。
  6. 人与文化面试。最常见的 HR 面试。
    下面,我们来谈一谈如何准备这些面试。

面试1:与招聘人员的首次沟通

做好功课,想清楚你究竟想在 DeepMind 做些什么(尽可能多!)。DeepMind 有 2 个“团队”(实际上相当于两个部门,两个“团队”都在朝着一个共同的使命努力):
● “核心”研发团队。他们的工作更偏向于纯粹的研究。“类似生产”的项目包括AlphaFold(我猜应用团队也有参与)、AlphaGo 等。该团队中的研究人员从事的其他项目可能涉及与研究科学家合作,共同实现某些研究思路。
● 应用团队。他们所做的一些项目包括数据中心节能项目、改进 Google 应用商店的推荐系统、WaveNet、Android 节能等等(他们的工作不仅限于Google)。
你可以去 DeepMind 官网,阅读他们的博客,并研究公开招聘的职位。
此外,我强烈建议你阅读一些面试的书籍。每个面试官都会评估你的个性以及你是否适合团队,所以做一些这方面的准备绝对不会有什么坏处。

面试2:小测验

这可能是最难准备的部分,为了通过这个阶段的面试,你需要建立扎实的技术基础。
我为了面试做了如下准备工作:
● [计算机科学]我阅读了一些算法和数据结构的书。我跳过了一些我认为太“先进”的知识,比如 B 树(外部内存数据结构)以及特定的哈希函数等。此外,还复习了线性/非线性数据结构(图形/树)以及各种排序和搜索算法等主题。
● [计算机科学]我阅读了一些操作系统的书,复习了死锁、线程、虚拟内存等知识。还阅读了一些 Python 的博客。
● [计算机科学]我浏览了《算法导论》,复习了各种大O符号的理论。
● [数学、经典机器学习]我又读了一遍机器学习与数学的书籍。
● [机器学习]我复习了强化学习理论。在网上搜索了一些学习材料,什么是强化学习框架(env-agent-reward),什么是 MDP 等等。
● [统计] 我观看了很多 YouTube 视频,复习了一遍所有不太了解的概念,还浏览了一些剑桥的材料。
还没等复习完这些,我的面试就已经开始了,所以只是临时抱佛脚。我强烈建议你在开始面试之前就开始做准备。

面试3:编程面试

我提前做了一些编程考题。我的心得是,当遇到不知道怎么解决的问题时,你可以看看第一个提示。如果没有帮助,再看下一个,依此类推。最后,即便你设法解决了问题,也要认真看一看给出的解决方案。你能够从中获取一些解决同类问题的新思路。
此外,除了解决方案之外,你还必须分析解决方案消耗的内存以及时间复杂度。

面试4~6:团队领导与公司文化面试

你只需要读一些面试的书籍,然后注意一下面试的一些细节。比如,他们会问你:“你喜欢 DeepMind 的哪些地方?”、“你为什么选择了 DeepMind,而不是其他公司?”、“谈一谈你最喜欢的项目。”
实际上,我没有通过第5个面试(团队高级负责人的面试)。不过,实际上只是一个误会(我通过电子邮件收到反馈,他们非常友好),但生活还要继续。
作为一名“技术过硬”的候选人,我被安排再参加一次孵化/应用部门的面试。我就按照上述给出的建议又做了一次准备,然后就一次性通关了。我拿到了offer!
好消息是,在后一次面试中,我意识到孵化团队可能更适合我!

今后的计划

我将在今年晚些时候(2021 年 12 月)正式加入DeepMind,担任研究工程师。我对于下一阶段的职业发展兴奋不已!

许多新鲜事物在等着我。我将搬到英国伦敦。我必须建立新的社交圈。我将接触到一种新文化、新语言(因为伦敦的文化非常多元)、一家新公司,甚至还有一个新的操作系统!

接下来,我的打算包括:
● 在推特、LinkedIn 和 Discord 上分享我所做的一切。
● 在 YouTube 上分享更多几何深度学习论文的解析。
● 分享各种开源机器学习工具和研究代码。
● 学习 JAX,并与大家分享。

我希望通过本文与所有人分享我的此次经历,希望能为大家提供一些帮助。

参考链接:
https://gordicaleksa.medium.com/how-i-got-a-job-at-deepmind-as-a-research-engineer-without-a-machine-learning-degree-1a45f2a781de

我没有机器学习的学位,却拿到了 DeepMind 研究工程师的 Offer相关推荐

  1. 非科班AI小哥火了:他没有ML学位,却拿到DeepMind的offer

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 衡宇 发自 凹非寺 量子位 | 公众号 QbitAI 这两天,Dee ...

  2. 我在攻读计算机视觉和机器学习硕士学位时学到了什么

    正文字数:5085  阅读时长:10分钟 这篇文章介绍了我的经验和课程内容,但我相信其他大学的课程和我所学习的不会有太大的差别.因此,读者可以把这篇文章作为一个窗口,用来了解机器学习和计算机视觉的硕士 ...

  3. 高通(上海)招聘机器学习研究工程师

    点击上方"CVer",选择加"星标"置顶 重磅干货,第一时间送达 高通公司多媒体研发与标准部门在上海的计算机视觉团队目前有若干机器学习研究工程师新职位开放.团队 ...

  4. 《基于机器学习的雷达辐射源分选与识别技术研究》论文解读

    <基于机器学习的雷达辐射源分选与识别技术研究>论文解读 Data:2023-2-04 Ref: 李雪琼, "基于机器学习的雷达辐射源分选与识别技术研究," PhD Th ...

  5. 我在攻克机器学习硕士学位的那些年

    编者按:人工智能发展日趋成熟,也成为众多开发者职业生涯的首选方向.然而相较于其他领域,人工智能中的深度学习.机器学习.计算视觉.神经网络等技术更为错综复杂,进修难度也更胜一筹.对此,对于入门和想要进阶 ...

  6. 攻克机器学习硕士学位,我的那些年与必备技能!

    编者按:人工智能发展日趋成熟,也成为众多开发者职业生涯的首选方向.然而相较于其他领域,人工智能中的深度学习.机器学习.计算视觉.神经网络等技术更为错综复杂,进修难度也更胜一筹.对此,对于入门和想要进阶 ...

  7. python人工智能入门纳米学位_学习笔记(一) - 机器学习纳米学位

    不久前我在Udacity报名了数据分析和机器学习两门纳米课程.之所以对这个感兴趣是因为关注人工智能方面的资讯有一段时间了,觉得这是未来的趋势,希望今后能够在这方面有所成绩.选择纳米课程是因为我觉得它与 ...

  8. python人工智能入门纳米学位_项目心得-Udacity机器学习纳米学位项目(一)

    作为零基础非科班的学生,我从去年保研结束敲定下家后,决心系统地学习一下开始接触机器学习的知识,因此报名了uda家的网课.uda家的课最大的特点是设计精良和贵--值得一提的是某些公司的面试题就是uda家 ...

  9. 香港理工大学智能计算实验室招收进化计算/机器学习/类脑计算方向全奖博士生/研究助理/博士后...

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 香港理工大学 香港理工大学 (The Hong Kong Polytechnic University) 是 ...

最新文章

  1. 中科大“九章”历史性突破,但实现真正的量子霸权还有多远?
  2. 芯片业又起波澜!博通189亿美元收购遭质疑,股价一度跌近19%
  3. Python 字符串操作
  4. flutter AppBar
  5. 用python-opencv实现简单的车牌定位
  6. ios c语言编译环境搭建,iOS开发之runtime(一):runtime调试环境搭建
  7. ELF 动态链接 so的动态符号表(.dynsym)
  8. Nginx(6)-配置基于域名的虚拟主机
  9. 【转】BW的星型数据模型
  10. 实时即未来!Flink Forward Asia 2021 议程正式上线!
  11. python快速编辑入门答案_1.1、Python快速入门(0529)
  12. 直播开发平台、搭建直播系统平台基本的步骤
  13. 如何判断视频数据是H264编码
  14. JSFinder自动化脚本一键批量处理URL(附自动执行脚本带whatweb筛选)
  15. 【Excel 教程系列第 17 篇】如何根据图片名称自动查找出对应的图片
  16. iMindMap2020 中文旗舰免费版
  17. 服务器搬迁方案_网站服务器迁移方案
  18. android压缩gif大小,使用手机制作GIF动图,免费无水印、大小可调,安卓、iphone都可以...
  19. 电商网站前台模板_湖州搜索引擎优化网站网络推广营销公司
  20. iOS热更新实现方式

热门文章

  1. leetcode953. Verifying an Alien Dictionary
  2. ACM基础——OJ上的Java代码提交规范
  3. extjs combobox column布局为什么折叠在一起
  4. 【算法设计】最大子段和问题解析(对应算法第三题)
  5. a,b值进行交换的方法
  6. 19. 顺时针打印矩阵
  7. leetcode 559 N叉树的最大深度
  8. bat批处理命令拨号上网
  9. JAVA垃圾回收机制勘误
  10. php curl header 下载_PHP通过curl下载文件到浏览器