101-视频与网络应用篇-教程内容

1.教程由来
笔者有一个正在读大学计算机应用专业的弟弟,之前在他大一,大二时反复提醒他,一定要学好专业知识,但是感觉没有任何效果,了解了一下学习情况,发现他的专业学习了解太差,眼看正读大三,再不增加一下自己的能力,大四找工作又会是很难的事情,因而笔者就想写一个简单的教程让他一点点的学习,让他了解他这个专业到底应该学什么,怎么学,以及未来怎么发展。
笔者毕业于电子专业,工作偏计算应用方面,专栏《视频与网络应用篇》适合于计算机类与电子类专业大学生或毕业2年内的小伙伴们学习,由于笔者工作繁忙,专栏内容会按目录不定期更新,有想对此方向有了解的小伙伴,也可以加我QQ:419902005进行私聊了解。
2.本篇章所涉及的内容
目前计算机类和电子类所开设的所有课程均是为了学习计算机系统,计算机系统在硬件上大体上由CPU、内存、硬盘加上外设构成。因为针对计算机类和电子类专业,最需要了解的是如何开发CPU、内存和硬盘的资源,这是学习其它所有内容的基础。
在所有计算机外设的应用中,最常用的肯定是网络外设,因而本栏目会对网络编程进行详细描述,在网络应用中,专门选择视频,同样也是因为视频应用在现在的移动互联网中应用最广泛。
本栏目所讨论的内容如下:
(1)CPU应用:进程、线程、线程同步等概念应用。
(2)内存应用:内存分配、释放、泄露、崩溃避免讨论。
(3)硬盘应用:目录、文件、句柄应用。
(4)网络:网络编程,传输。
(5)视频:采集、编码,解码,显示。
(6)系统:Makefile描述,系统运行所遇到的问题,代码封装。
本文所有内容均在linux系统上运行,所使用的代码是C语言,为什么选择C语言,原因是C语言对电子类专业来说,是编程所必须掌握的语言,对计算机专业而言,C语言是所有高级语言的基础,掌握好C语言,可以更好的了解计算机底层原理和更快的接手其它语言。
3.计算机与电子类专业怎么学习
目前的计算机系统常见的软硬件分层从上到下分别是应用层、操作系统、设备驱动、硬件系统。
(1)应用层:目前而言,国内参与此类工作的人员最多,所涉及的行业包括视频通话、音频通话、网络、安全、地图、聊天软件、办公软件、工具软件、网页、UI等等。在整个计算机行业中,此类人员占所有人员估计90%以上。
(2).操作系统:常用的操作系统有linux和windows和其它操作系统。但是国内开发操作系统的工程师,估计占总人数不到1%。此类工作,所需要积累的基础知识偏多,做应用层和做驱动的工程师可以有意识的往这里面研究。
(3).驱动软件:此类工作一般在做芯片或要做优化的厂商提供,占所有开发人员估计5%左右。
(4).硬件,硬件开发有原理图开发,PCB开发,或芯片开发等,此类工程师占总开发人员估计2-3%。
4.如何学习专业知识
首先必须要明确的内容是,知识不仅仅只是知识,不是为了学习而学习。解决现实需求才是学习的原因。所以无论是计算机类还是电子类专业的小伙伴们,一定要给自己设计目标,比如制作一个Stm32的硬件,就不得不学习画原理图和PCB软件的操作,不得不学习最基础的布局布线。比如制作一个视频采集如海思或其它Arm类芯片的硬件,不得不接触高速电路板的布局,走线、包括AD软件或Cadence软件的使用。另外在设计电路时,同样模拟电路、数字电路、基本的芯片手册查看等知识必不可少。
同样设计软件也需要先理解需求,然后根据需求一点点查资料来学习,这个过程需要强大的自学能力,我觉得这个是大学和工作中最应该锻炼的才能。当然,良好的教程和专业的人指导会使这个过程更加顺利。知识是为需求服务,所以敢于创造需求,然后不断实践,才是正确学习方式。比如自己做一个计算器、自己做一个俄罗斯方块的游戏或自己写一个工具软件或小型网络服务器等等。
5.本栏目需求与所涉及知识
本栏目要实现的需求是Ubuntu18.04系统采集摄像头的视频,然后通过编码处理后网络传输发送给另外一个应用,另一个应用接受网络数据后进行解码或显示。这个过程所涉及的知识有计算机原理,编译原理,计算机网络,视频编解码,Makefile编写,操作系统,数据结构等知识。任何一个需求均是多种知识的集合,因而我们看书本知识时,可以将其当成一个了解方案和总结知识的工具,而不是仅仅将其当成一个提高笔试或面试分数的工具。
最后,送给像我弟弟一样迷茫的大学生,一定要珍惜大学时光,敢想敢做,勇于实践学习才是真正的大学生活。另外本栏目也给工作两年内的小伙伴做一个知识整理,写的不好的地方,感谢大家及时指正。

你可能感兴趣的:(嵌入式网络协议篇,linux)