本科生想在机器人领域发展,需要培养哪些编程能力,如何培养?
一年前有个亲戚家的小孩也问过我类似的问题,我给了一些建议,心里还是感慨时代确实在变化,这么早就知道规划了。
我刚读本科时机械还是个热门专业,我以为这就是机器人方向了。后来听学院里老教授们忽悠,制造是工业之母,又选择了制造方向。等到考研眼界逐渐打开,选了个SLAM方向的老师,后来又到机器人行业实习,才算入了行。题外话,真的挺感激我导师的,对我很好。虽然也没怎么管我,但是也不push我,给了我很大的自由。实习mentor也不错,微软出来的,拿了他的offer又回老家了,不过北京确实太卷了我跟不上趟。。
我觉得首先对于机器人这行来说,我个人的观点是编程是工具,而且是必不可少的工具。但是不能因为编程的火热就认为它是机器人的全部了。就像CV遍布机器人学各大会议期刊,但是我们看波士顿动力的atlas,NASA的rover mars.那才是机器人最鲜活的例子。
这个是2020年的rover mars,Perseverance,不得不说,NASA真的会起名。Spirit,Opportunity,Curiosity,Perseverance都是人类勇攀高峰不断向前最重要的要素。
不谋全局者,不足以谋一域。这句话在机器人行业做技术也非常适用。实习的时候有一次机器人出了问题,mentor带着做了个case study,真的是软硬件问题顺着捋。我硕士阶段也跟着热门方向灌水了两篇文章,但是它又价值几何呢。
所以话说回来,假如我开了天眼重新规划我的学习生涯的话。大概会是这样。
首先是先上手python,无它,python太简单了。学习了python之后,这就是你的一个工具,在学习微积分、线性代数、物理、力学、控制等硬骨头学科时都能用上。题外话,我和几个朋友讨论说物理和数学哪两个算科学系统的基础,有的说数学,有的说物理,我倾向于物理,因为物理需要可解释和可验证,而数学只要自洽就可以了。要把时间放在理论体系的构建上,不要放在计算的奇技淫巧上,python是不二之选。这里推荐一本《python数据结构与算法分析》,真的很不错,跟着敲一遍,有即时的反馈。然后就可以当个愉快的调包侠喜欢啥import啥啦,这正是python的优点。对于机器人这行来说,c和cpp还是要掌握的,但是对于新手来说,一开始又可能在windows环境下,编译链接和运行环境还是很折麽人的,通过python完成一些小目标,克服陌生感和恐惧感很重要。
第二阶段就很多机电相关的专业课了。工科的话实践就很重要了。从Linux入门和从单片机入门都是可以的,不过很可能后续方向就发生分化了,这个我建议就随便试,试完才知道个人兴趣。相比其他人可能建议早跟学术方向的话,我反而推荐这时候就是多试多学,建立体系。机械画图不用精深,但也不可偏废。至少NASA把火星车模型开放出来了,得会下载下来用专用软件加点自己的痕迹3D打印吧。电子方面假如不深入到设计层面,一些比较基本的原理图还是得会看。这个阶段如果发现自己不喜欢甚至排斥实体,早转宇宙机早考公,切记。
第三阶段那就要有自己准备深入读硕或者读博的方向了。这个基本要看自己爱好,也要看周边资源。不过热点大概也就几类。我这里不想做推荐,因为我认为学会通读行业论文的能力要比确立方向重要也更早一些。所以大概方法就是多关注science robotics子刊、NASA官网。这两个和我们普通人基本是无关的,但是能培养良好的学术品位。省得一些人一想到机器人以为就是AI、dl,当然了,纯理论matlab仿真也有点恶臭,又不敢作为数学问题和数学大佬硬碰硬,又要套个控制的壳子却不实验。不过还是要关注IROS、ICRA,RSS,甚至还有一些国内的EI会议。毕竟毕业要紧,要学会通读,这些会议也有视频,一个会上的多浏览浏览,有点子了基本就可以评估一下然后开题了。
实话实说,国内如果没有什么特别大的挫折和困难的话,自己主动一点,毕业还是不难的。有机会的话,要去实习感受一下真正的就业环境,也能认识一些志同道合的小伙伴。等毕了业,但是如果还想在机器人行业发展之后的,我目前就没有什么经验了,毕竟也就刚毕业两年。不过机器人行业对于我来说,还是能感受到一些乐趣的,要学会自得其乐吧。而且工作的话确实也无法像读书那样随心所欲。虽然读博要慎重,但是也只有读博了然后进高校进研究所能够独立研究才能自己把控方向。这就看个人取舍了。
目前是在中科院一个研究所工作,方向有点偏离机器人了,不过工科的确都是通的,通信和操作系统对于机器人来说那也是关键环节。等有喜欢的项目,看看能不能再转回去,或者空余时间自己鼓捣一下。
以后有机会再接着更。--------------------------------------2023/02/18
突然发现自己学生时代原来也收藏过一个回答,不过这位大佬的基本太难复刻了。https://zhuanlan.zhihu.com/p/22266788