微软工作这二年

简介:

16年元旦顶着大风来北京面试,一天6轮,在回去的高铁上感觉面试可能挂了,一个礼拜后收到了Offer。由于自身各方面的原因,18年元旦,选择离开微软。It is hard to say LEAVE, 这里整理了一下我在微软的两年经历,算是我这两年的总结。

 

我眼中的工作环境

我没在其他一线互联网公司呆过,我个人觉得微软(北京)的工作环境是相当不错的。公司大楼靠近北四环,丹棱街5号,周边街道基本不怎么堵车,地铁有四号线和十号线,开车的话直接走四环,到亚洲最大的居民区天通苑大约也就40来分钟。

上下班比较自由,公司没有这方面的考核制度。我一般早上11点到公司,晚上8点离开公司,如果有事就会更晚一点。有的同事下午需要早走,所以上午来得比较早,但是工作时间这些都没有明文规定,各人视情况而定。

平时如果有什么事情需要请假也比较简单,一般跟leader说一声就行,回头在系统里面补一下即可。每人每年有15天带薪年假,我觉得一般人基本用不完。如果半天的话,大部分都不需要在系统里申请,直接说一下即可。微软关于假期这方面的福利还是比较好的,每人还有3天志愿者假,15天病假,女同事120天产假,男同事有6周的陪产假,没错是陪产假,我前段时间刚修完42天的陪产假。

公司内部环境不错,比较空旷,各种小的focus room,meeting room,一周七天随时都有保洁在上班,至于免费的水果、饮料这些当然是必备的了,相信一般好点的公司都有这个福利。

 

我做过的项目

在微软呆两年,做过的东西不算少。如果让我给我做过的项目评一个分,10分制的话,大概在6分左右。我觉得我比较客观,不存在我在这里呆过所以吹嘘,也不存在我即将要离开了所以去故意抹黑。

刚进来的时候做过一段时间的UWP,具体是什么我就不说了。整个team都比较卖力,可能微软上层领导早已看透了一切,早已知道Windows 10 Mobile命数已尽,所以高层老大基本不重视这块的工作。要知道那还是16年初,微软还并没有官方宣布放弃Windows 10 Mobile。当时只有我们Manager支持以及他手下一帮子兄弟在埋头苦干,最终的结果大家都知道了,微软宣布停止更新Windows 10 Mobile。我不知道没有移动端这块,UWP存在还有什么价值,体验不如传统win32,又不能跨平台到Android和iOS。HoloLens、Hub和Xbox?这个用户能有多少?个人以为UWP的初衷是相当好的,只可惜微软并没有翻盘。

做了差不多四五个月的UWP,16年下半年开始接触Cortana的开发工作。Cortana是Windows 10默认自带的一款智能助手,不知道有多少人用过这个智能助手,认为她到底智不智能。Team大约花了4个月做了一个Vision的feature,大概就是让Cortana不仅能够说、听,还能够看,能够识别图片中的文字信息,自动为你设置提醒,为你安排会议,个人觉得这个feature还是非常实用的。可能你就要问了,这个东西看似很简单,为什么要花这么长时间,因为整个Cortana的代码结构超级复杂,前端涉及到Windows 10操作系统的Code,后台涉及到Bing的Code,你不花个把月根本不清楚你应该动哪块的东西。再加上Cortana整个项目的Owner在美国,你往里面check in一行Code,都得需要别人Review,跨国的开发工作效率尤其低下,这个后面我会说到。由于各种原因,最终这个feature并没有在RS3中对外开放。听说RS4会上?后来我转到其他项目中,所以也就没有再关注这个事情。说到代码结构复杂,不得不说很多开发的思想还停留在十几年前,像Cortana、Edge这种App都是跟随系统绑定的,半年一升级。类似这种App就应该发布到Windows Store上,更新方便,完全符合移动互联网开发程序。关于为何Edge不能发到Store中而必须绑定到系统上,知乎上有相关的回答,真相让人哭笑不得。

今年5月开始,进了新的项目,也就是我目前正在做的,Edge for Android。当然Edge for iOS也是我们team另外一部分人在做。说它是Edge,其实跟Windows 10上的Edge没有任何关系,Android上是基于Chromium开发的,iOS是基于Control弄的。Android这边的dev最开始大约有16个人,dev全在中国,design在美国,从项目开始到最终Publish一共花了将近6个月的时间。Android版目前可以在Google Play上下载,国内Android市场也有同步过来的,感兴趣的可以下来用用,自认为跟国内几个主流浏览器还是有一定差距。相比前两个项目,可以看到这个项目很受公司重视,所以相对来讲还是比较有前途的。Satya也在用我们dogfood内测版本,上次还反馈了一个bug。当然还是有几个地方需要吐槽的,公司内部已经吐槽过,所以我把它写在这里:

1) 公司组织结构太大,一个芝麻小的改动可能涉及到的人全世界都有。沟通全靠邮件,今天发的邮件可能明天后天才能回。因此沟通不畅是经常的事,design改一遍又改一遍很常见;

2) 由于微软公司的Policy,出于各种Security的考虑,Chromium版本需要不断地升级,从一开始53,5个月的时间连续升级4次一直到63。可以想象,每次merge需要消耗的人力,由此产生的bug又是多少;

3) 不得不说,微软对App的design真不如国内大厂,UX不够好,不多说了。

 

我对项目的反思

