软工学习一路走来

前端之家收集整理的这篇文章主要介绍了软工学习一路走来前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

从去年暑假到现在半年多的时间一直都走在软工的路上……

暑假期间用vb做了两个系统,这是踏入这个行业以来,初次编写系统,学生管理系统米老师给了源码,我在做的时候,整体上看了vb与sql交互的代码,照着敲了一部分代码之后就尝试着摆脱源代码的束缚,应该说是保持着一种若即若离的距离,这样的好处就是立足原有的代码基础,然后又开拓自己的思维,对比中取长补短,而且始终觉得,做软件这行,不能没有自己的想法,同样是实现某个功能,要先尝试着自己去实现,然后再跟别人交流沟通,听取别人的意见,同时也分享自己的想法,这样大家得到的是共赢。

做完学生管理系统,紧接着就是一个类似的机房收费系统,但是这个系统要比学生管理系统复杂一些,体现在业务功能和用到的一些控件上,刚好,这样可以在原来的基础上拔高自己,由于编程水平有限,做这个系统的时候费了不少时间,差不多到快开学的时候才做完,总的来说,暑假基本上主要锻炼了自己独立编码的能力,对软件开发有了一个初步的认识,同时也锻炼了独立面对问题、分析问题、解决问题的能力。

有了两个系统的编程过程做铺垫,紧接着就要从正规的工程的角度开审视、设计项目了。如果说之前的学习是农家自己搭建的一个鸡窝,那么学习了软工之后,感觉就有点包工头的味道了,因为学习了软工之后才明白了,原来一个软件项目不仅仅是由代码组成的,反而事实上,从工程的角度看,编码只占整个项目资金和时间的20%左右,其他的需求分析,测试维护等工作在软件项目这个工程中是非常重要的一个环节。另外在这个阶段中明白了项目开发的不同模式(瀑布模式、开发原型等)、项目进度规划管理、项目效益分析等,应该说这门课是从科学的角度来规划软件项目,这门课是从事软件行业的一个最基本的基础,尤其是想要当项目经理或者自己经营公司,这门课程是非学不可的。

软件工程是哈尔滨工程大学的一个老师讲的,因为毕竟自己没有多少项目开发经验,严格的说,应该是没有,因为从没有跑过从需求分析到交付使用这个完整的一条线,再加上这门课本身就是固定的条条框框,学起来比较枯燥,另外一些重要的知识向数据流图、数据字典等开发设计知识感觉迷迷糊糊,只是接受的感觉,像这样的知识也只能是先来个囫囵吞枣,知道个大概,具体深化要在以后的实践中去实践。

学完了软工之后应该学习uml了。这是一门工具性质的课程,用它来规划整个项目,同时也是公司里各个部门用来交流的基础。

真正的高手不是那些单纯的编写代码的人,而是那些可以合理的设计系统架构的人,当然架构师都是从若干年的代码经验中炼造出来的。而我在这段学习之前就走了一个很大的弯路,一直认为自己的编码水平不咋地,在学习初期过于注重这一点,于是在学完软工之后差不多用了两个来星期专门钻研代码,什么远程控制了,目录查询了等神马东西,其实编码是一个长期积累的过程,不可能一口吃成个胖子,而短期内的一点拔高是毫无意义的。现在回想起来当时的自己真的有点傻,呵呵,不过也正是这些弯路才使我更加明白这一点,就算是对自己的一点安慰吧。

uml的学习是浙江交大的一个老师讲的,通过她的讲课给人的感觉是虽然是名校的博士,但她似乎也没有多少工程经验,但整体上感觉讲的还可以。学习uml的时候用到的思想基本上都是面向对象,而且多数都是一些抽象的东西,尤其是针对一个系统中类的抽象,似乎即便是我费尽了脑汁也抽象不出什么类来,老师在讲课的时候设计到了很多实例,我也基本上是照猫画虎,重复了一遍,也留了一些截图什么的,但是没有实际的独立操作过程,学习效果只能是浅尝辄止。按照米老师的教学理论学到这个层次就已经够了,因为在后面的实际项目中才会真正的战场,视频的学习只是小小的练兵,一切都要从实战中提升。

