工作快四年了,从事开发工作也有两三年了(头一两年从事设计工作),这期间有些感悟,写下来以备以后回过头来见证自己的成长。
对一个本科学的设计,毕业的时候对于计算机的知识了解甚少的人而言,靠着自学以及同事的帮助能够从事软件开发工作,我自己都感觉到不可思议。这期间不仅有自己奋斗的辛酸,更有成长的快乐。下面说说我自己的一个学习方法,希望对某些人有些帮助。
刚开始的时候因为没有基础,所以在同事的推荐下看了一些基础书籍(感觉谭浩强的书比较好,MFC深入浅出也相当不错),做了一些基本的练习。万丈高楼平地起,基础知识很重要。其实到现在我还感觉我的基础知识不是很好,所以还需要继续学习。:)
看了一些基础书籍做了些基本练习之后,我感觉学得很慢,后来就看了些学习视频,因为看书需要一个字一个字地看,而且还需要边做练习,而视频的话可以坐在那里听作者怎么讲解如何演示功能的实现,如果简单就可以不用自己动手了,如果感觉有必要可以跟着一起做。
后来,有一次看到一个同事在看电子书,我就告诉他我有学习视频可以给他看,他回复我说看视频太慢,我都觉得不可思议。
现在,终于明白他的意思了,因为现在我也很少看视频了,视频上的东西讲得比较细,有的东西我们已经知道如果再从头到尾地听作者讲得话会比较浪费时间,而书本因为很多东西我们已经知道,不用一个字一个字地看,只需要着重看我们想了解的地方就行了,这样看书确实比看视频快。
一直都注重软件功能的实现,慢慢发现学好了这些只能说学会了使用某一个工具,至于要使用这个工具做出一个什么东西出来或者解决一个什么问题,就需要我们的思维方式以及解决问题的能力了。
还有就是,现在网络这么发达,很多问题都可以在网上找到答案,这得感谢那些乐于奉献的人,为了向他们学习,我也开通了这个博客。哈哈。
关于学习的几点建议:
第一,兴趣。兴趣是最好的老师,只有我们感兴趣了,才会愿意去把一件事情做好。
第二,坚持。凡是贵在坚持,坚持了,成功才属于我们。
第三,参与项目。很多东西想象的跟实际做起来是很不一样的。想起来很容易,做起来却不是那么简单的。一个很小的事情,如果不考虑清楚,就会出错。而且,多参与项目,能使我们经验更丰富,解决问题的能力更强。
第四,精益求精。实现功能的方法有很多,哪一种方法更好呢,多分析思考,不仅锻炼了我们的思维能力,而且增强了我们功能的健壮性和稳定性以及可移植性。
第五,善于总结。并不是说事情做完了就完了,而应该好好分析这件事情做完了有什么收获,遇到了什么问题,是如何解决的,下次再做这样的事情能不能做到更好。
第六,有个好老师。这个就得碰运气了。当我们开始学习某些东西的时候,我们总是不能明白前面的路到底如何。如果有个人告诉我们前面很艰难,那么我想多半人都不愿意继续前行了。而如果他告诉我们前面的道路一片光明,只要我们坚持前行,熬过了前面的那片黑暗,等待我们的就是宽广的道路和美好的黎明,那么我们肯定都愿意咬咬牙继续前行。
下面说说工作中的一些感悟,有点杂,都是想到哪说到哪。
软件开发:
一个项目来了,首先分析其需求,然后分析其功能,将功能分模块化实现,最后测试
编程只是一个工具,想法才是最重要的
编程需要严谨的逻辑思维
项目经验很重要,多参与项目,能使我们对问题有一个比较深刻的理解,这是任何教科书上都学不来的,技术功能的实现网上有参考资料,即使我们不会,也不用担心,而对于项目的理解,则需要实际参与到项目中
让专业的人做专业的事,每人负责一个或多个模块,尽力把其功能实现好接口做好,方便其他人使用也方便自己维护
变量和函数命名要反映其意义,名称的定义能使人一目了然
需要别人调用的接口使用public,反之使用private
保证功能的可靠性
方便代码复用
函数调用
一个函数实现一个功能
函数需要返回值并且需要判断返回值
软件开发过程需要注意的几个方面:
模块化设计
接口实现
平台选择
数据处理
通信实现
界面效果
插件实现
功能集成
测试
项目管理:
项目负责人对一个项目的管理具有相当重要的作用,协调其他人一起把项目完成好
每一个项目组都有一个组长,组长负责协调全局性的工作,分配工作任务,集成模块,发布软件
一个项目来了,分配一个负责人(组长)和若干个组员
项目组成员一起讨论客户需求,解决方案,处理方式
然后由组长写出文档,包括数据结构,数据处理方式,以及软件操作方式
然后由组长分工,每个人需要完成的模块,需要完成的功能和效果
软件界面设计师设计出界面美观风格统一的界面,每个组员完成各自对应的模块
各个模块完成并且测试无误后,提交给组长集成
组长集成后交给测试工程师按照文档一个功能一个功能地测试,有问题记录下来报告给组长,由组长通知更改,没有问题由组长发布并且记下发布记录
后续软件升级维护由组长负责,组长安排具体人员实施,然后交由组长发布
其他杂谈:
人生的每个阶段都有每个阶段的成长和烦恼,工作也一样
刚开始学走路,需要人扶着走,后来自己慢慢走,直到最后学会了跑
刚开始学说话,需要咿咿呀呀模仿,然后说词语句子,一步一步才会沟通
刚开始我们注重技术的实现,后来才知道思维方式解决问题的能力更重要
小时候总觉得不理解父母
只是年幼的我们尚无法理解他们经过人生各种磨难后得出来的体会
长大后才知道他们是对的
很多父母望子成龙望女成凤,希望他们一出生就能很聪明懂很多道理
他们的愿望是好的,只是人的成长都需要一个过程
一直以来都非常重视技术实现的积累
慢慢才发现项目经验的积累更重要
毕竟技术的实现可以随时借助于网络,而项目经验则需要机遇
当一个人还处于扶墙而走的阶段,考虑的是如何走得更稳更快
当一个人已经学会了走的时候,考虑的是如何更快更有效地到达目的地
这就是成长
(备注:由于能力经验有限,这些只是自己个人的一些小感悟,如有不同的见解,可以提出来,但是请勿喷,谢谢!)