首页 > 代码库 > 两种不同的思维方式

两种不同的思维方式

 

学计算机网络有两种不同的思维方式,一种是自顶向下,一种是自底向上。

 

自顶向下是先学应用层,从网站、ftp、telnet、email等网络应用开始讲解,然后到运输层、网络层、数据链路层、物理层,从人们最熟知的内容开始,然后逐步引导人们到达自己陌生的二、三、四层只至物理层。这种方式是容易被学生接受的,因为先从学生熟知的网站开始,符合人类的认识特点:从感性思维到理性思维。

技术分享

但是自底向上却是先讲物理层、数据链路层、网络层、运输层、应用层,这么讲下来,多数中国老师习惯这么讲解,结果学生们都给整晕了,最后都没学会。

技术分享

 

同样地,设计软件也可以有两种方法,一种是自顶向下,一种是自底向上。我觉得自己开始写程序可以采用自顶向下的办法来,因为设计新软件是从需求、设计、编码、测试这条线下来的,这样很合理,这是一个从复杂的需求开始具体系统的建模过程。

 

但是要是接手维护别人的代码,千万不能用自顶向下的方法,而要用自底向上的办法慢慢熟悉,也就是先看懂基础的一点程序,把这段程序和具体的功能点给结合起来,慢慢熟悉才能摸透,也就是从低级到高级,这和开始使用一个开源框架等软件的方法是一致,也即先大概了解它的作用,然后下载安装、基本使用,了解原理,再登堂入室仔细研究,这是一条自底向上的,自初级到高级,自简单到复杂的过程。

 

这个也和与融入陌生环境有点相似。进入一个陌生环境,和别人打交道有两种方式,一种是主动去和别人交流或者有问题请教别人,或者是别人主动帮助自己。两种方式都可以慢慢融入陌生的环境。

 

进入陌生环境如何熟悉工作、熟悉日常的流程。

 

进入一个新的软件开发环境,担任软件开发工作,快速进入状态的方法:我觉得可以先通过了解系统的开发环境,部署环境开始,用户群开始,业务情况了解等角度入手,然后再进入具体的代码学习和了解。

 

学习可以通过向有字书学习,也可以通过生活中接触学习,前者为向理论学习,后者为在实践中学习,两种学习方式都可以达到很好的学习效果。

 

学会研究的思维:

就去访问了彭明辉教授的个人主页,结果意外发现他做的《研究所新生完全求生手册》。

下面是《手册》中,讲解论文常见结构的部分。

====================================================

论文的结构

一般 Journal paper 在组织上计分四大部份:

1. Abstract:

摘要的部份扼要说明研究主题及主要研究成果。

2. Introduction:

序言部份通常先讲述问题起源与背景,其次扼要介绍过去相关的研究成果, 并对各种方法的优缺点扼要评述。然后总结出目前在该主题中的未解问题, 并明确说明本文想突破的关键。最后说明全文各节的编排方式以及各节 的主题或主要研究成果。

3. Main Body(本文):

本文往往分成数节。最近的 papers流行用 definition(定义), lemma(引理), theorem(定理), proof(证明), corollary(推论), remarks(注意点) 的格式进行撰述。

若碰到这种 状况, 只要先读 theorems, corollary, 和 remarks, 先不看 proofs。

掌握到全文主要结果后,先评估这篇论文是否值得细读 (若与研究不是密切 相关, 可以不细读, 在这种情况下 theorems, corollary, 和 remarks, 通常已足以交待全文主要物理观念)。

4. Conclusions & Discussions:

结论部份总结本文所报告的主要研究成果。诚实的人还会指出该方法的 局限与适用范围(很少人会自己指出其缺点),并建议未来的研究方向。

[延伸阅读]

  * A graduate school survival guide: "So long, and thanks for the Ph.D!"

  * Professional Tips for PhD Students (感谢Carrie分享该链接)

两种不同的思维方式