Interviewing at Microsoft

DevCAI SimpleButton / CheckButton 按钮实现分析 分析对象:DevCAI 自研的与(对应第 2.3 节“选项、按钮与状态”中同名组件)(2286 行,单文件承载整个按钮家族)分析日期:2026-11-05技术栈:VS2022 / .NET Framework 4.8.1 / C# 8.0(库代码语法不高于 C# 7.3) 阅读详情
[This article is referred from here]


First I just wanted to say 'thanks!' to all the rad things people said in the commments of the previous post. You guys are cool. How amazing is it that I got notes from all over the globe? I love working in this business.

Anyway, this post is going to be a long one because it's about my Microsoft interview. That is actually an important distinction, because from what I have read online (there is *lots* of information online about interviewing there), I feel like my experience was somewhat unique.

The whole thing reminded a lot of a mideivel courtship.

Step 1: A love letter.

Somewhere around September of last year, I submitted my resume to the careers dropbox on www.microsoft.com. Didn't really think it would come to anything, I was just bored. As it turns out, they really do read those things.

Step 2: She notices me.

Then, on March 24th of this year, the strangest thing happened. I got an email about my microsoft.com profile. A recruiter sent it to me asking if I was interested in applying for a job in Redmond working on MSN. Was I? Hell, yeah I was.

I didn't actually meet every single requirement listed on the e-mail (7 years experience, BS in comp sci, etc), but I figured I might as well give it a try.

Step 3: Caste compatibility (the email questionaire).

About a week later, I received another form letter from the recruiter which contained many questions I was meant to answer and send back. The questions were designed to weed out the complete idiots from not-so-moronic. For example:

  • How have you improved your programming skills in the past year?
  • How do you learn about new technology and stay up-to-date? Most interesting new technology?
  • What is your greatest technical weakness or an area you've been working to improve?

If you can't answer softball questions like these in a reasonable way via email, you really have no business applying for any job as a programmer.

A few days later, I heard back from the recruiter and apparently I answered well enough on the cheeseball questions so she set up a phone screen.

Step 4: Political/Religious Compatibility (the HR phone screen).

The phone screen consist of a lot of psuedo-technical questions. By which, I mean somewhat technical questions that are simple enough that an answer can be provided beforehand to an interviewer who doesn't actually understand the question. For instance:

  • How long would it take you to write the code to reverse a link list?
  • How would you declare a pointer to char in C?
  • What's the difference between clustered and non-clustered indexes in SQL Server?

I waited about a week to hear back from the recruiter, but she never called. I started to get impatient. I thought I had done pretty well, but I started to second-guess myself.

I finally broke down and called her. She said that she although I did OK, she thought I hadn't done well enough on the C/C++ portion to justify sending me on to the technical screen. I am not in fact very good at C or C++. But I had gotten every C/C++ question right except for one, so I challenged her on that point.

After looking over her notes for a second, she comes back on the line and embarassed, tells me she had gotten me confused with another candidate! She scheduled a technical phone screen for one week later.

Step 5: Formal Introduction (the technical phone screen).

The phone screen turned out to be a really fun experience. The guy I was speaking with introduced himself as a long-time Microsoft programmer. When telling him about a recent project I enjoyed, he said, in his words, "I want to feel the bits between my toes." Talk about nerdy :).

He asked some design and implementation quesitons about a recent project and then we jumped into the coding.

The format is that you write the code on your computer and email it to the interviewer. They give you about 3 minutes. My question was:

Find the intersection of two rectangles.

After that we did some testing questions and that was it. A couple days later my HR contact called back to tell me, improbably, that I had passed the phone screen and would be going to Seattle for an in-person interview!

Step 6: Invited Home for Dinner (The in-person interview)

Going to Microsoft for an in-person interview is an amazing experience. In contrast to interviewing at other companies, where you feel like an intruder and unwelcome, Microsoft really makes you feel like they want you to succeed.

All expenses are taken care of: plane tickets, lodging, food, snacks, the works. It's not lavish, but it's very comfortable. A world of difference from what most companies do for their recruits.

I was housed in an average-but-comfortable Courtyard Marriott 1 block from campus where a bunch of other candidates and Microsoft wooers were staying.

My interviews took place over two full days, about 7 hours each. I had four interviews the first day and 6 the second, plus "lunch interviews" which are more casual.

The technical questions I was asked fell into roughly into three categories.

