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

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

3天内不再提示

软件工程师应该怎样培养

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

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

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

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

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

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

    关注

    8

    文章

    217

    浏览量

    20923
收藏 人收藏

    评论

    相关推荐

    一个电源工程师的成长路径

    即将走马上任电源工程师这个岗位,请问各位大佬,这个岗位的职业路径一般是怎样的?
    发表于 04-08 14:19

    如何入门硬件工程师

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

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

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

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    嵌入式软件工程师常用的

    最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。PlatformIO:多平台支持:PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32
    的头像 发表于 12-24 08:00 223次阅读
    嵌入式<b class='flag-5'>软件工程师</b>常用的

    嵌入式硬件和软件哪个好?

    ,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能! 那对于嵌入式软件工程师来说: 嵌入式软件工程师领域较新,他的发展也是很快的,像
    发表于 12-05 15:17

    一文读懂机器学习:基本概念、五大流派与九种常见算法

    软件工程师编写程序来解决问题。首先存在一些数据→为了解决一个问题,软件工程师编写一个流程来告诉机器应该怎样做→计算机遵照这一流程执行,然后得出结果
    的头像 发表于 11-17 17:37 272次阅读

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

    工程师需要考虑时序约束、时钟网络设计、数据路径优化等因素。较常用的布局布线工具有ALLEGRO PCB和Orcad等软件。在使用EDA工具之前,FPGA工程师需要了解所需的电路元件,例如寄存器,计数器
    发表于 11-09 11:03

    嵌入式软件好还是硬件好?

    电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能! 那对于嵌入式软件工程师来说: 嵌入式软件工程师领域较新,他的发展也是很快的,像这类技术都是看经验的,经验
    发表于 09-18 15:31

    Linux开发工程师是吃青春饭的吗?

    虽然是个螺丝钉,但是你时刻在把自己培养为金刚钻。 “天亡我,非用兵之罪也”,“我是大龄码农,所以没人要”,这是借口,不是理由。从来让我们危机四伏的,只有我们自己。所以你还觉得Linux开发工程师是吃青春饭的吗?
    发表于 08-24 09:59

    热门推荐:硬件工程师必备工具

    硬件PCB产品顺利投产。 华秋DFM可制造性检查软件,在硬件开发流程中起到了非常关键的作用,对于广大硬件工程师来说具有很大的便利性和实用性。 华秋DFM软件下载地址(复制到电脑浏览器打开
    发表于 06-21 10:15

    硬件工程师前途到底怎样?看看大佬怎么说

    拆下来,找出原因,排除故障。 ”   项目经理托着腮帮子邪魅一笑:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”   这时,软件工程师
    的头像 发表于 05-17 12:10 624次阅读
    硬件<b class='flag-5'>工程师</b>前途到底<b class='flag-5'>怎样</b>?看看大佬怎么说