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

    文章

    1571

    浏览量

    68572
  • C语言
    +关注

    关注

    180

    文章

    7609

    浏览量

    137217
收藏 人收藏

    评论

    相关推荐

    C语言C++中结构体的区别

    同样是结构体,看看在C语言C++中有什么区别?
    的头像 发表于 10-30 15:11 299次阅读

    C语言与Java语言的对比

    C语言和Java语言都是当前编程领域中的重要成员,它们各自具有独特的优势和特点,适用于不同的应用场景。以下将从语法特性、内存管理、跨平台性、性能、应用领域等多个方面对C
    的头像 发表于 10-29 17:31 384次阅读

    C语言与其他编程语言的比较

    C语言作为一种历史悠久的编程语言,自其诞生以来,一直在软件开发领域扮演着重要角色。它以其高效、灵活和可移植性强的特点,成为了系统级编程的首选语言之一。
    的头像 发表于 10-29 17:30 320次阅读

    hex文件如何查看原c语言代码

    是处理器可以直接执行的指令,而 C 语言代码则是人类可读的高级编程语言代码。 然而,如果你想要从 .hex 文件中获取一些有用的信息或者对程序进行分析,你可以考虑以下几种方法: 反汇编
    的头像 发表于 09-02 10:37 2571次阅读

    按照这样学习C语言,成为卷王不是梦!

    在计算机编程领域,C语言被誉为一种强大而灵活的编程语言,掌握好C语言不仅可以让你轻松驾驭各种编程任务,还能够为你的职业生涯打下坚实的基础。但
    的头像 发表于 07-06 08:04 335次阅读
    按照这样学习<b class='flag-5'>C</b><b class='flag-5'>语言</b>,成为卷王不是梦!

    PLC编程语言C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言C语言各自扮演着重要的角色。尽管两者都是编程语言,但它们在多个方面存在显著的区别。本文将从多个维度深入探讨PLC编程
    的头像 发表于 06-14 17:11 3039次阅读

    【大语言模型:原理与工程实践】探索《大语言模型原理与工程实践》2.0

    、自然语言处理感兴趣的研究人员、工程师以及学生阅读。无论是初学者还是有一定基础的专业人士,都能从中获得有价值的信息。
    发表于 05-07 10:30

    帮你避雷 C语言所谓的短路现象~

    C语言短路现象算是C语言的基础吧,不过有时候代码写得不规范也容易引入一些bug,所以这些操作在工程师实践中尽量少用。虽然下面找的例子比较简单
    的头像 发表于 03-27 08:09 435次阅读
    帮你避雷 <b class='flag-5'>C</b><b class='flag-5'>语言</b>所谓的短路现象~

    C语言基础-为什么要使用C

    当今最流行的 Linux 操作系统和 RDBMS(Relational Database Management System:关系数据库管理系统) MySQL 都是使用 C 语言编写的。
    发表于 03-25 11:20 471次阅读

    C语言#define的应用

    C/C++ 编程语言中,当程序被编译时,被发送到编译器,编译器将程序转换为机器语言,然后完成编译并执行程序。预处理器也称为宏预处理器。
    发表于 03-06 11:29 393次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>#define的应用

    C语言的指针用法

    C语言编程中善用指针可以简化一些任务的处理,而对于一些任务(比如动态内存分配),必须要有指针才行的。也就是说精通C指针编程是很有必要的,帮助你成为一名优秀的Cer。
    发表于 03-05 14:22 381次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的指针用法

    plc编程语言c语言的联系 c语言和PLC有什么区别

    PLC编程语言C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程语言是为了控制和管理自动化生产过程中的各种设备而设计的。与之相比,
    的头像 发表于 02-05 14:21 4262次阅读

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言
    的头像 发表于 02-05 14:11 2496次阅读

    vb语言c++语言的区别

    VB语言C++语言是两种不同的编程语言,虽然它们都属于高级编程语言,但在设计和用途上有很多区别。下面将详细比较VB
    的头像 发表于 02-01 10:20 2411次阅读

    枚举有多大?c语言枚举end的作用是什么?

    可以是整数或字符,它们被称为枚举常量。枚举常量可以通过枚举成员来引用。 枚举的大小是取决于它所表示的范围的大小。在C语言中,枚举没有固定的大小,而是根据其取值范围来确定的。如果枚举类型只包含一个枚举常量,则其大小将与
    的头像 发表于 01-19 14:19 637次阅读