一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2560|回复: 21
收起左侧

[找工就业] 我眼中的Embedded Software

[复制链接] |试试Instant~ |关注本帖
iceman 发表于 2016-1-1 12:32:53 | 显示全部楼层 |阅读模式

2014(4-6月)-[12]CE硕士+1-3年 - Other| 码农类全职@Microsoft在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
一转眼加入微软已经半年了,回想在美帝的第一份fulltime和第一次跳槽,有很多体会,希望在地里和大家分享。
首先介绍下背景:LZ 本科毕业于985/211AAE相关专业,MS毕业于Purdue方向CE;在美帝最大的汽车电子设备公司工作一年半后加入微软。
Embedded Software 是啥?广义上说,除计算机以外的所有具有计算能力的针对特定需求的设备都是嵌入式设备,为其开发的各层软件都属于embeddedsoftware。一个典型的例子就是在各种可穿戴设备上运行的驱动以及应用程序。desktop/laptop/tablet不属于embeddedsystem,因为它们是“通用”计算设备。
针对embedded systemembeddedsoftware 开发与基于PC/server的软件开发有啥不同?从LZ自己的实习、工作经验出发,区别主要有:
1.     1. 在硬件层面,嵌入式系统的硬件资源比计算机要少得多,并且往往具有特异性;因此embeddedsoftware的开发总是紧密围绕着具体硬件展开的。这也要求embeddedprogrammer对硬件有基本的了解,尤其是驱动程序的开发者。
2.    2. 在操作系统层面,最常提到的概念是RealTime Operating System(RTOS),强调OS稳定可靠地处理实时任务的能力。例如LZ毕业后的第一个project就是为embeddedcontroller开发API,所用的RTOS是WindRiver提供的。该RTOS没有友好的用户界面,更不支持app开发,但能确保在各种恶劣条件下稳定地运行,响应多路高速输入信号并支持实时API完成多种控制信号的输出。
3.    3. 在应用层面,app开发与iOS/Android类似,但不一定采用以上两种OS。LZ曾做过一个为infotainmentsystem搭建app framework component的project,所用OS为embeddedLinux,通过与Google,Pandora等公司联系我们可以获得许多热门app的APIset,然后将它们引入我们的平台。

总的来说,LZ接触到的embeddedprogramming相对“一般”计算机程序更注重实时运算(快速处理大量实时信号/任务),注重可靠性(高温、严寒、震动、冲击、电磁噪声不能影响核心功能的正常运行),注重自检测与异常恢复能力(试想飞行导航系统在起降途中蓝屏并要求重启。。。),主要使用电池的系统严格限制功耗和热控,采用的数据结构和算法的复杂度相对较低。

LZ来Purdue刷MS时,ECE下有8个方向,几乎覆盖EE/CS所有主要领域,而且新生可以自由选课,为何LZ要选择embeddedsoftware而不是当时很火的cloudcomputing/big data/digital design呢?主要是LZ根据自己的背景和兴趣决定的。由于是AAE半路出家,因此一些ECE/CS的核心课程,如操作系统和编译器,本科阶段LZ根本没碰过,来了美帝后才一点点自学;另一方面,本科专业涉及到一些嵌入式领域的东西,而这也正是LZ的兴趣所在,因此还申请并完成了校内的科研训练项目以及校外的外企研发实习,主题也都是embeddedsystem。 最后借此在美帝成功拿到第一个fulltimeoffer,算是没白学~~
说到本科专业,还是想多说两句:AAE相关的专业申请出国确实不是捷径:签证的高check概率就不提了,最棘手的是许多AAE领域的知识到了美帝容易成为屠龙之技:美帝AAE工作民用领域往往要求greencard,军用领域要求citizenship,“对口”就业不但比不上CE/CS,甚至难于其它理工专业。话说回来,也正是由于我进入一所好的大学的好的AAE专业,才让我很轻松的找到Honeywell(和学校有长期合作关系)的研发实习,这对我日后留学申请/找工求职帮助很大。
在embeddedsoftware 领域混,需要哪些技能呢?编程语言最简单,C足矣。偏底端的firmware/BSP的开发懂点汇编更好,偏应用的会基本的C++,Javascript/python就行; 算法导论恨不得看到chapter12就够了,那些所谓的高级算法、数据结构日常工作中基本用不到。硬件方面需要有数电/模电基础,能看懂简单的电路图。
找工作刷题?当然是需要的,不过相对于面向计算机编程的职位,embeddedsoftware 面试的准备不需要浪费太多时间啃复杂算法题,对LZ这样非科班出身的CE/CS要轻松得多。网上刷题我首推GeekForGeeksLeetCode,我面过并且拿到offer的一些大公司,包括Microsoft,Broadcom,Tesla等等很多我遇到的面试题都能在上面找到原题或变形(embeddedsoftware方面)。另外LZ在准备技术面时的一些参考资料已经附在本帖末尾(很多大附件禁止上传。。。)
LZ为啥跳槽到微软?主要是气候的原因。LZ留学和头一年工作都在midwest,主要特点是地势平坦,民风淳朴,原先公司的manager也非常nice,无论是日常工作还是绿卡申请都很支持;夏天气候凉爽,百花盛开,秋天同事还会带各种自家种的新鲜蔬菜来分享;中西部的生活显然不是纽约,芝加哥的大都会模式,家家独门独户,大树环绕;LZ经常在自己公寓的空地上看到鹿飘过啊有木有!!
. 1point 3acres 璁哄潧
然而LZ来自天朝东南沿海某小渔村,对于midwest冬季常见的风雪和低温实在是累感无爱,加上总是没有新鲜海鲜,因此还是决定跳到西海岸。Seattle的天气还是比较令人满意的,传说中的阴雨主要集中在冬季,夏季和秋季总是云淡风轻,适合各种户外运动,LZ第一次来就喜欢上了这种感觉。LZ在拿到Microsoft的onsite前刚刚拿到Broadcom的embeddedsoftware offer,但考虑过后还是婉拒了,主要原因就是到SanDiego面试时那种潮湿的空气让LZ有一种生活在泳池里的感觉。。。