Design Questions

  • Compare and contrast SQL Server with MySQL.
  • Compare and contrast stored procedures and dynamic SQL.
  • Describe a standard 3-tier architecture and the interfaces between each tier.
  • Compare and contrast a rich client and browser-based web application .
  • Compare and contrast WS and remoting protocols.
  • Design the data structures for the game battleship.
  • Consider the Dead Sea Scrolls. Imagine that you have these torn up old shreds of paper with ancient words on them. You want to develop an application that will display one sheet at a time on the screen.

    When the user left-clicks a word, the page containing the previous occurence of that word is displayed and the word is highlighted. When the user right-clicks a word, the page containing the next occurence is displayed and the word is highlighted. When the user double-clicks a word, the definition is displayed.

    How would you design the application?

Puzzle Questions

  • Given an array of the counties in NY represented as arrays of line segments, find the collection of line segments which represent the outline of the state.
  • Consider an SOA rich-client application used by several international vendors, where one vendor sees bandwidth usage far exceeding what would be expected based on their usage. What steps would you follow to debug the problem?
  • Imagine a trainyard. The purpose of a trainyard is to reorder trains so that they are most efficiently grouped for outbound travel. The basic unit of a trainyard is a piece of track which looks like the figure below.

    The train operator can perform three operations: move a car from the source to the spur, from the source to the destination, or from the spur to the destination. So, for example, he could reverse a train by moving each car onto the spur and then moving each car onto the destination.

    Write a function which, given an array of integers representing the order of cars on the source, and another representing the order of cars desired on the destination, prints instructions telling the trainyard operator which operations to perform to reorder the train correctly.

    1  
    2  
    3  
    4  
    5  
    6  
    7  
    8  
    9  
    10
    Trainyard Track:
    ----------------------------------------------
     Source                           Destination
    ------------         --------------------------
            +--+        +--
        +--+        +--+
    +--+        +--+
    Spur    +--+
        +--+
    +--+                                

Coding Questions

  • Implement a function which, given the integer value of the hours and minutes hands of a clock, returns the measure of the degrees between them.
  • Find the lowest valued node in a Binary Search Tree (BST) greater than or equal to a a certain value.
  • Verify that a given BST is valid.
  • Given the following database table, which represents the history of user account statuses, give the query that returns the users which had a certain status on a certain day.

    1  
    2  
    3  
    4  
    5  
    6  
    7  
    8
    STATUS_HISTORY
    ----------------------------------
    User     StartDate    Status
    ----------------------------------
    Bob      June 5       Paid
    Jane     June 12      Paid
    Max      July 1       Overdue
    Bob      July 1       Overdue                    


    So say, for example, you wanted to find all users who were overdue on July 5th.
  • Implement the datastructures for a Trie and a function to populate it based off a page of text

General Advice for the Hopeful

My overall impression was that the people who do interviewing at Microsoft are really cool and laid back. Nobody gave me a hard time about my education, nobody insisted that I have 6 years hardcore experience in XYZ vertical. They really are just concerned with how well you have the potential to do.

With that said, if you really do want to work at a company like this, all you have to do is go in there and show them that side of you. It's a surprisingly honest process.

Another thing I think it was important was to remember who my audience was at each stage.

In the beginning, when you submit your profile, your audience is a machine and a quick human filter. You need to be keyword-heavy, professional, and show some enthusiasm to appeal to the human filter. But mainly you're just trying to get a call. You want to seem right for many different types of positions.

Later on, your audience is an HR representative. He or she is not a programmer, so again, you're just trying to avoid elimination. Don't say "no" to anything. Chances are good that you at least know something about what he or she is asking.

As the process goes on, you talk to a real programmer during the phone screen and then a lot of real programmers when you go to the campus. At this stage, you can be a lot more personable. You have gotten past the weed-out stage, and now you want to gamble a little bit on leaving a lasting positive impression.

Also remember that from the tech screen on, everyone you talk to probably has more experience then you. As my friend Chris says, "Just assume everyone you talk to is smarter than you." Resist the temptation to exagerate, because they will probably be able to catch you, and that will definately get you eliminated.

From what my recruiter says, they hire about 1 for every 4-10 people who go to Redmond, so if you get that far your odds are pretty good. Just be nerdy, likeable, and excited. I think that is what they want to see most.

ICS v9.5 OverbyteIcsWSocket.pas 整体架构分析 核心架构:OverbyteIcsWSocket.pas 是 Internet Component Suite (ICS) 的基础网络组件单元,提供跨平台 Winsock API 封装,支持TCP/UDP 客户端/服务器,DNS 解析和Raw Socket。在 v9.5 中,SSL/TLS 代码已分离至 OverbyteIcsSslBase.pas 等单元,使核心单元更精简,专注于非加密 socket 操作。 阅读详情

相关推荐

