0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

工程师必须要懂得C语言 如果不懂C语言该感到危机

工程师人生 来源:网络整理 2018-04-07 08:50 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在大学院校的计算机科学体系中,持续缺乏对嵌入式系统编程关注的情况,可能会让分散的情况日趋严重。事实上,美国的工程教育越来越趋向于集中在某些特定领域,这也日益突显出了当地大学的计算机科学教育在嵌入式系统编程方面的不足之处。

然而,问题在于,嵌入式系统开发安全、可靠、关键任务系统的基础,而这些系统通常会用在从医疗到商用客机在内等许多大型开发专案中,因而使问题显得更加突出。许多批评的声浪都认为,造成嵌入式编程领域产生落差的原因,是由于大学的计算机科学系所越来越偏向如Java这类时髦的程序语言,但付出的代价却是牺牲了教导学生如何去设计及分析算法和数据结构等基础。纽约大学荣誉教授暨软件工具供应商Adacore公司CEO Robert Dewar最近发表一篇文章,探讨嵌入式领域的落差情况,他认为,许多大学都必须重新思考他们的程序课程规划。

“说穿了,”Dewar写道,“用Java来取代传统程序入门课程中使用的语言,像是Pascal, Ada, C或是C++等──无异是让整体教学的水准往后退了一大步。许多大学转向Java的理由只是因为学生毕业后好找工作,但讽刺的是,这些学校培养出了仅具备肤浅技能的程序设计人才,他们正在失去与来自各个不同国家,具备更多技能与深度知识的人才竞争的能力。”

一些嵌入式编程专家则认为,Dewar还低估了嵌入式领域编程落差的严重性。该领域的专家之一Michael Barr,则是采取更具体的行动──他举办了为期一周的“嵌入式软件研习营”(Embedded Software Boot Camp)──希望借由面对面的教学,弥合所谓的嵌入式编程落差。这个研习营的重点集中在培养某些技能,如用C或C++来做硬件控制、撰写更多设备驱动程序等,而Barr的结论是:美国的大学并没有做好固件开发培训。

“我发现,这些参加研习营的人都有一个共同点,就是他们在课堂上的表现通常都不是很好,除非他们都知道C语言,”Barr说。“我并不是说他们必须很懂C,但他们起码要知道基本的C语法。”那些一开始就从Java开始的计算机科学或工程系毕业生“根本无法触及问题核心,”他说。“这就是我觉得情况变糟的主要原因。”

危机迫在眉睫?

Barr的专长是医疗设备和其他嵌入式系统设计,他指出,自他举办研习营以来,他已经看到了解决嵌入式编程人才短缺问题的一线曙光,像IEEE等团体也开始关注这个问题了。下一次的研习营将在今年五月初于美国马里兰州举行,届时除了美国本土,还将有来自比利时、加拿大、墨西哥和土耳其的参加者。Barr认为,目前在做的事,正是弥补美国大学的计算机科学课程缺乏嵌入式编程训练的最好方法。

Barr表示,这个研习营的参与者对课程内容的反应包罗万象,像是有人会说:“你帮我把我以前曾经学过,但却从来不知如何使用的知识整合起来了”;也有人说: “为什么二十年前没有人教我这些?”
嵌入式传道者Michael Barr用以下这张Venn图来说明目前计算机工程领域的嵌入式软件编程现况,以及为何我们总是缺乏良好的固件开发培训。

这解释了为何大学的电脑科学系所不再强调以C为基础的嵌入式语言教学。除了Java热潮兴起外,观察家们认为,追求研究补助金也是让资深工程师和计算科学教授们从课堂上消失的主要原因。另一个事实则是嵌入式编程团队规模一般比较小,如通常由一个硬件工程师和几个软件工程师组成,因此,这个领域也无法产生让毕业生向往的大量就业机会。

另一方面,在航空等产业中,一些大型的嵌入式专案通常都沿用较旧的技术。“这种保守、过程导向的工作环境,通常会让许多软件工程师却步,”Barr说。观察家们对于嵌入式编程语言如C之中的指令若持续落后,是否会带来危机一事意见并不相同。一位工程师对嵌入式软件专家Dewar的文章做出了如下回复:“能解决问题才是关键。至于专门的程序语言知识并不重要。工程师可以学习。在这个产业中,任何一种特定的知识,寿命其实都不长。”

