回想起来,从写一行“Hello World”到如今,已经有七八年了,回想起来,真正让自己技术得到提升的关键点有三个方面,一个是“实战项目”,一个是“技术书籍”,还有一个就是“开源代码”。
概述
-
01
毫无疑问,“实战项目”永远是积累编程经验最重要的途径,项目越复杂,开发中遇到的问题越多,经验的积累也越多,我相信任何一门技术,如果总只是自己写写Demo,是永远掌握不好的;“技术书籍”则指的是那种着重“思想”方面的书籍,能从本质上提升个人的编程素养,例如:“xxx编程思想”、“Effective xxx”、“重构”、“设计模式”等等,这些书都是需要反复看的,有了实战经验再带着问题看,效果会好很多倍。“开源代码”则是吸收“别人的实战项目经验”的最好途径,不要做井底之蛙,看看大牛们都是怎么设计代码的,深入学习优秀的开源代码,你能学到很多非常实用的编程技巧和编程风格。
-
02
说说的自己的情况,在学习编程的道路上,我转型过好多次,最开始是学习C/C++,基于Windows平台开发一些MFC的项目;读研后由于导师的安排,转型做嵌入式,设计嵌入式系统,并基于Linux平台做一些音视频、网络、设备驱动方面的开发;工作后转型做Android开发,开始积累Java和Android平台的各种开发经验。
学习编程无非就是以下四个阶段
-
01
第一阶段,了解系统/平台(Windows、Linux、Android、IOS)的基本工作原理,了解其开发环境,编译系统,以及有哪些可以使用的编程接口(API)和第三方库。
-
02
第二阶段,学习该平台提供的各个API和第三方库,比如:UI控件、线程、Socket等等,并通过Demo和封装,转换为自己的库和API。
-
03
第三阶段,在项目实战中积累开发经验,并通过技术书籍、开源代码提升编程技巧和能力。
-
04
第四阶段,深入了解和研究平台本身,比如:UI系统工作原理,消息通知机制,内核和框架等等。
分享给大家
-
01
虽然我经历了好几个平台的开发(Windows/Linux/Android),但是在第四阶段都没有太多深入的学习,当然,这也是我今后的努力和提高的方向。不过在项目实战中,还是积累了不少编程经验和技巧,在学习开源代码的过程中,也看到了许多不错的设计思想,我希望能有机会分享给大家, 后面有机会我会慢慢分享给大家。