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

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

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

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

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

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

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

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

关于学习的几点建议:

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

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

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

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

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

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

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

软件开发:

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

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

编程需要严谨的逻辑思维

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

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

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

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

保证功能的可靠性

方便代码复用

函数调用

一个函数实现一个功能

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

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

模块化设计

接口实现

平台选择

数据处理

通信实现

界面效果

插件实现

功能集成

测试

项目管理:

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

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

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

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

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

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

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

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

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

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

其他杂谈:

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

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

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

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

小时候总觉得不理解父母

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

长大后才知道他们是对的

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

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

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

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

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

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

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

这就是成长

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

软件开发过程中的一些感悟相关推荐

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

    如何在统一软件开发过程中使用UML? 起始阶段常用UML图 在起始阶段,通常有用例图.类图.活动图.顺序图等UML图的参与. 获取用户需求之后首先要将这些需求转化为系统的顶层用例图. 在确定了用例之后 ...

  2. 软件开发过程中的思维方式 -- 如何分析问题

    [这是 ZY 第 16 篇原创技术文章] 今天这篇文章不谈技术,想聊聊软件开发过程中的一些思维方式,以及如何去深入挖掘问题的核心,如何去看清问题的本质. 一.分析问题的重要性 我们在软件开发过程中,往 ...

  3. 对日软件开发过程中的质量管理

    对日软件开发过程中的质量管理 2004-04-01 ----记系统开发事业本部大连开发部质量管理活动系列之一 NECSI系统开发事业本部主要承接日本客户委托开发的软件项目,承担从功能设计(FD).详细 ...

  4. 软件开发过程中的QA与QC

    软件开发过程中的QA与QC Judy Shen 在实际质量工作中,经常会碰到一个问题,即质量保证(Quality Assurance)和质量控制(Quality Control)关系比较容易混淆.QA ...

  5. [原创]软件开发过程中的QA与QC

    软件开发过程中的QA与QC Judy Shen 在实际质量工作中,经常会碰到一个问题,即质量保证(Quality Assurance)和质量控制(Quality Control)关系比较容易混淆.QA ...

  6. 关于在软件开发过程中建立三道风险防线的想法

    最近在工作的过程中,遇到了一些"本不应该"出现的问题(相对而言的,没有什么问题是" 应该"出现的) --- 开发完的功能,经过开发人员的单元测试.测试人员的&q ...

  7. 在直播软件开发过程中,常用的几种视频封装格式

    1.AVI格式 AVI(Audio Video Interleaved).此格式的中文译名为音频视频交错格式,这种视频格式的优点是图像质量好,无损AVI可以保存alpha通道.缺点也不少,体积过于庞大 ...

  8. 浅谈软件开发过程中的项目管理

    摘要:大量软件开发实例表明,如果不能在软件开发中加强项目管理,随着国内软件行业的不断发展与壮大,国内的软件开发企业将面临严峻的挑战性与风险性.因此,为了确保软件开发的效率与质量,必须认识到强化项目管理 ...

  9. 物联网快速改变各行业,物联网软件开发过程中,主要面临哪些挑战?

    物联网正在改变各个行业,物联网设备在所有相关预测中都占据了重要位置,投资将产生良好的回报,消费者也会很高兴,企业增长速度也会不断加快.类似这样的说法让每个人都感到无聊,其实有些东西没有被明确说出来. ...

  10. 转软件开发过程中的各种文档

    在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有 针对性.精确性.清晰性.完整性.灵活性.可追溯性. ◇ 可行性分析报告: 说明该软件开发项目的实现在技术上.经济上和社会因素上的可行性, ...

最新文章

  1. 考c语言三级需要什么软件,全国计算机三级网络技术上机考C语言的软件是什么哈?...
  2. OpenLiberty:注入时出错,适用于TomEE和Wildfly
  3. 泰山行宫碧霞元君祠_临清市泰山行宫碧霞元君祠5月4号(农历三月三十日)举行大型泰山奶奶接驾法会...
  4. java反射学习笔记(常用的一些方法)
  5. 如何抓取html请求,怎么获取请求头
  6. 【Processing学习笔记】安装与入门
  7. 某自媒体发布“抢小孩”视频,最高近25万次点赞,结果竟是自导自演!
  8. oracle with as用法_关于Oracle with语句用法说明
  9. 取消开机就弹出 msn中文网 操作步骤
  10. aes-gcm模式前端加解密(html页面 js)——使用node-forge库
  11. Android 最常用的设计模式十一 安卓源码分析—— 代理模式(proxy)
  12. python二元一次方程组用鸡兔同笼的思路来写编程_3应用二元一次方程组——鸡兔同笼教学设计...
  13. ViTAE论文阅读与官方代码讲解
  14. Android 仿钉钉、微信 群聊组合头像,Android插件化入门指南
  15. TOA(tcp option adress)安装
  16. 抓取王者荣耀英雄列表的爬虫笔记(python+requests)
  17. 30万手表推荐_港剧演员的逼格有多高?30万的手表随便戴!
  18. Vue公众号微信支付
  19. java 面向对象经典例题——教师,学生,家长。教师布置作业给学生和家长。
  20. xss的那些有卵用和没有卵用(一)

热门文章

  1. 使用 Python 批量下载喜马拉雅有声书音频
  2. Oracle数据库连接报错
  3. 未能将“C:\Program Files (x86)\DevExpress 2009.2\Components\Sources\DevExpress.DLL\DevExpress.XtraGrid.v
  4. 北斗导航 | RTCM 3.3学习(10403.3)
  5. oracle中求商函数,三个方便实用的Oracle分析函数
  6. linux nfc驱动程序,USB NFC读卡器ACR122 Linux程序编译
  7. 联想拯救者Y7000P的一些功能键
  8. 《游戏设计艺术(第2版)》——学习笔记(9)第9章 游戏为玩家而生
  9. 捷联惯导数值更新算法-姿态更新+速度更新+位置更新
  10. Hi3861开发板搭建环境