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

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

3天内不再提示

软件工程师应该怎样培养

工程师人生 来源:工程师吴畏 2019-07-15 17:01 次阅读

软件工程师应该算是稀缺人才了,会编程的人一抓一筐,可是会做软件的人就不那么多了,而软件工程师更是这些人中的凤毛麟角。软件工程师的培养是有难度的,而且这个培养过程没有章法可循,更重要的是培养出的产品的合格率比较低,因为我们培养出的大部分人都将成为码农,而码农显然是与软件工程师有较大差距的。几篇文章也在谈论软件工程师培养的困难和软件工程这个学科本身面临的问题,我总结一下几篇文章的主要内容,即为对于软件工程师的培养还没有形成一个很好的体系与方法,而软件工程不等于计算机科学所提出的观点正是这一大问题的子问题,就是我们着重于培养软件工程师的计算机方面相关素养而忽略了其它,归根结底还是因为没有很好的培养体系,不知道如何培养所致,所以我把它归为主要内容的子问题。

那我们先来看看子问题,我觉得这个问题是普遍存在的,如果说有解决办法的话,我认为需要让计算机系毕业的同学继续深造,在文科专业深造,或者,让学文科的人来编程。第一种办法周期太长,恐怕计算机系的同学不愿意干也干不了,这纯粹属于赶鸭子上架,让计算机系这种典型的工科男学习文科,还不如把我们杀了来的痛快是吧;第二种方法,显然不可行,不是我有对文科的偏见,毕竟术业有专攻,文科的人很难理会计算机的本质,让他们学个C语言还行,到计算机组成原理就不太吃得消了,到了编译原理的话恐怕得有一半人跳楼,然后剩下一半人回家。所以,这两个方法均不行。软件工程这个活真不是什么好活,一边是计算机,一边是人,明明软件工程师是人,可是非得把他们变成人和计算机的纽带,这个要求就高了,一边他得懂计算机,一边他得懂人。所以好的软件工程师为什么这么难就可以理解了,我们真的没有办法培养这样的人才吗?我觉着还是有的,我们在课余是否可以培养一些人文素养,其实不要求我们专门去一心一意做这件事,这件事只要穿插在日常的计算机相关课程中间就好,比如学一些沟通,比如学一些经济,不需要十分深入,只要了解大概就好,不需要把我们带入这些相关领域的大门,只需要让我们在大门口往里一窥就好。而现在学校的培养在这方面是很欠缺的,不说开设专门的课了,就连全校性的关于人文的大讲座都很少,关注一下学校的讲座信息,不是关于出国考研,就是关于就业的,要不然就是几个有头脑的码农不小心变成了高富帅的成功经历(比如李彦宏),可这有什么用,我们毕竟不是他们,他们的成功是不可复制的。软件是人写的,这些人正是软件工程师,试想写软件的工程师都不能了解客户的需求,不能与客户有效沟通,他们可以写出客户需要的软件吗?一旦软件写出的软件和客户需要的软件差别过大,无论这个软件运行多流畅、bug再少、算法再好,这些又有什么意义呢?我们做软件的最根本的目的不正是要能解决需求问题吗?至于其它的,只是在这个继承上的点缀而已。就好比是顾客想买一斤水果,可你递给顾客一碗佛跳墙,你说,这是国宴里的招牌菜,他,他接不接受还真难说,这个例子有待完善。以上我想说明沟通很重要,能想人所想也很重要。毕竟做软件不是写C语言作业,需求就那些,也不用顾及界面友好等等,软件是解决问题的,而且很大一部分软件解决的问题不在计算机领域内,这就要懂相关领域的知识并且能在给领域为客户着想,比如做财务报表,本来需要做一些假账,结果做成了真帐,出了这种事顾客只会责怪软件工程师,而不会承认自己的错误,有些东西就是不言而喻的,但对于天天coding的程序猿来说,还真未必知道。其实这也不能全怪工程师,毕竟你让人家一边搞技术一边搞人事,这很难的,要怪只能怪我们这是中国,谁让中国人说话只说三分,剩下七分要靠猜呢?

