零基础如何学习优达学城的《无人驾驶入门》?

匿名 (未验证) 提交于 2019-12-03 00:18:01


因为感兴趣,而且看好无人驾驶行业,我从今年3月30号开始学习优达学城的《无人驾驶入门》课程。经过一段时间的学习,加上成为了这门课程的好学长,我对《无人驾驶入门》有了比较深刻的了解。接下来,我会系统整理所学的知识,公开发表,希望能帮到对无人驾驶感兴趣的同学。

先说一下我的背景,这样可能更有针对性。本科机械,研究生力学,目前是一名传统车企的工程师。大学期间学过编程知识,当时完全没有学懂,可以认为是编程零基础。

作为系列文章的第一篇,我想介绍一下《无人驾驶入门》这门课,课程所需要的先修知识,以及我是如何准备的。

《无人驾驶入门》课程链接:https://cn.udacity.com/course/intro-to-self-driving-cars--nd113-cn

学习这门课的收获

《无人驾驶入门》其实给我带来了不少收获,比如认识领域内的大牛,结交一群志同道合的同学,了解行业动态,获得推荐就业的机会等等。最大的收获是快速入门。万事开头难,想从无到有,进入一个全新领域,难度并不小,换过专业,或者跨专业考研的同学应该深有感触。成年人的学习主要靠自学,但是时间无疑会很长。而时间越长,意味着人才缺口的红利越少。

《无人驾驶入门》是一套成体系的入门课程,通过这门课,可以快速了解、进入无人驾驶领域,我认为是值得的。至于学费,的确不便宜,不过可以通过成为好学长/好学姐,助教,代码审阅者等形式得到优惠,甚至现金报酬。

先修知识

作为一门“入门课程”,虽然需要一定的基础知识,但是并不难,即使完全不具备也没有关系,可以在比较短的时间内掌握,我就是这样做的。

先修知识分成编程知识和数学知识两部分。

编程知识

编程知识,需要掌握python基础(40小时的编程时长)。虽然课程中期会使用C++,但是主要目的是把python代码翻译成C++(因为C++运行速度更快)。课程会从头开始讲解C++的知识,没有C++的基础也没有关系,我是在课程中才开始学习C++的。

所以,在编程方面,主要需要掌握的是python的基础知识。主要包括数值类型(整型,浮点型,布尔型,字符串),运算符(算术运算符,比较运算符,逻辑运算符),循环语句(while,for),判断语句(if,else),列表和类等内容。

网上有大量的python学习资源,质量参差不齐。有些课程,前期集中讲解各种理论知识,后期才开始实践,对老师来说教起来是省事了,但是对学生学起来就费劲了。前期不知道这些知识有什么用,该怎么用;后期需要用了,却已经忘光了。

我推荐优达学城的相关课程,因为课程都是以项目为导向。学到的相关知识,都会以项目的形式展现出来,让我不光学到了知识,还知道该如何使用这些知识。完成多个项目后,我不仅对编程产生了兴趣,还特别有成就感。另外,课程有时间节点,需要在规定的时间内完成,否则将无法学习。“截止日期”无疑是拖延症患者的良药。

推荐课程如下:《编程基础:Python(中/英)》。这是优达学城的一门免费课程,而且还有中文字幕,适合没有基础的新手学习。

《编程基础:Python(中/英)》:https://cn.udacity.com/course/programming-foundations-with-python--ud036

除此之外,优达学城还有适合新手的付费课程《Python入门》。不同于免费课程,付费课程提供更多服务,比如共同学习交流的学习小组,导师一对一辅导,限时完成学习内容等等。

《Python入门》:https://cn.udacity.com/course/intro-to-python-nanodegree-foundation--nd000-cn-python

补充知识

学习完上述课程,你已经满足《无人驾驶入门》的编程要求了。如果你希望进一步学习python的相关知识,我推荐优达学城的另一门免费python课程:计算机科学导论(中/英)》。这门课同样适合零基础的同学,与前面两门课相比,它的内容多课时长,适合那些想打好python基础的同学。它的项目没有那么多,整个课程主要是完成一个爬虫程序,趣味性弱了点。

《计算机科学导论(中/英)》:https://cn.udacity.com/course/intro-to-computer-science--cs101

另外,再介绍一些其他编程资源。

如果想了解python的一手知识,请在python官网上查看。

python官网:https://www.python.org/

如果英文实在看不懂,可以查看下面的中文网站。廖雪峰的官方网站:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000菜鸟教程:http://www.runoob.com/python3/python3-tutorial.html

虽然这些资源都不错,但是并不能解决你所有的编程问题。就好比遇到不认识的字,可以查字典。但是这个字具体应该怎么用,字典不能告诉我们。同样,你的程序出错了,是什么问题导致的?如何解决?要回答这些问题,你需要高手相助。

程序员最好的救助网站是stackoverflow。它就好比编程版的百度知道,你遇到的问题上面基本上都有答案。



stackoverflow:https://stackoverflow.com/

国内同样有程序员的交流网站――CSDN。上面有大量的博客,资料和课程等优质内容。你遇到的问题,很有可能已经有人解决,并且放在了他的博客上。

CSDN:https://www.csdn.net/?ref=toolbar

如果你还想在编程的道路上更上一层楼,学习、模仿大咖们的程序是非常好的方法。github就是一个代码交流的乐园。你可以把github理解成一个公开的百度网盘,世界各地的程序员把他们的代码上传到这里,而且大部分都是开源的。你可以下载,模仿,修改,甚至加入开源项目。

