Skip to content

Latest commit

 

History

History
49 lines (19 loc) · 1.2 KB

README.md

File metadata and controls

49 lines (19 loc) · 1.2 KB

ThinkingInSoftwareDevelop 软件开发需要掌握的思想方法

在和初学者接触的过程中,经常会发现,某些老手们习以为常的能力和知识点,对某些初学者是难以跨越的鸿沟。例如上周有人问我,为什么输出到控制台的字符,在没有指定输出位置的情况下,不是覆盖上一次的输出,而是跟在上次的输出后面? 还有人对 i=i+1; 这种写法表示不理解。

我大致总结了一些和具体的语言、操作系统和运行环境无关的知识点列在下面。应该不全面,所以在这里请大家帮忙补全。 如果有很好的讲解文章,也请推荐出来,我会补充进去。

github: https://github.com/today/ThinkingInSoftwareDevelopment

Google Drive: https://docs.google.com/document/d/1PQkWP0Nqeng8oohwklD_9nVfMrN_P1bmTtiLh9pZXDg

解决问题的思路

大问题拆分成小问题,复杂问题拆分成简单问题

分层和分块

黑盒和白盒,以及透明

划归思想

时间换空间,空间换时间

具体技术实现

文件和流

迭代和递归

ASCII 和字符集

设计思想

面向过程

面向对象

函数式编程