精华内容
下载资源
问答
  • 软件开发工程师

    2014-12-14 11:28:06
    软件开发工程师 本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧! 软件开发工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件...
    软件开发工程师
    本词条缺少信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
    软件开发工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。软件开发工程师是IT行业需求量最大的职位。 软件开发工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUTS等前沿技术。
    目录
    1招聘
    2软件开发
    ▪ 需求
    ▪ 设计
    ▪ 编程
    ▪ 测试
    ▪ 认证
    3就业
    ▪ 3G工程师
    ▪ 嵌入式工程师
    ▪ Java工程师
    ▪ .net工程师
    ▪ iphone工程师
    4相关专业
    5前景
    6认证
    ▪ 目标参训者
    ▪ 认证流程
    ▪ 认证
    ▪ 特点
    7掌握技能
    1招聘


    软件开发工程师要求:
    主要职责:
    ① RFID 相关应用软件、信息管理类软件的设计、研发、维护、安装实施;
    ②数据库管理及应用开发;
    ③ 根据要求进行软件概要设计、详细设计、编码、单元测试工作及说明文档的编写
    任职要求:
    ① 熟练使用VC++、C#或Java编程;熟悉Oracle/SQL Server等数据库开发;熟悉Web系统开发;
    ② 熟练使用ArcGIS、ArcSDE、MapObjects,并用其进行过开发;熟悉了解移动设备嵌入式GIS开发技术。
    ③ 精通Oracle/Microsoft SQL SERVER等数据库管理;从事DBA工作,有丰富的主机与操作系统管理、数据库管理、存储管理与规划、安全管理与规划经验;精通PL/SQL编程,熟悉数据库建模。
    ④ 开发过基于Weblogic或Websphere应用服务器的应用程序;熟悉WebLogic/Websphere的安装、配置、故障处理和调优;具有J2EE相关开发经验;熟悉weblogic集群的配置和管理;有weblogic administation认证证书者优先。
    2软件开发


    软件开发一般分为下述四个步骤需求、设计、编程和测试!


    软件开发工程师简报
    需求


    不仅仅是用户需求,应该是开发中遇到的所有的需求。比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。
    设计


    编码前,肯定有个计划告诉你要做什么,结构是怎样等等。你一定要按照这个来做,否则可能会一团糟。
    编程


    如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。
    测试


    目的是让你知道,什么时候算是完成了。如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。
    软件开发中,客户和开发人员都有自己的基本权利和义务。
    客户:
    定义每个用户需求的商业优先级;
    制订总体计划,包括用多少投资、经过多长时间、达到什么目的;
    在项目开发过程中的每个工作周,都能让投资获得最大的收益;
    通过重复运行你所指定的功能测试,准确地掌握项目进展情况;
    能随时改变需求、功能或优先级,同时避免昂贵的再投资;能够根据各种变化及时调整项目计划;
    能够随时取消项目;项目取消时,以前的开发工作不是一堆垃圾,已开发完的功能是合乎要求的,正在进行或未完成的的工作则应该是不难接手的。
    开发人员:
    知道要做什么,以及要优先做什么;
    工作有效率;
    有问题或困难时,能得到客户、同事、上级的回答或帮助;
    对工作做评估,并根据周围情况的变化及时重新评估;
    积极承担工作,而不是消极接受分配;
    一周40小时工作制,不加班。
    认证


    一、为贯彻国家科教兴国战略,提高劳动者素质,根据《中华人民共和国职业教育法》第一章第八条,“实施职业教育应当根据实际需要,同国家制定的职业分类和职业等级标准相适应,实行学历证书、培训证书和职业资格证书制度。
    二、 CVEQC认证证书持有者已经通过了中国职业教育资格认证指导中心组织的培训和相应的考试,具有相应的专业技能和知识。
    三、CVEQC证书可作为劳动者岗前培训、在职培训、提高培训、继续教育的培训认证;也是劳动者“先培训、后就业,先培训、后上岗”的凭证。
    四、CVEQC证书是中国职业教育资格认证指导中心颁发的专业技能证书。标有证书序列号、证书编号、培训者及证书持有者身份证号码,并盖有全国职业教育管理委员会、中国职业教育资格认证指导中心的证书专用章。   五、 证书证明参加培训及证书持有者具有系统地接受岗位技能培训的经历,证书在全国范围内有效。
    3就业




    3G工程师


    中国被世界公认为全球最大的3G移动市场,但是,3G相关的人才却严重失调。专业从事3G应用软件开发从业人员不足千人,据工信部预测,仅2010年,中国3G人才市场缺口就在100万以上,其中3G软件工程师缺口就在50万左右。
    3G人才短缺现状,使得3G行业已经成为新的高薪行业,基于3G软件开发人员变得格外抢手。人力资源专家表示,3G软件开发是未来几年最热门和最受欢迎的职业之一。根据前程无忧网发布的薪资报告,具有10年工作经验的高级嵌入式软件工程师年薪在30万元左右。即使是初级的嵌入式软件开发人员,平均月薪也在5000元左右,中高级的嵌入式软件工程师月薪平均已超过万元,而且随着3G应用的进一步深入发展,3G软件研发人才的薪水还会进一步水涨船高!
    据计世资讯发布的相关研究报告称,估计国内3G人才缺口将达到50万人以上。
    嵌入式工程师


    嵌入式领域较新,很多软硬件技术出现的时间都不太长(如ARM处理器、嵌入式操作系统、LINUX操作系统),大多数人没有条件接触或进入嵌入式行业,更谈不上能有机会接受专业人士的指导。因此,踏进这个行业的难度比较大,嵌入式人才稀缺。
    Java工程师


    2013年,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java软件工程师。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java软件工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。
    Java软件工程师的未来发展方向大致分为两类:
    一是成为管理人员,例如产品研发经理,技术经理,项目经理等;
    二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。
    .net工程师


    据有关权威部门统计,未来几年内我国软件行业的从业机会十分庞大,每年对软件人才的需求将达到 80万 -100 万人,而现有行业从业人员只有 50 万人左右,专业开发人员不到25万,2011年大部分院校出来的应届计算机系学生,真正能当年进入软件公司工作的只有10%~20%左右,缺口很大。


    中关村北大青鸟软件开发
    .Net作为新一代的程序开发语言其中的一员,同样也具有很多的优势,并且弥补了前一代语言的缺点,因而更加受到人们的喜爱。.Net具有很多明显的优点,可以提高开发人员的效率,减少bug,加快应用开发并简化使用。IT人员对.Net保持了应有的警惕,因为它毕竟还是个新事物,需要有一个比较艰难的学习曲线。但是对于大多数组织而言,其优点远远多于缺点。
    android开发工程师
    Android工程师是指从事Android移动应用操作系统、游戏和各种Android平台功能的应用、开发和测试的技术人员。 以手机开发为主要对象,包括但不限于手机操作系统、手机游戏、手机其他多种功能的开发和优化人员。Android工程师是移动应用开发者,希望将自己的应用移植到该平台上或者在该平台上开发应用。
    随着Android平台的扩张,引发了Android人才荒,2011年移动开发人才需求几十万,未来人才需求缺口将达百万。
    iphone工程师


    iPhone手机软件开发
    主 要 职 责
    1、负责基于iPad/iPhone平台下的软件产品开发工作;
    2、根据产品部需求形成可实现的技术设计,在预期的时间内完成开发工作;
    3、对移动平台的技术方向进行分析,为公司移动平台技术发展提供建议。
    技 能 要 求
    1、熟悉 Objective-C,熟悉iPhone;
    2、熟悉面向对象的软件设计方法及设计模式,具备良好的代码编程习惯和文档编写能力;
    3、熟悉iPhone SDK,有成熟作品、有实际项目开发经验者优先;
    4、热衷于移动平台开发,对新技术感兴趣,对技术有自己的理解和追求;
    5、具备良好的产品理解能力及团队合作精神,有较强的沟通及协调能力。
    iPhone手机游戏开发
    主 要 职 责
    1、开发IOS平台的游戏产品;
    技 能 要 求
    1、精通C或Objective-C语言,熟悉IOS操作系统;
    2、对iPad/iPhone开发平台有浓厚的兴趣,有良好的开发技能,熟悉编程规范;
    3、熟悉cocos2d引擎,或者熟悉其他iPhone游戏引擎;
    4、熟悉iPhone SDK,有iPhone软件作品优先考虑;
    5、计算机相关专业专科或以上学历;具备良好的产品理解能力及团队合作精神,有较强的沟通及协调能力。
    iPhone手机游戏策划设计师
    主 要 职 责
    1、负责android/SNS/ios游戏的整体架构和策划;
    2、负责游戏场景、道具、关卡等系统的功能设计;
    3、负责策划游戏规则、游戏玩法设定,并进行公式设计,数值设计和系统设计 ;
    4、负责游戏基础数据分析,用户调研、用户行为习惯等工作。
    技 能 要 求
    1、大专以上学历,网游/Webgame/手机游戏等游龄5年以上,热爱游戏并视为终身事业者;
    2、对游戏市场有独到见解,具备商业思维,能设计出符合市场规则的游戏;
    3、手机网游有清晰认知,并且熟悉android/iphone手机操作习惯和用户使用习惯 ;
    4、具备优秀的产品策划能力和独到的游戏设计理念,熟悉游戏产品的需求设计规范 ;
    5、良好的用户感触和数据分析能力,确保能设计出符合用户行为习惯的游戏规则;
    6、具备良好的产品理解能力及团队合作精神,有较强的沟通及协调能力。
    iPhone开发前端设计师
    主 要 职 责
    1、手机平台(及iPhone、iTouch)游戏相关美术工作;
    2、iPhone应用界面UI设计;
    3、负责游戏标题、界面、人物、动作、道具、场景的设计。
    技 能 要 求
    1、熟练使用photoshop软件;
    2、喜爱动画、漫画、游戏及电影并对此有独特的见解;
    3、熟悉HCI(人机交互),对用户体验有很好的把握。能够独立设计人机交互方式及页面流,能够独立进行整体操作规划及规范编写;
    4、熟练编写JS、Ajax,掌握异步通讯、离线存储、脱机应用等高级前端编码技术;
    5、熟练进行iPhone、iPad等高新移动终端设备的前端开发,熟练运用不同平台浏览器所支持的WebKit;
    6、具备良好的产品理解能力及团队合作精神,有较强的沟通及协调能力。
    依据51job前程无忧数据,软件及IT工程师在长达10年时间内一直占据着国内众多职业岗位平均工资水平的前茅,基于iPhone开发的岗位平均薪酬比传统软件开发岗位高出50%以上的水平,移动互联行业公司为了吸引留住人才除了提供保险、休假、灵活作息时间、优质办公环境等福利外更有股权,期权分红吸引高端求职者。
    4相关专业




    信息与计算科学等相关专业毕业。软件工程不等同与软件开发,软件工程是一个工程学科其指导意义更多。一个比较贴切的比喻:把一款软件比做一座大桥,那么软件工程师相当于施工总指挥,而一般的开发人员相当于建筑工人!
    5前景




    随着软件产业的发展,软件产品的质量控制与质量管理正逐渐成为软件企业生存与发展的核心。几乎每个大中型IT企业的软件产品在发布前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件人才来完成。软件测试工程师就是这样的一个企业重头角色。业内人士分析,该类职位的需求主要集中在沿海发达城市,其中北京和上海的需求量分别占去33%和29%。民企需求量最大,占19%,外商独资欧美类企业需求排列第二,占15%。然而,2011年的现状是:一方面企业对高质量的测试工程师需求量越来越大越大,另一方面国内原来对测试工程师的职业重视程度不够,使许多人不了解测试工程师具体是从事什么工作。这使得许多IT公司只能通过在实际工作中进行淘汰的方式对测试工程师进行筛选,因此国内在短期将出现测试工程师严重短缺的现象。根据对2011年网络招聘IT人才情况的了解,许多正在招聘软件测试工程师的企业
    很少能够在招聘会上顺利招到合适的人才。在具体工作过程中,测试工程师的工作是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试用例,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。对软件测试工程师而言,必须具有高度的工作责任心和自信心。任何严格的测试必须是一种实事求是的测试,因为它关系到一个产品的质量问题,而测试工程师则是产品出货前的把关人,所以,没有专业的技术水准是无法胜任这项工作的。同时,由于测试工作一般由多个测试工程师共同完成,并且测试部门一般要与其他部门的人员进行较多的沟通,所以要求测试工程师不但要有较强的技术能力而且要有较强的沟通能力。
    1. 测试人员要提高自己的分层测试思想,在划分测试点的时候不光要从业务的角度考虑,还要充分考虑数据的特殊性。
    2. 测试人员也应当具有一定的市场意识和风险意识,能够站在不同的角度,尽可能的分析系统可能存在的风险场景。
    3. 测试负责人制定测试计划粒度要小、周期要短;测试组成员对于自己的工作都有明确的目标和子目标。特别是存在交叉测试的模块,测试人员一定要责任明确,确保没有漏测的场景。
    4. 测试人员一定要有自我推销意识,主动加强与开发人员、需求人员及客户的沟通。
    5. 测试人员也应该像质量管理人员一样,在项目中起到过程监控点的作用。能够从全局的角度反映项目存在的问题。
    6. 提高测试效率很重要的一点就是对可复用资产的充分利用;可复用资产中比较重要的一部分就是测试用例的复用,所以在以后的测试中一定要充分利用可复用的测试用例提高测试用例的编写效率。
    7. “经验的浪费是最大的浪费”,测试人员一定要善意总结,把自己的测试经验记录下来,这样不仅能完善自己的测试思想还能为同事提供系统的学习经验。
    6认证




    作为全球最知名和规模最大的专业学术组织—IEEE,2011年将在美国、印度和中国全球首发CSDA软件开发工程师认证CSDA(CertifiedSoftwareDevelopmentAssociate),CSDA认证培训是一个由IEEE主导的入门级的软件工程师的国际认证项目,即“软件开发工程师认证”项目,由IEEE计算机协会研制推出。CSDA培训和认证不带有任何产品和应用色彩,而是从软件工程生命周期的全过程,向参加认证的人员教授软件开发的通用知识。具有CSDA认证的基础,可以方便学员更好地参加其他的基于特定产品的应用的培训。
    CSDA采用的模式是培训-考试-证书的方式。培训大纲依据《软件工程知识体系指南》和《软件工程2004:软件工程本科生课程计划指导》,由IEEE计算机协会专家组制定,教材由Holmes公司专业编写完成。由Prometric设在各地的考点进行考试,一旦考试通过,考生将获得由IEEE颁发的全球统一证书。鉴于IEEE百余年的品牌影响力,不是一般的企业品牌所能相比,并已与全球多家软件公司签订优先用人合作意向,因此,获得CSDA证书对考生将来的就业、升职、职业发展等都有很大的帮助。
    教材:由Prometric公司(专门负责考试的公司)专业编写
    综合《软件工程知识体系指南》《软件工程2004》两本书,全英文四个模块,分四册。
    考试:由Prometric公司设置在各地的考点进行
    目标参训者


    1.计算机学院、软件学院大三和大四的学生
    2.软件工程硕士、MSE在读
    3.从业经验2年之内的软件人员
    4.专业不是计算机,但是想改专业希望从事软件工作的人员
    认证流程


    培训:100课时左右,CSDA讲师主讲,其中包括理论和实验两部分。也可以采取课程置换、嵌入和其他方式。
    考试:
    1.每个考生都有一个账号,通过帐号向Prometric相关地区的考点预约时间,网上考试。
    2.共180道选择题,考试时间4小时。
    3.参加培训的学生预计通过率为85%,未参加培训的学生通过率不到40%。
    认证


    由IEEE计算机协会颁发全球统一的证书,证书有效期为3年,到期可以再申请认证,或者申请高级工程师(CSDP)的认证。
    特点


    1.权威性
    2.不带任何产品和应用色彩,而是软件工程生命周期的全过程。
    3.含金量:
    (1)IEEE具有百余年的品牌影响力
    (2)2008年才在全球开展具有巨大的潜力
    (3)软件企业的认可,国内外众多企业宣布优先雇佣通过CSDA认证的人员
    7掌握技能




    首先是对操作系统的认知
    大家都是知道,不管什么应用软件,都必须依靠一个操作系统,只有在一个操作系统上,它才能很好的运行;我们常用的操作系统最多的当数微软的windows操作系统了,2013年微软推出的是win8操作系统;由于是刚刚推出,它还不能被用户所接受,2013年大多用户还在用win7和windows xp操作系统。
    其次是对开发语言的掌握
    软件开发,通俗的说就是写程序,就是把一串一串的命令组合起来,让它来替我们完成某种特定的任务。如果你从事的是java软件开发,那么你重点必须精通java语言,你要懂得java的特性,java语言的语法,java语言的算法等等。
    第三是对开发工具的使用
    俗话说:磨刀不误砍柴工,要想开发出一个好的软件,对开发工具的熟练应用是非常重要的,它可以让你事半功倍;java软件开发常用的开发工具有:开源的Eclipse和收费的MyEclipse,.Net软件开发工具有:微软的VisualStudio,Pascal软件开发工具:Delphi。关于软件开发工具的使用,可以参考扩展文章《常用的软件开发工具有哪些使用技巧》。
    第四是对TCP/IP网络协议的了解
    有了TCP/IP网络协议,使网络得到了飞速的发展;从早期的C/S结构的运行模式到现在主流的B/S结构的完美转变,TCP/IP协议是功不可没的,未来更是离不开TCP/IP协议;要想成为一名优秀的软件开发工程师,特别是手机软件开发工程师,你不仅仅要知道ISO有哪几层组成,你更要知道,每层的功能和作用。
    第五是对数据库的熟练应用
    数据库对软件的影响是不容小视的,因为我们做的工作都是心数据为中心,重点部分就是操作数据,如果没有数据库,那么软件的作用也就会大大降低;2011年常用的都是关系型数据库,主流的有:甲骨文公司的Oracle、微软公司的sqlserver、IBM公司的DB2,还有一些小的数据库,如mysql,Access等;我们一定要熟练掌握SQL语言,它是操作数据库的关键。
    第六是对软件工程的了解
    大多软件开发公司在招聘的时候,都会问你对软件工程的了解,软件工程是软件开发的前提;因为公司不可能招一个只会写代码而不知道为什么要这样写的员工;作为一个优秀的软件开发工程师,你不仅仅要会写代码,更重要的是要掌握《软件开发的流程》中每个阶段所要用的技术,如客户需求,市场调查,可行性分析,需求分析,详细设计,最后的软件测试等等。
    第七是要有勇于探索,勇于创新的精神
    一个优秀的程序员,不能总是原地不动,不去思考,要多去想一想为什么要这样做,如果不这样做会产生什么样的后果;要努力学习新的知识,因为软件行业是一个更新速度非常快的行业,如果你的知识2年都没有更新的话,那么,你在这个软件开发行业的前景就不容乐观了;每天都要抽出一定的时间学习新知识,只有这样,才能走的更好,更远,更稳。
    展开全文
  • 高级软件开发工程师 和 Android软件应用工程师 以及云计算工程师. 当下这三个方向怎么样,或者说未来一段时间的发展前景.求分析
  • JAVAEE软件开发工程师

    2019-06-08 20:01:50
    JAVAEE软件开发工程师 岗位职责 充分理解文档中提出的需求内容; 参与系统概要设计和详细设计; 参与概要设计和详细设计文档的编写; 系统模块编码; 系统单元测试模块编码; 参与系统单元模块测试; 参与系统模块...

    JAVAEE软件开发工程师

    岗位职责

    1. 充分理解文档中提出的需求内容;
    2. 参与系统概要设计和详细设计;
    3. 参与概要设计和详细设计文档的编写;
    4. 系统模块编码;
    5. 系统单元测试模块编码;
    6. 参与系统单元模块测试;
    7. 参与系统模块整体测试;
    8. 参与用户手册文档的编写。

    职业能力需求

    1. 掌握JAVA语言,能够熟练使用Eclipse等IDE开发环境;
    2. 熟悉HTML、CSS、JavaScript、JSP、Servlet等WEB开发技术;
    3. 熟悉Spring, SpringMVC, Mybatis等开发框架;
    4. 能够熟练配置常见服务器,如Tomcat等;
    5. 熟悉Oracle、MySQL、SQL Server等主流数据库的应用;熟悉SQL语言;
    6. 了解面向对象的分析和设计技术,能够使用Rose、PowerDesigner等工具进行简单建模;
    7. 了解软件工程概念和软件开发流程,能熟练使用SVN等工具;
    8. 良好的沟通能力和团队合作精神;
    9. 了解大数据管理生态技术,熟悉基本的分析原理。

    工作中会经常使用到的技术:
    1.html、css
    2.java工作原理(jvm)
    3.java语法、数据结构和算法
    4.java语言特性(封装、继承、多态、抽象)
    5.java设计模式(在开发中会经常用到)
    6.java反射机制(常用框架都会用到反射机制)
    7.io(文件读写)
    8.多线程
    9.网络编程
    10.javascript
    11.jquery
    12.数据库(oracle、mysql等等)
    13.servlet
    14.JDBC
    15.javabean
    16.WEB项目分层架构
    17.前后台交互
    18.ajax
    19.过滤器及过滤器原理
    20.常用框架(Struts、hibernate、spring、springMVC、i/mybatis)
    21.框架整合
    22.工作流(流程引擎工作机制)
    23.xml、properties、json
    24.常用页面以及后台插件(tree、时间、poi等等)
    25.nosql数据库以及应用场景(mongoDB)
    26.缓存数据库以及机制(redis、memcached)
    27.第三方接口调用
    28.SDK
    29.web应用服务器(tomcat、weblogic)
    30.linux
    31.日志
    32.数据库连接池
    33.maven
    34.svn
    35.建模工具(powerdesiner、axure)使用
    36.TCP/IP

    展开全文
  • 软件开发工程师必备技能 编码能力 精通一门编程语言,例如JAVA,并且能够深入理解OOP、OOA、OOD等编程思想。 算法研发 算法能力是考察一个软件开发工程师基本能力重要手段,掌握常用算法并能用自己熟悉的语言实现...

    软件开发工程师必备技能


    • 编码能力
      精通一门编程语言,例如JAVA,并且能够深入理解OOP、OOA、OOD等编程思想。
    • 算法研发
      算法能力是考察一个软件开发工程师基本能力重要手段,掌握常用算法并能用自己熟悉的语言实现,是对软件开发基本要求。
    • 数据结构
      掌握基本的数据结构,在编码的时候,对处理问题更能得心应手。
    • 设计模式
      多多了解软件开发思路和设计思想,对任何一个新的项目系统,都能助你快速理清思路,从容面对。
    • 框架
      掌握常用开发框架

    知道了上述内容,那么问题来了?

    • 怎么快速掌握一门开发语言?
    • 如何学习算法?
    • 如何学习数据结构?
    • 如何学习设计模式?
    • 如何学习常用框架?

    工作目标是什么?

    • 架构师
    • CTO
    • 其他

    以上是笔者对自己的思考及提问?希望对你也有帮助。

    转载于:https://my.oschina.net/yutaodev/blog/2086027

    展开全文
  • 中国软件开发工程师之痛

    万次阅读 多人点赞 2013-07-23 08:28:57
    真正与外国同行接触后才会知道什么是差距,在这篇文章中我从软件开发工程师的角度以“痛点”的形式来谈一谈我所认为的差距。 技能之痛 相当数量的软件开发工程师(后面简称为工程师)认为除了与编码相关的内容外,...

    在近期的一次会议上,有高层谈到之前在中国觉得自己做得很牛,但与美国同行接触后却发现与人家存在很大的差距,这一点我在外企工作时也有过同样的体会。真正与外国同行接触后才会知道什么是差距,在这篇文章中我从软件开发工程师的角度以“痛点”的形式来谈一谈我所认为的差距。

    技能之痛

    相当数量的软件开发工程师(后面简称为工程师)认为除了与编码相关的内容外,其他技能都不重要。在这种意识的引导下,很容易出现的一个普遍现象是技术能力不错,但开发能力却不行。这种现象的另一种表现是:单干可以,合作不行。

    技术能力是指个体对某些技术知识掌握的深度和广度,而开发能力除了包含技术能力外,还涵盖个体在项目运作过程中所需掌握的其他能力。

    高效的团队一定离不开通过知识管理将个体所掌握的知识通过分享而沉淀下来。分享途径无外乎通过一定形式的文字和(或)图,这就要求工程师掌握使用象Word、PowerPoint、Excel、Visio(和UML)这类工具的基本能力,并具备良好的写作与表达能力。表面看来这种能力与编码能力无关,因而也得不到工程师的普遍重视,也因此成了一个痛点。其实,写作与表达能力与编程水平息息相关,因为它们都在考验我们的逻辑思维和概念能力。忽视掌握必要工具软件的工程师难道以为编程语言是知识分享的万能工具?

    个体具备良好的沟通能力是项目顺利运作的基石。不良沟通表现为:工程师在团队合作中更多采用被动询问而非主动汇报、不会辩论、对于他人指出的错误表现得“自尊”和狡辩而非感谢或承认、对于被邀请的各类审查活动(如设计审查、代码审查、文档审查)不是积极响应而需别人催促。在团队中,如果技术管理者不能很好地引导,个体沟通能力的缺乏很容易在团队中引发“一言堂”或“无政府主义”问题,工作效率低下则是必然。

    专业精神之痛

    不少工程师对于自己的职业缺乏精神上的追求,工作起来不求专业,只求“代码能工作就行”。这类工程师容易将经验与资历等同,以为工作年份越长就越有经验,实则不然。工作年份越长资历是越老,但如果专业水准没有在过程中不断提高的话,所获得的经验很可能趋零。

    什么是专业?专业是指我们应以业内所广泛达成的共识去从事软件开发活动。这里的“业内”并非只指“国内的”,而是指“国际的”;“专业”也并非单指技术内容(比如,编程语言、算法等),还包含软件项目运作中的其他各个方面(比如,开发方法、建模工具、流程、质量保证手段等)。要做到专业做事一定离不开不断地学习,只有这样才能了解行业的动向。

    软件行业虽然没有“银弹”,但仍存在不少有效改善开发质量与效率的方法。只有抱着专业做事的态度去工作,我们才有可能去实践这些方法,并在实践过程中思考这些方法的内涵与不足,进而为自己的工作量体裁衣。千万不要认为“反正业内没有银弹,我要去学那么多方法干什么?”

    强调专业做事的根本目的,是使我们的做事方法更科学。与我所了解的美国、俄罗斯这些国家的工程师相比,我国工程师的专业化还有很长的路要走。

    速度之痛

    除非你完全认可中国近些年以GDP为导向的经济发展策略,否则很可能得反思一下软件行业所鼓吹的“唯快不破”策略,尤其是互联网领域。

    在商业环境中,“快”能获得很多竞争优势,这毋庸置疑。工程师的价值虽得(最终)体现在商业产品上,但千万不要忘记了我们始终是一名工程师,在实现商业价值的道路上不断提高自己的专业水准无论如何都不应被忘记。工程师始终要明白,公司的发展与自身的职业发展并非完全统一。如果在公司的发展过程中我们的专业水准并没有“水涨船高”,那除了说明我们在吃老本外,还表明我们很可能是在“拖后腿”。在这种情形下,即使公司蒸蒸日上地给我们发薪水,但从个体职业发展的角度说来,公司发展其实与我们“一毛钱关系都没有”。我想不致于有人认为自己以后只会在这一家公司干吧!如果真是那样想,你能保公司几十年存在?届时万一得无奈地离开公司,单薄的专业水准又如何在人才市场与他人竞争?

    对“唯快不破”的误解所带来的不良后果是,有些工程师为了快速实现软件功能而忽略了专业精神。他们一味地为了速度而筑下高额的“技术债”,甚至在“速度”的幌子下过得心安理得。

    如果将“唯快不破”改为“唯效率与质量不破”或许更不容易形成误解。一说到“快”,给人的感觉往往是投入更多的时间就能达成目的,容易让人忽视做事的方法与效率。与之不同的是,强调效率需要我们考量投入时间的产出比,且暗示做事的方法只有对路才能获得效率;强调质量则提醒我们尽量别做“豆腐渣”之事,而这隐含的内容是我们必须专业做事,即使欠下了“技术债”它也时刻提醒着我们那是一定要还的。

    软件行业的长期被动加班成为了速度之痛的一个缩影,它让不少工程师过着有工作没生活的日子。软件行业要避免偶尔、短期的加班是不可能的,但长期的被动加班绝对是个问题。不重视效率与质量的“勤劳”除了是在浪费外,更是一种透支将来的短视行为。

    视野之痛

    视野之痛体现在工程师在从事技术工作时,忽视了解国外的发展状况。他们因为不知道同质开源项目的存在而走上“重新发明轮子”的道路,甚至发明出“三角形的轮子”;也因为对英文资料缺乏阅读的耐心而不去了解相关国际标准、订阅开源项目的mailing list和专业网站的newsletters等。

    狭窄的视野很容易让人自满,以为软件开发就是那么简单,最后导致成长慢、意识与技能“不入流”。

    以我的经验来看,工程师如果不能很好地阅读英文资料则要达到高技术水平实在很难,视野狭窄也恐成必然。另外,编程活动中的命名环节其实对我们的英语水准提出了一定的要求,不然很容易动名词不分而写出只有自己容易读懂的程序,或常出现命名时找不到合适的单词去精确表达程序意图。

    持续发展之痛

    以上各痛点的最终结果又给我们带来了持续发展之痛。其表现为:少有人会在项目中通过文档提升开发效率;鲜有人会持续改善软件的设计质量;大部分人只关注短期完成工作,而忽视短期行为所带来的高额隐性成本。

    持续发展之痛使得工程师很难轻装上阵,工作精力过多花费在重复、低级的琐事上,而非用于学习和思考。最终结果是将工作变成了“青春饭”,辛苦但却看不到美好的未来。

    所有痛点可以归结为意识的陈旧,或虽有意识却无力于将其转变为能力!(注:意识是一种行为,而非能力)

    当然,这些“痛”与我国的社会大环境有着紧密的联系。但无论是怎样的环境,总有人做得出色,或许他们身上有我们所没有的内容。是什么?只有自己去想、去悟,成长之痛! 即使大环境好了、大家都很“专业”,职场的“金字塔”总是摆在那的。谁能向上走?走多远?全靠个人,没有shortcut!只不过每个人都平等地拥有向上走的机会与权力!

    展开全文
  • 软件开发工程师常用工具介绍

    万次阅读 2018-05-15 02:13:28
    本文主要记录软件开发工程师在工作及学习中常用的工具,后面有时间把每个工具的基本用法都总结下。 工具合集 序号工具名称简述使用指南 1GitHub适合团队开发人员之间共同开发时使用GitHub官网 ...
  • Java软件开发工程师笔试题 答案

    千次阅读 2019-01-22 18:19:23
    Java软件开发工程师笔试题 答案
  • Amazon软件开发工程师面试题

    千次阅读 2019-05-03 08:39:40
    面试职位是位于加拿大温哥华的软件开发工程师的职位,在北京的招聘会,要求 0.Amazon的招聘人员会先发邀请函给你 1.等你同意并回复邮件后,他们要求你先发简历,然后审核 2.在线编程答题 3.等待通知onsite面试 ...
  • 嵌入式软件开发工程师 工作内容 从事数据产品嵌入式(底层)软件开发和设计工作; 负责数据产品相关软件子系统的方案设计; 负责数据产品相关的技术交流、标准及专利相关工作; 负责嵌入式软件系统的...
  • 软件开发工程师编程题 第一题:在字典中找自己的逆序 题目 有一个单词列表,一个初始单词,初始单词需要通过单词列表逐步变换得到自己的逆序,求变换所需的最短变换路径长度。 变换规则:每次只能变动1个...
  • 【岗位】: 数通软件开发工程师(协议软件开发) 工作职责: 1、进行数通设备协议类软件开发工作; 2、进行需求分析、方案设计、软件详细设计、代码编写、单元测试、集成测试等工作; 3、进行...
  • 嵌入式软件开发工程师薪资待遇怎么样

    万次阅读 多人点赞 2018-05-27 16:19:40
    想要了解嵌入式软件开发工程师待遇怎么样,那就先来看一下嵌入式软件工程师发展趋势怎么样,据市场分析,现在的嵌入式系统在技术领域呈现空前绝后的发展趋势,而且发展也相对而言比较快,在这个时代,随着物联网的...
  • 招聘软件开发工程师/开发实习生

    千次阅读 2014-05-09 20:05:54
    招聘软件开发工程师/开发实习生负责公司测试框架、平台的开发
  • java软件开发工程师

    2009-01-05 15:34:00
    java软件开发工程师
  • 与嵌入式软件开发工程师(BSP)的题目类型来说,多媒体&智能应用的笔试题在前面的选择题上类型差不多,主要是两条简答题。前者是偏向于Linux驱动方面,后者是偏向于视频/音频的采集或者编码方面。总体来说,大差...
  • 记:应聘浙江农信,软件开发工程师
  • 我是如何从通信转到Java软件开发工程师的?

    万次阅读 多人点赞 2018-11-16 13:15:33
    我的CSDN和公众号的读者里面有绝大部分都是在校学生,有本科的,也有专科的,我在微信里收到很多读者的提问,大部分问题都跟如何学习编程有关,有换专业自学的、有迷茫不知道如何学习的、有报培训班没啥效果的等等,...
  • 如何成为一名优秀的软件开发工程师  软件开发工程师是当今社会的热门职业,各大IT企业和非IT企业,都有不同程度的软件工程师的需求。特别是在信息化速度加快的今天,软件开发工程师更是成为了一个高薪的岗位。  ...
  • 一. 让你的简历鹤立鸡群 二. 面试流程剖析-知己知彼百战百胜 三. 面试前不可或缺的三大武器 四. 独家揭秘笔试题的设计套路 五. 直击企业一线笔试卷 六. 面试过程掌握主动权的大招... 七....
  • 给java软件开发工程师的简历模板

    热门讨论 2009-03-14 09:49:50
    提供给软件开发工程师的简历模板,需要的话可以看一下,不花哨的那种。
  • 在软件开发领域,高级开发工程师通常是指那些编写代码超过3年的人。这些人可能会被放到领导的...近日,他发表了一篇博文,根据开发者所能发挥的作用划分软件开发工程师的成长阶段。 初级开发工程师 初级开发工
  • Linux软件开发工程师

    千次阅读 2017-04-03 10:21:44
    时下很流行软件工程开发工作,不论安卓还是IOS系统和软件的开发,都有很多人热衷,很多人都认为做软件开发很轻松,而且工资还不错,只需要经过简单的培训就可以了,但那些只是表面的东西,并不会持续太长时间,真正...
  • 软件开发工程师技术能力层次模型

    千次阅读 2015-11-19 05:06:09
    下图是根据我的经验所得到的软件开发工程师技术能力层次模型。在这个模型中,你属于哪一个层次?你的心中也有类似的模型吗? 推荐阅读《高质高效软件开发组织能力模型》。 (文章出处:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,613
精华内容 8,245
关键字:

软件开发工程师