你好,国内的话找实习应该很好找的,嵌入式这个东西越来越需要操作系统的支持,所以你想找一个linux的实习,我只能说,你的选择是非常正确的。但具体的学什么,我个人感觉还是不要自己在职业生涯之前做过于具体的定义,因为嵌入式方向很多,物联网,上层应用,设备驱动,内核编程裁剪移植,bootloader裁剪移植,Posix开发,Autosar,Qualitymanagement,单片机开发,各种通信协议的驱动设备开发,QT GUI,安卓。。。。方向实在是太多了。所以我个人觉得就是just do it, just right!你不可能把什么都学会的,公司需要什么,你就学什么。每个实习都有一个大体的Task description,你可以根据这个判断方向大体是什么,是硬件为主,还是软件为主,虽然说都重要,我个人觉得还是稍微有所偏向比较好,至少在软件和硬件上做出一个决定,就差不多了。
其次可以根据职业规划定义一个领域,比如光学嵌入式设备,汽车总线驱动(CAN, Flexray,LIN),包括一些工业协议像MOST, EtherCat等等,都是很有用的,互联网的话就是基于TCP,UDP/IP的一些上层协议,当然还有一些诸如IEEE802.11s的Mesh网络或者其他别的像Zigbee,蓝牙什么的,选择真的是太多了,你能说你全部掌握吗?真的是不可能的,我建议你先把嵌入式在中国(我在德国,和中国的嵌入式还不太一样的)的发展情况了解一下,一般说来,大公司的实习基本上就是完成最基本的任务就可以了,中小公司可能会让你做一些周边的东西,比如基于WiFI让你用Python在PC上做一个诊断系统或者HMI,这样学的东西可能会更多。
当前情况嵌入式软件工程师招聘面临一个尴尬的情况就是,招一些学计算机的,不懂电路,硬件知识不多。而招一些电子工程师吧,编程能力又不强。。。遇到一些大的项目,尤其是做上层应用开发,就相当别扭。所以索性把分工弄得特别的细,这样有好处,也有坏处,看你怎么去看待他了。
建议你在实习期间好好表现,多多请教,交流是一种能力,尤其是在和高工们一起探讨UML图的时候,你会学到很多软件架构和设计方法。在学linux的时候切记,不要直接去动内核,会很痛苦的,建议你先弄个板子,不管是公司的还是自己买的,尝试一些基础的练习,学习一些基于IPC, Pthread,或者Socket的应用开发,这样提起兴趣就好了。内核其实我一直觉得根本不需要动的,现在的BSP多么的发达啊,公司早就移植配置好了,你只需要写一写设备驱动和上层应用就已经很好啦。国内公司一般看中你的是能力,而这种能力往往是某一种专一的,比如就是嵌入式,C++,你代码写得好就行。国外不是这样,他们很多看中的是你的整体的知识架构和完整性,你个人的发展和Soft Skill,英语水平,德语水平,和客户的交流能力,甚至一些Soziale Kommunikation(社会交往能力),所以在国外工作也一点不清闲呀。毕竟国外很多方面都比较领先,所以我建议你,不仅在专业上努力学习,还要多多培养与人沟通的能力,还有英语水平,很重要。祝你成功吧。