从去年暑假到现在半年多的时间一直都走在软工的路上……
暑假期间用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,边学习边总结,逐步深化,逐步渗透,逐步升华……
这就是我半年的所学,相信走过这半年,以后会更加坚定的走下去,学无止境,踏实就好。
总结以上是内存溢出为你收集整理的软工学习一路走来全部内容,希望文章能够帮你解决软工学习一路走来所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)