千峰环野立,一水抱城流
千峰环野立,一水抱城流
环野电子科技

讯易铂控软件

 

南京环野电子

  • 首页
  • 点我
  • Profcontrol 教学中心 
    • Profcontrol V8 教程
    • Profcontrol V6教程
  • 高校合作
  • 博客
  • …  
    • 首页
    • 点我
    • Profcontrol 教学中心 
      • Profcontrol V8 教程
      • Profcontrol V6教程
    • 高校合作
    • 博客
    用户中心 (后台)
    千峰环野立,一水抱城流
    千峰环野立,一水抱城流
    环野电子科技

    讯易铂控软件

     

    南京环野电子

    • 首页
    • 点我
    • Profcontrol 教学中心 
      • Profcontrol V8 教程
      • Profcontrol V6教程
    • 高校合作
    • 博客
    • …  
      • 首页
      • 点我
      • Profcontrol 教学中心 
        • Profcontrol V8 教程
        • Profcontrol V6教程
      • 高校合作
      • 博客
      用户中心 (后台)
      千峰环野立,一水抱城流

      关于软件专业的一些看法

      Wash Malon

      My name is WashMalon!大家好,我叫卧式马龙!

      以下观点不针对任何人及组织,如有冒犯,请见谅。

      最近公司招聘,包括一些目前的同事,大都是软件专业的。这个符合我们公司的招聘要求和期望。但是随着交流的深入及一起合作共事,我发现一些不可理解的现象。

      他们大都是学习java或者C#的软件相关专业,但是竟然都没有学习过C语言,也没有学习过微机原理,有些甚至于没有学过编译原理,或者只是作为不重要的课程讲一讲。

      是哪些大学我不好在这里直说,相关专业的小伙伴们,你们是不是也有类似情况?其实啊,这是很不合理的。从以下几点来看

      第一点,不是每一个软件工程师都是应用工程师吧,如果学校主体培养方向都是应用类型的,那么系统层面的软件由谁来开发?软件的底层及框架部分由谁来开发?难道这个还和学校好坏的定位有关?不应该要一视同仁吗?我个人觉得,C语言是一门非常基础的语言,可能现在确实使用的不多,当然,我说的是在上位机软件层面没有Java,C#多,下位机尤其是嵌入式的底层,C语言是逃不掉的,甚至于在写bootloader相关内容的时候,汇编语言都会大量用到。C语言在当前时代,已经不是主应用层面的了,和C#及Java等在开发效率上比起来更算不上高效,没有那么多轮子或者说现成的框架。但是C语言可以让学习者了解到编程的最最最基础流程和原理,比如代码的执行流程,编译器的编译原理,我这里说的是编译产生什么,并不需要深刻了解怎么编译,那个太过专业,但是现在很多小朋友就连编译产生什么都弄不明白。一般的C语言,我们知道,编译后直接是可执行文件,一般是二进制的汇编或机器码等可执行文件,那什么又叫做机器码或者汇编?你在每天啪啦啪啦写代码的时候有没有想过,你的英文单词和各种符号,计算机怎么就可以执行了?好奇吧,学校没讲的,你得自己看明白。计算机的核心执行单元是CPU,他不是什么代码都理解的,别说java和C#了,C语言目前可以直接执行的CPU也没出现,CPU更不会理解那么复杂的语言结构,他只有一套自己的指令集,程序存储在ROM中,就是不断读取出来通过总线传送给CPU,然后CPU执行的,这就是计算机最根本的执行原理。那么从你写的代码到CPU认识的机器码之间的转换,就是所谓的编译。如果你很清楚这块,我很庆幸,因为你不是为了写代码而写代码,不去设计或者开发编译器的话,我们没有必要完全弄懂编译原理,但是这个最最基本的原理咱必须得懂。上面我只是简单说了一下编译,其实还包括链接过程,就是多个编译的文件组合,按照设计者的设计初衷组合在一起,最终形成可执行文件。那么问题又来了,C#和Java也是这样吗?

      我面试的时候问过一个问题,C#编译出来的程序是什么程序,我没要求他准确说出来CLR,我只是希望他明白一些其中原理,结果说的是驴头不对马嘴。我觉得是悲哀的,自己写的代码为什么可以执行都不清楚,这有一部分教材设计的责任,我觉得他自己也有一部分责任。想弄清楚以上问题其实真的不难, 也花费不了太多时间,微机原理和编译原理的前半部分就足够了。

      第二点,迎合上面第一点,一个小朋友说了,我就是不会编译原理,也不懂链接过程,也不懂微机原理,但是我就是可以做出很酷很炫的APP啊。好的,这个问题其实很难回答,我尝试着把我的担忧分享给大家。首先,应用端APP确实具备很大的市场,中国作为世界第二大经济体,在娱乐、文化、民生等方面的投入巨大,这给相关行业带来了十分可观的收入及市场,这是一件利国利民的大好事,让人振奋。但是科技尤其是工业科技是国家发展的源动力,这部分领域同样需要大量科技人才,我们既然说软件,就围绕软件科技人才来说。我觉得那些不开设C语言及相关基础课程的院校,他们的目的性是不是太强了?或者说也是受到了来自就业率指标的压力?社会上曾经弥漫着各种嵌入式、java、C#速成班,请允许我使用弥漫一词,因为弥漫对应着乌烟瘴气,我没有以偏概全一棒子打死所有相关机构。现在好多了,现在还存活着或者说发展壮大的机构都是认真研究社会需求,并且因地制宜的。曾经不是,我刚毕业那会儿,差不多13年前,1W元嵌入式速成班,我们同学好几个都去了,学的呢大部分都是如何在搭建好的linux平台上开发app,有这么多就业缺口吗?学的还算是嵌入式吗?据我所知,后来这些伙伴们工作对口的并不多。说了这么多,我想表达的就是,以应用开发为主体的教育,应当存在,但是不应该大量存在。对于学生个人,应该懂得找短板,自己补齐缺失的部分。在未来的视频中我会尽我所能,给大家讲解一下哪些知识点或者说知识体系需要咱们掌握的。学校目前教授的部分是不够的,咱们需要自己去补齐。

      订阅
      上一篇
      如何申请软件试用
      下一篇
      如何写出优质代码-我的理解
       回到主页
      Cookie的使用
      我们使用cookie来改善浏览体验、保证安全性和数据收集。一旦点击接受,就表示你接受这些用于广告和分析的cookie。你可以随时更改你的cookie设置。 了解更多
      全部接受
      设置
      全部拒绝
      Cookie设置
      必要的Cookies
      这些cookies支持诸如安全性、网络管理和可访问性等核心功能。这些cookies无法关闭。
      分析性Cookies
      这些cookies帮助我们更好地了解访问者与我们网站的互动情况,并帮助我们发现错误。
      首选项Cookies
      这些cookies允许网站记住你的选择,以提供更好的功能和个性化支持。
      保存