但Barr忧心之处在于缺乏C语言课程,还多大多数熟悉传统程序语言的软件工程师年纪都偏高了,“某种程度来说,这也是一种危机。”他进一步表示,嵌入式软件涉及的层面非常广泛,从冰箱到汽车到智能手机以及医疗设备,全都包含在内。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工程师
    +关注

    关注

    59

    文章

    1603

    浏览量

    71213
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146108
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    什么是BSP工程师

    一、嵌入式系统 要明白什么是嵌入式软件工程师,我们先从嵌入式系统(嵌入式设备)说起。维基百科上对嵌入式系统的定义如下: 嵌入式系统(Embedded System),是一种嵌入机械或电气系统内部
    发表于 01-13 06:54

    C语言主要特点

    C语言的主要特点有: 1.语言简洁、紧凑,使用方便、灵活 。C语言一共只有32个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,
    发表于 01-05 07:41

    C语言C++的区别及联系

    在创建源文件时什么都不给,默认是.cpp。 3、返回值 C语言中,如果一个函数没有指定返回值类型,默认返回int类型;C++中,如果一个
    发表于 12-24 07:23

    C语言的经典问题及解析

    (\"> 6\") : puts(\"<= 6\"); } 考察点: 这 个问题测试你是否懂得C语言中的整数自动转换原则,我发现有
    发表于 12-23 07:52

    C语言C++之间的区别是什么

    函数重载,即在同一作用域内可以定义多个同名函数,只要它们的参数列表不同即可。 C语言不支持函数重载,每个函数必须具有唯一的标识符。 4、异常处理: C++内置了异常处理机制,允许程
    发表于 12-11 06:23

    C语言的分支结构介绍

    1.简单if语句 C语言中的分支结构语句中的if条件语句。 简单if语句的基本结构如下: 代码语言:javascript if(表达式) { 执行代码块; } 其语义是:如果
    发表于 11-25 07:48

    C语言的常量介绍

    、-13; 实型常量:13.33、-24.4; 字符常量:‘a’、‘M’ 字符串常量:”I love china!” 在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须
    发表于 11-24 07:12

    C语言特性

    1、高效性:直接操作硬件 C 语言代码的执行效率极高,这是其最为显著的优势之一。它能够直接访问硬件资源,与底层硬件进行紧密交互,充分发挥硬件的性能潜力。在嵌入式开发中,硬件资源往往十分有限,对程序
    发表于 11-24 07:01

    C语言和单片机C语言有什么差异

    语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使用的时候会更加方便,写语句的时候,直接直观的编写。这样就差不多是
    发表于 11-14 07:55

    MiniVC6(C语言快速部署)资料

    MiniVC6(C语言快速部署)软件,无需安装。
    发表于 09-04 16:59 0次下载

    C语言精彩编程百例-364页

    内容提要 C是一种通用的程序设计语言,它包含了紧凑的表达式、丰富的运算符集合、现代控制流以及数据结构等四个部分。C语言功能丰富,衣达能力强,使用起来灵活方便:它应用面广,可移植性强,网
    发表于 06-13 17:28

    提高篇——C语言核心技术(中文版)

    资料是“C编程语言”和“C语言链接库”的完整参考手册。这本书的目的是提供一本方便、可靠的手册,辅助日常的编程工作。本书描述
    发表于 06-13 16:39

    主流的 MCU 开发语言为什么是 C 而不是 C++?

    在单片机的地界儿里,C语言稳坐中军帐,C++想分杯羹?难喽。咱电子工程师天天跟那针尖大的内存空间较劲,C++那些花里胡哨的玩意儿,在这儿真玩
    的头像 发表于 05-21 10:33 1191次阅读
    主流的 MCU 开发<b class='flag-5'>语言</b>为什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C</b>++?

    单片机c语言编程实例大全

    单片机c语言编程实例大全_18
    发表于 04-30 16:11 7次下载

    深入理解C语言C语言循环控制

    C语言编程中,循环结构是至关重要的,它可以让程序重复执行特定的代码块,从而提高编程效率。然而,为了避免程序进入无限循环,C语言提供了多种循环控制语句,如break、continue和
    的头像 发表于 04-29 18:49 2202次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制