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

    文章

    1552

    浏览量

    67427
  • C语言
    +关注

    关注

    180

    文章

    7513

    浏览量

    124100
收藏 人收藏

    评论

    相关推荐

    FPGA工程师需要具备哪些技能?

    ,需要具备一系列的技能,才能胜任日益复杂的设计工作。因此,本文将从设计思路、硬件语言、EDA工具、数字信号处理、通信协议、测试验证等多个方面,探讨FPGA工程师需要具备哪些技能。 一
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第一步,首先是C语言。 1.理解内存管理:C语言不同于高级
    发表于 11-07 15:36

    C语言经典算法大全

    C语言经典算法,详细解析算法过程及算法思想,给读者具有启发意义,教程包含C语言大部分常用算法,仅供学习,禁止商业传播
    发表于 10-07 08:16

    C语言深度解析

    C语言深度解析,本资料来源于网络,对C语言的学习有很大的帮助,有着较为深刻的解析,可能会对读者有一定的帮助。
    发表于 09-28 07:00

    Linux下C语言编程入门教程

    u3000本文是Linux 下C 语言编程入门教程。主要介绍了Linux 的发展与特点、C语言的基础知识、Linux 程序设计基础知识及其下C
    发表于 09-22 06:56

    C语言基础知识(一)

    、不等、大于、小于等。逻辑运算符:用于执行逻辑操作,如与、或、非等。赋值运算符:用于将值赋给变量。自增自减运算符:用于在原始值的基础上增加或减少1。C语言是一种高级的通用编程语言,广泛应用于系统软件
    发表于 08-10 15:16

    C语言基础知识(一)

    、不等、大于、小于等。逻辑运算符:用于执行逻辑操作,如与、或、非等。赋值运算符:用于将值赋给变量。自增自减运算符:用于在原始值的基础上增加或减少1。C语言是一种高级的通用编程语言,广泛应用于系统软件
    发表于 08-07 16:51

    一个字符引入的BUG #编程入门 #c语言 #电子工程师#硬声创作季

    C语言
    也许吧
    发布于 :2023年05月24日 12:41:24