1、编程世界的主流思想
a)结构化编程、面向过程的开发
b)函数式编程
基于 演算,经典的语言有LISP, Erlang,比较重要的特点:尾递归,尾递归的特点是栈的使用,无论递归层数有多少,只使用一个栈。
它避免了“防御式编程”。相关的参考书:《计算机程序的构造和解释》
c)ER实体关系
这是有关数据库的基础,有关涉及的内容有:
d)面向对象编程(OOA,OOD,OOP)
对于客观世界来说,面向对象编程把所有的事物都看成是“对象”。
2、解释型脚本语言的特点
解释型:编译器和解释器绑定在一起,不需要再做编译,直接运行。
编译型:需要编译过后,才可以运行。
运行时:程序存储在硬盘,运行时需加载到内存运行。
动态类型:强调只有在运行时才知道变量的类型。
强类型:变量需要定义其类型;
弱类型:相对于以上的动态类型来说的。
python属于解释型语言, 开发效率高,通用性强(跨平台性高),内置方便的数据容器;易于扩展嵌入(比如某部分可用c编写)。
3、编程语言的比较
嵌入式 网络应用 网络界面 APP
编译型 C,C+ JAVA,.net flex AS,java Applet Android,object-c
解释型 Python, Python,Erlang, html,javascript,lisp lua,html5
Erlang,lua Perl,asp,shell,lua
4、方法论
a)笛卡尔方法论
四要点:拆分、排序、处理、归并
b)软件工程过程方法论
软件生命周期、RUP统一软件过程管理、敏捷开发
C)项目管理(计划、组织、执行、控制)
5、现实世界的变化
单任务-〉多任务;
文字界面->图形界面;
单线程->多线程;
平台相关->跨平台;
单机(本地)->网络(分布式)
单一语言->多种语言
6、程序员的境界
线性级、逻辑级、架构级、工程级
7、程序员的陋习
自我:不愿意听从别人意见;
封闭:不愿意交流、分享;
惯性:以前是这样做,不习惯你的做法;
一叶障目:依据自我为中心,拒绝别人;
工作量估计乐观;
拒绝变化;
拒绝重构