《程序员》3月刊看到关于“程序员的7种武器”的文章,列举的“武器”如下:
1.基本的数据结构:字符串、数组、哈希表
2.正则表达式
3.SQL
4.计算机语言
5.开发工具
6.调试
7.编程思想
作者十分推崇《SCIP》中译《计算机程序的构造和解释》
书中主要谈到,软件开发的根本难点——控制复杂度
解决方案:
1)Abstraction & Combination 抽象与组合
抽象:汇编——操作指令
C——面向过程,数据结构和算法
Java/C#——面向对象
组合:表达式,消息传递
2)Conventional Interface 约定接口
3)Meta-Linguistic Abstraction 元语言抽象
应该说从1到4主要是具体技术层面的东西,5.6是开发工具,而7就上升到了思想层次了。但我觉得UML和design pattern也应该加进来,不知道大家的看法如何?