拿着SDE2的钱,操着CVP的心。我这种级别也只够在底层写Code。事实上,大部分都是我这样的人。还是那句话,公司组织结构大,做一件事情牵扯到的人太多。而且不在一个地方,沟通起来相当困难。想象一下,小团队作战,出现一个问题,马上就能面对面开会,可能当天就能高效解决。虽然微软在中国的的研发人数全球第二,但我所在的部门而言,很多东西都没有拿到话语权,国内的团队没有得到美国那边足够的信任。我很肯定的说,我身边的同事都是比较优秀的,Coding Skill、思维以及沟通表达都是超出平均值的。但是就是这么一群人,做出来的东西很多都没能取得成功,作为一个搞技术的,可以想象,做出来的东西没有被认可是一种怎么样的体验。另外,有人的地方就是江湖,哈哈。

 

我眼中的微软面试

来微软面试的SDE(据我所知包括SDE1、SDE2以及Senior SDE),面试官基本都只会问你数据结构算法相关的问题,其他的东西几乎不问或者不是Hire你的标准。虽然我理解这其中的原因,一般这种面试如果能过,基本说明这人靠谱。但是,从我微软两年的实际经验来看,招一些熟悉具体技术、业务的人进来或许更适合。我也参加过公司的一些面试,面试官的Feedback中只有以下几项:

1) Coding Skill. 大概就是让你在纸上写code,比如写一个链表反转,看看怎么样。至于拿什么语言写随意;

2) Data Structure & Algorithm. 问一些算法数据结构的题目,看你的答案;

3) OOP & Design Pattern. 问一些常见的OO和设计模式之类的问题;

4) Hire or No Hire. 要不要你?

可以看到,面试官的问题跟你申请的职位一点关系都没有,至少从面试官来看是这样的。之前有个Google拒绝Homebrew的作者的新闻,详细可以看这里作者本人的回答。 可以看到,算法、软件工程以及产品之间的不同。

 

关于离职

选择一个公司,我觉得应该全方位去考虑,不仅仅是能做的项目,其他比如待遇、文化、发展、福利以及自身条件限制等等。综合来看,我呆过的部门还是不错的,我之所以选择离开,完全出于自身原因。在北京的同学,如果有希望加入微软的,还是不错的选择。也非常感谢我来微软的第一任Manager,是他招我进来,在我离开的时候,又非常热心地托人给我在武汉介绍新的工作,哈哈。感谢微软,加入微软也是我学生时代的梦想。希望以上这些对想加入微软的同学有帮助。

 

[以上只代表我个人观点,且仅限我所在的部门在这短时间内所接触的东西,其他部门机构不清楚,特此声明,防止给大家造成误解]

 

作者:周见智 
出处:http://www.cnblogs.com/xiaozhi_5638/ 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

分类:  写作

本文转自周见智博客博客园博客,原文链接:http://www.cnblogs.com/xiaozhi_5638/p/8109517.html,如需转载请自行联系原作者
目录
相关文章
|
存储 C语言 Windows
音视频使用qt测试ffmpeg接口时无法运行
音视频使用qt测试ffmpeg接口时无法运行
264 0
|
JSON 自然语言处理 编译器
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
前言包大小是衡量APP性能的一项重要指标,它直接影响用户的下载点击率(包太大不想下)、下载安装成功率(下载慢不用了)、APP卸载率(太占空间先删掉)。包大小的计算逻辑很简单,它是各种类型的文件占用磁盘大小相加。APP瘦身的技术却很复杂,代码文件的复杂度和编译器策略决定了可执行文件的大小,业务功能和工程架构决定了代码文件的复杂度。iOS APP瘦身,需要掌握的技能有XCode构建技术、LLVM编译器
4421 0
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
双11 Android开发 数据安全/隐私保护
iOS Crash 治理:淘宝VisionKitCore 问题修复(上)
iOS Crash 治理:淘宝VisionKitCore 问题修复(上)
353 0
|
Oracle 关系型数据库
外企面试,哪有你想象的那么难!(已收埃森哲、NTTDATA等8家外企offer)
外企面试,哪有你想象的那么难!(已收埃森哲、NTTDATA等8家外企offer)
外企面试,哪有你想象的那么难!(已收埃森哲、NTTDATA等8家外企offer)
|
缓存 iOS开发 索引
Xcode清理垃圾
Xcode清理垃圾
422 0
|
JavaScript 前端开发 iOS开发
iOS中 动态热修补技术JSPatch 韩俊强的博客
iOS开发者交流群:446310206   所谓动态热修补就是把能够导致app 崩溃的严重bug,提交新版本到appstore 审核速度太慢影响用户使用,这时候就可以利用 JSPatch 可以让你用 JavaScript 书写原生 iOS APP。
1376 0
|
C# C++ C语言
C#调用c++的动态库dll演示例程
<h1>1.首先编写c++动态库</h1> <p></p> <pre name="code" class="cpp">extern "C" __declspec(dllexport) int __stdcall add(int x, int y) { return x + y; }</pre> <p><img src="http://img.blog.csdn.net/201505
4660 0
|
Unix Linux C++
c++网络库调研
搜索关键词 C++ 网络库 Network Library TCP Server 网络库总结 开源C/C++网络库比较 http://blog.csdn.net/langeldep/article/details/6976120 在开源的C/C++网络库中,常用的就那么几个,在业界知名度最高的,应该是ACE了,不过是个重量级的大家伙,轻量级的有libevent, libev,还有 Boost的ASIO。
3415 0