最后提到Microsoft的绿卡政策,毫无疑问是所有公司里最好的之一,入职2月后就自动启动整个流程。不过具体到绿卡类别,有一点工作经验再跳槽如微软比毕业直接入职有明显优势:微软内部决定EB2/EB3的主要是manager拍板的jobdescription以及min requirement,默认的类别都是EB3;LZ因为之前在中西部的工作经历,递交laborcertification时JD和skillset很好写(为萝卜量身挖坑的过程),加上manager支持就按照EB2提交了;LZ在内部DL也了解到一些case因为申请人直接进的微软,导致skillset太普通,在laborcertification中fail不得不从来一遍的例子,以及一些manager以之前组员都是EB3为理由不愿意支持EB2的;总之还是要抱着waitand hope的心态享受生活吧。

c-interview-questions-techpreparation.pdf

127.32 KB, 下载次数: 54, 下载积分: 大米 -1 升

Firmware Interview questions.pdf

136.18 KB, 下载次数: 42, 下载积分: 大米 -1 升

Firmware Questionnaire .pdf

109.35 KB, 下载次数: 43, 下载积分: 大米 -1 升

评分

6

查看全部评分

pbj 发表于 2016-1-2 00:55:49 | 显示全部楼层
楼主能提供内推么?
回复 支持 反对

使用道具 举报

franciszz 发表于 2016-1-2 00:55:58 | 显示全部楼层
请问LZ跳槽到MS做的也是embedded system吗?具体是什么职位啊?
回复 支持 反对

使用道具 举报

malc 发表于 2016-1-2 01:00:46 | 显示全部楼层
很赞!感谢楼主!看来我得继续加油了!
回复 支持 反对

使用道具 举报

liqiyang1908 发表于 2016-1-4 06:56:48 | 显示全部楼层
请问LZ,要是刷题Leetcode需要刷到什么难度的呢,另外用什么语言刷比较好?而且,你工作的时候或面试的时候,有问过你像bluetooth,wifi, can,ethernet这样的protocol嘛,需要之前学习准备一下吗
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-4 15:25:57 | 显示全部楼层
微软和谷歌很不同,内推基本没有用。。。
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-4 15:27:51 | 显示全部楼层
pbj 发表于 2016-1-2 00:55
楼主能提供内推么?

不是,embedded出身不代表永远做embedded,还是看个人兴趣和机会
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-4 15:29:21 | 显示全部楼层
pbj 发表于 2016-1-2 00:55
楼主能提供内推么?


微软和谷歌很不同,内推基本没有用。。。
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-4 15:29:50 | 显示全部楼层
franciszz 发表于 2016-1-2 00:55
请问LZ跳槽到MS做的也是embedded system吗?具体是什么职位啊?

不是,embedded出身不代表永远做embedded,还是看个人兴趣和机会
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-4 15:35:42 | 显示全部楼层
liqiyang1908 发表于 2016-1-4 06:56
请问LZ,要是刷题Leetcode需要刷到什么难度的呢,另外用什么语言刷比较好?而且,你工作的时候或面试的时候 ...

