软件开发过程中的一些感悟

工作快四年了,从事开发工作也有两三年了(头一两年从事设计工作),这期间有些感悟,写下来以备以后回过头来见证自己的成长。

对一个本科学的设计,毕业的时候对于计算机的知识了解甚少的人而言,靠着自学以及同事的帮助能够从事软件开发工作,我自己都感觉到不可思议。这期间不仅有自己奋斗的辛酸,更有成长的快乐。下面说说我自己的一个学习方法,希望对某些人有些帮助。

刚开始的时候因为没有基础,所以在同事的推荐下看了一些基础书籍(感觉谭浩强的书比较好,MFC深入浅出也相当不错),做了一些基本的练习。万丈高楼平地起,基础知识很重要。其实到现在我还感觉我的基础知识不是很好,所以还需要继续学习。:)

看了一些基础书籍做了些基本练习之后,我感觉学得很慢,后来就看了些学习视频,因为看书需要一个字一个字地看,而且还需要边做练习,而视频的话可以坐在那里听作者怎么讲解如何演示功能的实现,如果简单就可以不用自己动手了,如果感觉有必要可以跟着一起做。

后来,有一次看到一个同事在看电子书,我就告诉他我有学习视频可以给他看,他回复我说看视频太慢,我都觉得不可思议。

现在,终于明白他的意思了,因为现在我也很少看视频了,视频上的东西讲得比较细,有的东西我们已经知道如果再从头到尾地听作者讲得话会比较浪费时间,而书本因为很多东西我们已经知道,不用一个字一个字地看,只需要着重看我们想了解的地方就行了,这样看书确实比看视频快。

一直都注重软件功能的实现,慢慢发现学好了这些只能说学会了使用某一个工具,至于要使用这个工具做出一个什么东西出来或者解决一个什么问题,就需要我们的思维方式以及解决问题的能力了。

还有就是,现在网络这么发达,很多问题都可以在网上找到答案,这得感谢那些乐于奉献的人,为了向他们学习,我也开通了这个博客。哈哈。

关于学习的几点建议:

第一,兴趣。兴趣是最好的老师,只有我们感兴趣了,才会愿意去把一件事情做好。

第二,坚持。凡是贵在坚持,坚持了,成功才属于我们。

第三,参与项目。很多东西想象的跟实际做起来是很不一样的。想起来很容易,做起来却不是那么简单的。一个很小的事情,如果不考虑清楚,就会出错。而且,多参与项目,能使我们经验更丰富,解决问题的能力更强。

第四,精益求精。实现功能的方法有很多,哪一种方法更好呢,多分析思考,不仅锻炼了我们的思维能力,而且增强了我们功能的健壮性和稳定性以及可移植性。

第五,善于总结。并不是说事情做完了就完了,而应该好好分析这件事情做完了有什么收获,遇到了什么问题,是如何解决的,下次再做这样的事情能不能做到更好。

第六,有个好老师。这个就得碰运气了。当我们开始学习某些东西的时候,我们总是不能明白前面的路到底如何。如果有个人告诉我们前面很艰难,那么我想多半人都不愿意继续前行了。而如果他告诉我们前面的道路一片光明,只要我们坚持前行,熬过了前面的那片黑暗,等待我们的就是宽广的道路和美好的黎明,那么我们肯定都愿意咬咬牙继续前行。

下面说说工作中的一些感悟,有点杂,都是想到哪说到哪。

软件开发:

一个项目来了,首先分析其需求,然后分析其功能,将功能分模块化实现,最后测试

编程只是一个工具,想法才是最重要的

编程需要严谨的逻辑思维

项目经验很重要,多参与项目,能使我们对问题有一个比较深刻的理解,这是任何教科书上都学不来的,技术功能的实现网上有参考资料,即使我们不会,也不用担心,而对于项目的理解,则需要实际参与到项目中

让专业的人做专业的事,每人负责一个或多个模块,尽力把其功能实现好接口做好,方便其他人使用也方便自己维护

变量和函数命名要反映其意义,名称的定义能使人一目了然

需要别人调用的接口使用public,反之使用private

保证功能的可靠性

方便代码复用

函数调用

