1.1 编程修行之路
笔者是自学计算机编程的,从C语言开始学习,逐步学习了信息管理技术、数据结构、数据库技术、Web开发技术、网络技术、操作系统原理、内核编程等。上大学期间考过了计算机二级C语言、三级数据库技术、三级信息管理技术、计算机等级考试四级,为后来编程工作打下了坚实的基础。工作后,一直从事音视频和流媒体开发,包括视频播放器、视频转码器、流媒体服务器、直播系统、视频监控、图像处理等。
近年来音视频和流媒体,尤其是直播,发展得如火如荼。预计接下来的至少十年,音视频行业会一直流行下去。音视频作为媒体信息的载体,也会越来越普及,所以如果读者希望投入点精力与时间学习音视频,是一个非常好的选择。当然,音视频比较复杂,入门很难。虽然市面上的资料一大堆,但比较杂乱,初学者看后会更加有云里雾里的感觉。笔者借此机会,将相关知识整理成书,希望给读者带来一些帮助,少走弯路。
学习过程是痛苦的,一学即会的知识往往不值钱。笔者20年来一如既往,持续投入,付出了艰苦的努力,现在依然坚持探索。希望读者也能静下心来认真学习,一遍看不懂,就看两遍、三遍,书读百遍其义自见。
天道酬勤,只要愿意努力,坚持下来,一定会有所收获。当然,学习是有路径的,需要一步一步地深入,尽量少走弯路,如图1-1所示。刚开始可以先熟悉某门编程语言,如C、C++或Java,动手实践做几个项目,其次需要系统地学习操作系统的API与核心编程,包括Windows和Linux,然后升华一个高度,从架构、设计模式的角度出发看待问题,最后可以学习内核编程,精通内核原理。至此,技术深度上基本过关了,然后横向扩展,四通八达,将知识体系完备起来并灵活应用。
图1-1 学习路径
随着学习的深入,要一点一点地探索,提升内功修为,逐步达到一种境界:用程序实现功能,如探囊取物,如入无人之境。例如中国的古人飞将军在仓促之间,一箭发出,竟能射到石棱之中,可见内功修为之深厚。
这么多年编程,程序已逐步成为生活的一部分。希望读者苦练基本功,拳不离手,曲不离口,慢慢地一定也能体会到其中的乐趣。既然选择了编程这条路,就要持之以恒,这里笔者再分享几句自编的简词,以共勉。