好开始学习C,而且要强迫自己练习用C的一维数组和指针来实现矩阵的加法、乘法、求逆等操
作。之所以有高级的Python或者Java(不要问我Java哪里高级了)这些语言以后我们还需要去学
C,是因为机器人上常用的不是完整的电脑,而是计算量有局限的嵌入式系统,嵌入式系统开发基
本只能用C或者更低级的语言。
学习C我个人入门用的是清华大学出版的《C++语言程序设计》。虽然这个书标题是C++,但其
实没什么太大问题。不过国内的C语言教材都有个巨大的问题是不引导学生去用Linux。近年来更
好的一个教材是songjinshan.com/akabook...,这个网站的教材非常好,因为他教育学生用
Linux环境作为程序编译的环境,而且还引入了一些计算机体系结构的介绍。
IT行业的程序员都会争论高级语言和低级语言哪个好,Linux和Windows哪个好,而对于机器人工
程师来说,从现在到可预见的未来里,C是最好的语言,Linux是最好的操作系统,这都毋庸置
疑。甚至对于Linux的发行版该选哪个,我们都是很少有质疑的:Ubuntu(The leading OS for
PC, tablet, phone and cloud)。原因是机器人操作系统ROS(ROS.org | Powering the worl
d's robots)是基于Ubuntu开发的,因此在Ubuntu上运行最稳定。注意Ubuntu出了一个中文版
叫做Kylin,个人感觉比较坑,建议大家不要装中文版。Ubuntu 作为一个开源操作系统,总是在
快速迭代,2016年8月比较稳定的版本是14.04和16.04,建议同学安装14.04。
当你把C学得差不多,开始要学写包含多个头文件的程序时,一定要同时学习makefile的知识。这
时候要上网去搜“Makefile详解”(Makefile详解(超级好)_mingw吧)这篇文章看。
我自己在大学一年级的时候还学习了HTML和Javascript,到大一结束的时候已经能够熟练用
Javascript手写一些动态页面。我个人觉得HTML和Javascript也是机器人工程师必备的技术,而
不只是软件工程师的玩具。这是因为web技术实际上已经渗透到了编程的方方面面,比如json开
始是Javascript里的一种object定义的方式,但现在已经成为了一种很标准的数据交互、参数配置
的格式。另外AJAX能够帮助初学者理解一定的网络技术原理,而网络技术也是机器人工程师必备
的技能。再者,制作GUI(图形用户界面)是常规debug的办法,而近年来一个流行的趋势是用
webkit嵌入程序用HTML和Javascript作为图形界面的后端,而在机器人操作系统ROS(ROS.org
| Powering the world's robots)里,通过rosbridge可以非常方便地把机器人程序的数据传递到
websocket上,这句话看不懂没关系,反正你知道学学HTML和Javascript很重要就是了。更重要
的是,HTML文档背后的DOM (Document Object Model)深刻地体现了面向对象的思想。大学
中的面向对象程序设计一般都讲C++,在我看来应该讲HTML和Javascript。这一点不细说了,如
果同学们去学习HTML和Javascript,自然会体会到。学习HTML和Javascript比较好的资料是w3s
chools.com/,把网站左侧的“Learn HTML”、“Learn CSS”、“Learn
Javascript”和“Learn JQuery”学完就行,别的部分还有很多花哨的技术,没有必要去学了。
为了培养自己对Javascript的兴趣,可以上three.js / examples跪着看看热闹。