一个函数实现一个功能

函数需要返回值并且需要判断返回值

软件开发过程需要注意的几个方面:

模块化设计

接口实现

平台选择

数据处理

通信实现

界面效果

插件实现

功能集成

测试

项目管理:

项目负责人对一个项目的管理具有相当重要的作用,协调其他人一起把项目完成好

每一个项目组都有一个组长,组长负责协调全局性的工作,分配工作任务,集成模块,发布软件

一个项目来了,分配一个负责人(组长)和若干个组员

项目组成员一起讨论客户需求,解决方案,处理方式

然后由组长写出文档,包括数据结构,数据处理方式,以及软件操作方式

然后由组长分工,每个人需要完成的模块,需要完成的功能和效果

软件界面设计师设计出界面美观风格统一的界面,每个组员完成各自对应的模块

各个模块完成并且测试无误后,提交给组长集成

组长集成后交给测试工程师按照文档一个功能一个功能地测试,有问题记录下来报告给组长,由组长通知更改,没有问题由组长发布并且记下发布记录

后续软件升级维护由组长负责,组长安排具体人员实施,然后交由组长发布

其他杂谈:

人生的每个阶段都有每个阶段的成长和烦恼,工作也一样

刚开始学走路,需要人扶着走,后来自己慢慢走,直到最后学会了跑

刚开始学说话,需要咿咿呀呀模仿,然后说词语句子,一步一步才会沟通

刚开始我们注重技术的实现,后来才知道思维方式解决问题的能力更重要

小时候总觉得不理解父母

只是年幼的我们尚无法理解他们经过人生各种磨难后得出来的体会

长大后才知道他们是对的

很多父母望子成龙望女成凤,希望他们一出生就能很聪明懂很多道理

他们的愿望是好的,只是人的成长都需要一个过程

一直以来都非常重视技术实现的积累

慢慢才发现项目经验的积累更重要

毕竟技术的实现可以随时借助于网络,而项目经验则需要机遇

当一个人还处于扶墙而走的阶段,考虑的是如何走得更稳更快

当一个人已经学会了走的时候,考虑的是如何更快更有效地到达目的地

这就是成长

(备注:由于能力经验有限,这些只是自己个人的一些小感悟,如有不同的见解,可以提出来,但是请勿喷,谢谢!)

时间: 2024-10-26 09:56:06

软件开发过程中的一些感悟的相关文章

软件开发过程中的审查 (Review)

http://blog.csdn.net/horkychen/article/details/5035769 软件开发过程中的审查 (Review) 希望别人做些什么->定义出流程 希望别人做出正确的结果->定义出审查制度 软件开发项目中包括很多的审查动作,贯穿于整个开发过程.个人认为审查主要有以下目的: 1.尽早排查出潜在的问题(Potential Risk/Issue) 经过其他人的参与,以不同的视角提出不同的看法,会有类似头脑风暴的效果,集思广议来查找工程师未能注意的问题. 2.保持良好

软件开发过程中如何避免争吵?

软件开发过程中,对一个问题有不同意见是很正常的,不同思想的碰撞可以带来进步,但是如果沟通不当,引发争吵,从而延误项目开发进度,就会得不偿失了. 要做到避免争吵,首先得自我反思,自己是不是哪里做得不对,问题没考虑清楚.问题还没明白就去和别人争,就是你的不对了. 其次,要站在别人的角度先想一想问题.是不是PM有难言之隐,公司的压力过大,不能采纳我的建议? 设计师看问题的角度是不是和我不一样?我的代码编写是否规范,有没有给复审测试人员带来麻烦?项目有没有充分考虑并达到用户的需求?在和别人争论前,必须充

软件开发过程中要主要的问题

