计算机达人成长之路 之软件分析与设计
计算机达人成长之路 之软件分析与设计
最后,必须声明的事,任何事情都有一个熟能生巧的过程,系统分析也不例外。大家是不是看了上面的分析实例忽然觉得热血沸腾,发觉原来程序分析是如此简单如此清晰的一件事情,产生一种天下程序尽在我手上的错觉,以为自己一下子就转职为编程高手。殊不知好事多磨,只有多做系统分析方面的练习,才可以真正的掌握以上方法的精髓,才可以笑傲程序。否则,你无法透过现象看到本质吗,无法快速并且正确的建模。
不经一番寒彻骨,哪得梅花扑鼻香。不经过一番刻苦的练习,即使背熟了模型,也是纸上谈兵,仍然无法直击本质,无法活用数据结构。恐怕一边摇头一边高唱“借我借我一双慧眼吧,让我把这程序看得清清楚楚明明白白真真切切”就是真实的写照。
倘若有心练习,有大量的实例可供选择。远的不说,就拿大家喜爱的游戏程序来说,从俄罗斯方块、贪吃蛇、扫雷,到连连看、祖玛,植物大战僵尸等等都可以成为练习的素材。甚至可以留意生活中一切可能接触到的应用程序,反向思索其系统分析,比如与朋友们一道卡拉OK时,就可研究点歌程序;使用了一个背单词软件,也可以分析其设计模型。不用担心练习太多,时间无多,分析毕竟是分析,不涉及编码,免去了很多烦人的细节,不会占用太多时间,所以多多益善。当然很有必要从中选取一二完全设计,如此以来即可验证系统分析正确性,又可练习编码等必要能力,还可以得到上台面的成果,实在是学习编程、树立名气、诱惑MM的必备良药。
讲到这里,可能有人会提出疑义:“老师是过来人,自然可以慧眼识珠,知道哪些内容是学习的关键,但一般学生或者刚毕业者,在从未接触某项知识时,根本没有相关概念,除了从头到尾全面学习一遍外,没有任何可行方案。
诚然,学习陌生的知识,尤其是快速的掌握陌生的知识是一种能力,一种高素质的能力。但不可否认,要想在当今社会立足就必须具备这种能力!公司不会给员工一年甚至是几年的时间去熟悉某项业务,老板也不会有耐心花费一年或者几年的时间送员工学习,竞争对手更不会放弃这个难得的机遇。记住,在IT行业,不是大鱼吃小鱼,而是快鱼吃慢鱼。所有你必须具备这些能力,才能在未来的竞争中立于不败之地。
值得兴庆的是,能力是可以培养的,要具备快速学习的能力,需要从两个方面着手:
其一:基础、基础、又见基础。道理不多说,当把笑傲工具前两招运用的炉火纯青时,再使用第三招,会如有神助。
其二:练习、练习、还是练习。平时刻意多做此方面的练习,自然而然会达到慧眼识珠的效果。比如学习某某编程实例或者编程技巧书籍时,不要总是想着要把书全部拿下,你可以翻开目录,直指目的地,少走弯路。最后,给大家提供几个练习的
实例:
练习一:设计中文输入法。
现在的输入法满天飞,什么清华紫光输入法、搜狗输入法等等,貌似一个比一个漂亮,一个比一个更支持模糊拼音,是不是很心动,也想设计属于自己的输入法,那么现在就开始吧。其实所谓输入法就是一个动态链接库程序,里面必须提供某种符合规则的API函数而已。到网上搜索“输入法设计”或者“IME”就可以得到丰富的内容。我们不需要多少漂亮的界面,也不需要高级的算法,能够输入汉字就行。
练习二:设计代理服务器软件。
所谓代理,其实就是具备若干套接字的软件,把这边接收到的信息转发到那边而已。但是转发的信息必须要具备某种格式,标准文件RFC1928定义了SOCK5代理的转发格式,标准文件RFC1945和RFC2616则定义HTTP的协议格式,其中包含HTTP代理的转发格式,仔细阅读这几个文件,就可以设计出自己的代理服务器软件。
练习三:设计本机网络通信窃听程序。
偷窥别人貌似是种不道德的行为,但是偷窥自己的计算机与外界交换的数据貌似毫无道德问题,但问题是,你有能力偷窥吗?获取你的计算机与外界的交流信息,你能吗?能,太能,太阳能!这是必须的。这里介绍一种简单的方法,到谷歌上搜索“API钩子”,你就能得到想要的答案。届时你还可以将此程序专业化,设计其升级版本,比如设计程序监听网络斗地主游戏的出牌记录等。
以上练习所需知识均比较偏僻,完全可确保其陌生性,又均可以在网络上搜索获得,多做此类练习可以极大的提高自学陌生知识能力。但在练习时切记“不求完美”,只是练习而已,培养的是自学能力,而不真的是要在该个项目上深入发展或者开发生产软件,所以程序点到为止,时间以一周为限,过期不做。最后,特别特别要声明的是:以上实例难度很大,只建议基础牢固,课程设计优异,力图更进一步的读者练习,否则会动摇某些人好不容易才积累起来的信心,打击其弱小的心灵。对于不听劝告而造成的后果,本书不予负责!
--the end
转载于:https://www.cnblogs.com/sqlite3/archive/2011/07/20/2566833.html
计算机达人成长之路 之软件分析与设计相关推荐
- 计算机达人成长之路 目录
计算机达人成长之路 木鸿飞就是芸芸众生中推动历史年轮中的微小一员而已,他不是叱诧风云的人物,没有引领时代的潮流,但却走出了自己的计算机之路. "我是为计算机而生的."木鸿飞在日记中 ...
- 计算机达人成长之路目录
计算机达人成长之路 木鸿飞就是芸芸众生中推动历史年轮中的微小一员而已,他不是叱诧风云的人物,没有引领时代的潮流,但却走出了自己的计算机之路. "我是为计算机而生的."木鸿飞在日记中 ...
- 开学前夕——计算机达人成长之路(30)
11.激情与憧憬 木鸿飞在XT大学的日子,不只有编程,还有激情蓬勃的生活.比如当太阳肆虐着大地.大家都午休的时候,总有几个大学生模样的人,光着膀子,流淌着汗水,在篮球场上奔跑,一遍又一遍的投篮.无论何 ...
- 这样学习C语言最有效(连载2)——趣味、通俗、实用的计算机达人成长之路之C语言高级技巧篇
1.2 这样学习C语言最有效 学好C语言的秘诀就是1234:"一字真言,两种态度,三个框架,四项注意". 一.一字真言 各位看官,学好C语言,其实只需一个字,那就是"编& ...
- 《计算机达人成长之路——憧憬与迷茫篇》有钱的捧个预订场,有人的捧个评价场...
<计算机达人成长之路--憧憬与迷茫篇>终于上市了,现在已经在网上预售,预售地址为: 当当网:http://product.dangdang.com/product.aspx?product ...
- 快速编程的捷径——计算机达人成长之路(40)
9.PASCAL语言(三)木氏程序分析模型 一个小小的课程设计,其实就是一个验金石,谁爱好编程.谁擅长编程一目了然.动手能力强的同学,课程设计常常做的又快又好,而且能帮助很多其他的同学.而动手能力差一 ...
- 无准备,不编程——计算机达人成长之路(15)连载
8.俄罗斯方块(三)编码 嬉闹归嬉闹,最终二人静下心来,绍绍开始请教俄罗斯方块的设计,木鸿飞也不藏拙,马上开始讲解:"游戏其实分为三重循环,也就是可以分为三个部分." " ...
- 计算机达人成长之路(9)
2.我只是略懂,略懂 第四次课,终于迎来了期盼已久的上机课.不用木鸿飞提醒,上节课的下课铃声一响起,大家就急切的冲向传说中D县唯一的计算机机房. 机房不大,整齐摆放了4排电脑.中间两条电脑,木鸿飞认识 ...
- 游戏炮打飞机设计——计算机达人成长之路(11)连载
4.炮打飞机 那天,阳光特别灿烂,计算机们唱着欢快的蜂鸣声,欢迎着木鸿飞一行.木鸿飞心中荡漾着一股激情:"今天,我开始编程了!我将编写人生的第一个软件,第一个游戏软件!" &quo ...
最新文章
- 利用DDA算法得到直线上的像素点坐标
- 中国如何成为一流国家
- [LeetCode] Sum of Two Integers 两数之和
- PHP开发如何实现多线程?
- C++ leetcode 面试题64. 求1+2+…+n
- Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
- [iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...
- 如何用Seaborn描绘线图,分面网格关联图,密度图,连接图,热力图,线性回归图,分面网格绘图
- TestNg依赖详解(三)------灵活的文件配置依赖
- xss challenge 解题思路(1-3)
- 90年代微型计算机,版本控制如何在80年代和90年代的当今微型计算机上工作?
- 使用.net开发手机管理软件(一至三)
- java里有位移吗_Java 中位移运算符 ,,
- r语言代码html,R语言的R Markdown创建html
- 计算机无法卸载软件,电脑安装的软件无法卸载怎么办?
- 【提升笔记本续航】WIN10笔记本打开电源选项中的处理器电源管理
- linux运行blast,Linux下BLAST的使用
- 上传word文档显示服务器出错,打开office出错的几种解决方法
- android语音控制歌曲播放,发条 - 支持音乐聚合搜索,歌单导入,语音控制的 APP - Android 应用 - 【最美应用】...
- 万物皆游戏,设计大时髦