uml完了之后是学习一门新的编程语言C#,这门课的讲师一听就知道有足够项目经验的人,而且这个人也很有磁性,讲课的特点也挺吸引人,C#是一种面向对象的语言,通过C#的学习对面向对象有了初步的了解,同时也了解到面向对象的一些好的机制比如说索引器、hash表等,当然了最基本的还是面向对象的三大特性:继承、封装、多态。但是对于面向对象的精华,一时半会儿,仅凭学习几集视频是远远不够的,学习就是从初步认识到逐步深化,从不会到熟练运用的过程。

在学了C#这门编程语言之后紧接着就是设计模式,C#的学习为设计模式里的代码提供了基础,同时设计模式也是对面向对象的更高层次的深化,如果说C#中涉及到的面向对象思想是一道排骨,那么设计模式就应该是香口鱼的一桌盛宴了!学习了设计模式之后回头看看以前的程序那就是一滩死水,虽没有像闻一多先生描述的那样散发臭气,但却是清风吹不起涟漪呀。设计模式的基础是面向对象,设计模式的精华是面向对象特点的体现,尤其是继承、多态、封装,而且对于面向对象的学习从设计模式才算是刚刚开始,面向对象的好处以及深刻的理解仍需要在以后的学习中深化继续。

大概花了三个星期的时间学习了设计模式,一个星期看书理解、两个星期代码实现和进一步理解,之后大概用了几天的时间学习vb.net。微软特约讲师的水平确实够高,跟国内的名牌大学比起来感觉实例确实强多了,但在讲课的内容中设计vb.net具体编程语言方法并不是重点,重点在于.net平台机制的讲解。

走过前面的这些道路,有了前面一系列的基础铺垫,下一步的学习是独立自学三层并用vb.net语言重构收费系统。如果目前所学的所有知识是一座大山,那么分层就是山的主峰。在初学分层之处,好比是压在屋檐底下看房顶,感觉很深,摸不着边际,可是用代码实现了这个系统之后感觉也没有什么,好比你站在了房顶上看放下,屋檐并没有多么恐怖,只是由于知识的有限性和思想的局限性,让你一叶障目而已。

在这次重构系统的时候,尽量将数据库的一些知识柔和了进去,主要是数据库的设计,存储过程、触发器和事物的使用。如果没有亲自体会设计数据库的过程,是不会明白其中的道理的,看似人家的表有许多不合理,但是让你去一次性设计一个数据库也不是一件容易的事儿,在这次设计的时候我把表的数量压缩到的九个,但是这次做完之后,发现仍然有很多需要改进的地方,学习就是这样,每次相对于上次都是一个进步,没有第一个馒头垫肚,第二个就不会吃饱。另外这次对于数据库的存储过程和触发器也仅仅只是浅尝辄止,这次有个初步的尝试,在以后的学习过程中继续深化、熟悉,另外对于视图的学习这次还是停留在理论的层次上,争取在合作开发的时候用到视图,并且重新设计表的时候尽量融入主外键、三范式的知识,通过这一次的走过,感觉这些知识似乎就放在那儿等着你去使用,跟暑假前刚学了数据库之后那种生硬被动的感觉不太一样,这就是学习的过程吧。过程,过程,关键是要走过,走过之后才知道成还是不成。

现在回顾半年的所学,东西似乎不少,可似乎又很少,在软工的学习过程中逐步过渡到了面向对象思想的开发中,现在感觉对于面向对象机制的优点掌握的还不够,比如说是怎么实现多态的?有多少种方式可以实现多态?委托的实质是怎么一回事儿?还有索引器等在什么场合比较适合使用?现在对这些概念似乎都懂点,如果深刻思考一下又似乎都不懂,主要是目前还没有在项目中运用多少这些知识,对它们的了解就不够深,以后的学习边学边总结,i=i+1,边学习边总结,逐步深化,逐步渗透,逐步升华……

这就是我半年的所学,相信走过这半年,以后会更加坚定的走下去,学无止境,踏实就好。

原文链接:https://www.f2er.com/vb/260328.html

猜你在找的VB相关文章