互联网时代,别再对软件工程师有误解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了互联网时代,别再对软件工程师有误解相关的知识,希望对你有一定的参考价值。

大家对于软件工程师的误解多存在于以下方面,我们以软件测试工程师为例:

1.门槛低

软件测试是产品研发的最后一环,是一个专门设置的技术岗,只是相比于其他的技术岗位门槛稍微低一些,但是这并不意味着软件测试不需要技术。软件测试有自己的一套专业的知识技能体系,软件测试除了大家常说的点点点之外,还需要:Linux、数据库,各种工具:jmeter,postman,fiddler,jira,禅道等等,问题是这还只是初级测试工程师,后续还有:自动化测试工程师,性能测试工程师,安全测试工程师,测试开发等等这些对软件测试的技代码能力和研发的知识架构能力等都有很高的要求。并且从软件测试招聘的门槛来看,近一年左右要求的软件测试工程师的基本学历为本科,好一点的公司甚至要求985,211等,所以软件测试是有门槛的,其中的门槛包括技术和学历;

2.软件测试工程师的工作就是找bug

现软件中的错误是测试人员应该做的重要部分。除了查找错误外,测试人员还会分析需求,审查产品体系结构,提供使产品更易于使用的想法,验证帮助文档 以及许多其他内容。我认为测试人员的工作职责应当以质量和效率为目标。质量方面能够更多的运营知识体系和方法手段提升软件的质量,同时也要对软件质量进行度量,并且能够根据既往的经验对软件进行缺陷的预防。同时要运用资金的技术能力来提升测试过程的效率,改善和提升流程。

3.软件测试工程师没有用,没有产品和研发的价值高

大多数做技术的高层觉得产品同学设计出产品,研发同学开发出系统,而测试同学不会给产品增加任何价值。所以这就是为什么很多公司种开发轻测试甚至没有测试。

相反,熟练的测试人员通常是被测系统(产品)的专家。与程序员通常将大部分时间花费在应用程序的特定区域,功能或组件上不同,测试人员从端到端的角度分析并了解整个系统的工作方式。测试人员有更好的机会展示自己对产品的理解,从而为产品增加价值。同时测试通过用户场景的测试能够减少很多线上的故障,避免很多直接的经济损失。

参考技术A

 随着互联网技术的深入应用,软件产业已成为21世纪拥有最大产业规模和最具广阔前景的新兴产业之一,软件工程师被越来越多的大众所了解,虽然大多数人都对软件工程师已经有了一些正确的认知,但是依然存在少部分人对于软件工程师的定义还有所误解,还是容易混淆软件工程师和修电脑的维修师这两者的定义!



软件工程师,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如javascript、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。


软件工程师所需的技能知识更加专业,工作难度更加大,工作性质更加精准!自然就业前景也是极好的。据相关数据显示,国内市场每年对软件人才的需求高达80万,而且这个数据随着中国软件的普及而快速递增。而各高校计算机专业毕业生中的软件工程人才还很缺乏,高素质的软件工程人才尤为短缺。用人单位对软件工程师的需求可以用“如饥似渴”来形容,用人单位中很多是银行的IT部门和跨国IT企业,昆明电脑培训http://www.kmbdqn.com/认为对于具有实际操作能力的软件人才是用人单位最为需要的,而且越是上规模的公司,工作的拆分层次越清晰,对于软件人才的需要越大。   

  互联网时代,我们做什么都离不开网络,自然软件也是必不可少的知识,可以说,互联网时代的软件工程师是高技能、高精度、高专业度的前景行业,互联网时代,别再对软件工程师存在误解!


详情
    官方电话在线客服官方服务
      官方网站领学习资料计算机培训设计培训编程培训

软件工程网络15个人阅读作业2(201521123082 黄华林)

软件工程网络15个人阅读作业2(201521123082 黄华林)

标签(空格分隔): 软件工程


1.提出问题

快速通读教材《构建之法》,并参照提问模板,提出5个问题。
如何提出有价值的问题? 请看这个文章:http://www.cnblogs.com/rocedu/p/5167941.html ,以及 在互联网时代如何提问题。 还有这些要点:

在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文
列出一些事例或资料,支持你的提问。
说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾?

Question1:

相关内容:PSP(个人软件开发流程)

相关知识点:
1.代码覆盖(Code coverage)是软件测试中的一种度量,描述程式中源代码被测试的比例和程度,所得比例称为代码覆盖率。(来自:百度百科)
2.单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
文中与问题相关的内容:
100%的代码覆盖率不等于100%的正确性!代码覆盖率对于“应该写但是没有写的代码”无能为力。代码中有效能问题,虽然代码执行了,并且也正确返回了,但是代码效率非常低。多线程环境中的同步问题。其他与外部条件相关的问题

其他与外部条件相关的问题(例如与设备、网络的相关问题),这些问题具体指什么,以及如何用具体的方法来解决这些问题?

Question2:

相关内容:软件工程师的成长

文章内容如下:

