对一名电子信息工程专业应届毕业生的建议

最近几天在帮公司招人(只是帮助招人,不要产生任何别的联想),晚上收到了一份网友的简历,他问我看了他的简历后有什么看法以及有哪些不足。

虽然很晚了,但是觉得很有必要回复一下他,考虑到还有很多朋友存在着类似的问题,就写在QQ日志里了。

首先声明,我的高度导致我就只能看这么远,也许很多看法和建议是不合适的,欢迎大家指教。

//----------------------------------简历引用start----------------------------------------------

求职意向: 嵌入式应用开发

技术技能:

熟练使用Altiumdesigner 绘制电路原理图及PCB,拥有自己的原理图库及封装库。熟练掌握51单片机最小系统设计以及相关运用。熟练操作示波器。熟悉Verilog描述语言。熟练使用Office软件、Photoshop CS4、Flash 8,会声会影等软件。s

熟悉使用LINUX环境C/C++,了解C/汇编混合编程。熟悉编写LINUX网络编程,能使用多线程程序设计、TCP/IP协议、Socket编程。熟悉编写嵌入式QT编程、能进行数据库查询等相关操作、SQL数据库编程。了解ARM11体系结构、能进行嵌入式开发,了解字符设备驱动;了解Linux内核裁剪、移植及bootloader 烧写及bootloader 的编写、启动过程。了解Iphone手机/Ipad程序开发。熟悉Oracle SQL常用命令。

项目经验:

2011年7月

项目名称:基于Linux平台Qt界面MP3播放器

项目描述: 用Qt编写图形界面,通过execl()函数调用madplay播放器实现对MP3文件的控制(播放暂停等)。

2011年7月

项目名称:基于Linux平台和Real6410开发板的点菜手持终端

项目描述:软件界面使用QT编写,运用socket编程实现客户端与服务器之间的数据传输。数据库采用sqlite3实现菜单表、桌号表等表格的创建以维护。

2011年6月

项目名称:基于Linux平台Qt界面的局域网聊天软件

项目描述:基于 Linux系统的局域网聊天软件。采用QT编写图形界面,用QTcpSocket编程实现服务器与客户端之间连接与数据传输,最终实现一对一、一对多聊天功能。

2009年8月

项目名称:基于51单片机的农村家用酿酒系统

项目描述:本系统为了实现水位水温控制。以AT89S52单片机为控制核心,与DS18B20为温度传感器,用4位8段数码管显示当前温度,当温度达到指定温度时,用继电器控制出水阀和进水阀。当温度达到指定温度值时,出水阀自动打开,开始排水,当水位达到低水位时,出水阀关闭,进水阀打开,水位达到高水位时自动关闭进水阀,一直循环此过程,直至完成酿酒。

责任描述:通过查看相关芯片文档,用Altium Designer 绘制原理图与PCB,手工制版焊接元器件,编写软件,调试电路等。

//----------------------------------简历引用end-----------------------------------------------

看起来毕业后主要在做Linux方面的学习

简历给我的感觉就是很全面,确实很全面,如果熟练掌握所有提到的这些技能工资不再1万以上都不行了(深圳);

>由于大学的教育本来就是通式基础教育,所以学的东西比较多,也比较杂,这使得很多人认为学的越多就约好了。所以在简历上,把自己能想到的,曾接接触过的所有的东西都写了出来。其实是很没必要的。下面是我的招聘要求:

嵌入式Linux工程师(2名)

01. 熟悉C/C++,会写Makefile,有1年以上的的嵌入式Linux下C/C++开发经验;

02. 熟悉TCP/IP、 RTP/RTCP、RTSP和SIP等网络协议,熟悉Linux下的socket编程;

03. 熟悉Linux下多线程应用程序设计、有网络服务器端开发经验者优先;

04. 具有独立研读和分析大规模c代码能力者优先;

05. 有DVR,NVR,IP Camera开发经验者优先;

06. 具备积极主动的工作态度和良好的团队协作和沟通能力,为人正直、诚实,并且责任心强,具有独立解决难题的能力。

如果满足上面所有条目,工资应该在8K以上了吧(深圳),工资只是用来衡量价值而已,作为参照物。

说白了还是要精通,精通才是最重要的,比如第3条,如果精通网络服务器端应用程序开发,那也不得了啊;

但是在开始学习新知识的时候可以先全面了解下,然后就得选择其中某个或者某些进行专攻了。

