作为1个程序员,学习是工作必不可少的1个环节,从学习新的API、类库、IDE的使用到学习1种全新的开发语言,我们跟随着时期的脚步不断挑战和改变着自己。而所谓技术转型到底多大幅度才算,其实也很难说得清,我自工作开始先是从事了两年多的C++开发,而后因工作需要转而学习Android利用程序开发至今两年有余,这二者之间所使用的工具软件和语言都完全不同,所以这里姑且就算我是技术转型了吧,我只是想说说我这几年的工作经验,1个C++程序员到Android程序转变进程中的1些心得和体会。鉴于工作环境和专业素养的差异,也许我的体验对大多数人而言并没有意义,但也许总有那末几个人能从我的叙述中找到那末点同感,那我也就觉得很欣慰了。
从逻辑上说,标题的说法描写其实不准确,如果从操作系统平台而言,我是从Window平台转向了Android平台;从开发语言角度而已,是从C++转到了JAVA;从使用的开发工具是从VisualStudio转向了带ADT插件的Eclipse;从使用的SDK而言,是从MFC和Window API转向了Android SDK。我之所以用“从C++到Android”这个副标题,是由于发现大部份人是从这两个角度来认识和辨别这两类程序员的,对C++程序员大家其实不关心用了甚么开发工具包和在甚么操作系统平台,而对Android程序员又似乎不大关心用了甚么开发语言,也许这两个称谓是有着时期的烙印。
下面说说两种语言的差异,首先说C++吧。说C++就不能不提到C语言。C++是C语言的扩大而来,2者语法上有太多相同和相似的地方了,1般来讲会C++的人也能写C程序,但是两种还是有些差异,最重要的1点是C是支持面向进程编程的语言,C++是支持面向对象编程的语言。在排名靠前的语言中C++也被公认为入门门坎最高的编程语言之1,他的复杂的缘由大概在引入了面向对象的编程理念和规范的同时又对C语言的功能做了尽可能大的保存,特别是指针和宏定义更让很多小白程序员望而生畏。面向进程和面向对象是两种完全不同的编程思路,有C语言基础并且学过最少1门面向对象的编程语言的人1般都能有所体会。面向进程就是分析出解决问题的步骤,然后用函数/方法将这些步骤顺次实现,最后顺次调用就能够了;面向对象是将构成问题的事物分解成多个对象,事物都是又对象之间的相互作用而构成的。相对来讲,面向对象更容易写出疏松耦合的代码,能更好的实现代码复用。但是并不是使用C就不能写出面向对象的程序,用C++写的程序就1定是面向进程的,这里触及程序员个人编程习惯和职业素养的问题。
JAVA语言也属于C语系,所以它的语法多少与C/C++类似,但它是1门更加人性化的语言。人性化不单单在于JAVA没有指针,而是它更好的实现了面向对象,并在面向接口编程方面也有着天然的优势。面向接口编程的方式在编程理论方面又是1大进步,它并不是对面向对象编程的颠覆,而是将面向对象编程带入了1个更高的层面。对象的高度解耦和不依赖底层实现的方式,让我们的代码更容易扩大和保护。技术的进步并不是让人有了更加艰深晦涩的知识和专业技能,而是技术让我们极大的提高了工作效力。
待续...