计算机达人成长之路  之软件分析与设计

最后,必须声明的事,任何事情都有一个熟能生巧的过程,系统分析也不例外。大家是不是看了上面的分析实例忽然觉得热血沸腾,发觉原来程序分析是如此简单如此清晰的一件事情,产生一种天下程序尽在我手上的错觉,以为自己一下子就转职为编程高手。殊不知好事多磨,只有多做系统分析方面的练习,才可以真正的掌握以上方法的精髓,才可以笑傲程序。否则,你无法透过现象看到本质吗,无法快速并且正确的建模。

不经一番寒彻骨,哪得梅花扑鼻香。不经过一番刻苦的练习,即使背熟了模型,也是纸上谈兵,仍然无法直击本质,无法活用数据结构。恐怕一边摇头一边高唱“借我借我一双慧眼吧,让我把这程序看得清清楚楚明明白白真真切切”就是真实的写照。

倘若有心练习,有大量的实例可供选择。远的不说,就拿大家喜爱的游戏程序来说,从俄罗斯方块、贪吃蛇、扫雷,到连连看、祖玛,植物大战僵尸等等都可以成为练习的素材。甚至可以留意生活中一切可能接触到的应用程序,反向思索其系统分析,比如与朋友们一道卡拉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

计算机达人成长之路 之软件分析与设计相关推荐

  1. 计算机达人成长之路 目录

    计算机达人成长之路 木鸿飞就是芸芸众生中推动历史年轮中的微小一员而已,他不是叱诧风云的人物,没有引领时代的潮流,但却走出了自己的计算机之路. "我是为计算机而生的."木鸿飞在日记中 ...

  2. 计算机达人成长之路目录

    计算机达人成长之路 木鸿飞就是芸芸众生中推动历史年轮中的微小一员而已,他不是叱诧风云的人物,没有引领时代的潮流,但却走出了自己的计算机之路. "我是为计算机而生的."木鸿飞在日记中 ...

  3. 开学前夕——计算机达人成长之路(30)

    11.激情与憧憬 木鸿飞在XT大学的日子,不只有编程,还有激情蓬勃的生活.比如当太阳肆虐着大地.大家都午休的时候,总有几个大学生模样的人,光着膀子,流淌着汗水,在篮球场上奔跑,一遍又一遍的投篮.无论何 ...

  4. 这样学习C语言最有效(连载2)——趣味、通俗、实用的计算机达人成长之路之C语言高级技巧篇

    1.2 这样学习C语言最有效 学好C语言的秘诀就是1234:"一字真言,两种态度,三个框架,四项注意". 一.一字真言 各位看官,学好C语言,其实只需一个字,那就是"编& ...

  5. 《计算机达人成长之路——憧憬与迷茫篇》有钱的捧个预订场,有人的捧个评价场...

    <计算机达人成长之路--憧憬与迷茫篇>终于上市了,现在已经在网上预售,预售地址为: 当当网:http://product.dangdang.com/product.aspx?product ...

  6. 快速编程的捷径——计算机达人成长之路(40)

    9.PASCAL语言(三)木氏程序分析模型 一个小小的课程设计,其实就是一个验金石,谁爱好编程.谁擅长编程一目了然.动手能力强的同学,课程设计常常做的又快又好,而且能帮助很多其他的同学.而动手能力差一 ...

  7. 无准备,不编程——计算机达人成长之路(15)连载

    8.俄罗斯方块(三)编码 嬉闹归嬉闹,最终二人静下心来,绍绍开始请教俄罗斯方块的设计,木鸿飞也不藏拙,马上开始讲解:"游戏其实分为三重循环,也就是可以分为三个部分." " ...

  8. 计算机达人成长之路(9)

    2.我只是略懂,略懂 第四次课,终于迎来了期盼已久的上机课.不用木鸿飞提醒,上节课的下课铃声一响起,大家就急切的冲向传说中D县唯一的计算机机房. 机房不大,整齐摆放了4排电脑.中间两条电脑,木鸿飞认识 ...

  9. 游戏炮打飞机设计——计算机达人成长之路(11)连载

    4.炮打飞机 那天,阳光特别灿烂,计算机们唱着欢快的蜂鸣声,欢迎着木鸿飞一行.木鸿飞心中荡漾着一股激情:"今天,我开始编程了!我将编写人生的第一个软件,第一个游戏软件!" &quo ...

最新文章

  1. 利用DDA算法得到直线上的像素点坐标
  2. 中国如何成为一流国家
  3. [LeetCode] Sum of Two Integers 两数之和
  4. PHP开发如何实现多线程?
  5. C++ leetcode 面试题64. 求1+2+…+n
  6. Android 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析
  7. [iOS] UITextField隐藏软键盘心得(隐藏自身软键盘、点击Return自动转到下个文本框、轻触背景隐藏软键盘)...
  8. 如何用Seaborn描绘线图,分面网格关联图,密度图,连接图,热力图,线性回归图,分面网格绘图
  9. TestNg依赖详解(三)------灵活的文件配置依赖
  10. xss challenge 解题思路(1-3)
  11. 90年代微型计算机,版本控制如何在80年代和90年代的当今微型计算机上工作?
  12. 使用.net开发手机管理软件(一至三)
  13. java里有位移吗_Java 中位移运算符 ,,
  14. r语言代码html,R语言的R Markdown创建html
  15. 计算机无法卸载软件,电脑安装的软件无法卸载怎么办?
  16. 【提升笔记本续航】WIN10笔记本打开电源选项中的处理器电源管理
  17. linux运行blast,Linux下BLAST的使用
  18. 上传word文档显示服务器出错,打开office出错的几种解决方法
  19. android语音控制歌曲播放,发条 - 支持音乐聚合搜索,歌单导入,语音控制的 APP - Android 应用 - 【最美应用】...
  20. 万物皆游戏,设计大时髦

热门文章

  1. java/php/net/python海鲜水产销售系统设计
  2. 论测试用例的有效更新及杀虫剂悖论
  3. 怎样在线做动图?一招教你快速完成gif动画制作
  4. quartus仿真35:D触发器和JK触发器构成的异步时序电路
  5. Python中的List知识
  6. 辅助驾驶技术——基于mediapipe的驾驶人睡意检测
  7. 为什么内存进制是1024,数据传输速率是1000?
  8. JavaScript内存泄漏定位
  9. Jenkins 设置定时任务
  10. 华为 财经数字化工程师 22届春招 上岸贴