关于总问题,上面篇幅也涵盖了一些内容,关于把计算机人员当成板砖哥一样的培养,不对,是建筑设计师,这是个新颖的想法,这两个职业确实有很多共同之处。有一篇文章也举了一些例子来说明它们的共同之处,但我认为有几个比较大的区别还是需要考虑的:1、建筑师只管规划图纸,至于建设过程的细节问题可以不予考虑,而且少了很多人事上的担忧,比如说需求比较明确,设计的是学校宿舍就要有配套的浴室和开水房,设计的是商场就要有逃生避难场所,很多需求是硬性的也是相同的,需求的种类有限,更进一步,这些需求是在大框架下小的需求,和大框架可以毫无关系,比如过道中安排椅子等,这就表明考虑具体需求的人和建筑设计师可以是不同的人;反观软件工程师,就比较苦逼了,他们需要考虑的事情很多,而且各种各样的软件工作的领域跨度很大,更要命的是细节上的考虑是和通盘考虑糅合在一起的,如果不考虑周全,一个细节上的改变就可能引起程序很大的改动,这也就是说一切事情必须自己搞定,没有除了工程师的人可以代替你完成任务。2、就是这两个体系的差别了,建筑业已经形成了培养工程师的教学体系,所以才可以有导师带领来更好的实践它,而软件工程就没有这样完备的并且有效的培养体系,不同的老师带出的软件工程师可以是长得不一样的。在知识传承过程中没有形成教学体系的一个典型的行业就是算命,同一个老师带出的学生,领悟多少就是自己的事了,不同老师带出的学生那更是千差万别,如果让他们给同一个人算命,肯定每个人又不同的答案。不过软件工程还没有沦落到这个地步,否则这些软件工程师也就都到街边自己打个什么半仙的横幅摆摊去了。至于其他的区别,我现在还没想到。有区别但也不是说这种思路行不通,只要有共性就必然有行得通的地方,老师可以在实战中教会学生领悟需求的能力、沟通的能力等等。

综上,培养软件工程师是个体力活加技术活,不过我们也不能操之过急,毕竟中医都传承了几千年了,到现在也是没弄明白什么是冷啊热啊,什么气啊虚啊的,不是照样一代传一代,照样治病吗?

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

    关注

    8

    文章

    218

    浏览量

    21136
收藏 人收藏

    评论

    相关推荐

    特斯拉招募软件工程师强化无人驾驶与机器人远程操作

    近日,据外媒最新报道,特斯拉正紧锣密鼓地招募软件工程师团队,旨在加强其无人驾驶出租车及Optimus机器人的远程操作能力。这一举措标志着特斯拉在推动自动驾驶与人工智能领域迈出了重要一步。 特斯拉此次
    的头像 发表于 11-27 10:26 539次阅读

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    ,还需要与软件工程师、硬件工程师紧密合作,对整个系统进行集成和测试。 总的来说,FPGA 算法工程师着重于算法优化,FPGA 逻辑工程师专注于逻辑设计,FPGA 原型验证
    发表于 09-23 18:26

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    嵌入式软件工程师如何提升自己?

    嵌入式软件工程师如何提升自己? 作为一名嵌入式软件工程师,在这个充满机遇和挑战的领域里,如何提升自己显得非常重要,它决定了你未来的发展方向和成就。接下来,我们一起探讨一下。 1.奠定扎实
    发表于 06-12 11:20

    索尼诚邀软件工程师参与PS免费手游平台设计

    据悉,近日,澳大利亚知名媒体TweakTown发现,索尼互动娱乐正在为其旗下的PlayStation Studios Mobile招募一名资深的软件工程师,负责设计PlayStation的免费手机游戏平台。
    的头像 发表于 05-23 17:08 722次阅读

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式软件工程师软件开发领域中的一种专业工程师
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    如何入门硬件工程师

    想跨行业做硬件设计工程师应该如何学习规划呢
    发表于 03-17 21:49

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布了其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类工程师的水准。
    的头像 发表于 03-13 10:57 620次阅读

    如何构建linux开发环境和编译软件工程、应用程序

    前文介绍了如何使用官方提供的镜像文件启动开发板,本文将说明如何构建linux开发环境和编译软件工程、应用程序。
    的头像 发表于 01-03 12:31 2045次阅读
    如何构建linux开发环境和编译<b class='flag-5'>软件工程</b>、应用程序