学软件开发专业需要哪些基本素质?
1. 需要追求真理的决心,开发的软件每个人写的都会不一样,唯一要求一样的是真理,究竟你做的是解决实际问题、软件是否有他的存在意义这些就要靠真理来验证。
2. 需要博学,集思广益,不要钻牛角尖单学哪一种语言,觉得他独大,应该多上论坛、多向别人学习交流,软件使他的适用环境,你需要满足各种各样的环境。
语言的原理也是相同的,只有在你知识够丰富才能触类旁通。
3. 需要循序渐进,一口吃不成胖子,你可以抄袭别人代码做些自己能力范围外的事情,但是要想办法把他理解透,编程自己的东西,在使用的时候能举一反三。
4. 需要有耐心,急功近利反而弄巧成拙,在你没学到真本事之前,他是产生不了实际价值的,就像大学生上编程课一样,学来学去全是算法基础,甚至看不到一个程序能真正用起来,但是毕业了就知道,这些东西哪里都能用。
偶尔同学们会问你写软件多少钱一个月,对比下做泥工发现差了一大截,结果做软件还不如做泥工。
这就看你怎么理解了,做泥工也不应该受到歧视,做软件是你的一生的职业。
5. 需要社会经验,你给人家做ERP流程管理就要精通ERP业务逻辑和他的企业运作模式,给人家做游戏就要了解市场需求和本身的定位,做网站推广就要熟悉业务范围和SEO优化,不然做出来的都是自娱自乐的小玩意。
开发软件要具备哪些技能
件工程师是从事软件开发相关工作的人员的统称。
它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。
这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C、C/S B/S程序开发,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB SERVICE、STRUCTS等前沿技术。
除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。
软件工程师可谓是软件项目开发的掌舵者,一名优秀的软件工程师应当具有较强的逻辑思维 能力,对于技术的发展有敏锐的嗅觉。
虽然要求技术全面,但无须偏执于门门技术都精通,任何软件工程师都有自己的技术特长和偏向,对于自己手中的技术,可有精通-掌握-熟悉-了解之分,根据工作需要和职业发展的具体情况来划分
软件工程师需要具备什么能力啊?
展开全部 软件工程师虽然不能算是一个新生事物,但随着社会的不断发展,计算机是我们必不可少的,软件开发也是推动计算机迅速发展的条件,那么做为软件工程师我们需要什么条件? (1)具有扎实的计算机专业知识 这是软件工程理由能够从事软件一切工作最基本的前提,是软件工程最基本的素质,这要求软件工程师必须精通高等数学、离散数学、电子学、编程语言、数据结构等课程。
(2)良好的语言表达能力和沟通能力 这是软件工程师应该具备的一个很重要的素质,因为软件工程师是为用户开发软件,常常需要直执着面对用户。
(3)健康的心理素质 开发软件本身就是一项艰苦的脑力和体力劳动,软件工程师开发成功一个软件,要经过反复修改,要花费大量的进间和精力,这些都有要求软件工程师有较好的心理承受能力。
很多学生往往只注重计算机专业知识的培养,而忽视了语言表达能力和沟通能力、工程经济分析能力,以及心理素质的培养。
因此,作为一个在校的大学生,除了认真学习软件基础理论课程之外,还需要特别注意以下能力的培养: (1)正确的定位 大学计算机软件专业学生应该将自己个人今后职业生涯的目标定位在软件工程师或者未来的软件工程、项目管理者,而不是计算机或者软件科学家。
有了一个比较清晰的职业定位后,对自己如何选修一些实践性强,协作性强以及能够接触最新软件技术的课程很多指导作用。
(2)增加语言表达的训练,培养与人沟通的能力。
注重学生个人能力的培养,但是与软件程师的要求还有一定差距,并且,有些活动不是每个学生都能参加,因此应积极参加一些群体活动和实际的软件项目,在语言表达和沟通方面积累经验和知识。
(3)了解一些经济、管理方面的基础知识 软件是一种工具,他最终的目的还是需要为社会生活的各个方面提高效率、节约成本或者是简化管理、提升价值。
不了解一些经济于管理方面的基础知识,就很难理解现实生活中千变万化的软件需求,更难以发挥软件的实际价值。
(4)训练过硬的心理素质 软件工程师在实际的软件开发过程中,各种非预料的情况都可能发生:需求来回修改,工期突然发生变更甚至很多个人生活的很多情绪都会参杂进来,因此软件工程师可能需承受巨大心理压力。
一个软件工程师如果没有过硬的心理素质,他就很难排除干扰、稳定情绪的按照严格的规范实施一个成功的软件项目。
三、软件工程师的充电软件开发本身有一个循序渐进的过程,其基础知识和实践经验需要不断的积累。
比如,如果先把C++学好,再学诸如Java、SQLServer、Oracle、VB、ASP等其他语言时,在程序设计的语法上就十分好理解了,程序设计的学习也就成了一件水到渠成的事情了。
培训目标确定了,下一步就是制定培训计划。
首先需要注意的是,不要只是死抱着一两种技术或平台,或只掌握一两种开发语言。
现在,用人单位越来越希望招聘到在某一领域里具有很高专业技能的IT专家,同时,他们也希望能招到万事通式的人才。
所以,你不能满足于只精通.NET,或者只会Java。
要赶快学习其他有关技术,即使不在你的工作范围内。
例如,如果你工作中用的是服务器端Java,那么可以了解一下其他平台服务器端技术,包括ASP和PHP;还可以尝试去掌握其他的技术,如用VB、C/C++编写应用程序或进行系统编程等。
同样,通过为一些中小项目义务劳动、参加技术讨论、提供技术支持、或者公开发布源代码等方式,都可以在新领域中获得宝贵的工作经验。
四、软件工程师的培训方向和课程选择 软件开发越来越成为一个系统工程,一个协作型产品,因此选择软件工程师培训也应制定相对明确的方向。
软件工程师培训方向从总体看,可以积累综合知识和培养扎实基础入手 通过对基础知识和实际技能的培训,“计算机软件水平考试”可以为你提供从程序员、高级程序员到系统分析员等不同等级、具有很强说服力的资质证明。
最新崛起的“软件学院”也是一个不错的培训选择,它能够在1-2年的时间里,既系统的学习软件开发的各种理论,有同时有比较多的机会参加开发项目锻炼各种平台和工具的开发实践。
软件开发需要那方面的人才呢?
你好! 1 前言 软件开发并不是只有一个编程的人,而是可以分为不同的角色。
不同的软件公司因为规模大小性质各不相同,所以围绕软件的角色也各不相同。
一个大型的软件外包企业,外资企业,往往分工明确细致,每个人像螺丝钉一样在一起工作,让整个大机器得以运转。
而在一个小型创业企业里面,往往一个人从接触客户,到开发产品到交付产品一条龙走完,整个产品周期就一个人,甚至几个产品周期就一个人。
2 软件开发团队角色 一般的项目组可以说一共有5种角色,开发(DEV),测试(QA),质量监督(SQA),技术主管(Tech-Lead),开发经理(SDM)。
2.1 开发 (DEV)开发就是大家经常说的编程的人。
工作主要是写代码,其次是跟团队成员客户沟通。
前后者比例大概是7:3的关系。
开发是整个软件开发团队当中的最重要的角色之一,道理很简单,产品出自于他们的亲手。
说到开发,大家的印象就是整天呆在电脑面前,目光呆滞,头发凌乱的计算机人士。
确实,整天和计算机打交道的人的确容易变成这样,因为开发首要解决的问题就是如何用技术能力去解决客户的需求,而不是自己的形象怎么样。
事实上这种情况在现代中得到很大改善,很多IT人士都很注重自身形象。
具体的工作不仅要写代码用算法实现业务逻辑,更要有程序设计的思想,大到整个的程序框架,小到某个小模块的扩展性兼容性,都是在开发真正写代码之前着重要考虑的方面。
现在的编程不像以前打孔式编程那么艰涩,大厂商开发的强大的编程工具(IDE)让编程事半功倍。
然而技术在变简单的同时,客户需求又在日趋复杂化。
而技术就是为了实现业务逻辑,将业务逻辑抽象建模用计算机程序的方式表现出来,所以一个不懂业务逻辑的开发不会了解模块和模块之间如何协同工作,这便给工作带来很大的局限性。
而如果一个开发只关注每个模块之内的细节实现,那在现实中便不是一个好开发,至少不是一个好用的开发。
沟通方面,开发需要和测试,技术主管,开发经理,甚至客户方面沟通,所以必要的沟通能力还是很需要的。
现在的软件不再是一个人在战斗,在团队作战中,开发有时需要和测试讨论“某个软件Bug(缺陷)是不是Bug”,有时需要和技术主管讨论客户的某个需求到底是要实现什么内容,有时需要和开发经理讨论项目的进度是否需要推迟。
就开发的工作本身而言,是不太需要管理能力和全局观的,如果能够做好编程的工作之外,这两方面也比较强,可能就离升职加薪不远了。
2.2 测试(QA)任何一个产品都需要测试,就好比制造业中如果生产了一批电灯,我们不能听制灯师傅说信得过而信得过,而得通过一系列模拟用户的行为来对电灯进行测试,指标合格后方可出厂投入市场。
软件测试也一样,需要对开发者开发出来的模块,产品进行全方位的测试。
原则是“做正确的事”,让客户需求功能得到满足。
基本做事方法就是模拟客户的一切日常行为,包括一些极其变态的行为,考验软件在各个方面的情况下的可用性和稳定性。
而这些“日常行为”便称之为测试用例(Test case),一个好的QA会设计出一套可以覆盖所有检查点(check point),又不重叠的测试用例,这套功底可以参考MECE方法。
既然如此,QA就需要对整个软件的业务相当熟悉,因为她(他)要知道在某个用户行为下,软件是否做出了正确的反应。
既然是模拟用户行为,那么QA就需要去手动“跑”测试用例。
当一个系统很大的时候,测试用例极其多,光用手点一遍是非常耗费时间和人力的,所以QA可以做自动化测试。
所谓自动化,便是QA编写一些脚本代码,让计算机帮助去实现一些人为的行为,而不用自己手动点。
所以这就需要QA做有一些代码编写能力。
沟通方面,QA经常要和DEV讨论Bug(软件缺陷),Bug的意思是本应该有的功能却没有做到的功能。
对于某些比较似是而非的Bug, 怎么能够让开发者心服口服地承认并去修复往往需要花费一番口舌。
而这些Bug往往是根据不同的人的价值观认定是不是Bug,所以合理地传递价值观也是QA的一个基本素质。
现实的一个案例是,公司某QA“传递价值观”能力极强,于是被拉去做市场去了。
除此之外,QA还要经常和技术主管沟通,熟悉客户需求。
全局观是因为QA要做集成测试,这样需要对产品本身有个全局的观念。
比如产品有个用户管理系统和订单管理系统,那么对于“删除一个用户”的行为,用户的订单会怎么处理?这便是一个全局观的意识。
往往一个好的QA在这点上可以帮用户想到很多用户没想到的东西。
2.3 质量监督(SQA)如果说QA的作用是确保“做正确的事”,那么SQA的作用就是确保“正确的做事”。
通常SQA是不会直接参与软件开发的工作中,而是通过在一旁监督软件开发的过程,然后把监测的结果反馈给软件开发团队。
既然是监督过程,所以SQA经常是流程化的代名词。
流程是外企当中比较看重的东西,从每天的Daily report, 到每周的weekly meeting,从什么时候把当天的结果存到服务器上,到为什么团队出现重大事故,几乎都会有SQA的参与。
所以在前期制定一个符合项目的流程是SQA的必然工作。
项目运行过程中...
学习软件开发需要什么学历
软件开发再怎么也是一个高端的技术行业没有学历要求是不可能的,最基本也需要大专或以上学历;像一些机构初中,高中都可以培养成软件工程师那是不现实的,当然会有一会人本来在编程方面就有一定的天赋,但是必竟是少数,所以企业的认可度太低的。
关键是软件开发不是一成不变的,需要不断的学习新的更新技术太能够跟得上发展,如果自己水平或学历太低在这个行业里得到的发展空间会很受限制的。
现在的公司需要的程序员要具备什么能力啊
软件工程师职位描述:职位概要:设计、开发、维护、管理符合功能、性能要求的软件产品。
工作内容:参与项目需求分析,进行系统框架和核心模块的详细设计;根据新产品开发进度和任务分配,开发相应的软件模块;根据公司技术文档规范编写相应的技术文档;根据需要不断修改完善软件;编制项目文档、记录质量测试结果;完成程序测试;研究项目技术细节,编写相应的说明书。
任职资格:教育背景:◆通信、电子工程、自动化、计算机及其相关专业,本科以上学历。
经验:◆3年以上软件开发工作经验。
技能技巧:◆精通编程工具;◆具备编码和撰写文档的能力;◆熟悉软件开发流程、设计模式、体系结构;◆独立解决技术问题,有较强的创新意识;◆有良好的英语读写水平。
态度:◆好学上进,耐心细致,有责任心;◆工作勤奋,善于思考问题;◆有时间观念,独立性强,具有团队合作精神。
一个软件研发要经过哪几个步骤
1,需求文档:知道软件有什么需求,要实现什么功能,达到什么目的2,设计概要:软件需要什么样的模块来组合,用那些算法,画出流程图3,详细设计:确定函数名字,变量名等细节问题4,编码:不用说了吧5,测试:找出缺陷并改正6,发布
软件工程师的能力要求
对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。
具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息;一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。
可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。
⒈熟悉.net开发体系,熟悉C# ASP .NET⒉熟悉SQLServer,Oracle数据库开发⒊以上要求至少3年开发经验。
⒋具有企业管理系统项目经验。
5.了解企业ERP及财务管理软件(用友,金蝶)者优先。
6.善于沟通,能独立撰写方案。
为人诚实,善于学习,做事认真负责,积极主动,具有敬业精神,有团队精神 技能要求:熟练使用Struts2+Spring+Hibernate掌握Jquery掌握Java熟悉Oracle掌握xml/webservice掌握OOD、OOP基本文档写作能力 ⒈计算机或相关专业本科以上学历;⒉有4年以上开发经验,有良好的代码编写习惯,熟悉软件开发规范;⒊熟练掌握ASP,NET;等编程语言,熟悉.Net开发环境,理解.Net Framework,理解并能熟练使用WebService、O/R mapping、Remoting、多线程等技术;⒋热衷于互联网WEB开发,热衷于钻研最新的前沿技术,精通XML,Javascript,CSS,AJAX等WEB前端技术;⒌熟练的技术文档编写能力,熟练使用Rose,Power Design,Visio等建模和设计软件,有一定的架构设计能力;⒍精通SQL server数据库技术,了解数据库性能调优者优先. ⒈计算机专业本科以上学历,一年以上C#/ASP NET开发经验,熟练使用SQL数据库,有欧美项目开发经验者优先;⒉大学英语四级以上,具有较强的听、说、读、写能力,尤其是听、说能力;⒊工作认真细致,踏实肯干,具有较好的团队协作精神和沟通能力;良好的逻辑思维,能够承受一定的工作压力并可以按时完成工作且保证质量 ⒈使用PHP语言开发互联网应用程序;⒉网站产品和网站功能模块的开发与维护;⒊与页面设计师协调沟通,编写部分Javascript和HTML;⒋参与底层MVC框架的编写与维护。
一个初级程序员应该具备哪些素质
展开全部现在,越来越多的人选择进入软件行业。
做一个程序员,开发软件是很多年轻人的梦想,但由于对行业缺乏了解,很多人的目标并不清晰,也不知道自己该从哪里起步。
今天我们就从介绍软件工程开始,来和大家谈一谈如何开始你的软件人才的成材之路。
软件工程详解 一般来说,一个完整的软件项目的出炉需要有项目经理(Project Manager)、系统架构师(System Architect)、系统分析员(System Analyst)、分析程序员(A/P Analyst Programmer)和初级程序员(Junior Programmer)的参与。
我们先从软件工程的角度来看看他们各自是如何分工的。
按照软件工程学划分,一个完整的软件项目的前期工作可以划分为软件定义时期和软件开发时期。
软件定义时期通常划分成三个阶段,即问题定义、可行性研究和需求分析。
开发时期通常由下述四个阶段组成:总体设计、详细设计、编码和单元测试、综合测试。
具体来说,各个阶段的任务如下。
问题定义:在这个阶段,需要提出关于问题性质、工程目标和规模的书面报告。
项目经理通过对系统的实际用户和使用部门负责人的访问调查,扼要地写出对问题的理解,并和用户进行良好沟通,进行修改,最后得出一份双方都满意的文档。
可行性研究:这一阶段需要系统架构师进行一次大大压缩和简化了的系统分析和设计过程,就是在较抽象的高层次上进行分析和设计的过程,导出系统的高层逻辑模型,并且在此基础上更准确、更具体地确定工程规模和目标。
然后更准确地估计系统的成本和效益。
对系统进行仔细的成本、效益分析是这个阶段的主要任务之一。
需求分析:用户了解他们所面对的问题,知道必须做什么,但通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样用软件实现人们的要求,但是对特定的具体要求并不完全清楚。
因此,在需求分析阶段,系统架构师必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型,在经过用户确认之后才能进入下一个阶段。
总体设计:系统分析员首先考虑出几种可能的方案,并估计出每种方案的成本和效益,并在充分权衡各种方案利弊的基础上,推荐一个较好的系统方案,并且制定实现所推荐系统的详细计划。
如果用户接受系统分析员推荐的系统,则可以着手完成下一项主要工作,也就是设计软件结构,确定程序由哪些模块组成以及模块间的关系。
详细设计:在这个阶段,分析设计员设计出程序详细的规格说明。
它们应该包含必要的细节,初级程序员可以根据它们写出实际的程序代码。
编码和测试单元:这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。
初级程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言,把详细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。
集成测试:这个阶段的关键任务是通过各种类型的测试使软件达到预定的要求,并确保各子模块之间不相互冲突及影响。
这一步的工作由专门的测试员根据项目测试计划来完成。
从哪里开始 成为初级程序员往往是步入软件行业的开始。
一个初级程序员应该具备的基本素质包括良好的编码能力、认识和运用数据库的能力和较强的英语阅读和写作能力,并要对软件工程和项目过程有一定了解。
现在,随着“优程”这样的基础软件人才培训项目的出现,在短期内成为初级程序员不再是难事。
但在实际中,由于存在大量规模较小的软件企业,这些企业人力资源有限,所以更需要能够充当多种角色的软件人才。
而且由于很多传统学历教育下的软件人才缺乏实践经验,到岗后还需要较长的适应期,所以具有实践经验的软件人才备受青睐。
“优程”在课程设置时注重实用,完全围绕着企业的实际需求确定。
通过优程培训的学员不仅具有编程能力,还具有在实际项目中多方面的应用技能。
另外,教学过程注重实践,不仅在课程设置中,安排了长达一个月的实际项目实习,同时还在重点的语言课程如Java和C++的教学中,安排了小项目的实习,避免了传统教育重理论轻实践的弊端。
这样培训出来的基础软件人才,不仅可以胜任初级程序员的工作,也具有分析程序员的素质,重要的是,充分的实践经验,为将来从事更高层次的软件工作打下了良好的基础。
转载请注明出处51数据库 » 软件研发需要哪些能力
如果不爱-请你走开-别让我痴痴的等待