<?xml version="1.0" encoding="utf-8"?>
<search> 
  
    
    <entry>
      <title><![CDATA[几个大厂的校招面经]]></title>
      <url>/%E5%87%A0%E4%B8%AA%E5%A4%A7%E5%8E%82%E7%9A%84%E6%A0%A1%E6%8B%9B%E9%9D%A2%E7%BB%8F.html/</url>
      <content type="html"><![CDATA[<p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/%E8%B0%B7%E6%AD%8C%EF%BC%8C%E5%BE%AE%E8%BD%AF%EF%BC%8C%E9%98%BF%E9%87%8C%EF%BC%8C%E7%BE%8E%E5%9B%A2%E5%AE%9E%E4%B9%A0%E7%94%9F%E9%9D%A2%E7%BB%8F/offer.jpg" width="550" height="367" alt="offer" align="center">校招面经！谷歌、微软、阿里等大厂面经!<a id="more"></a></p>
<h2 id="基本情况"><a href="#基本情况" class="headerlink" title="基本情况"></a>基本情况</h2><p>收割情况：一共投递8家，收获微软、阿里、网易游戏、地平线4家special offer，今日头条转岗offer，腾讯没给面试机会，摩根士丹利面试冲突放弃，谷歌等待offer中。<br>个人情况：某985硕士，常用语言C/C++、Python，研究方向为深度学习、计算机视觉，有论文，ACM等算法竞赛和数据挖掘类竞赛获奖经历，项目众多。有算法岗的都是投了算法岗，有深度学习的就投深度学习算法岗，有图像的就投图像深度学习算法岗。</p>
<h2 id="阿里巴巴"><a href="#阿里巴巴" class="headerlink" title="阿里巴巴"></a>阿里巴巴</h2><p>实习面试过了，校招直通终面，8月16日通知我面试安排在8月17日，且面试日期不可修改，没能去参加摩根士丹利的直通车，不知道有没有上黑名单。</p>
<h3 id="终面技术面"><a href="#终面技术面" class="headerlink" title="终面技术面"></a>终面技术面</h3><p>8月17日，45min</p>
<ul>
<li>聊实习，聊项目。</li>
<li>算法题：2乘n的格子用1乘1和2乘1的砖块盖有多少种方法？典型DP，写了转移方程，面试官就说不用写代码了。</li>
<li>现在的搜索技术很少上深度学习或者说很深的网络，你觉得是为什么？如果要用深度学习，你觉得应该往哪些方向思考？deep learning比较吃资源，不太适合业务规模比较大的系统，比如：双十一的压力，如果一定要用，可以考虑深度模型压缩，量化，矮胖网络的并行计算等方向。</li>
<li>聊聊人生理想。</li>
</ul>
<h3 id="HR面"><a href="#HR面" class="headerlink" title="HR面"></a>HR面</h3><p>8月17日，45min</p>
<ul>
<li>HR先介绍了淘宝搜索这边的基本情况。</li>
<li>问了ACM和论文经历，平时都怎么训练，怎么做科研。</li>
<li>为什么拒了阿里的实习offer？</li>
<li>校招拿了几个offer？选择offer的时候你更关注什么？ 成长性，相关性，还有…当然是薪水啦！</li>
<li>阿里比微软更能让人快速成长，安利一波。</li>
</ul>
<h3 id="结果"><a href="#结果" class="headerlink" title="结果"></a>结果</h3><p>8月30日，拿到offer意向书。<br>10月17日，拿到special offer，薪资很高，但考虑其他家给出的工资，加班情况，放弃了。在得知我的动摇之后，阿里派了一位很有资历的前辈和我聊了很久个人的发展，他并没有一味的站在公司的立场上劝我加入，只是和我分享了一些自己的个人经历，并客观对比了我所纠结几家的优劣，我觉得分析的还是很有道理的，没有一味吹嘘阿里，也说了一些缺点，让人感觉很真诚。</p>
<h2 id="今日头条"><a href="#今日头条" class="headerlink" title="今日头条"></a>今日头条</h2><p>头条的面试时间安排灵活且集中！！！</p>
<h3 id="笔试"><a href="#笔试" class="headerlink" title="笔试"></a>笔试</h3><p>8月12日，5道简单、中等难度的算法题，做了4.5题。</p>
<h3 id="一面"><a href="#一面" class="headerlink" title="一面"></a>一面</h3><p>8月18日，45min</p>
<ul>
<li>聊实习，聊项目。</li>
<li>算法题：上n个台阶，每次一步或两步，求走法数量，简单DP。</li>
<li>算法题：上一题变形，最多只能连续走m次两步。依然DP，dp[i][j]表示到第i级台阶，前面连续走了j次两步的走法数量。写出转移方程，面试官没有让写代码。</li>
<li>写一个快速排序。一紧张，左侧大元素和右侧小元素交换没写，可能面试官也看出来我没有背过，告诉我不要紧张…</li>
<li>sigmoid和softmax的区别和联系。sigmoid二分类，softmax多分类，softmax在二分类下退化成sigmoid。</li>
<li>分类一般用什么损失函数？写交叉熵的公式。</li>
</ul>
<h3 id="二面"><a href="#二面" class="headerlink" title="二面"></a>二面</h3><p>8月18日，45min</p>
<ul>
<li>聊实习，聊项目。推导了我在项目里用的做过改进的LSTM的公式。</li>
<li>针对实习提问题：为什么要加入reading-gate？为什么不直接把控制向量加在输入中？和具体实习做的东西有关，在面经里就不多说了。</li>
<li>深度学习里的正则方法有哪些？数据加噪，增强、范数正则、dropout、集成学习、提前终止训练、多任务联合。</li>
<li>weight decay和范数正则有什么关系？这个当时我没想到，后来下来一查恍然大悟，weight decay的系数其实就是L2正则前面的lambda系数，求个导，梯度下降的时候和w合并一下就看出来了。</li>
<li>Mask RCNN做了哪些改进？分割和检测任务联合；多个二分类mask，避免类间竞争；ROI对齐，但是我记得不是太清楚了，说了用求周围均值的方法填充边界，后来面试官提示了才想起来是插值。</li>
<li>算法题：最大子串和问题。DP，写完代码，面试官说，用的c++11写法太多了，他不太熟悉c++11，正好时间又不够了，是O(n)就行吧。</li>
</ul>
<h3 id="三面"><a href="#三面" class="headerlink" title="三面"></a>三面</h3><p>8月18日，45min</p>
<ul>
<li>聊实习，聊项目。问了和二面第二个一样的问题。这个问题确实是精髓所在。</li>
<li>Mask RCNN和二面第5个问题一样。</li>
<li>NLP和CV结合在头条的产品里可能有哪些应用？已经实现和未实现的都可以。必须image caption啊，虽然很难，但是在头条的新闻和抖音都有很大的用途的。然后聊了一些前沿的方向。</li>
<li>更喜欢做CV还是NLP？更喜欢做产品还是研究。</li>
</ul>
<p>面试官说后面有可能会让CV背景的同事再面一轮。HR打电话，反馈结果不错，等通知就行了。</p>
<h3 id="结果-1"><a href="#结果-1" class="headerlink" title="结果"></a>结果</h3><p>9月3日，问我是否考虑转安卓，IOS开发？如果同意的话，不用其它面试直接发offer了。我？？？不转…<br>9月7日，又问我是否想转，承诺薪资不会比算法低。可是我实在不懂安卓和IOS开发啊，怎么转？没有下文…</p>
<h2 id="网易游戏"><a href="#网易游戏" class="headerlink" title="网易游戏"></a>网易游戏</h2><p>猪场食堂还不错。</p>
<h3 id="笔试-1"><a href="#笔试-1" class="headerlink" title="笔试"></a>笔试</h3><p>8月12日，线下笔试，综合性较高，考察了传统机器学习，深度学习，强化学习，分布式计算，编程基础，数学基础。做完一脸懵逼，听说均分只有30多分？</p>
<h3 id="一面-1"><a href="#一面-1" class="headerlink" title="一面"></a>一面</h3><p>8月22日，45min</p>
<ul>
<li>聊实习，聊项目。</li>
<li>讲讲LSTM和实习项目中做的改进？</li>
<li>有一个多行的超大文件，内存装不下，如何中找出相同的行？我想了一会儿，用哈希，面试官点头，应该是对的吧。</li>
<li>python中，线程，进程，协程区别。线程，进程好说，协程我没怎么用过啊，python写写实验代码差不多了，老实回答：不太清楚协程。</li>
<li>我看你本科是学的信息安全，你能跟我讲讲SSL吗？差不多都忘了，讲了一些基本原理和中间人攻击的东西。</li>
<li>计算机网络怎么样？学过，忘了很多。然后就没有问了。</li>
</ul>
<p>这充分说明不会就是不会，不要硬扯。</p>
<h3 id="二面-1"><a href="#二面-1" class="headerlink" title="二面"></a>二面</h3><p>8月22日，45min，面试官是个研究员</p>
<ul>
<li>聊实习，聊项目。</li>
<li>推一遍LSTM，用公式写出实习项目中做的改进并说说怎么用tensorflow实现的。推了一遍公式，实现是继承了RNNCell魔改，大致写了一下类的设计。</li>
<li>聊我的论文。</li>
<li>说说DC-GAN。</li>
<li>说说Faster-RCNN。</li>
<li>说说BN和LN。我把LN听成LRN了，后来想再说的时候，面试官说不用了。</li>
<li>skip connection作用。防止梯度消失。</li>
<li>说说决策树。信息增益那几个公式我混淆了，就说了一个决策树的大致思想。</li>
<li>tensorflow有哪些缺点？速度慢，频繁更新，修改API，结构混乱，同样的功能可以在多个地方找到不同的实现。</li>
</ul>
<h3 id="三面-1"><a href="#三面-1" class="headerlink" title="三面"></a>三面</h3><p>8月22日，20min</p>
<ul>
<li>聊我的论文。</li>
<li>说说Faster-RCNN，YOLO，SSD，FPN。</li>
<li>算法题，简单DP，最长上升子序列，对话很有趣：</li>
</ul>
<p>Q：“写个堆排序。”<br>A：“我忘记堆怎么维护的了”<br>Q：“那如果告诉你怎么维护的你可以写么？”<br>A：“可以。”<br>Q：“那我们来写个最长上升子串吧！”<br>A：“是子串，不是子序列，是吧？”<br>Q：“你就写子串吧，子序列更难一些”<br>A：“子串太简单了，我还是写子序列吧！”<br>2分钟后，写好了<br>Q：“lower_bound(), 我还以为你这么快写完了呢？”<br>A：“那我再手写一个二分？”<br>Q：“不用了，可以了，可以了。”<br>开始安利网易游戏。</p>
<h3 id="HR面-1"><a href="#HR面-1" class="headerlink" title="HR面"></a>HR面</h3><p>8月22日，30min</p>
<ul>
<li>这些项目是自己接的私活儿还是老板给的？老板。</li>
<li>你最有成就感的项目是哪个，你担任什么样的角色？XXX项目，核心开发者。</li>
<li>这个项目遇到的最大问题是什么？你是怎么解决的，用了多久？原来的算法效果完全不能用啊，我干了XXX，马上提升了XX指标XX点。</li>
<li>近期比较大的挫折是什么？很久以前，本科ACM打过铁。</li>
<li>如何看待微软的工作氛围？没有网易这么充实（轻松惬意）。</li>
<li>有哪些offer，如果我们开出相同的价格，你会怎么选择？有balabala。优先考虑，a.成长性，我是希望加班的（别不给钱就行） b.薪水。在工作比较对口，能让人快速成长，不是天天写业务的情况下，优先考虑巨硬啊，毕竟生活成本比较低，而且第一年惯例有package，薪水不会差太多。<em>当然，如果有公司的base能多10w，可以考虑。</em></li>
<li>家在哪里，家人反对来杭州吗？如果过来会干几年，会不会跳槽？</li>
<li>你问了之前面试官哪些问题。</li>
<li>玩过哪些游戏？可多了，一一列举。</li>
<li>研发比较辛苦，安利网易游戏算法岗还是挺轻松的。</li>
</ul>
<h3 id="结果-2"><a href="#结果-2" class="headerlink" title="结果"></a>结果</h3><p>9月7日收到offer意向书。<br>10月18日收到special offer，薪资比其他几家差一点，考虑到加班和游戏行业的局限性，放弃了。</p>
<h2 id="地平线机器人"><a href="#地平线机器人" class="headerlink" title="地平线机器人"></a>地平线机器人</h2><p>没有内推，但是简历被捞起来参加提前批了。</p>
<h3 id="一面-2"><a href="#一面-2" class="headerlink" title="一面"></a>一面</h3><p>9月3日，45min，全程聊论文和项目。</p>
<ul>
<li>重点探讨了小目标检测的trick和类别不均衡问题。应该是把自己踩过的坑都问了我一遍，好在我踩得坑也不少！</li>
<li>讲讲RCNN系列的演变过程。</li>
<li>讲讲YOLO，SSD。</li>
<li>讲讲RFCN，重点阐述position sensitive score map。</li>
<li>讲讲FPN。</li>
</ul>
<h3 id="二面-2"><a href="#二面-2" class="headerlink" title="二面"></a>二面</h3><p>9月5日，45min</p>
<ul>
<li>聊实习，聊项目</li>
<li>有一条历史时间线，上面有很多人，每个人有出生和死亡日期，设计一个结构，能快速查询和某一个人同时出现的所有人，比如：查询曹操，那么结果应该是夏侯惇，曹仁等…。先说了线段树，分析了时间和空间复杂度，空间复杂度让我推了一个级数和。</li>
<li>看起来空间复杂度是可以接受的，那么如果共同出现不是精确到天要精确到秒呢？可以在叶子节点上排序。</li>
<li>有没有更优的策略？我没想出来，面试官提示了哈希，我就顺着他的想法说了，以日期为key，value是这天活着的人的有序集合。ok，面试官很满意，然而我觉得这样的做法并没有比我的线段树更优，因为对于查询的人，他活着的每一天我都要查hash表，这样复杂度其实是O(n)，n是这个人活着的天数，大约是1e5这个数量级的，而线段树支持区间查询，只需要O(logm)，m是有文字可考的历史线上天数，按中华上下五千年算，m大约是5000*356的级别，加上log，远远小于1e5。嗯嗯，所以我的答案应该是比他的标准答案还要好。</li>
<li>打开百度图片搜索，可以看到虽然同一行所有图片的高度是一样的，但他们的原始高度肯定是不一样的，这个后面可能是怎么实现的？以每一行的第一张图片高度为基准，random一个偏差，以基准加偏差作为这一行的高度，所有图片resize到这个高度，然后往固定的行宽里填充，如果变形太多，就取一个放到下一行。</li>
<li>手撕代码，自定义结构，实现这个自动调整图片排列的功能。时间不多，撸了个大概。</li>
</ul>
<h3 id="三面-2"><a href="#三面-2" class="headerlink" title="三面"></a>三面</h3><p>9月19日，60min</p>
<ul>
<li>聊项目，聊实习，推公式。</li>
<li>有一个图像分类的问题，类别有2000万类，不考虑计算资源和网络结构合理性的问题，暴力地在最后做2000万的全连接。只看对前900万类的分类，效果很好，如果加上后面的1100万类，网络无法收敛，可能是什么原因？既然不考虑网络结构和计算资源，那么只可能是数据的问题，有可能是类别不均衡导致的，可以用重采样或者部分类别做数据增广的方式解决。</li>
<li>如果数据确保没有问题，依然出现这样的情况呢？没想出来，好在他提示了。</li>
<li>面试官提示，我做了一个实验如果把后面1100万的类标从0开始标记，问题就消失了，即label = 11000000的变成0，11000001的变成1，以此类推。这个问题确实不好想，但是我踩过坑啊，类标是转成浮点数计算的，所以位数上去以后会损失精度。</li>
<li>说一下浮点数在计算机里的表示，为什么会损失精度？具体表示是本科学的记不清了，大概是由符号位，有效数字位和幂次位组成，所以超过有效数字位的精度会被忽略掉。</li>
<li>怎么解决这个精度问题？<br>手写高精度的loss;级联分类器，前几个分抽象类，最后一个分到具体类。</li>
<li>Re-id的东西问了一点。</li>
</ul>
<h3 id="结果-3"><a href="#结果-3" class="headerlink" title="结果"></a>结果</h3><p>9月19日收到offer意向书，当天发，真赞！<br>10月22日收到special offer，在南京的企业里真的算非常高了。</p>
<h2 id="微软"><a href="#微软" class="headerlink" title="微软"></a>微软</h2><h3 id="实习生转正面"><a href="#实习生转正面" class="headerlink" title="实习生转正面"></a>实习生转正面</h3><p>印度大佬英文面。</p>
<ul>
<li>聊了实习做的东西和team里其它人做的一些东西。</li>
<li>算法题：丑陋数变体。手撕代码，推出了int型的丑陋数上限并分析复杂度。</li>
<li>愉快地聊人生理想。</li>
</ul>
<h3 id="结果-4"><a href="#结果-4" class="headerlink" title="结果"></a>结果</h3><p>10月9日收到offer意向书。<br>10月23日收到special offer。</p>
<h2 id="谷歌"><a href="#谷歌" class="headerlink" title="谷歌"></a>谷歌</h2><h3 id="基本情况-1"><a href="#基本情况-1" class="headerlink" title="基本情况"></a>基本情况</h3><p>七月底和八月底有两场，校招必须通过至少一场。<br>面试总共五轮，一轮视频面，四轮onsite面试，其中包括两轮中文技术面，一轮英文技术面，一轮英文非技术面。<br>因为邮件里特意强调了不要泄露面试题，所以尊重一下，还是不说具体题目了。就说说面试感受吧。<br>面试安排真的是所有公司里最奢华的了，陆家嘴五星级酒店江景房，报销路费伙食费。定时有邮件通知面试进度，不会像有的公司十天半个月没有消息，所以虽然时间拖得很长，但并没有很焦虑的感觉。</p>
<h3 id="结果-5"><a href="#结果-5" class="headerlink" title="结果"></a>结果</h3><p>战线拖得很长，还在焦急地等待结果中。</p>
<h2 id="摩根士丹利"><a href="#摩根士丹利" class="headerlink" title="摩根士丹利"></a>摩根士丹利</h2><h3 id="大摩直通车"><a href="#大摩直通车" class="headerlink" title="大摩直通车"></a>大摩直通车</h3><p>就等参加呢，和阿里面试冲突，两边时间都不可调整，遂放弃。</p>
<h2 id="腾讯"><a href="#腾讯" class="headerlink" title="腾讯"></a>腾讯</h2><p>简历未被捞起来。</p>
<h2 id="感受"><a href="#感受" class="headerlink" title="感受"></a>感受</h2><ul>
<li>实习和项目，对于找工作太重要了，如果实习单位足够好，几乎所有面试官都会问，基本上一聊实习和项目20-30min就过去了。</li>
<li>算法题不用刷太难的吧，面下来感觉大部分都是easy级别的，重点在于bug free和手撕代码的能力。</li>
<li>以我面的情况看，算法岗基本是一轮工程面，考察coding和思维，一轮算法面，考察对领域的认知情况，一轮boss面，把把关。</li>
<li>会就是会，不会就是不会，千万别说会一点。</li>
<li>面试的过程不仅是公司考察面试者的过程，也是面试者考察公司的过程，千万不要妄自菲薄。</li>
<li>七八月份还雄心壮志想要收割十几二十个offer，后来觉得还是太累了，能把自己真正想去的公司offer拿到手就可以了。</li>
</ul>
<div><font color="#ab6fb5">★ 你可能喜欢 ★</font><ul><li><a href="https://hjptriplebee.github.io/Google面试经历-一.html/">Google面试经历-一</a></li><li><a href="https://hjptriplebee.github.io/Google面试经历-二.html/">Google面试经历-二</a></li></ul></div>]]></content>
      
        <categories>
            
            <category> 找工作 </category>
            
        </categories>
        
        
        <tags>
            
            <tag> 面试 </tag>
            
            <tag> 找工作 </tag>
            
            <tag> google </tag>
            
            <tag> 谷歌 </tag>
            
            <tag> 面经 </tag>
            
            <tag> 微软 </tag>
            
            <tag> 阿里 </tag>
            
            <tag> 头条 </tag>
            
            <tag> 网易游戏 </tag>
            
            <tag> 地平线 </tag>
            
            <tag> 校招 </tag>
            
        </tags>
        
    </entry>
    
    <entry>
      <title><![CDATA[Github美化-Travis与Codecov入门]]></title>
      <url>/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8.html/</url>
      <content type="html"><![CDATA[<p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8/travis_ci.png" width="550" height="367" alt="travis" align="center">【开源项目利器】利用Travis持续集成与Codecov测试覆盖率构建自动化测试环境，提升Github项目逼格。<br><a id="more"></a></p>
<h2 id="始于颜值，陷于才华"><a href="#始于颜值，陷于才华" class="headerlink" title="始于颜值，陷于才华"></a>始于颜值，陷于才华</h2><p>测试对于一个项目的重要性是不言而喻的，而小的开源项目往往难以配备专门的测试团队，频繁的push代码会使得本就缺乏人手的测试难上加难，因而构建自动化测试环境对于小型开源项目十分有必要！<br>坦白说，我是一个先看脸的人，在不了解Travis和Codecov是做什么的时候，我学习他们的初衷只是觉得这样的图标放在Github上比较漂(zhuang)亮(bi)，然而当我弄懂了他们到底是干什么的时候，我觉得他们好胖胖哦！<br><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8/icons.jpg" alt="github icons"></p>
<h2 id="Travis-CI"><a href="#Travis-CI" class="headerlink" title="Travis CI"></a>Travis CI</h2><h3 id="什么是Travis-CI？"><a href="#什么是Travis-CI？" class="headerlink" title="什么是Travis CI？"></a>什么是Travis CI？</h3><p><a href="https://travis-ci.org/" target="_blank" rel="noopener">Travis CI</a>是一个托管的，分布式持续集成工具，主要用来构建和自动测试项目。当你push一段代码至github的时候，Travis会按照你预先配置的测试文件进行自动测试，并返回pass或fail的结果。<br>当然，我们也可以用travis来进行deploy，比如博客什么的。自动测试本质就是用机器运行一系列程序，所以可以在这些程序里加上deploy的命令达到这样的目的。比如：<br><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attribute">hexo d -g</span></span><br></pre></td></tr></table></figure></p>
<p>将其加入执行的测试script，测试主体部分pass之后会自动将博客推送上线。</p>
<h3 id="如何用Travis-CI？"><a href="#如何用Travis-CI？" class="headerlink" title="如何用Travis CI？"></a>如何用Travis CI？</h3><ul>
<li>有一个github账户和托管的仓库。</li>
<li>去<a href="https://travis-ci.org/" target="_blank" rel="noopener">travis官网</a>，用github账户登陆并授权，开启自己想要用travis的仓库。</li>
<li>在仓库中添加一个.travis.yml的配置文件，配置规则见<a href="https://docs.travis-ci.com/user/customizing-the-build/" target="_blank" rel="noopener">这里</a>，以我的<a href="https://github.com/hjptriplebee/Chinese_poem_generator" target="_blank" rel="noopener">MC胖虎</a>为例，配置文件如下:</li>
</ul>
<figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">language:</span> <span class="string">python</span></span><br><span class="line"><span class="attr">python:</span> <span class="string">"3.6"</span></span><br><span class="line"></span><br><span class="line"><span class="attr">notifications:</span>      <span class="comment"># 邮箱通知</span></span><br><span class="line"><span class="attr">  email:</span> <span class="literal">false</span></span><br><span class="line"></span><br><span class="line"><span class="attr">sudo:</span> <span class="literal">false</span> <span class="comment">#有定制化开发环境需要，默认false，不开启容器，编译效率高</span></span><br><span class="line"></span><br><span class="line"><span class="attr">before_install:</span> </span><br><span class="line"><span class="bullet">  -</span> <span class="string">pip</span> <span class="string">install</span> <span class="string">tensorflow</span> <span class="comment">#加sudo默认系统环境里的python，使用虚拟环境需加-E参数 </span></span><br><span class="line"></span><br><span class="line"><span class="attr">install:</span> <span class="literal">true</span> <span class="comment">#跳过install</span></span><br><span class="line"></span><br><span class="line"><span class="attr">script:</span> </span><br><span class="line"><span class="bullet">  -</span> <span class="string">python</span> <span class="string">main.py</span></span><br></pre></td></tr></table></figure>
<p>before_install阶段主要安装一些系统依赖，和install区别不是很大，我个人倾向于把非requirement文件里的安装都放在before_install阶段。</p>
<ul>
<li>push代码之后，travis的运行结果可以在<a href="https://travis-ci.org/" target="_blank" rel="noopener">travis网站</a>看到。</li>
</ul>
<p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8/travisUage.jpg" alt="travisUsage"></p>
<ul>
<li><p>点击build passing的图标将下面这种格式的语句写入readme或其它markdown文件即可看到小图标。</p>
<figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[<span class="string">![Build Status</span>](<span class="link">https://travis-ci.org/hjptriplebee/Chinese_poem_generator.svg?branch=master</span>)](<span class="link">https://travis-ci.org/hjptriplebee/Chinese_poem_generator</span>)</span><br></pre></td></tr></table></figure>
</li>
<li><p>点击trigger build可以在线调试</p>
</li>
</ul>
<h2 id="Codecov"><a href="#Codecov" class="headerlink" title="Codecov"></a>Codecov</h2><p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8/codecov.png" width="300" height="300" alt="Codecov" align="center"></p>
<h3 id="什么是Codecov？"><a href="#什么是Codecov？" class="headerlink" title="什么是Codecov？"></a>什么是Codecov？</h3><p><a href="https://codecov.io/gh" target="_blank" rel="noopener">Codecov</a>是一个测试结果分析工具，travis负责执行测试，Codecov负责分析测试结果，最简单的用法就是衡量测试代码覆盖度，当然更高端的用法还有待继续学习。依赖于travis，Codecov非常简单就能上手。</p>
<h3 id="如何用Codecov？"><a href="#如何用Codecov？" class="headerlink" title="如何用Codecov？"></a>如何用Codecov？</h3><ul>
<li>去<a href="https://codecov.io" target="_blank" rel="noopener">Codecov官网</a>用github账号登陆并授权，选择要分析的仓库。</li>
<li>修改.travis.yml文件如下：<figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">language:</span> <span class="string">python</span></span><br><span class="line"><span class="attr">python:</span> <span class="string">"3.6"</span></span><br><span class="line"></span><br><span class="line"><span class="attr">notifications:</span>      <span class="comment"># 邮箱通知</span></span><br><span class="line"><span class="attr">  email:</span> <span class="literal">false</span></span><br><span class="line"></span><br><span class="line"><span class="attr">sudo:</span> <span class="literal">false</span> <span class="comment">#有定制化开发环境需要，默认false，不开启容器，编译效率高</span></span><br><span class="line"></span><br><span class="line"><span class="attr">before_install:</span> </span><br><span class="line"><span class="bullet">  -</span> <span class="string">pip</span> <span class="string">install</span> <span class="string">tensorflow</span> <span class="comment">#加sudo默认系统环境里的python，使用虚拟环境需加-E参数 </span></span><br><span class="line"><span class="bullet">  -</span> <span class="string">pip</span> <span class="string">install</span> <span class="string">codecov</span> </span><br><span class="line"><span class="bullet">  -</span> <span class="string">pip</span> <span class="string">install</span> <span class="string">coverage</span></span><br><span class="line"></span><br><span class="line"><span class="attr">install:</span> <span class="literal">true</span></span><br><span class="line"></span><br><span class="line"><span class="attr">script:</span> </span><br><span class="line"><span class="bullet">  -</span> <span class="string">coverage</span> <span class="string">run</span> <span class="string">main.py</span></span><br><span class="line"></span><br><span class="line"><span class="attr">after_success:</span></span><br><span class="line"><span class="bullet">  -</span> <span class="string">codecov</span> <span class="comment">#运行codecov</span></span><br></pre></td></tr></table></figure>
</li>
</ul>
<p>主要区别在于install了codecov和coverage，coverage不是必须的，也可以用nosetests等取代，运行脚本的时候指定使用coverage生成报告，结束后指定codecov上传测试分析报告。codecov也可以有自己独立的配置文件，可以指定忽略哪些模块等，详见<a href="https://docs.codecov.io/docs" target="_blank" rel="noopener">手册</a>。</p>
<ul>
<li>travis测试pass之后，一份测试报告将上传至<a href="https://codecov.io/gh/hjptriplebee/Chinese_poem_generator" target="_blank" rel="noopener">这里</a>并可视化显示出来，点进去可查看详细报告。</li>
</ul>
<p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8/codecovUsage.jpg" alt="CodecovUsage">MC胖虎有训练，普通写诗，藏头诗三个部分，而默认main只执行了普通写诗部分，所以其余两个部分有一些代码未测试，测试覆盖率报告为63%。通过编写更完整的测试脚本，可以同时测试三个部分，将覆盖率提升。</p>
<ul>
<li>点settings-&gt;badge，将下面这种格式的语句写入readme或其它markdown文件即可看到小图标。</li>
</ul>
<figure class="highlight markdown"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">[<span class="string">![codecov</span>](<span class="link">https://codecov.io/gh/hjptriplebee/Chinese_poem_generator/branch/master/graph/badge.svg</span>)](<span class="link">https://codecov.io/gh/hjptriplebee/Chinese_poem_generator</span>)</span><br></pre></td></tr></table></figure>
<p>最终效果如下：<br><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Travis%E4%B8%8ECodecov%E5%85%A5%E9%97%A8/icons.jpg" alt="github icons"></p>
<h2 id="结束"><a href="#结束" class="headerlink" title="结束"></a>结束</h2><p>以上就是travis和codecov的一些基本用法，算是快速入门吧。还有一些复杂的用法需要今后不断学习。</p>
<h2 id="Bonus"><a href="#Bonus" class="headerlink" title="Bonus"></a>Bonus</h2><p>其它github小图标，类似这种：<a href="https://github.com/hjptriplebee/Chinese_poem_generator/blob/master/LICENSE" target="_blank" rel="noopener"><img src="https://img.shields.io/aur/license/yaourt.svg" alt="license"></a>可以从<a href="http://shields.io/" target="_blank" rel="noopener">这里</a>获取。</p>
<div><font color="#ab6fb5">★ 你可能喜欢 ★</font><ul><li><a href="https://hjptriplebee.github.io/hexo的SEO方法.html/">hexo的SEO方法</a></li></ul></div>]]></content>
      
        <categories>
            
            <category> 工具 </category>
            
        </categories>
        
        
        <tags>
            
            <tag> Travis </tag>
            
            <tag> Codecov </tag>
            
            <tag> Github </tag>
            
            <tag> 持续集成 </tag>
            
            <tag> 测试覆盖率 </tag>
            
            <tag> Readme美化 </tag>
            
            <tag> 工具 </tag>
            
            <tag> 黑科技 </tag>
            
        </tags>
        
    </entry>
    
    <entry>
      <title><![CDATA[谷歌，微软，阿里，美团实习生面经]]></title>
      <url>/%E8%B0%B7%E6%AD%8C%EF%BC%8C%E5%BE%AE%E8%BD%AF%EF%BC%8C%E9%98%BF%E9%87%8C%EF%BC%8C%E7%BE%8E%E5%9B%A2%E5%AE%9E%E4%B9%A0%E7%94%9F%E9%9D%A2%E7%BB%8F.html/</url>
      <content type="html"><![CDATA[<p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/%E8%B0%B7%E6%AD%8C%EF%BC%8C%E5%BE%AE%E8%BD%AF%EF%BC%8C%E9%98%BF%E9%87%8C%EF%BC%8C%E7%BE%8E%E5%9B%A2%E5%AE%9E%E4%B9%A0%E7%94%9F%E9%9D%A2%E7%BB%8F/offer.jpg" width="550" height="367" alt="offer" align="center">新鲜出炉的实习生面经！主要包括：Google，微软，阿里，美团和因为各种原因没有面试成的公司……<br><a id="more"></a></p>
<h2 id="基本情况"><a href="#基本情况" class="headerlink" title="基本情况"></a>基本情况</h2><p>基本情况：某985硕士，常用语言C/C++、Python，研究方向为深度学习、计算机视觉，有一篇水的会议论文、一篇水的期刊论文，有ACM等算法竞赛和数据挖掘类竞赛获奖经历，在导师和Github上都有项目。除了谷歌投的是SWE，其它都是算法岗。</p>
<h2 id="谷歌"><a href="#谷歌" class="headerlink" title="谷歌"></a>谷歌</h2><h3 id="Warm-up-Google-mock-interview"><a href="#Warm-up-Google-mock-interview" class="headerlink" title="Warm up: Google mock interview"></a>Warm up: Google mock interview</h3><p>1月31日，GCJ获得资格，45min。<br>算法题：有一个n乘n的棋盘，上面有m个糖果，最开始有一个人在棋盘左上角，他可以向左向右或者向下移动，但不能向上移动，问他最少需要多少步吃完所有糖果。<br>正解：一个糖果或者没有糖果的行很简单，多于一个糖果的行其实一定是从最左或最右的糖果处下去，所以只需要维护吃到每一行最左或最右糖果的最小值就行了，转移的时候讨论上一行的端点在这一行最左到最右区间的里面还是外面。<br>详细经历看<a href="https://hjptriplebee.github.io/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%B8%80.html/">这篇博客</a>。<br>3月12日，A Day with Google，配套活动，参观一下。</p>
<h3 id="一面"><a href="#一面" class="headerlink" title="一面"></a>一面</h3><p>3月19日，45min。<br>没有其它废话，上来直接算法题，</p>
<ul>
<li>有一些单词对表示同义词，单词对之间不考虑传递性，判断两个句子是否表示完全相同的意思？map套map解决，写了第一个解法。 </li>
<li>你的方法复杂度多少？M<em>logN</em>logN</li>
<li>能不能更快？unordered_map或者字典树解决。</li>
<li>写个字典树看看？写写写，写了第二个解法。</li>
<li>如果考虑单词对之间的传递性呢？floyd解决。</li>
<li>如果数据规模很大呢？离散化+并查集。</li>
<li>并查集复杂度多少，为什么复杂度是这样？O(1), 路径压缩。</li>
<li>还有8分钟，写并查集的解法让我看看？写了第三个解法。</li>
</ul>
<p>整体就是这样，一共手写了三套解法，重点考察了数据结构，由于最后一个解法时间比较紧，被面试官挑出两个bug。基本算满意，有一些小瑕疵。详细经历看<a href="https://hjptriplebee.github.io/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%BA%8C.html/">这篇博客</a>。</p>
<h3 id="结果"><a href="#结果" class="headerlink" title="结果"></a>结果</h3><p>3月23日，通知状态变为hold，介于过和拒之间的状态。内推的同学说投的太迟了，很多人过年前投的，过完年就开始面试了，到了3月中旬岗位不多了。怪不得我说一面感觉也不差怎么就hold了，所以谨记，内推实习生一定要早投！！！</p>
<h2 id="微软"><a href="#微软" class="headerlink" title="微软"></a>微软</h2><p>秒杀笔试算法题，4月24日，面试去现场…</p>
<h3 id="一面-1"><a href="#一面-1" class="headerlink" title="一面"></a>一面</h3><p>40min，面试官是我整个实习生面试期间遇到的最棒的面试官。</p>
<ul>
<li>编译工程的各个文件间有相互依赖，如果想编译通过需要满足什么条件？有向无环图。</li>
<li>给定文件间的依赖关系，怎么判断一个工程是否能编译通过？拓扑排序，然后白板写了拓扑排序。</li>
<li>如何找出所有合法的编译顺序？深搜+拓扑排序，白板写了一下。</li>
<li>才过去15分钟，你写的也太快了，我们聊些深度学习的东西，问了卷积的基本原理，简单计算了感受野、参数数量。</li>
<li>聊了放在github上的一个唐诗生成器。</li>
</ul>
<p>我想这一面给的一定是strong hire</p>
<h3 id="二面"><a href="#二面" class="headerlink" title="二面"></a>二面</h3><p>40min，典型程序员，一句废话都没有。</p>
<ul>
<li>白板写个单链表的冒泡排序。先走一遍统计长度再冒泡。</li>
<li>能不能优化？想了一会儿没什么想法，面试官提示记录尾部节点。然后白板写了一遍用tail记录每一次冒泡的结尾。</li>
<li>CNN有哪些基本单元和作用？卷积、pooling、fc等等说了一大堆</li>
<li>Relu的原理，与sigmoid比优缺点？求导、画图说明了一下，不容易梯度消失，但是会导致神经元死亡。</li>
</ul>
<p>除了面试官提示了一次记录tail节点，其余还好。</p>
<h3 id="三面"><a href="#三面" class="headerlink" title="三面"></a>三面</h3><p>40min，Boss面，可能是看前两面写代码反馈不错，所以把纸收起来了，没写代码。</p>
<ul>
<li>把论文从background到conclusion都讲了一遍。</li>
<li>讲了在老板这里做的一个项目的详细设计。</li>
</ul>
<p>然后基本聊聊天。应该还挺满意的吧，最后加了我微信，说很希望我能去他们组，受宠若惊啊！</p>
<h3 id="结果-1"><a href="#结果-1" class="headerlink" title="结果"></a>结果</h3><p>4月28日，收到微软C信，5月9日，收到微软offer！</p>
<h2 id="阿里"><a href="#阿里" class="headerlink" title="阿里"></a>阿里</h2><p>通过Github被阿里猎头选中，本来他的期望是招前端，我觉得不OK，跟他说了一下我的情况，然后转而把我推到机器学习算法岗去了……</p>
<h3 id="一面-2"><a href="#一面-2" class="headerlink" title="一面"></a>一面</h3><p>3月23日，45min，全程紧张，面试官一直让我放松。</p>
<ul>
<li>自我介绍，然后根据自我介绍问项目，一共40分钟。</li>
<li>最后5分钟算法题：</li>
</ul>
<p>有一些字符串，定义前后字符差值形成的序列一致的两个字符串为相同字符串，问如何将给定的这些字符串分成若干集合，每个集合中字符串都满足相同字符串的定义。<br>解法：将差值序列作为hash表的key，形成的集合用一个vector或者map随便什么作为value就行了。<br>面试官说很OK，自己面下来感觉也很好。</p>
<h3 id="二面-1"><a href="#二面-1" class="headerlink" title="二面"></a>二面</h3><p>4月14日，周六面试…，25min，似乎是被我的项目震惊了。<br>迟来的二面，因为14日是网申截止，而网站上一直是面试中的状态，所以我一直以为凉了，而面试官说这一面应当属于三面？我也不是很懂。<br>面试官只问了两个项目，问得比较细，连里面有什么函数，函数怎么设计的，类之间的继承关系都问了一遍，然后就说很好，看了一眼我的github，又问我平时是怎么学习的？怎么做这么多项目的？<br>最后又跟我说面试过应该没什么问题，而且较大概率去他的团队，然后就夸他们团队怎么怎么好…<br>我全程懵逼…这就面试完了？？？</p>
<h3 id="交叉面"><a href="#交叉面" class="headerlink" title="交叉面"></a>交叉面</h3><p>4月26日，70min，三个面试官，其中一个推进流程串场。<br>达摩院大佬：45min</p>
<ul>
<li>说说深度学习调参的过程和一些常见技巧？网络结构，Data Augmentation，初始化，防止过拟合的方法，可视化调试，优化方法等等，想到什么说什么。说的比较乱，自己对自己的回答不是很满意。</li>
<li>面试官对深度学习和CV很有研究，具体聊了论文，让我总结目标检测的主流方法，详细说了Faster-RCNN、YOLO、SSD、FPN、R-FCN等各种目标检测的方法。可以看出，面试官对里面的细节不是很清楚，但是提的问题很有质量。</li>
</ul>
<p>搜索事业群大佬：25min，这个我就真的懵逼了</p>
<ul>
<li>我们有一个业务系统，每天要处理1000万次服务请求，如何设计这个系统？我？？？靠着写分布式系统大作业的老底，勉强挤了一点出来。</li>
<li>你觉得有哪些机器学习技术能用在搜索事业群？为什么？乱讲了一些，希望他满意，基本包含了所有机器学习里的东西吧。<br>监督学习做分类回归：LR、SVM、XGB等经典浅层模型，CNN、LSTM、GAN等深度模型；<br>半监督学习充分利用搜索产生的大量数据：主动学习，直推式学习；<br>无监督学习减少计算开销，同样充分利用数据量：k-means、DBSCAN、谱聚类等聚类方法，PCA、SVD、ISOMAP、T-SNE等降维方法；<br>强化学习可以利用用户的反馈；<br>后来挤牙膏想到的一些其它方法：bagging、boosting集成学习方法提升精度，矩阵分解、协同过滤等推荐算法。</li>
</ul>
<p>真的不知道该怎么答！</p>
<h3 id="HR面"><a href="#HR面" class="headerlink" title="HR面"></a>HR面</h3><p>5月2日，30min，以自我介绍为主线，我说完一点，她就会问点问题，比如做的项目是research还是面向实际需求的。主要说说非技术问题吧：</p>
<ul>
<li>家在哪里，家里人同意来杭州吗？不同意也得说同意啊。</li>
<li>为什么选择阿里？为什么选择这个职位？准备充分，背诵一下。</li>
<li>你有什么问题？我问阿里对实习生有培训吗？我们对实习生不会有太多培训！</li>
<li>什么时候能来实习？我觉得这个问题她不满意，因为她希望我马上过去实习，实际上我是不可能马上过去实习的，然后HR说实习时间短可能会影响转正啊balabala。我在招聘网站上写的好好的时间，你接受了我的申请就是同意了我的实习时间，现在看来，他们大约只是想招个苦力。由于我坚持不能马上过去实习，HR态度发生了很大转变。</li>
</ul>
<p>听已经实习的说，阿里实习生晚上九点都没有人走的，看看我的发际线，还是别那么拼命吧。</p>
<h3 id="结果-2"><a href="#结果-2" class="headerlink" title="结果"></a>结果</h3><p>5月9日，收到阿里offer。</p>
<h2 id="美团"><a href="#美团" class="headerlink" title="美团"></a>美团</h2><h3 id="一面-3"><a href="#一面-3" class="headerlink" title="一面"></a>一面</h3><p>3月16日，30min，我见过的最不负责任的面试官。<br>迟到早退，完全没有心思面试，只问了简单的算法题，连字符串翻转这种题都出来了…<br>然后聊了项目，问的问题极其外行，最后笑嘻嘻走了？？？</p>
<h3 id="二面-2"><a href="#二面-2" class="headerlink" title="二面"></a>二面</h3><p>4月25日21点，60min，把我当备胎了吧，一面那个面试官真不想吐槽了，就这样面试下来就把我当备胎了？好在二面的面试官很专业，挽回一些美团的形象。</p>
<ul>
<li>搜索框内的候选项怎么实现？A.统计前缀词语条件下，每个词出现的概率，用哈希表或者字典树存储，适当剪枝。B.用机器学习模型，如：LSTM等，根据前缀词预测当前词。</li>
<li>简述LR，有一些用户属性和购买记录，如何用LR给他们做推荐？基本是数据挖掘比赛那一套讲讲就行了，问的很细，从最开始的数据清洗到特征工程到后面的集成都会问。</li>
<li>有一个无限长的数字序列，大到存储其中所有数是不可能的，序列不断传输过来，在某一个时刻喊停，要求以均等概率返回之前已经传过来的某一个数。每过来一个数，就以1/n的概率保留，这样只要存当前留下来的数返回就可以了。</li>
</ul>
<h3 id="三面-1"><a href="#三面-1" class="headerlink" title="三面"></a>三面</h3><p>4月28日，45min。<br>说说比赛、项目、github开源、从系统的架构到每一个模块的细节都问了一遍。问我有哪些offer，说自己在蚂蚁呆过，都是水货写业务没什么意思，吹美团这边的数据是百亿级别的？咱能不这么浮夸吗？</p>
<h3 id="结果-3"><a href="#结果-3" class="headerlink" title="结果"></a>结果</h3><p>5月3日，收到美团offer。</p>
<h2 id="其它"><a href="#其它" class="headerlink" title="其它"></a>其它</h2><p>一些投了，但是没能面试的</p>
<h3 id="京东"><a href="#京东" class="headerlink" title="京东"></a>京东</h3><p>因为让我去北京现场面试但是不报销费用被我主动挂了。而且要吐槽一下，京东有<b>图像标注实习生</b>的岗位，要求吃苦耐劳，这是什么鬼？</p>
<h3 id="网易"><a href="#网易" class="headerlink" title="网易"></a>网易</h3><p>我让师兄内推，他们老大看了一眼简历就说应该能来吧，面试水水的…<br>后来知道所投岗位已经差不多满了，要转岗，也被我主动挂了。</p>
<h3 id="Face"><a href="#Face" class="headerlink" title="Face++"></a>Face++</h3><p>投了简历，没理我，后悔没找校友内推！听说内推的基本都进了？</p>
<h3 id="小米"><a href="#小米" class="headerlink" title="小米"></a>小米</h3><p>投了简历，没理我，南京招的人比较少。</p>
<h3 id="腾讯"><a href="#腾讯" class="headerlink" title="腾讯"></a>腾讯</h3><p>笔试没有参与聚众讨论，笔试挂了，题目一点诚意都没有，全都一样的，就是为了把不作弊的刷掉？今年招的人很多啊，各种水进去的，而我连水的机会都没有，不开心！</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>最大的感受是：<b>有项目就可以一直吹</b>，虽然我准备了，但几乎没遇到问数学公式推导和操作系统、计算机网络背概念的面试官，大多数是就简历问，也有结合业务场景让设计方法的。我靠，枉我看了那么长时间的西瓜书和本科教材…<br>总的来说，差强人意，因为谷歌崩了才投了这么多乱七八糟的，keep calm and stay strong!</p>
<div><font color="#ab6fb5">★ 你可能喜欢 ★</font><ul><li><a href="https://hjptriplebee.github.io/Google面试经历-一.html/">Google面试经历-一</a></li><li><a href="https://hjptriplebee.github.io/Google面试经历-二.html/">Google面试经历-二</a></li></ul></div>]]></content>
      
        <categories>
            
            <category> 找工作 </category>
            
        </categories>
        
        
        <tags>
            
            <tag> 面试 </tag>
            
            <tag> 找工作 </tag>
            
            <tag> google </tag>
            
            <tag> 谷歌 </tag>
            
            <tag> 面经 </tag>
            
            <tag> 微软 </tag>
            
            <tag> 阿里 </tag>
            
            <tag> 美团 </tag>
            
            <tag> 实习生 </tag>
            
        </tags>
        
    </entry>
    
    <entry>
      <title><![CDATA[Google面试经历-二]]></title>
      <url>/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%BA%8C.html/</url>
      <content type="html"><![CDATA[<p>A Day with Google!<br>Google实习生面试经历！<br><a id="more"></a></p>
<h2 id="A-Day-with-Google活动"><a href="#A-Day-with-Google活动" class="headerlink" title="A Day with Google活动"></a>A Day with Google活动</h2><p>3月12日 ，A Day with Google  GCJ获得资格，和mock interview配套的活动，参观了一下工作环境，拿了几个纪念品，放几张图。<br>保护个人隐私，打个马赛克，纪念品，还有一个书包…旁边优美的风景…</p>
<style type="text/css">
    .fancybox {
        display: inline-block;
    }
</style>

<p><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%BA%8C/Google1.jpg" width="270" height="200"><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%BA%8C/Google2.jpg" width="270" height="200"><img src="https://raw.githubusercontent.com/hjptriplebee/gitment/master/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%BA%8C/Google3.jpg" width="270" height="200"><br>越发加深了想去的执念，好好加油吧！</p>
<h2 id="Google实习生面试经历"><a href="#Google实习生面试经历" class="headerlink" title="Google实习生面试经历"></a>Google实习生面试经历</h2><p>3月19日，Google实习生，内推，一面，45min<br>没有其它废话，上来直接算法题，<br>1）    有一些单词对表示同义词，单词对之间不考虑传递性，判断两个句子是否表示完全相同的意思？map套map解决，写了第一个解法。<br>2）    你的方法复杂度多少？M ×logN ×logN<br>3）    能不能更快？哈希表unordered_map或者字典树解决<br>4）    写个字典树看看？写写写，写了第二个解法<br>5）    如果考虑单词对之间的传递性呢？floyd解决<br>6）    如果数据规模很大呢？离散化+并查集<br>7）    并查集复杂度多少，为什么复杂度是这样？O(1), 路径压缩<br>8）    还有6分钟，写并查集的解法让我看看？写了第三个解法<br>整体就是这样，一共写了三套解法，重点考察了数据结构，由于最后一个解法时间比较紧，被面试官挑出两个bug。基本算满意，有一些小瑕疵。</p>
<p>3月23日，Google实习生  通知状态变为hold，介于过和拒之间的状态。<br>原话：这封邮件不是代表你被拒绝了的意思（很抱歉我们不允许share 面试反馈）。目前我们候选人非常多而机会有限，竞争比较激烈。我们会帮你争取往下继续面试的机会，但是也希望大家能谅解 和耐心等待。</p>
<p>内推的同学说投的太迟了，很多人过年前投的，过完年就开始面试了，到了3月中旬岗位不多了。怪不得我说一面感觉也不差怎么就hold了，所以谨记，内推实习生一定要早投！！！！</p>
<p>估计是凉了，校招再战，等我的谷歌面经（三）<br>之前的经历看这里：<a href="https://hjptriplebee.github.io/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%B8%80.html/">Google面试经历-一</a></p>
<div><font color="#ab6fb5">★ 你可能喜欢 ★</font><ul><li><a href="https://hjptriplebee.github.io/Google面试经历-一.html/">Google面试经历-一</a></li><li><a href="https://hjptriplebee.github.io/几个大厂的校招面经.html/">几个大厂的校招面经</a></li></ul></div>]]></content>
      
        <categories>
            
            <category> 找工作 </category>
            
        </categories>
        
        
        <tags>
            
            <tag> 面试 </tag>
            
            <tag> 找工作 </tag>
            
            <tag> google </tag>
            
            <tag> 谷歌 </tag>
            
            <tag> 面经 </tag>
            
        </tags>
        
    </entry>
    
    <entry>
      <title><![CDATA[Google面试经历-一]]></title>
      <url>/Google%E9%9D%A2%E8%AF%95%E7%BB%8F%E5%8E%86-%E4%B8%80.html/</url>
      <content type="html"><![CDATA[<p>记第一次紧张刺激的Google面试！<br><a id="more"></a><br>为什么是面试经历(一)呢？<br>因为还有即将到来的：<br>&emsp;&emsp;Google面试经历(二)-实习生面试<br>以及可能会有的：<br>&emsp;&emsp;Google面试经历(三)-实习生转正面试或者校招面试<br>&emsp;&emsp;Google面试经历(四)-失败总结<br>OK，下面正式写这次google mock interview的经历:</p>
<h2 id="背景"><a href="#背景" class="headerlink" title="背景"></a>背景</h2><p>&emsp;&emsp;可能有人会奇怪，这么早就招人了吗？正常来说，是不会这么早的。但是因我为参加了2017的Google Code Jam，并且取得了比较不错的成绩，所以在一月上旬就收到了HR发来的邮件，大意是要面向参与GCJ的选手办一个叫”A Day with Google”的活动，可以选择面试或者模拟面试。<br>&emsp;&emsp;时间这么早？这把既没有做好找工作的准备，也没有什么面试经验的我吓到了。直接面应该不会当场给出反馈，模拟的话可以知道自己的一些问题，所以出于涨涨见识，划划水的想法，我最终选择了<b>场次最早的</b> mock interview。</p>
<h2 id="曲折的经历"><a href="#曲折的经历" class="headerlink" title="曲折的经历"></a>曲折的经历</h2><p>&emsp;&emsp;1. 约定1月29日上午面试，晚上没睡好，还起了个大早，结果被面试官<b>鸽了</b>，没有接到电话，而且通知的Google Doc也被锁上了……跟HR沟通之后得知是面试官忘记了，改到1月31日上午面试。<br>&emsp;&emsp;2. 30日发现Google Doc又被锁了……和HR小姐姐来回一共发了11封邮件，终于解决了，不得不说，小姐姐态度非常好，不像某些官僚机构。<br>&emsp;&emsp;3. 终于等来了31日的面试，面试官的态度也非常温和，声明正式面试一共只有45分钟，先过一遍流程，他再点评一下。没有自我介绍…上来直接对着简历问了项目，“我看你做的项目挺多，用<strong>几分钟</strong>讲讲你的项目”，我巴拉巴拉全讲了，然后<b>12分钟</b>过去了。“我们的时间不多了，开始做题吧！”，面试题如下：<br>&emsp;&emsp;<b>有一个n*n的棋盘，上面有m个糖果，最开始有一个人在棋盘左上角，他可以向左向右或者向下移动，但不能向上移动，问他最少需要多少步吃完所有糖果。</b><br>&emsp;&emsp;我几乎没怎么想，就说了一个暴力的DFS解法。说着说着就发现DP可以搞，“好像动态规划可以，再容我想一会儿！”，画个图就可以发现，一个糖果或者没有糖果的行很简单，多于一个糖果的行其实一定是从最左或最右的糖果处下去，所以只需要维护吃到每一行最左或最右糖果的最小值就行了，转移的时候讨论上一行的端点在这一行最左到最右区间的里面还是外面。<br>&emsp;&emsp;很简单，然而转移方程的边界条件，我搞了好长时间，面试官一直说有问题。15分钟就这么过去了…<br>&emsp;&emsp;面试官提醒：”注意时间”，我一狠心，还是写了暴力的，先计算每两个糖果之间的距离，然后dfs，一共写了8分钟，然后又自己检查了3分钟确认bug-free。最后，和面试官说了一下代码思路，他：“不错，写的很快而且正确！可惜前面DP的思路在小细节上卡壳了！”<br>&emsp;&emsp;之后，我简单问了几个问题，回答都比较官方吧。</p>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>&emsp;&emsp;面试官给了一些建议：<br>&emsp;&emsp;1. 项目简述时间太长。建议挑一个最有含金量的讲几分钟就行了。别的公司可能和面试官聊high了就可以不做或者少做题。谷歌的面试必须做题，前面时间长了，后面做题的时间就短了。<br>&emsp;&emsp;2. 过于追求最优解。思考问题卡住的时候，要注意把握时间，只要能让面试官觉得你coding能力强，即使不是最优解也行。<br>&emsp;&emsp;3. 写代码最好先在纸上打好草稿，一气呵成的感觉比较好，因为他看我写代码的时候明显觉得我在思考…<br>&emsp;&emsp;4. 写完先自己肉眼debug一下，虽然我写的没什么问题，但是还是确认一下比较保险。<br>&emsp;&emsp;过年好好准备，照进度继续刷Leetcode（有兴趣的同学可以看我的专题<a href="http://blog.csdn.net/column/details/12689.html" target="_blank" rel="noopener">小题大做Leetcode</a>），过完年面个实习生，美滋滋。</p>
<div><font color="#ab6fb5">★ 你可能喜欢 ★</font><ul><li><a href="https://hjptriplebee.github.io/Google面试经历-二.html/">Google面试经历-二</a></li><li><a href="https://hjptriplebee.github.io/几个大厂的校招面经.html/">几个大厂的校招面经</a></li></ul></div>]]></content>
      
        <categories>
            
            <category> 找工作 </category>
            
        </categories>
        
        
        <tags>
            
            <tag> 面试 </tag>
            
            <tag> 找工作 </tag>
            
            <tag> google </tag>
            
            <tag> 谷歌 </tag>
            
            <tag> 面经 </tag>
            
        </tags>
        
    </entry>
    
    <entry>
      <title><![CDATA[hexo的SEO方法]]></title>
      <url>/hexo%E7%9A%84SEO%E6%96%B9%E6%B3%95.html/</url>
      <content type="html"><![CDATA[<p>最近，CSDN总不停变风格，而且越变越丑，于是搭了这个博客。然而，流量实在太小！所以决定做SEO（搜索引擎优化），就当是多学些东西吧。参考网上一些教程，总结了Hexo的Next主题做SEO的一些小技巧：<br><a id="more"></a></p>
<h2 id="Hexo优化准备"><a href="#Hexo优化准备" class="headerlink" title="Hexo优化准备"></a>Hexo优化准备</h2><h3 id="主站文件配置"><a href="#主站文件配置" class="headerlink" title="主站文件配置"></a>主站文件配置</h3><p>主站配置文件中的这四项<strong>一定要填写！</strong><br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">title:</span>  <span class="comment">#标题</span></span><br><span class="line"><span class="attr">subtitle:</span>  <span class="comment">#子标题</span></span><br><span class="line"><span class="attr">description:</span> <span class="comment">#描述</span></span><br><span class="line"><span class="attr">url:</span> <span class="comment">#url</span></span><br></pre></td></tr></table></figure></p>
<h3 id="打开Next主题自带的seo配置"><a href="#打开Next主题自带的seo配置" class="headerlink" title="打开Next主题自带的seo配置"></a>打开Next主题自带的seo配置</h3><p>打开<strong>主题</strong>配置文件中的这些项目。<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">canonical:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">seo:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">index_with_subtitle:</span> <span class="literal">true</span></span><br><span class="line"><span class="attr">baidu_push:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure></p>
<p>未按照配置文件顺序，自行搜索。</p>
<h2 id="首页title优化"><a href="#首页title优化" class="headerlink" title="首页title优化"></a>首页title优化</h2><p>修改文件：<strong>your-hexo-site\themes\next\layout\index.swig</strong><br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">&#123;%</span> <span class="string">block</span> <span class="string">title</span> <span class="string">%&#125;</span> <span class="string">&#123;&#123;</span> <span class="string">config.title</span> <span class="string">&#125;&#125;</span> <span class="string">&#123;%</span> <span class="string">endblock</span> <span class="string">%&#125;</span></span><br></pre></td></tr></table></figure></p>
<p>改成<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">&#123;%</span> <span class="string">block</span> <span class="string">title</span> <span class="string">%&#125;</span> <span class="string">&#123;&#123;</span> <span class="string">theme.keywords</span> <span class="string">&#125;&#125;</span> <span class="bullet">-</span> <span class="string">&#123;&#123;</span> <span class="string">config.title</span> <span class="string">&#125;&#125;&#123;&#123;</span> <span class="string">theme.description</span> <span class="string">&#125;&#125;</span> <span class="string">&#123;%</span> <span class="string">endblock</span> <span class="string">%&#125;</span></span><br></pre></td></tr></table></figure></p>
<h2 id="添加sitemap"><a href="#添加sitemap" class="headerlink" title="添加sitemap"></a>添加sitemap</h2><p>这一步目的在于告诉搜索引擎你的站点结构。</p>
<h3 id="sitemap生成插件的安装和配置"><a href="#sitemap生成插件的安装和配置" class="headerlink" title="sitemap生成插件的安装和配置"></a>sitemap生成插件的安装和配置</h3><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">npm</span> <span class="string">install</span> <span class="string">hexo-generator-sitemap</span> <span class="bullet">--save</span></span><br><span class="line"><span class="string">npm</span> <span class="string">install</span> <span class="string">hexo-generator-baidu-sitemap</span> <span class="bullet">--save</span></span><br></pre></td></tr></table></figure>
<p>在站点配置文件中添加sitemap的生成路径<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">sitemap:</span> </span><br><span class="line"><span class="attr">    path:</span> <span class="string">sitemap.xml</span></span><br><span class="line"><span class="attr">baidusitemap:</span></span><br><span class="line"><span class="attr">    path:</span> <span class="string">baidusitemap.xml</span></span><br></pre></td></tr></table></figure></p>
<p>现在执行 hexo g 生成以后应该可以访问sitemap.xml和baidusitemap.xml</p>
<h3 id="提交sitemap"><a href="#提交sitemap" class="headerlink" title="提交sitemap"></a>提交sitemap</h3><p>分别到谷歌和百度的站长工具网站上提交sitemap就可以了。<br>如果不主动提交sitemap，搜索引擎可能无法自己找到sitemap，即使找到，速度也会很慢。<br>github好像屏蔽了百度的爬虫，所以即使提交了sitemap，也可能出现无法爬下来的情况。于是我们需要主动向百度提交链接。<br>安装插件<strong>hexo-baidu-url-submit</strong><br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">npm</span> <span class="string">install</span> <span class="string">hexo-baidu-url-submit</span> <span class="bullet">--save</span></span><br></pre></td></tr></table></figure></p>
<p>在站点配置文件中添加如下内容：<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">baidu_url_submit:</span></span><br><span class="line"><span class="attr">  count:</span> <span class="number">1</span> <span class="comment">## 提交最新的一个链接</span></span><br><span class="line"><span class="attr">  host:</span>  <span class="comment">## 在百度站长平台中注册的域名</span></span><br><span class="line"><span class="attr">  token:</span> <span class="string">your_token</span> <span class="comment">## 请注意这是您的秘钥， 所以请不要把博客源代码发布在公众仓库里!</span></span><br><span class="line"><span class="attr">  path:</span> <span class="string">baidu_urls.txt</span> <span class="comment">## 文本文档的地址， 新链接会保存在此文本文档里</span></span><br></pre></td></tr></table></figure></p>
<p>在站点配置文件的deploy下仿照github的类型添加：<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">- type:</span> <span class="string">baidu_url_submitter</span></span><br></pre></td></tr></table></figure></p>
<p>执行hexo d的时候就会自动推送新链接了</p>
<h3 id="robots文件"><a href="#robots文件" class="headerlink" title="robots文件"></a>robots文件</h3><p>在<strong>your-hexo-site\source</strong>中新建robots.txt，告诉搜索引擎，哪些是可以爬的，哪些是不可以爬的，格式如下：<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">#hexo robots.txt</span></span><br><span class="line"><span class="attr">User-agent:</span> <span class="string">*</span></span><br><span class="line"></span><br><span class="line"><span class="attr">Allow:</span> <span class="string">/</span></span><br><span class="line"><span class="attr">Allow:</span> <span class="string">/archives/</span></span><br><span class="line"><span class="attr">Allow:</span> <span class="string">/categories/</span></span><br><span class="line"><span class="attr">Allow:</span> <span class="string">/tags/</span></span><br><span class="line"></span><br><span class="line"><span class="attr">Disallow:</span> <span class="string">/vendors/</span></span><br><span class="line"><span class="attr">Disallow:</span> <span class="string">/js/</span></span><br><span class="line"><span class="attr">Disallow:</span> <span class="string">/css/</span></span><br><span class="line"><span class="attr">Disallow:</span> <span class="string">/fonts/</span></span><br><span class="line"><span class="attr">Disallow:</span> <span class="string">/vendors/</span></span><br><span class="line"><span class="attr">Disallow:</span> <span class="string">/fancybox/</span></span><br><span class="line"></span><br><span class="line"><span class="attr">Sitemap:</span> <span class="attr">https://hjptriplebee.github.io/search.xml</span></span><br><span class="line"><span class="attr">Sitemap:</span> <span class="attr">https://hjptriplebee.github.io/sitemap.xml</span></span><br><span class="line"><span class="attr">Sitemap:</span> <span class="attr">https://hjptriplebee.github.io/baidusitemap.xml</span></span><br></pre></td></tr></table></figure></p>
<h2 id="修改文章链接"><a href="#修改文章链接" class="headerlink" title="修改文章链接"></a>修改文章链接</h2><p>hexo默认的url形式是按日期来的多重结构，过长的url不利于搜索。可以将站点配置文件作如下修改：<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">permalink:</span> <span class="string">:title.html</span></span><br></pre></td></tr></table></figure></p>
<h2 id="nofollow标签"><a href="#nofollow标签" class="headerlink" title="nofollow标签"></a>nofollow标签</h2><p>可以添加的地方太多了，非友情链接都可以添加如下标签：<br><figure class="highlight yml"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">rel="external</span> <span class="string">nofollow"</span></span><br></pre></td></tr></table></figure></p>
<div><font color="#ab6fb5">★ 你可能喜欢 ★</font><ul><li><a href="https://hjptriplebee.github.io/Travis与Codecov入门.html/">Github美化-Travis与Codecov入门</a></li></ul></div>]]></content>
      
        <categories>
            
            <category> 网络 </category>
            
        </categories>
        
        
        <tags>
            
            <tag> 黑科技 </tag>
            
            <tag> SEO </tag>
            
            <tag> hexo </tag>
            
            <tag> 搜索引擎优化 </tag>
            
        </tags>
        
    </entry>
    
  
  
</search>
