软件工程师的自我修养——编程思维
学习编程的时候有没有人告诉你软件的定义?
百科:软件(中国大陆及香港用语,台湾称作软体,英文:software)是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件并不只是包括可以在计算机(这里的计算机是指广义的计算机)上运行的电脑程序,与这些电脑程序相关的文档一般也被认为是软件的一部分。简单的说软件就是程序加文档的集合体。
这样定义也很清晰,不够简单易懂易记和本质。
软件概括公式为:软件 = 数据结构 + 算法 + 文档
所以学习数据结构和算法,是编程的底层思维。常见的数据结构有数组,栈,队列,链表,树,图,堆,散列表。常用算法思想有迭代法,分治法,递归法。
除了数据结构和算法思维,还有其他编程思维:
1、编程语言思维:不同软件需要不同的编程语言,学习编程语言,利用编程语言的思维。
2、设计模式和框架思维。
3、数据库思维,程序用来处理数据为目的。
4、项目开发整体思维,项目开发流程一般是:需求分析,项目设计,开发,测试,上线,运维。
5、程序如何编译思维。
6、哲学思维,形式逻辑思维,各种学科的思维,生活方方面面等迁移思维。
7、人文,艺术等修养。
8、编程联系实际思维。