我的编程经验

从写一行“Hello World”到如今,已经有七八年了,回想起来,真正让自己技术得到提升的关键点有三个方面,一个是“实战项目”,一个是“技术书籍”,还有一个就是“开源代码”


毫无疑问,“实战项目”永远是积累编程经验最重要的途径,项目越复杂,开发中遇到的问题越多,经验的积累也越多,我相信任何一门技术,如果总只是自己写写Demo,是永远掌握不好的;“技术书籍”则指的是那种着重“思想”方面的书籍,能从本质上提升个人的编程素养,例如:“xxx编程思想”、“Effective xxx”、“重构”、“设计模式”等等,这些书都是需要反复看的,有了实战经验再带着问题看,效果会好很多倍。“开源代码”则是吸收“别人的实战项目经验”的最好途径,不要做井底之蛙,看看大牛们都是怎么设计代码的,深入学习优秀的开源代码,你能学到很多非常实用的编程技巧和编程风格。


说说的自己的情况,在学习编程的道路上,我转型过好多次,最开始是学习C/C++,基于Windows平台开发一些MFC的项目;读研后由于导师的安排,转型做嵌入式,设计嵌入式系统,并基于Linux平台做一些音视频、网络、设备驱动方面的开发;工作后转型做Android开发,开始积累Java和Android平台的各种开发经验。经过这几次转型,我有一种体会,其实学习编程无非就是以下四个阶段:


(1)第一阶段,了解系统/平台(Windows、Linux、Android、IOS)的基本工作原理,了解其开发环境,编译系统,以及有哪些可以使用的编程接口(API)和第三方库。


(2)第二阶段,学习该平台提供的各个API和第三方库,比如:UI控件、线程、Socket等等,并通过Demo和封装,转换为自己的库和API。


(3)第三阶段,在项目实战中积累开发经验,并通过技术书籍、开源代码提升编程技巧和能力。


(4)第四阶段,深入了解和研究平台本身,比如:UI系统工作原理,消息通知机制,内核和框架等等。


(5)第五阶段,开始从更高的角度来思考问题,研究最佳解决方案、编写或搭建开发框架,走向架构师之路。


虽然我经历了好几个平台的开发(Windows/Linux/Android),但是在第四、五阶段的积累还不够,这也是我今后的努力和提高的方向。不过在项目实战中,还是积累了不少编程经验和技巧,我特别希望能有机会分享给大家,故开设这一专题,希望能一直坚持写下去。


你可能感兴趣的:(编程,开发,学习,经验,分享)