{ 由于本人做嵌入式方面,有点偏见

  针对计算机科学与技术专业:(因为我自己是计算机的)

  A.程序设计语言有很多:C、C++、Java、C#、PHP还有很多类似的脚本语言,真有必要全部都掌握吗?真的能在短短的大学4年之内全部掌握吗?学《数据结构》、《程序设计方法学》、《算法设计》和《软件工程》是做什么呢?

  B.数据库服务器也有很多:MySQL、SQL Server、Oracle、嵌入式的sqlite等等,相通的是数据库原理和通用的SQL查询吧,

  C.操作系统也有很多:Windows家族的(Windows for x86、Windows CE、Windows Mobile)

                    类Unix家族的(Linux、Macos、Android、IOS)

     得找其中的共性,而且精通其中一类就可以了吧。

  D.处理器也不少:ARM、x86、MIPS、PowerPC等,还不包括各种单片机(51、AVR、PIC等)

     学《计算机组成原理》、《微型计算机原理》和《计算机系统结构》真的没用吗?

  E.有些人选择计算机网络方向,以为就不编程了,以为计算机网络就是配配路由器,调调交换机而已。看看华为、中兴、甚至是吉祥腾达之类的公司的那些做路由系统开发的软件工程师,为什么就没有自己呢?

-->建议(只针对想在专业技术方面发展的朋友,考公务员之类的不太适用):

     在校期间一定学好专业课程:

        -电路基础,最好模电、数电都学好;

        -计算机组成原理,可以指导目前的所有体系结构计算机:各类单片机、ARM、MIPS、PowerPC等。

        -微型计算机原理和接口,可以适用于大多数微型计算机,接口技术的作用就更大了。没有发现现在的计算就都在向小型化发展吗?

        -程序设计语言、数据结构和算法,这个就不用说了

        -操作系统原理,因为你如果做软件开发,你的软件总得在操作系统上跑吧,如果你理解操作系统,那你的软件能跑的更好;有些人说,我是做单片机的,不用操作系统的,其实,你是最需要学习操作系统的人,因为你自己在写操作系统。

                 --课外书籍:《自己动手写操作系统》

                             《Linux源码类书籍》

                             《Linux驱动类书籍》

                             《Unix高级编程》

                             《Linux程序设计》

                             《WinCe大排档》,--可以作为WinCE开发的入门书,相当于导论吧。

                 --开源项目:LFS

        -软件工程

                 --课本之外:

                          《系统分析之路》

                          《设计模式》

                          《大道至简》之类的书

        -计算机网络:有志于在计算机网络方面发展的应该在读完《计算机网络基础》后看看这些书:

                          《Internet working with tcp/IP》(三卷)

                          《tcp/IP协议详解》(三卷)

                          《Unix网络编程》(unix方向)

                          《Windows网络编程》(windows方向)

                          《嵌入式网络系统设计》(嵌入式方向)

                      --研究下开源项目:OpenWrt (几十块钱买个DB120或者RG100)还可以当MIPS开发板玩(还记得学《计算机系统结构》时MIPS汇编程序没地方运行吗?)

         -建议:在校期间去参加下软考:目的是为了融汇贯通学习下自己的知识,证书其次。

}

)))))))))))))废话了半天,进入正题---------->

就简历而言也有如下问题(我的看法可能有片面性):

01. Photoshop、Flash8和会声会影这类软件对开发没什么用,可以自己玩,算不上专业技能。因为毕竟不是应聘美工(嵌入式应用开发 );

02. 作为电子信息工程专业的学生,如果只会51单片机最小系统设计及相关应用,那有点说不过去,有时间的话补一补(最起码要做挂几个外设的简单系统嘛,并不是越复杂越好,因为现实中的系统大都不简单);

03. 熟练使用AD绘制原理图和PCB只能说明你会使用这个软件,具体技能呢,可以设计系统原理图的复杂性?能绘制的PCB的层数?是否可以对高频板进行布线?是否符合电磁兼容性?

04. 后面的软件方面的具体技能可以写的清楚点,比如了解、熟悉、熟练使用、精通。最起码要有一个熟练使用吧,不能都是熟悉和了解;(不能只是改了简历吧,再改简历之前应该做些后台工作吧)

后面的实践经验部分,我只能提点建议:

01. QT只是一种GUI工具而已。可以有机会做一个ARM+51单片机的小项目,两者可以采用串口或者2.4GRF(NRF24L01)无线通信,采集数据,并控制,这样更有意思点;                         (涉及到自定义通信协议)

02. 51单片机的部分,用DS18B20采集温度对于电子信息工程专业的学生没什么难度,如果你自己用AD芯片来做一个温度采集,应该更好点(宏晶的51单片机有内部AD的片子+NTC电阻)。(涉及到AD采集、滤波算法等知识)

由于课程体系的原因,如果要继续在嵌入式Linux方向发展,建议你在接下来学好这些东西

01. 数据结构:找本经典的C语言描述的数据结构书好好看看;

02. 操作系统:在你微型计算机原理的基础上学好操作系统,重点是进城、线程、中断、文件系统;《Unix环境高级编程》、《Linux程序设计》都是不错的书籍。

03. 软件工程:稍微了解下就行了;

04. 计算机网络:使用Linux的很大原因是其网络性能,所以这个必须学好,建议看《Internet Working with TCP/ip》或者steven的《tcp/IP写协议详解》,前者可能更好些,最好3本能看完;《Unix网络编程》2本。

05. 针对嵌入式,推荐一本《Linux嵌入式系统高级程序设计》,此书可能不会教给你具体的细节,但是足以告诉你怎么做。

                尝试着自己制定应用层的简单协议;

如果是在深圳的话,可以去西丽的大学城图书馆办个借书证,那里的计算机类电子类书籍不少,甚至比有些大学的图书馆丰盛。去的时候带上身份证外加100~800RMB作为押金,押金可以退的。(我也是以前的一位同事介绍的,希望好的东西能够传递下去。)

虽然我针对你的简历提了很多问题,但是这确实是一名优秀的学生,我说优秀,与学校的学习成绩无关,而是你的好学,你的乐于提问。

我给你提出的那些东西,并不是说你做的不好,而是希望你能做的更好。

转自游泳的小鱼

你可能感兴趣的:(linux)