第一篇:大华面试总结(linux嵌入式软件工程师)
面试时间:2012年2月11日9点-15点
面试地点:浙江杭州高新人才市场(文三路199号)招聘会:浙江大华技术股份有限公司专场
前记:大年初六就出发了,今年必定将是个(忙碌+压力)的一年 最近一直在为面试做准备,两天前得知大华今天要在高新人才市场开招聘会,于是加紧了准备时间,因为没分配好时间,所以没达到很好的复习效果,一会看看培训期间的PPT,一会做做面试题,一会看看同学的笔记,一会改改简历,一会根据简历来复习,就这样,,最宝贵的两天针对性复习过去了。
2012年2月11日8点晨………………手机铃声响了………,下意识的知道要面对某些事了,迷迷糊糊听见某人的起床声,“哦,我也该起床了…可是我好困,我要再睡会儿“(心里默念道)。
起床了,起床了,,,杜**喊道,我眯了眯眼看着他,哦…… “是该起床了”,不情愿的掀开了被子,然后习惯性的按了下电脑左上角的启动按钮,还像石像似的发呆了一分钟,都过去两分钟了那些困意才像晨雾见到太阳似的渐渐的消失了。因为前天晚上一直到第二天凌晨一点半才睡,再加上失眠了一阵子。失眠是由于这次面试,因为大华的薪资、福利、待遇、休闲娱乐、企业文化都很不错的,所以我挺看重这次招聘会的。对于准备,自我感觉准备的还可以,但还是不够充分,所以在睡觉前,满脑子想的全是什么TCP/IP、UDP啊,SOCKET通信原理啊,汇编指令啊,linux的操作指令啊,mysql的操作语句啊,还有之前面试被提到的问题以及培训期间写的一些小项目啊……等等……等等,满脑子充斥着这些东西……还自己导演了一把面试对话:“假如被问到SOCKET通信原理该如何回答,如果被问TCP/IP协议的三次握手该怎么回答…………“。额,自己给自己当面试官回答的当然挺好的了,不知不觉就睡着了,,,直到凌晨那个刺耳的铃声。
刷牙,洗脸,几分钟搞定;因为最近理了个短寸,这头发是每隔一天不洗就变的更光亮些,因此我还经常指着头对朋友说:“你看我这发型多好,四天不洗,像抹了神马油似的,这么短,梳子的钱都省了。。“(其实几天不洗头,外表很光亮,但是有点痒,而且越挠越痒)下楼,,本来是想坐公交过去的,结果差半分钟没坐上K74,坑爹的K74弟弟一直到9点还没来,这招聘会都快开始了,被逼无奈之下揽了个的哥。打的就是TM的快,15分钟就到了。刚进招聘会大门,眼前近300平方的房间全是人,于是我就去找那个前两天联系我面试的人,结果她给我安排了一位大约30岁的面试官对我进行初步的了解。
开始面试了,首先是自我介绍,这个应该难不住一个会说话的人吧,每个人的回答方式都不一样,我是分三部分来介绍自己的。第一部分,自己的基本信息,如名字,毕业院校,哪里人,工作经验,培训经历,为什么来杭州等等。第二部分是个人喜好,比如说:有点宅,喜欢爬山,不喜欢看电影(高质量的影片除外),不喜欢连续剧,不喜欢小说,第三部分是性格特点,比如说,喜欢交朋友,心细,比较关心周边的朋友。第四部分….(自由发挥)。也可以说一下自己的缺点,但是不要说的太严重,我记得有一次面试,我为了表现自己的诚恳,当面试官问我有什么缺点的时候,我说:自暴自弃,自控力差………,TMD当时面试官就傻了,我还试图力挽狂澜,解释这只是以前的缺点。可是这已经挽不回很差的印象了,所以对于这些致命的缺点Please Shut Up(因为我毕业前就是自己做一些事情,一直做到培训前,所以我面试经验基本上是0吧,而且每次都是表现的很诚恳,经常出闹剧,直接pass)。
有一些爱好我把产生的原因也加进去了,这样我就可以拖长面试时间,还可以让面试官更透彻的了解我。我在面试的时候是这样说的:之所以喜欢爬山是因为我喜欢超越的感觉,我并不会叫朋友用相机在那里咔咔咔的给我留下许多照片,因为我想把更多的时间放在征服这座山上,我想爬的更高、更远,每超越一个人我就都有一种小小的成就感,,,(略,,100字,,根据个人情况自由发挥)。
(自我介绍完毕就开始提问了,由于是初步的筛选,所以都比较简单)(下面是答题对话的过程,根据回忆,大概就是这样)第一题
考官:!@#$%^&*(我没理解题意)我(闷):不知道怎么回答@#¥%……&*()。
考官(换个方式问):你用字符串给字符数组和字符指针初始化。我:写了char str1[10] = “abcdefg”;和char *str2 = “1234567”;考官:str1和str2有什么区别?
我:str1是指向一个字符串的指针,str2是常量字符串指针,str1被分配了地址空间而str2没有分配地址空间,它只是指向这个常量字符串。
考官:字符串str1和str2分别是存在哪里? 我:str1是存在栈上,str2是存在静态存储区。…………..略(100字扩展回答)…………..考官:写出你知道的用字符指针定义的变量;
我(自信的):1,char *c;char **c;2,char *c[10];….3,char(*)[10];….4,char *(*)(int);5,char *((void*)())(int);等等写了大约10个,因为我对第五个不熟悉,也不知道写的对不对,于是他就在这个点上对我进行狂轰滥炸,幸亏我及时想起来了,那个是函数指针,于是我开始解释,,,此处略去五十字。分析:不要把自己往不熟悉的问题上扯,那样会引火烧身。
(就这样,我通过了初步面试,然后面试官就拿了张试卷给我,题目如下)(下面是题目,大家可以自己做一下,答案在最后面)1,已知文件in.txt,该文件记录某班级某门课的学生考试成绩,每次记录一条信息,格式为姓名+空格+成绩+回车换行,比如
//////////////////////////////////////////////////////////////////////////////////// In.txt中的数据 排完序写入out.txt 张三 86 ……
李四 79 => 王五 93 王五 93 => ……… ……….张三 86 赵六 71 …………
李四 79 ………….赵六 71 //////////////////////////////////////////////////////////////////////////////////// 请编程实现对考试成绩按照从高到低的顺序排序,把结果输出到文件out.txt,函数声明如下,fin为输入文件,fout为输出文件,成功返回0,失败返回-1; Int fsort(const *fin,const char *fout);//要实现
2,一般的应用网络协议数据由帧头和帧数据体组成,帧头会描述数据的长度。请使用已经实现的数据接收函数recvData和帧数据处理函数processFrame,完成连续接收数据并封装成帧数据进行处理的函数recvAndProcessFrame.//数据帧头定义
Struct DataFrameHeader {
} // 数据接收接口,buffer表示用来接收数据的缓冲,length是需要接收的长度 // 返回实际接收到数据的长度,如果接收失败返回-1.// 实际接收到的数据长度不定,但肯定小于或等于需要接收的数据长度length。Int recvData(void *buffer,int length);//处理帧数据接口,header是帧数据头指针,data是帧数据体指针。Void processFrame(DataFrameHeader *header,void *data);//连续接收数据并封装成帧数据进行处理,接收失败退出函数,否则继续接收并处理。void { } 3,链表节点定义如下: //…需要实现 recvAndProcessFrame()Int size;//…其它头数据
Struct Node { Int data;Node *next;}NODE;有两个链表,已经按data从小到大进行了排序,请编写编写链表合并函数,将两个链表合并为一个有序的链表。// NODE* connect(NODE *head1,NODE *head2){ } //////////////////////////////////////////////////////(因为我复习期间大部分时间放在了代码练习上,再加上一些小道消息,所以我基本上是顺水推舟般的完成了所有题目,写完了就立马交卷。)………………….写完试卷就去找对应的考官,我找到了他,不过要等他结束面前的工作,才可//…需要实现
以审阅我的卷子。(考官结束了手头工作,于是轮到我了)………………….我静坐在考官的对面,而他在阅我的试卷,此时的我只能看到试卷的北面,大约过了2分钟,我也静坐了2分钟,总觉得有点不舒服,于是我就站起来走到考官左侧面说:“如果有什么疑问就直接问我,,,,“.(此处省略50字,是关于个别代码的解释)。因为试卷做得还可以,用时又短(心里很得意),于是在考官快阅完的时候我小小的装了下逼:“我是班级学习委员,我做这些题目很轻松的!@#¥%……&*()“。其实我只是想表现一下自己有优秀的一面,唉,,事实证明我不应该装逼的,俗话说的好:”装逼遭雷劈“,虽然我没被雷劈,可是在后面我是被羞辱的体无完肤。(总结:低调点,小心驶得万年船,自大是考官讨厌的人之一)试卷这个环节结束了,考官说:“恩,你在这里等一下,我去找部门老大(应该是技术总监吧)面试你”,大约3分钟后我在窗口接到了‘老大’的电话,于是我在原地挥挥手,他在电话里说,“我看到你了“,于是我左右张望找了会终于看到了这位老大-----是位40多岁的中年人,于是开始了新一轮的面试。
第一题:
考官(大概的看了下我简历):请写出一个互斥锁的例子。我(有点紧张):
(心里独白:我以为是叫我用汉字描述互斥锁的,由于我是在几个月前写过这样的代码,但是时间太久了,只记得理论知识,忘记代码了,于是我就宁愿相信是汉字描述)。这时,他把笔递给我,我才相信是要我写代码,于是我写了个循环语句,变量都没定义,真丢人啊,…….考官(看我不会写):那你知道在编程中,是如何来保证共享数据操作的完整性?
我(不自信的): 每个对象都对应于一个可称为“ 互斥锁” 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象(大概就是这个意思)。(分析:考察我对互斥锁的理解和编程能力)第二题
考官(写了个函数):看这个函数有错误吗?
Void GetMemory(char *p,int length)//length是申请内存空间的长度 { P=(char*)malloc(length);If(p!= NULL)Else Printf(“failn”);} 我(15秒内仔细的看了三遍小代码):
斩钉截铁的回答“没问题“(晕,这个题目我都做过不知多少遍了,也是一个常考Printf(“success”);//内容记不得了所以用**表示 的基础题,竟然答错了,都怪我粗心没看完整个程序的意思,这个失误是让考官pass我的致命伤,牢记)。
(错误原因之一:由于考官的函数是分两次写的,第一次写了函数头Void GetMemory(char *p,int length)把纸递给我并给我解释了一下各变量的意思,然后又继续写下面的部分,写完后就把纸完全递交给我,我不知道怎么回事,完全忘记了函数头,这是个被调用的函数,而我把他当成主函数 里的代码分析了 int main(){ ***代码略*** },于是我的所有注意力都盯在了代码过程上,仔细看了好几遍还是没发现问题,题目是挺简单的,可总觉得有不详的预感)。第二题分析:主要考察我对指针的掌握程度,TMD,指针是我在C语言那本书的所有章节里学的最好的,这题目也挺简单的,竟然在阴沟里翻船了,很不甘心,草。第二题总结:答题要仔细审题,再简单的问题也不要急于给答案。
第三题
考官(藐视状):你看过哪些关于编程的书?说一说你最近看的且最喜欢看的那本书。
我:(内心独白:糟了,培训期间使用的课本不可以说吧?那我就没看过什么书了,C指针,C++prime神马的PDF只是2个月前看了看开头几个章节,因为感觉大部分知识都懂了,所以就没坚持往下看,年前、年后时间基本上都花在了面试题,百度文库和百度知道上。怕考官急,思考了很短时间便回答了)答:“我的大部分时间都花在了百度文库上了,我还有自己的百度博客,我那里转了不少好文章,还有自己总结了好多东西”。
考官(疑问状):那你说出一篇你认为不错的文章。
我:(内心独白:我的时间分明是大部分花在了面试题上,年前在百度文库里看的文章也没什么印象了,基本上是遇到不懂的知识,泛泛的看一下,没深究,印象也不大,因为我怕考官急,于是没加思索的就说了篇还记得标题的文章。)答:《C语言和C++中’0’和NULL的区别》。
(分析:TMD,这次我是把自己往火坑里推了,这篇文章是我面试前一天晚上在百度文库里看到的,因为都凌晨2点了,太晚了,于是我就把文章下载到桌面准备抽时间看,其实只大概的看了前几行,文章的主体内容都是一扫而过)。
考官:那你说出“C语言和C++中’0’和NULL的区别”,至少三点。我(慢吞吞的):
答:1,他们在内存中的值都是 0;2,都可以作为返回值。
(因为怕答错,实在不忍心再回答了)sorry,这篇文章写的有点深。
(第三题分析:课后多看些编程和嵌入式方面的书籍,丰富自己的知识面。)/////////////////////////// 回答完第三题,面试官对我说:“对不起,你今天的面试就到这里了,我们要选拔更优秀的人才”。
我垂头丧气的在凳子上坐着,大约过了一个半分钟。考官:怎么了?
我:不甘心,准备了好多东西没被问到。(面试到此结束)下面是我面试时写的答案,根据我当时做的情况整理了下给大家做参考,没编译,可能有错误。1, typedef struct student { char name[10];int score;}STU;
int fsort(const char *fin,const char *fout){ STU student_information[4];//用链表更好,我用这个演示用,简单点
FILE *file_in,*file_out;if((file_in = fopen(fin,“r”))== NULL){ printf(“cannot open file %sn.”,fin);return-1;} if((file_out = fopen(fout,“w”))== NULL){ printf(“cannot open file %s”,fout);return-1;} //feof(file_in))feof(file_in)结束是非0 结束是0 int i,j;for(i = 0;i < 4;i++)if(fscanf(file_in,“%s %d”,student_information [i].name,&student_information[i].score)!= 2){ printf(“read erro!n”);fclose(file_in);fclose(file_out);return-1;} //程序还少排序和写入,答案我就略去了,很简单的 //还是写上吧,免得有人嫌麻烦 //对数组中的数据进行排序 STU temp;For(I = 0;I < 3;I++){ For(j = i+1;j < 4;j++){
} } //向fout里写入排好序的数据 For(I = 0;I < 4;I++)If(student_information[i].score < student_information[j].score){
} Temp = student_information[i];student_information[i] = student_information[j];student_information[j] = temp;{ Fprintf(fout,“%s %d%c”, student_information[i].name, student_information[i].score,’n’);} //fscanf(fp,%s%d%lf,a,&b,&c)//返回值:整型,数值等于[argument...]的个数 } ////////////////////////////////////////////////////////////////////// 2, void recvAndProcessFrame(){ int rec_length;struct DataFrameHeader *h;//假设length = 512 char buff[512];
while(1){
if((rec_length = recvData(buff,length))!=-1){ h =(struct DataFrameHeader*)buff;processFrame(h,h->data);} else break;} } ////////////////////////////////////////////////////////////////////// 3, NODE* connect(NODE *head1,NODE *head2){ NODE *new_head;NODE *temp;if(head1->data >= head2->data){ new_head = head2;head2 = head2->next;} Else { new_head = head1;head1 = head1->next;} temp = new_head;for(;head1!= NULL && head2!= NULL;){ if(head1->data >= head2->data){ temp->next = head2;temp = head2;head2 = head2->next;} Else { temp->next = head1;temp = head1;head1 = head1->next;} } if(head1!= NULL)temp->next = head1;else temp->next = head2;return new_head;}
第二篇:嵌入式软件工程师
嵌入式软件工程师
目录 简介 2 待遇 3 职业要求 4 发展前景 5 职业发展 简介 2 待遇 3 职业要求 4 发展前景 职业发展 简介
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式软件工程师就是编写嵌入式系统的工程师。2 待遇
IBM、微软、华为、Yahoo、联想、搜狐、亚信、花旗...2010'应届毕业生就业安置计划火热启动:先实训后上岗,转正年薪50000元。3 职业要求
应具备哪些能力
最直接的方法,就是去根据各公司,招聘网站的嵌入式软件工程师的应聘要求来分析
我帮你总结下:
1.最重要的是C语言编程,以及C++,这个与你读程,应用,开发项目,做系统移植息息相关;
2.操作系统: LINUX,WINCE等,至少学习过一种,(目前主流的还是Linux)并且还需要对些基础知识有蛮多的了解;
3.对ARM,FPGA,DSP等这些硬件比较了解。(目前主流的是ARM,像三星,华为,小米等大型的生产厂商最底层的硬件用的都是ARM)
这是最常规的条件
当然,最主流的一般就是LIUNX.同时具备一些基本素质,像英语能力,有相关的项目经验,也很重要
推荐: 你可以去按照招聘要求分析,也可以按照培训机构的培训目的,方向,内容来分析得知,像海同科技就是蛮不错的.算得上是业内的领军企业.4 发展前景
嵌入式领域较新,发展非常快,很多软硬件技术出现的时间都不太长(如ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺,身价自然也水涨船高。
权威部门统计,我国嵌入式人才缺口每年50万人左右。根据前程无忧网发布的调查报告,嵌入式软件开发是未来几年最热门和最受欢迎的职业之一,具有10年工作经验的高级嵌入式工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也达到了3000—5000元,中高级的嵌入式工程师月薪平均超过10000元。做软件实际上有高下之分,开发语言从机器语言、汇编到C、C++,再到红透半边天的Java、C#等,该学哪种呢?为什么有些开发者工资低,而有些开发者千金难求?为什么3年的Java高级程序员薪水仅仅8k-10k,而一个Linux底层C语言程序员两年经验就敢要10k的薪水?
还是门槛,比如月薪15k的Linux嵌入式开发职位,门槛就有 Linux系统、Shell编程、Linux开发环境、C语言、ARM硬件平台、数据结构、Linux内核、驱动程序等,粗略数数就有8道关口,他需要非常熟悉整个的计算机体系,能做出实际的产品,而Java的开发者却仅仅是会使用名叫Java的语言工具,始终高高飘在众多层次之上,开发项目非常快,甚至可以不知道OSI模型,很可能自始至终都是软件蓝领。
嵌入式开发本身也有高下之分,至少包含嵌入式应用程序工程师和底层的驱动内核工程师两种。前者同样是使用现成工具进行简单劳动,比如使用J2ME开发小游戏或者进行一些界面开发,而后者是根据芯片具体情况把操作系统(如Linux)移植到上面,同时编写必要的驱动程序,改写相应的内核代码。很显然后者是一个公司真正的技术核心。而技术核心的工资很可能是其他开发者的数倍。
嵌入式开发突出强制和项目,学习不仅仅是学习几项技术,而是构建你的知识体系。比如学习嵌入式开发,就要从基础Linux,C语言,数据结构开始,到ARM,汇编,Linux内核、驱动等,更重要的是更多的项目练习,设计至少5个项目,多达10000行强制核心代码的编写可以让你真正获得知识。为进入外企或者出国做准备。
未来的几年内,随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝99年1月访华时预言,4~5年后嵌入式智能(电脑)工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士98年11月在武汉全国第11次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来10年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。1999年世界电子产品产值已超过12000亿美元,2000年达到13000亿美元,预计2005年,销售额将达18000亿美元。一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。5 职业发展
从个人整体发展来说,如果想创业,做自已的产品,嵌入式软件开发可以开发出专利产品。
另一个发展路径是:积累丰富开发经验的嵌入式软件开发工程师可以向嵌入式系统开发工程师发展,从而晋升为产品研发经理或IT项目经理。对测试理论和方法有一定了解的嵌入式软件开发工程师还可以转作嵌入式系统测试工程师,最终也可发展为IT项目经理
第三篇:嵌入式软件工程师个人简历
嵌入式软件工程师
个人信息:
姓名:董国杰
学历:本科性别:男 专业:电子信息工程现居住地:上海市浦东新区出生日期:1991.1.1
手机:电子邮件:
自我评价:
性格乐观严谨,行为处事态度认真,力求完美,喜欢钻研,尤爱软件开发等科研性知识学习。喜欢团队合作,善于观察身边人事,发现各人特点,利于团队交流。不喜欢个性张扬,追求更多不断提升自己,锻炼自己的机会。求职意向:
Linux系统开发、C语言、C++、数据结构、驱动、ARM、Linux系统移植 技术方面:
熟练使用C、C++语言编程及程序调试工具,充分理解面对过程与面对对象的编程思想。
熟悉TCP/IP、UDP网络协议等Linux操作系统知识,有Linux下OICQ局域
网聊天项目编程经验。
掌握使用QT进行界面化编程的基本方法。
了解Linux内核裁减和移植的基本知识。
基本了解驱动程序基础知识,能够编写基础的驱动程序。
了解基本硬件知识。
学习经验:
熟练掌握C语言、C++语言编程,对Linux操作系统下的程序编写基本熟练,能够使用gdb、gcc进行程序调试,了解arm等底层以及硬件相关的基础知识,能够完成基本的驱动程序编写以及掌握基本的内核裁剪、移植等相关知识。运用所学知识独立完成相关项目如下:
1.火车订票系统
平台和开发环境:
linux系统+Gcc+Gdb
项目功能:
使用终端命令界面,作为系统的输入输出界面。系统运行时把信息保存在内存中,系统退出后保存至文件。实现对列车车次、车站以及用户信息、和订票、预订票信息增加、删除、修改、查看等功能。设计管理员权限以实现对车次、车站的增删修改和对用户信息的管理。
模块化设计:
分为车站、车次、乘客、管理员等模块实现各自功能,使程序清晰易读。
2.基于linux的局域网OICQ聊天系统
平台和开发环境:
Linux系统+Gcc+Gdb
功能描述:
基于linux系统实现多客户端局域网的通讯功能。系统包含客户端和服务端。
服务端功能:
1、接受用户注册、并实时保存信息至数据库中。
2、对登录用户进行认证。
3、动态维护在线用户列表。
4、及时为每个在线客户端更新在在线好友列表。
5、非在线用户的消息数据缓冲。
客户端功能:
1、客户端注册登录功能。
2、客户端使用心跳机制维持与服务端的连接,并随时更新客户端基本信息。
3、客户端与其他的客户端之间的消息数据的封包和收发。
4、保存聊天信息及通信时间。
使用技术:
完成配置文件读写规则,服务端和客户端日志记录,使用TCP协议完成客户端与服务端的通讯,使用I/O复用机制完成服务端一对多链接,完成应用数据协议的封包解包、使用心跳机制维护客户端与服务端得链接,使用TCP协议实现客户端的通信。
3.英汉词典(c++项目,QT界面)
平台和开发环境:
windows系统,QT
项目描述:
在QT界面下,基于C++面对对象的封装、继承、多态特性实现英语单词查询,添加生词本,增加、删除、修改生词功能。
功能实现:
1、根据单词查询输入框中用户用户输入的单词的变化动态的从单词库中
读取相关内容动态显示在输出文本框内。
2、将要查询的单词加入生词本并弹出相关提示信息。
3、查看生词本显示所有已经添加到生词本的生词。
4、实现生词本的增、删、改、查功能。
5、实时更新保存生词本。
4.linux系统移植
平台和开发环境:
Linux系统、arm9三星mini2440、arm+linux+gcc交叉编译环境
项目描述:
完成基础的Linux内核的裁剪,环境配置,编辑,和烧写。
教育背景:
2009年9月—2013年7月郑州航空工业管理学院电子信息工程专业
所学专业课程:
C语言,通信原理,Matlab,电路基础,模拟电路,数字电路,单片机原理及应用,EDA,信号与系统,数字信号处理,微机原理及接口技术等课程,基本掌握软硬件基础知识
证书及技能:
大学英语四级证书
电子线路CAD高级工程师证书
嵌入式工程师证书
第四篇:嵌入式软件工程师课程
课程体系
在实训项目经理的带领下,通过完成多个企业级项目(基于ARM的串行数据无线传输系统、基于ARM的无线数据采集系统、基于ARM的GPRS应用系统)的分析、设计和开发,掌握开发企业级软件项目过程所需的设计规范、开发流程、质量控制及项目管理。阶课程主题与段
实训内容
第Unix开发环一境、开发规范阶培训 段 Unix系统原
理、Unix开发环境、Unix常用命令 Oracle数据库 Oracle 10数据库原理、SQL语句、数据库表及索引 PL/SQL语法,存储过程,存储函数,触发器等 C++核心 数据类型,控制语句,自定义数据类型,模块化程序设计,指针 类与对象(封装性)类的扩展,继承,虚函数,多态 数据结构和算法、标准库 链表、栈、队列、二叉树、算法 IO、异常、模版(STL)OOAD 面向对象分析
实训目标
熟练Unix下的C/C++开发环境,掌握常用的命令
熟练掌握Oracle 10G下的SQL开发,精通PL/SQL等
熟练掌握C基础语法,函数的编写和调用 掌握面向对象编程的三个特性,并熟练应用OO思想
掌握各种数据结构的实现,并了解常用的算法
掌握多种设计模式
实训项目
Unix下的定时任务
基于Oracle,完成计费系统的数据整合,包括表的创建,数据的录入以及整合等
完成银行项目的类结构设计,深入理解面向对象编程
双赂链表数据结构实现
完成银行项目的UML设计,并能使用
和设计的方法 了解软件研发的整个过程,能够熟练使用UML设计模式进行优化
UML图 设计模式 项目实训 银行项目
第Shell编程 二Shell编程语阶法
段 Unix环境编
程和开发工具 用户信息,文件操作,目录操作,时间处理
make,makefile,gdb
进程、多线程 创建进程 子进程 信号 消息队列车 共享内存 信号量 线程的创建、线程的状态 多线程编程 线程间的通信 线程同步 线程池编程 网络编程和数据库编程 网络基础 TCP/IP协议 基于TCP和UDP的网络编程 Pro★C数据编程 项目实训 计费系统采集和整合模块 第ARM系统体
进行分析和设计
完成银行前台业务,包括基本的存取款和转账等
掌握Shell编程技术
掌握和环境编程相关的函数,并能熟练使用编程工具
掌握进程和多线程编程
掌握网络编程,并能编写支持多客户端的服务器软件
熟练掌握Oracle MySQL等数据库的连接和数据访问
掌握计费系统后台业务流程,综合使用所学知识点,完成计费数据采集和整合银行项目提升和整合编写Shell脚本完成FTP功能
计费系统数据采集
计费系统C/S分布式架构的设计,掌握线程池的应用
计费系统集中式数据模块,该模块完成数据集中化并录入到ORACLE中
Billing系统提升和整合三系结构 阶ARM处理器段 体系结构
ARM编程环境
指令系统以及寻址方式 调试 ARM系统编程
过程调用的标准
汇编程序以用C程序之间相互
调用的技术 异常中断技术 ARM体系中C语言程序设计的基本知识 FLASH操作 嵌入式Linux构建 嵌入式Linux开发环境构建 BootLoader引导程序 Linux内核代码移植 交叉编译、内核调试 嵌入式Linux内核开发 内核源代码架构 内存管理 进程管理、中断管理 内核同步 信号、调度、进程间通讯等 文件系统
对嵌入式系统了解,掌握ARM的编程模型
掌握汇编程序与C程序之间的互相调用,精通ARM体系中C程序的基本知识 掌握FLASH操作
掌握BootLoader引导程序 熟悉交叉编译和内核调试
掌握进程编程、进程间的通讯 精通内存管理 熟悉文件系统
驱动程序开发环境
驱动程序语法基础
BootLoader引导程序
驱动程序理论准备
嵌入式Linux驱动程序开发 Linux设备驱动程序概述 字符设备驱动程序开发 串口、SPL、LLC A/D转换、定时器 Linux驱动程序开发高级 A/D驱动程序编写 矩阵键盘驱动程序编写 块设备驱动程序开发 网卡驱动程序开发 USB设备驱动程序开发 项目实训 基于ARM开发板的Linux设备驱动程序研发 第企业实训 四基于ARM的阶串行数据无线段 传输系统,主
要有以下三个方面的运用:点对点控制;点对多点控制;中继传输
掌握字符设备驱动程序开发 熟悉串口、SPL
驱动程序总体分析和设计
熟练掌握矩阵键盘驱动程序和网络设备驱动程序开发
网络设备驱动程序提升
综合运用所学知识,特别是ARM,编写驱动程序
驱动程序研发
参与完成实际项目,积累软件开发经验,经历完整的软件开发过程:需求、软件分析设计、编码、调试,交付。
串行数据无线传输系统
长沙牛耳教育地址:长沙市五一广场文运街省电教馆二楼(口腔医院左侧)| 牛耳教育求学热线:
0731-82221222转816 | 牛耳教育网站地图
培养方案
基于安博集团大量的数据调研,该课程专注于培养基于嵌入式Linux平台,以嵌入式系统的软件开发为主,培养学生在嵌入式领域进行软件开发、软/硬件测试、系统维护等方面的综合技能,旨在为社会提供嵌入式软件开发、产品测试、技术支持等方面具备优秀的职业素养的实用型、技能型人才。精通ARM嵌入式系统的驱动程序开发、操作系统移植、熟悉基于ARM的串行数据无线传输系统、基于ARM的无线数据采集系统等面向不同行业的专用嵌入式应用系统的开发。通过该实训课程,实训学员能够积累1-2年的软件开发经验。
课程简介
嵌入式软件工程师培训课程,由安博教育集团联合多家知名厂商,并由安博教育实施专家团队和精英教师团队发起,共同开发完成。
通过该课程的学习,学员熟练掌握Linux平台下的嵌入式软件开发技术,并通过项目实战积累工作经验,进而获得高薪、有广阔发展空间的工作机会
就业方向
能够胜任软件公司中的嵌入式工程师、C/C++软件工程师、数据库工程师等相关职位。
安博牛耳嵌入式软件工程师培训课程,由安博牛耳教育集团联合多家知名嵌入式厂商,共同开发完成。通过嵌入式软件工程师课程的学习,学员熟练掌握Linux平台下的嵌入式软件开发技术,并通过嵌入式项目实战积累工作经验,进而获得高薪、有广阔发展空间的嵌入式软件工程师工作机会
嵌入式软件工程师课程专注于培养基于嵌入式Linux平台,以嵌入式系统的软件开发为主,培养学生在嵌入式领域进行软件开发、软/硬件测试等技能,旨在为社会提供嵌入式软件开发、嵌入式产品测试、嵌入式技术支持等方面具备优秀的职业素养的实用型、技能型人才。精通ARM嵌入式系统的驱动程序开发、嵌入式操作系统移植、熟悉基于ARM的串行数据无线传输系统等面向不同行业的专用嵌入式应用系统的开发。通过嵌入式软件工程师实训课程,实训学员能够积累1-2年嵌入式软件软件开发经验。
第五篇:嵌入式软件工程师如何学习
嵌入式软件工程师如何学习
嵌入式工程师如何学习
嵌入式行业,技术的更新是非踌的,每一位工程师都需要在中不断的更新自己的知识,掌握技术动态或者解决自己中遇到的问题,以下是嵌入式软件工程师获取新知识的一些方式,也给即将成为嵌入式工程师的你一些好的建议:
去相关专业网站上学习:
调查数据显示,在嵌入式工程师经常关顾的网站中,CSDN和21IC所占的比例最大,分别为23%和18%,而这两个网站也分别代表了编程开发人员以及电子工程师两类人群,而嵌入式在线、电子工程专辑、电子产品世界、EDN、IT实验室所占比例均为10%-15%左右。
嵌入式工程师通过其它途径获取行业信息:
调查数据显示,“技术图书、专业论坛、业内门户网站、搜索引擎”是嵌入式工程师获取知识的主要途径(接近70%),其中各项所占比例分别为20%、16%、16%、14%,网络已经成为嵌入式工程师获取专业知识的主要途径。除了以上4大途径外,部分工程师也会通过培训、厂商网站、博客/群组、杂志/期刊/报纸、行业展会/技术研讨会以及电子邮件订阅等途径获取信息。牛耳教育提供的免费电子图书、视频教程等资料每年下载次数已达到十多万。
搜索引擎是各类工程师最好的老师:
xinpujingyulecheng89.com E0DNK
对搜索引擎的使用调查中,百度虽然占据国内搜索引擎市场绝大部分的市场份额,但超过60%以上的嵌入式工程师们却明显偏爱于使用google,造成这一结果的原因是,工程师们可以从国外的网站获取更多技术资料以及学习资料。同时我们也可以得出这样一个结论:在嵌入式这一高端领域的学习中,因为很多技术资料都是英文的,所以要及时了解技术发展、学习相关的技术,开发者具备一定的英文阅读能力是非常有必要的。
xinpujingyulecheng89.com E0DNK