github:https://github.com/

想要随心所欲的使用git(可以理解为游戏中的存档,可以在本地保存代码)和github,你需要掌握一定的相关知识。我学习的是优达学城的《如何使用Git和GitHub》,课程免费,有中文字幕。

《如何使用Git和GitHub》:https://cn.udacity.com/course/how-to-use-git-and-github--ud775

数学知识

说完了编程的先修知识,下面谈谈需要准备哪些数学知识。数学知识主要包括概率论,线性代数的微积分3种。提到数学,可能很多人都会头大,其实根本不用担心,用到的都是最基础的知识,大学里大家都学过。另外,我认为之所以很多人数学学不好,是因为不知道能用在哪里。现在数学知识有了实际的应用场景,相信学起来更容易,也更有乐趣。

概率论重点掌握两个知识点:条件概率和贝叶斯定理。这些知识可以在《统计学入门》(免费)中学到。这门课一共有34个章节,不需要全部学完,掌握1-11小节(11A. Probability Distributions)的内容就足够了。以后如果还有需要,继续学就是了。

概率论方面的资料很多,我为什么选择这门课呢?因为实践。每小节讲解的数学知识,老师都会通过python编写成相应的程序,而我学习这些知识的目的,就是为了编程。

《统计学入门》:https://cn.udacity.com/course/intro-to-statistics--st101

线性代数重点掌握两个知识点:向量和矩阵。同样是最基础的内容,比如向量的定义,向量的加法和乘法,矩阵加法和乘法等等。推荐《基础线性代数》,课程免费,有中文字幕。掌握1,3,4节的内容就可以了。和《统计学入门》一样,除了讲解知识点,还涉及通过python编写相关代码。

《基础线性代数》:https://cn.udacity.com/course/linear-algebra-refresher-course--ud953-enterprise

微积分重点掌握两个知识点:微分和积分。了解基本概念就可以了,内容比较简单,就不额外推荐学习资源了。

总的来说,需要掌握的数学知识难度都比较小,虽然推荐了相应的课程,但是在《无人驾驶入门》这门课中再去学习也是完全可以的。

值得一提的是,《无人驾驶入门》的课程内容中,有少量内容和我上面介绍的课程是重复的。这意味着,通过学习这些免费课程,你能提前掌握《无人驾驶入门》的部分内容。

学习心得

最后聊聊学习《无人驾驶入门》的3点心得体会。

首先是良好的心态。即使是入门课程,在学习的过程中也是会遇到困难的,针对不同类型的问题,优达学城对提供了相应的解决渠道:

  1. 小问题可以直接在群里@mentor提问;

  2. 课程中难度较大的问题,可以在教室内预约助教,进行1v1的解答;

  3. 教室登陆等非课程专业的问题,可以在群里@优达学城工作人员;

  4. 发票、反馈室教室系统问题,翻译报错等其他问题,可以填写工单;

除了向优达学城求助,前面介绍过的stackoverflow和CSDN也能帮你解决不少问题。

阳光之下没有新鲜事,你遇到的问题别人一定也遇到过,并且已经有了好的解决方法。你要做的,只是通过恰当的途径找到这些方法而已。所以,遇到困难也不要着急,相信问题都是能解决的。

其次是关于优达学城的课程设计。课程的每一单元都有相应的主题,了解并且重点学习这些内容,忽略其他即使你还没掌握的知识

举个例子。编程的学习曲线很陡峭,比如我在《无人驾驶入门》学习如何在C++中使用类的时候,发现需要知道如何声明函数和类,如何定义函数和类,私有成员和公开成员是什么等知识点。但是课程中并没有讲解这些知识。为了补上知识缺口,我花费大量时间在书中、网上寻找、学习,还在优达学城上预约了一对一的辅导。

但是,当我掌握了这些知识,学习后面的内容时才发现,原先我花了大量时间去学习的内容,课程在后面都有讲解,而且讲解得更加清晰、透彻。

优达学城的课程其实是经过精心设计的,每一章节重点掌握一个知识点,虽然你可能有不少知识没有掌握,但是后面都会讲解到。我的建议是,先忽略这些知识,假装自己已经掌握了,到后面再把这些知识补上。

最后是关于学习方法的。学习课程的笔记我都记录在了印象笔记上,相比于纸质笔记,云笔记更容易整理。印象笔记这里不做更多介绍,主要说说我记笔记的方法。不管学习什么课程,我都会创建3条笔记:资源,问题和错误。

“资源”,顾名思义,是我整理相关学习资源的地方,比如前面介绍的课程和网站。



“问题”,是我记录未解决的问题的地方。学习过程中遇到的大多数问题都已经有答案了,只不过还没有找到罢了。不必为了一个问题就踟蹰不前,我会把这个问题记录下来,继续解决下一个问题。如果不做记录,很可能就忘了,当然也不可能找到答案。先把这些问题记录下来,说不定什么时候就找到答案了。



“错误”,是记录错误的地方,比如在编写代码的时候,出现了一些错误,我会把它们记录下来,并且按照错误提示,原因和解决方法3个部分进行整理。记录的错误越多,以后出现错误的可能就越少。



我是《无人驾驶入门》的好学长江浩,希望我的分享对你有用。如果你对优达学城的课程感兴趣,可以使用优惠码:839662C0,我们都能得到300元的优惠。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!