VirtualBox增强功能安装全指南:从下载到配置复制粘贴功能

本文详细介绍了VirtualBox增强功能的完整安装与配置流程,重点解决了虚拟机与主机间复制粘贴、文件拖放等核心协作难题。通过分步指南和故障排查,帮助用户在不同操作系统(如Windows、Linux)中实现无缝集成,提升虚拟化工作效率与体验。

weixin_29206669的博客 419

软件随想录(local.joelonsoftware.com/wiki)-2000年03月23日 软件人员面试教战守则 - The Guerilla Guide to Interviewing

2000年03月23日 软件人员面试教战守则 - The Guerilla Guide to Interviewing   The Joel on Software Translation Project:软件人员面试教战守则 From The Joel on Software Translation Project Jump to: navigation, sea

tiewen的专栏 1209

Matlab实战:用递归最小二乘法(RLS)搞定动态系统参数辨识(附完整代码)

本文通过Matlab实战,详细介绍了如何利用递归最小二乘法(RLS)进行动态系统参数辨识。文章从理论优势切入,提供了完整的仿真数据生成、RLS算法核心实现代码,并对参数收敛过程、预测误差及不同遗忘因子的影响进行了可视化分析与性能评估,为工程实践提供了清晰的指南。

weixin_29035405的博客 503

II-Behind the Scenes

Please indicate the source: http://blog.youkuaiyun.com/gaoxiangnumber1 Welcome to my github: https://github.com/gaoxiangnumber1 Once you are selected for an interview, you usually go through a screening int

gaoxiangnumber1——Gao Xiang's Blog 924

Ansys Zemax | 多模光纤耦合效率优化与IMAE操作数实战解析

本文详细解析了在Ansys Zemax(OpticStudio)中优化多模光纤耦合效率的实战流程。通过几何图像分析诊断初始效率,并重点介绍了如何利用IMAE操作数将分析工具转化为自动化优化引擎,实现从2%到54%的几何效率飞跃。文章还探讨了引入菲涅尔损耗与偏振计算以逼近真实效率,并分享了关键的避坑指南与高阶技巧。

xk7n92h3p5m的博客 749

从零做出可发布的2D冒险游戏!Unity全流程实战指南:从资源搭建到打包发布,新手也能跟着做

项目配置→资源导入→核心模块开发→关卡设计→调试→打包发布;玩家控制→敌人AI→道具系统→UI系统→游戏管理器→音效系统;新手开发重点:先实现核心玩法(移动、跳跃、攻击),再补充UI、音效、存档等辅助功能;调试是关键:每实现一个功能就测试,避免最后一堆bug难以定位。从零做一款完整的2D冒险游戏,能快速提升你的Unity综合能力——不仅能掌握C#编程、2D物理、UI系统,还能理解游戏开发的完整流程。先做出基础版,再慢慢迭代优化,你会发现游戏开发并没有想象中那么难。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1176

读书笔记:如何招到聪明又能做事的人

  项目组最近在招人,在招聘过程中,从对招聘人要求来看,我们需要阅读简历、进行技术面试、人力面试并最终决定是否录用,从对公司要求来看,面试人员会看公司提供 什么工作环境、薪资情况等。经过了一段时间的招聘,我发现不仅仅是顶级的技术人才很难招到,就是合适的人也比较难招到。   聪明但不能做事的人,往往能弄出一些看似高深的东西,但是缺乏实际用处。而能做事但不聪明的人,常常做出的事情很一般,有时甚...

weixin_30492601的博客 157

【如何利用扩展卡尔曼滤波解决跟踪毫米波雷达目标】

笛卡尔坐标系(非极坐标系):使用两个垂直的轴(通常是x轴和y轴)来确定一个点的位置。你沿着这两个轴移动确定的距离来找到这个点。极坐标系:使用一个角度和一个距离来确定一个点的位置。首先,你转到一个特定的方向(角度),然后沿着那个方向移动确定的距离来找到这个点。希望这个例子能帮助你理解两种坐标系的基本概念!

小秋 AI SLAM 入门实战教程 885

算法面试突破指南:30,000+工程师信赖的面试准备资源库

想要在技术面试中脱颖而出?这个由30,000+软件工程师信赖的面试准备资源库是你的完美选择!🎯 这个全面的项目汇集了各大科技公司的真实面试题库,涵盖了从基础数据结构到高级算法的完整知识体系,帮助你系统掌握面试必考的核心技能。 ## 📊 为什么技术面试如此具有挑战性? 技术面试与其他面试形式有着显著不同。除了扎实的编程基础,你还需要掌握: - **算法思维** - 如何将复杂问题分解为可解

