开端
看编程书有一段时间了,还是觉得做不出什么东西来,究其原因还是眼高手低,从今天起记录一下学习过程,权当对自己的督促。
程序员无非是控制计算机为按照我们既定的顺序改变数据的状态并呈现出来的一个过程,最终都是对存储器中0和1的操作,这种枯燥的操作自然不是人的大脑可以接受的,于是有了管家操作系统,这个关键相当于计算机的神经,可以感知一切,但是却没有独立思考能力,只能靠程序员来指挥,对于内存0和1的操作,逐渐被前人封装为汇编语言,也只是用很少的Mov Add符号代替了机器码,为了更易用,人们又封装了C,当然除了学院派熟悉的C,C++,Java,C#等编程语言,还有几十甚至上百种的语言,总来来说,所有语言都是一样的目的,只是封装的粒度不一样,本身实现起来的设计不一样,使用每一种编程语言都是一个看帮助,做例子的过程,而在程序设计中,真正通用的是数据结构,OOP思想以及设计模式,而不是语言的细节。
语言的实现机制不一样,导致了使用上的差别,但OOP的思想都是指导思想,C流起初面向过程,后来提出了继承,封装,多态这些OOP特性,并做实现,也就是说语言没有好坏之分,我们的目的是为了完成目的,在可接受的效率范围内,尽量的提高生产效率。.NET Framework做了很多内存管理之类的底层工作,用起来简单但总归有些不求甚解的意思,其实这种托管的架构必定会考虑到所有可能的情况,一定程度上以牺牲性能换来易用性和效率的提升,在一般的应用开发中非常高效。C++则灵活的多,没有了神秘的托管代码,可以直接对内存进行控制,也就是所谓的手动的内存管理,当然,现在有了智能指针之类的设计,不再需要每次手动释放,这也进一步说明了,程序语言起初都是底层的,只是一层层的封装,封装的越多,代码越少,但问题解决起来也更头疼。
最后记录对于动手能力的想法,自己最大最大的缺点就是眼高手低,归结为一个字“懒”,没有一种执着的精神,开始学习写程序总是问题不断,独立解决问题其实也不是什么好办法,无奈并没有太多人可以请教,这也是记录博客的意义所在,自己为自己解疑答惑,记录下每天的问题,逐个击破,还有几个月就要工作了,生活会好起来...