在中国,软件工程师的职业资格考试有:
计算机等级考试和全国计算机技术与软件专业技术资格考试
基于笔者有限的经验和观察,此类考级有这样的好处:
国家级认证,有一定的权威性和通用性
任何人都可以参与
也有这样一些局限性:
以答题、评分为主要考试形式,没有面对面的口试
考试中每个人单独行动,不能考量团队的合作能力
要考虑到通用性和稳定性,考题和内容相对滞后于工业界的发展,部分内容相当滞后

因为我本人也将参加计算机等级考试和软考,但是在备考过程中,发现知识点的确有很多滞后和死板,但是很多公司和部门都还承认这是证书的价值性,公司是看中了同学的学习能力还是其他原因?还有国家的认证考试明明知道很多知识点滞后于工业界的发展,以及一些公司的认证考试都有题库,他们为什么不尝试改革和改进,真正地做到考察相关职业从事人员的能力?

Question3:

相关内容:两人合作

相关知识点:

1、敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
2、极限编程
极限编程(ExtremeProgramming,简称XP)是由KentBeck在1996年提出的。KentBeck在九十年代初期与WardCunningham共事时,就一直共同探索着新的软件开发方法,希望能使软件开发更加简单而有效。Kent仔细地观察和分析了各种简化软件开发的前提条件、可能性以及面临的困难。1996年三月,Kent终于在为DaimlerChrysler所做的一个项目中引入了新的软件开发观念——XP。适用于小团队开发。
3、结对编程
结对编程技术是指两位程序员坐在同一工作台前开发软件。与两位程序员各自独立工作相比,结对编程能编写出质量更高的代码。
实施结对编程技术将给软件项目的开发工作带来好处,只是这些好处必须经过缜密的思考和计划才能真正体现出来。而另一方面,两个有经验的人可能会发现配对编程里没有什么技能的转移,但是让他们在不同的抽象层次解决同一个问题会让他们更快地找到解决方案,而且错误更少。

文章内容如下:

既然代码复审能力能发现这么多问题,有这么好的效果,如果我们每时每刻都处在代码复审的状态,那不是很好嘛?事实上,极限编程正是这一思想的体现——那为什么不把一些卓有成就的开发方法用到极致,让我们无时不刻地使用它们?

通过查阅资料找到了相关名称敏捷开发、极限编程和结对编程,那么这三者的关系是什么?

敏捷开发是十几种开发方法的统称,极限编程就是这十几种开发方法之一。
极限编程包括了十几种实践(就是一些具体做法),结对编程是极限编程的一种实践。(来自百度知道)

Question4:

相关内容:敏捷流程

在《构建之法》第一版第6章中出现以下问答内容:

问:敏捷宣言是不是软件开发思想的顶峰?
答:敏捷宣言固然好,然而人的认识总是在发展,软件行业也不断地有新的思想出现,或者是旧的思想重新浮现。例如,2009年有人提出了软件匠艺宣言。

请问具体的软件匠艺宣言是什么?以及与敏捷宣言的异同点?

Question5:

相关内容:WIIFM(我能从中得到什么?)

在《构建之法》第一版的16章,我看到了以下文章的内容:

那怎么样才能让别人喜欢(至少不痛恨)你的创新?在我们提出一个创新的想法时,应该考虑这么几点:
对利益相关人要讲清楚“你能从中得到什么”。
创新的想法和目前流行的做法对比,有什么相对优势,能让别人清楚地看到这个区别,并能够尝试。
创新和目前大众习惯、已有系统是否兼容。
避免过度描述复杂的技术。

文章里作者提问读者,“你能否用简明的方式把你的创新描述出来?可以实践一下本书“需求分析”里讲过的NABCD方法?”

查阅第八章需求分析内容:

N(Need,需求)、A(Approach,方法)、B(Benefit,好处)、C(Competitors,竞争)、D(Delivery,推广)

看完之后,关于如何提出靠谱的项目还是不太理解,后来百度以后搜到邹欣老师的博客文章:
https://www.cnblogs.com/xinz/archive/2010/12/01/1893323.html

通过两章的学习,了解了创新的提出,满足用户的需求很重要。创新的东西不但要“新”,更重要的是利用自己的框架和判断,更好地推广它,使它的价值最大化。可是,我想问,在创新的路上,满足用户的需求的创新还是坚持一些颠覆性的创新哪个对于现在的社会发展帮助比较大?是不是有一定资本的个人或者团队,比较适合做后者这件事?但是一般有资本或者成功的个人或团队,在书中你也提到有许多因素影响着他们创新,那在中国这个大环境下,是不是一般由国家来主导这些项目?那么假如由国家来主导这些目前暂时看来收益不大的创新项目,有什么优势又有什么不足?虽然想得有点多,希望作者能够解答一下。

2.【附加题】

请将问题提交至豆瓣:https://book.douban.com/subject/27069503/, 并在博客中给出链接在豆瓣页面的最下方 “读书笔记” 那里发言,《构建之法》的作者会亲自答复问题。
链接:https://book.douban.com/annotation/54360971/






























以上是关于互联网时代,别再对软件工程师有误解的主要内容,如果未能解决你的问题,请参考以下文章

麻了,别再为难软件测试员了

麻了,别再为难软件测试员了

真的麻了,别再为难软件测试员了......

软件工程网络15个人阅读作业2(201521123082 黄华林)

现代软件工程-构建之法---第七章 练习与讨论

软件工程第二次作业