gitblog_00720的博客 249

yolov8 转华为昇腾om脚本

yolov8 转华为昇腾om脚本

jacke121的专栏 1601

基于Simulink的光伏电站AGC/AVC协调控制仿真

摘要:本文基于Simulink构建光伏电站AGC/AVC协调控制仿真模型,通过分层控制架构实现有功-无功解耦与储能协同。系统包含100kW光伏阵列、50kWh储能及逆变器组件,采用PID控制器实现AGC频率调节(±0.1Hz)和Q-V下垂控制实现AVC电压稳定(±2%)。仿真验证了三种工况下协调控制的有效性:正常调度时储能充电20kW;负荷突增时储能15kW放电维持频率;光照骤降时储能30kW放电并吸收2kVAR无功稳定电压。结果表明,该方案可使频率/电压偏差分别控制在0.1Hz和7.6V内,响应时间&lt

xiaoheshang_123的博客 235

Java面试高频考点与牛客网题库深度解析

Java作为企业级开发的主流语言,其核心技术栈的掌握程度直接影响开发者的职业发展。从JVM内存模型到集合框架,这些基础概念的理解深度往往决定面试成败。HashMap的扩容机制、String的不可变性设计等经典问题,不仅考察对语言特性的理解,更反映工程实践中性能优化的思考。牛客网题库收录了BAT等大厂真实面试题,涵盖Java基础、JVM、框架原理等核心模块,通过系统化分类帮助开发者针对性提升。在分布式架构盛行的当下,结合Redis、SpringCloud等热词技术点的深度准备,能显著提升面试通过率。

weixin_30621959的博客 338

GitHub霸榜神器!NextChat领衔DeepSeek全栈开发范式

NextChat(原ChatGPT-Next-Web)是GitHub上斩获81.2K星标的现象级开源项目,定位为"轻量级AI助手终端",支持DeepSeek、Claude、GPT-4、Gemini等20+主流大模型。• 原生集成DeepSeek、GPT-4、Gemini Pro等模型API,同时兼容RWKV-Runner、LocalAI等自建模型框架,通过环境变量。• 客户端体积仅5MB(Windows安装包约6MB),采用PWA渐进式Web应用技术,首屏加载速度优化至100KB级,老旧设备亦可流畅运行。

实战AI智能体 894

算法面试准备度评估:从刷题数量到能力体系的实战指南

算法与数据结构是计算机科学的核心基础,其原理在于通过高效的数据组织和计算步骤解决特定问题,旨在优化程序的时间与空间复杂度。掌握它们对于提升软件工程能力、通过技术面试具有关键价值,广泛应用于后端开发、系统设计及大规模数据处理等场景。本文聚焦于**算法面试准备**这一具体实践,针对求职者普遍关心的“刷题数量”与“面试表现”脱节的核心痛点,提供了一套基于**知识体系**、**解题熟练度**和**沟通应变**三维度的可量化评估框架与分阶段训练策略,帮助开发者将零散的刷题转化为系统性的能力提升,从而自信应对国内外大厂

weixin_30571465的博客 368

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 311

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

微软技术日报 2026-11-05:安装器变现链被拆开、OneLake 托管 MCP、Agent 365 进 Gartner 象限

把这几条放在一起看,共同点是把已经铺开的东西补上治理。安装器那条最直白。用户自己点开的程序,装完还会往回连,落地的东西藏在计划任务里、Program Files 里,用户不知道。微软给的检测思路也是往这个方向走的,看临时目录、看回调、看 SYSTEM 任务,而不是追域名。OneLake 那条是给 agent 补路标。以前每种 item 类型都要维护一份端点清单,现在让服务自己报出来。好处是 agent 不用猜,代价是判断责任转移到了客户端,技能要不要加载得自己决定,标签也不能当成授权。

海盗Sharp的博客 1397

AI驱动数据处理的安全边界:行业现状、风险权衡与本地化实践路径

本文基于第三方数据,分析AI用于数据处理的安全议题。大模型应用加速普及,但伴随数据出境、影子AI、幻觉与成本失控等风险。行业共识指向“脚本复用”路径:将分析逻辑本地化固化,实现数据可控、结果可复现、成本可降。产品如数以轻舟提供本地处理、多模型接入与一次付费永久使用方案。建议企业从数据落点、可控性、可复现性与合规性四维度评估选型,推动AI在安全边界内释放价值。

数据矿工-数据化运营博客 271

微软技术周报 11-02~11-09:VS Code 混装 Claude 与 Codex、EF Core 11 静默改行为、.NET 11 倒计时