这个没有绝对,有机会可以参考以前的面经了解大致方向,没有的话根据JD准备基础的就行;语言还是以JD为准,但C、C++是万金油;protocol主要还是看具体的组,不属于“通用”要求
回复 支持 反对

使用道具 举报

liqiyang1908 发表于 2016-1-5 02:29:04 | 显示全部楼层
iceman 发表于 2016-1-4 15:35
这个没有绝对,有机会可以参考以前的面经了解大致方向,没有的话根据JD准备基础的就行;语言还是以JD为准 ...

LZ能否另开一贴,写写面经呢。。。很关注这个方向,所以也很想知道会问些什么
回复 支持 反对

使用道具 举报

franciszz 发表于 2016-1-5 12:58:13 | 显示全部楼层
iceman 发表于 2016-1-4 15:29. from: 1point3acres.com/bbs
不是,embedded出身不代表永远做embedded,还是看个人兴趣和机会

所以楼主是去做SDE了?还写C++吗?
回复 支持 反对

使用道具 举报

malc 发表于 2016-1-8 06:09:55 | 显示全部楼层
楼主,本人也是决心搞embedded方向,以前做过很多project但是却没有实际工作经验,而且我在的地方也没有什么嵌入式类的公司,所以也没有找实习,五月就要毕业了,现在的打算是系统的自学一遍embedded相关的知识,然后再做一两个project,打算二三月份开始投fulltime,你觉得这样可行吗?没工作过所以也不知道各大公司愿不愿意招embedded new grad,很没谱啊,谢谢了!
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-15 10:07:28 | 显示全部楼层
malc 发表于 2016-1-8 06:09
楼主,本人也是决心搞embedded方向,以前做过很多project但是却没有实际工作经验,而且我在的地方也没有什 ...

我觉得没问题: 传统的embedded公司、职位主要集中在湖区(中西部),Texas等,典型的是各种汽车、航空航天公司(LZ收到过雷神、洛克希德马丁的HR的邮件,然而要求citizen。。。)此外还有芯片公司如Qualcomm, broadcom,intel,TI等(主要是Firmware,BSP方向);LZ最推荐去大公司的embedded/device部门,例如Apple的各种部门都需要embedded software,Google有glass等等,Facebook和Microsoft都有VR设备开发计划,发展机会有很多。很多职位并不要求工作经验,只要好好准备基础的算法,数据结构题目(从geekforgeek开始),大胆投简历就行;直接进facebook有难度,找一份不错的码农工作肯定没问题,我认识的所有这个方向的人都低调的搞定了offer
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-15 10:12:09 | 显示全部楼层
franciszz 发表于 2016-1-5 12:58.鐣欏璁哄潧-涓浜-涓夊垎鍦
所以楼主是去做SDE了?还写C++吗?

是滴~微软内部经常reorg,呆久了接触不到完全不同的tool,skill才是不正常的
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-15 10:18:20 | 显示全部楼层
liqiyang1908 发表于 2016-1-5 02:29
LZ能否另开一贴,写写面经呢。。。很关注这个方向,所以也很想知道会问些什么

我拿到M的offer最感谢的就是onsite当天的HR小哥,对我各种辅导动员,帮助很大;加上签过NDA,所以不愿意恩将仇报写具体面经;根据我的经验onsite的绝大部分题目都能在careercup和GekkforGeeks上找到非常相似的原题,连leetcode都不用刷(不同组间差别很大,仅供参考)
回复 支持 反对

使用道具 举报

 楼主| iceman 发表于 2016-1-15 10:19:58 | 显示全部楼层
malc 发表于 2016-1-8 06:09
楼主,本人也是决心搞embedded方向,以前做过很多project但是却没有实际工作经验,而且我在的地方也没有什 ...

虽然相比data science默默无闻,但是绝大多数大公司都有不少embedded相关职位,到他们的career网站搜embedded或firmware就能看到,例如Apple的WiSE组
回复 支持 反对

使用道具 举报

malc 发表于 2016-1-15 14:42:13 | 显示全部楼层
iceman 发表于 2016-1-15 10:07
我觉得没问题: 传统的embedded公司、职位主要集中在湖区(中西部),Texas等,典型的是各种汽车、航空航 ...
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
太感谢大神回答拉!看来我得好好准备接下来这几个月
回复 支持 反对

使用道具 举报

aqbqccq 发表于 2016-3-26 01:51:37 | 显示全部楼层
好贴!谢谢楼主作为过来人的经验分享。
回复 支持 反对

使用道具 举报

天空无语 发表于 2016-3-26 07:19:26 | 显示全部楼层
所以楼主面的微软的embedded software职位,但是最后做的是sde的活儿吗?
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-6 04:37

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表