结合软件开发生命周期,软件开发过程中应注意的问题如下(个人愚见) 1)明确项目概况,即将项目定位,要结合需求和技术实现,对项目进行准确定位,制定合理的项目开发计划. 2)面对需求变化,需求变化是软件开发过程经常碰到的问题也是致命的问题,排除客户的问题,需求分析要做的足够好,需求分析做好后,最好要客户确认签字. 3)模块划分,把软件系统按照任务需求或者数据模型进行模块划分,提高系统开发进度. 4)编码规范,项目编写代码过程中要有详细的编码规范,如合理的程序文件结构(每个程序文件应由标题.内容.附加

软件开发者在软件开发过程中的编码规范和习惯

在软件开发过程中,软件开发者在编写代码过程要有大局观 所谓的大局观,指的是编写的代码的复用性! 不要为了完成任务或是功能,就随意的命名或使用某些样式代码让它实现某种功能! 在HTML和CSS中,某些css命名可能在一些html中用到,那么这时就要注意代码的复用性! 那么在哪些页面可能会用到呢,比如注册.登陆等等,不同用户的登陆,看到的样式可能不一样,但有的页面可能会达到相同的样式,div的命名 tr .td中用到的class就可能在多个页面中都用到,而且命名让人一眼就明白,在哪些页面用到,所起到

对日软件开发过程中的质量管理(转)

对日软件开发过程中的质量管理 ----记系统开发事业本部大连开发部质量管理活动系列之一   NECSI系统开发事业本部主要承接日本客户委托开发的软件项目,承担从功能设计(FD).详细设计(DD)到编码.测试等不同开发阶段的作业.今后我们计划将更多地参与前期工程设计,积极推进海外作业人员的派遣. 公司一直把质量管理/按期交货放在最重要的位置,各开发部长期把在按期交货的前提下加强质量控制问题作为业务活动的重要内容,贯穿于软件开发的过程中. 质量管理活动背景 开发人员对委托方提供的设计资料的理解程度直

在统一软件开发过程中使用UML

如何在统一软件开发过程中使用UML? 起始阶段常用UML图 在起始阶段,通常有用例图.类图.活动图.顺序图等UML图的参与. 获取用户需求之后首先要将这些需求转化为系统的顶层用例图. 在确定了用例之后,需要为重要用例添加事件流描述.有了事件流描述之后就可以为一些用例中使用到的系统功能来指定分析类. 对于一些重点用例,可以绘制它们的动态模型. 细化阶段常用UML图 在细化阶段经常需要使用到类图.包图.组件图几种静态视图,以及所有动态视图. 静态视图中,细化阶段的类图主要描述系统的设计类. 动态视图

软件开发过程中的环境简介

软件开发过程中的环境简介 软件开发生命周期包含很多活动,如计划,分析,设计,开发,不同类型的测试,部署,运维.这些活动发生在不同的环境. 我们对其环境分类为 development, testing, staging, and production environments ,如下图: 1.开发环境dev 顾名思义,开发工程师开发时使用的环境,每位开发工程师在自己的dev分支上工作,提测前或者开发到一定程度,工程师Leader合并代码,进入联合调试.没有客户真实数据. 2.测试环境test 也就

源代码加密软件在软件开发过程中应注意哪些问题?

互联网时代,随着全球信息化的深入发展,对信息技术应用不断探索,使信息技术推动了个人,企业,国家的长足进步,让更多的行业,更多的人了解到了信息技术的优点,以及对人民生活生产过程中的重要性,同时,它的高速扩张也加大了互联网信息产业与创新型软件开发公司的企业成长空间.与此同时,企业信息化带来的便捷性也让企业核心产品安全面临更多的威胁,国外调查结果显示,全球80%的泄密事件与内部人员有关,故如何保护企业内部机密数据安全,保护不因内部人员的行为让企业受到损失,成为安全系统的首要任务. 以源代码软件开发为主

关于传统的软件开发方法在实际软件开发过程中的使用情况

传统的软件开发方法主要有两大类:面向过程和面向对象,他们两者在实际的软件开发中其实是相互融合相互补充的.具体做法如下: 用面向过程的方法开发软件的过程中,需求分阶段一般通过建立功能模型来分析系统功能.面向过程的方法学中提供的功能模型的建模工具是数据流图,在这一阶段可以引入面向对象方法学中提供的用例图来建模,效果很好:用面向过程方法学开发软件过程中的详细设计阶段要为每个模块设计算法,这时可借用面象对象方法学中提供的活动图来进行算法的设计.用面向对象方法开发软件过程中的总体设计阶段本不需要建立软件结