11 月 6 日,Power Platform 通过消息中心通知管理员,Copilot Studio、Power Automate 和 Power Apps 里所有跑在 Anthropic Claude、xAI Grok 以及旧版 GPT 上的 prompt,12 月 2 日自动迁移到 GPT-6 系列,档位价格不变,模型选择收窄到一条产品线。效果是这样的:让 Claude 评审一个 Copilot chat 写出的方案,或者把同样的任务交给 Codex,两边并排跑在同一个会话里。更要紧的是下周的时间线。

海盗Sharp的博客 459

微软技术日报 11-08:Foundry 与 Entra 各挂一个 10.0 分漏洞,Foundry 接 fal 五款视频模型

这一周的动作可以分成两类。一类在收。Copilot 从电视上退场,搜索里的 AI 改成可选,云端漏洞只发通知不收补丁。共同点是承认铺得太开,代价比预期高。另一类在放。Foundry 一次摆上五个视频模型,容器版应用网关一个入口挂 64 个 MCP 服务器。共同点是把能力做成可组合的积木,让使用者按需挑。两个方向背后是同一个判断。把能力塞到每一个界面上,短期看覆盖率高,长期要解释为什么删不掉。新的做法是先给一个能关的开关,再谈覆盖。对每天写代码的人来说,今天有两样现成的东西可以试。

海盗Sharp的博客 368

【测评】SenseNova6.8Flash模型正式发布,支持动态 PPT 及 3D 设计

SenseNova 6.8 Flash将设计生成拓展至多种创作形态,支持Web、SVG、Three.js、Blender、PPT等形式,满足多样化的AI Native Design需求,并支持动态PPT、动态Poster与Agentic 3D设计。同时,模型可接入Figma等专业工作流,帮助用户将AI设计能力融入现有的专业设计流程。此外,模型还支持三维场景与交互内容创作,可综合处理空间布局、材质与光照、镜头控制及动画编排等因素,构建可在网页中实时渲染的三维内容,拓展从立体视觉展示到动态交互的表达方式。

Enweitech Software Works 327

微软输入法标点乱跳解决方案

微软拼音输入法常因“中文输入时使用英文标点”开关被意外开启,导致标点自动切换为英文且快捷键失效。本文提供一键批处理脚本,通过修改注册表(HKCU\Software\Microsoft\InputMethod\Settings\CHS)强制锁定中文标点,覆盖多个相关键值,确保设置持久生效。相比手动操作,该方案可抵御更新、同步等导致的配置重置,提升稳定性。执行后需重启输入法或系统以使更改生效,建议提前备份注册表。

谙弆悕博士的技术博客! 269

视频美颜sdk的API设计会影响开发效率吗?

视频美颜SDK不仅需要具备优秀的图像处理能力,API接口设计同样会影响软件开发效率。本文从接口调用、参数配置、版本兼容、开发文档以及业务扩展等多个角度,分析API设计对视频美颜SDK集成和后期维护的实际影响,为直播APP、视频社交平台等项目的SDK选型与技术开发提供参考。

wanyuekeji的博客 212

微软 BioEmu2 实测:AI 设计的抗体,能否通过动态模拟提前筛选?

微软 BioEmu2 实测:AI 设计的抗体,能否通过动态模拟提前筛选?**2026 年 10 月 26 日,展示了一个 AI 抗体候选的 10 纳秒传播动画。**但这个案例留下的最大问题,仍是实验室门前那道选择题:一批看起来合理的设计,究竟该把哪几个送去测试?Ford 正在参与 Adaptyv 与 Anthropic 的蛋白设计竞赛,也在开发抗体语言模型。**但他在原文中坦言,生成候选容易,挑出值得测试的候选依然困难。**本文解读他的公开实测,并对照微软文档核查证据边界,未独立运行模型。

weixin_71777199的博客 196

微软技术日报 2026-11-04:8GB 专属优化、38 万漏洞利用统计、NuGet 包带技能

11 月的第一周,微软把注意力放回了最不显眼的那批机器。11 月 3 日,Windows 官方博客发出一篇由 Pavan Davuluri 署名的文章。他是微软执行副总裁,负责 Windows 与设备。文章的题目直白得少见,讲的是怎么把 8GB 内存的 Windows 11 电脑拉到及格线以上。同一天,.NET 博客在讲另一件事,怎么把 agent skills 塞进 NuGet 包。11 月 2 日,微软安全研究发了一份跨 27 年的漏洞利用统计。

海盗Sharp的博客 457
上一篇: Microsoft Interview Questions
下一篇: Interview Questions - Microsoft, etc.
MichaelGen
博客等级 码龄23年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值