|
| 1 | + |
| 2 | +# 第一遍学完项目感想记录 |
| 3 | + |
| 4 | +## 时间方面 |
| 5 | + |
| 6 | +从3月底开始,到现在5月出,基本上算是话费了 1 个月的时间将项目的内容从头到位看过了一遍。 |
| 7 | + |
| 8 | +平均下来,自己一个星期大致会花费多少时间呢?大概有6-8个小时吧。 |
| 9 | + |
| 10 | +## 学习背景方面 |
| 11 | + |
| 12 | +自己有一些编程的入门尝试经验,所以能够进入课程按照章节内容进行学习还是相对来说比较容易的。 |
| 13 | + |
| 14 | +之前在 Udacity 学习过一个课程内容,对于 jupyter notebook 的使用还是有经验的,所以应该相对刚刚接触这个软件的人来说,会比较容易上手。对于一些遇到的问题,知道大致的解决方法,会比较快地去定位寻找方法。 |
| 15 | + |
| 16 | +但是,第一次接触的同学也不用在意,各种视频网站上面有很丰富的使用入门视频,内容相对来说差别不大,只要找到一个入门教程,那么一步步跟着做下来,然后在自己反复摸索、复习一下,就可以明白使用的逻辑了。 |
| 17 | + |
| 18 | +PS:即使有经验,在初次配置 xiaolai 老师的环境的时候,也遇到了之前没有遇到过的问题,也坎坷了很久,还采取了「卸载、重新安装」的方法进行解决,但是也不是顺利解决,也还是多找了一些资料进行分析,找到了原因。 |
| 19 | + |
| 20 | +即使这样不顺利,但是也学习到了很多新的内容,所以,遇到问题不怕,这个正是学习成长的重要时间。 |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | +## 学习方法方面 |
| 25 | + |
| 26 | +大家一定要养成**记录笔记、日志或者发帖**的习惯。 |
| 27 | + |
| 28 | +这是自己学习经历的一个提醒。 |
| 29 | + |
| 30 | +有很多内容当时遇到,寻找到方法并且解决了,但是以前的自己没有养成记录的习惯,所以即使曾经成功解决了的问题,过了一段时间再遇到,还是会想不出来自己以前到底怎么具体解决的,回看浏览器的记录,也很难顺利找到答案。 |
| 31 | + |
| 32 | +**我后来的方法:** |
| 33 | + |
| 34 | +在课程 repo 里面的 ```my-notes``` 里面开了几个 ipynb 文件,在学习课程内容的过程里,记录学习过程中遇到的不同的内容、问题,如果有新的理解,就同样记录起来,进行迭代升级。 |
| 35 | + |
| 36 | +这样的做的好处,就是以后即使忘记了具体内容,但是可以快速索引到自己问题的针对性解决方法。 |
| 37 | + |
| 38 | +真的后悔为什么没有早点醒悟出这一点。 |
| 39 | + |
| 40 | +## 进入门槛——GitHub |
| 41 | + |
| 42 | +即使像我这样已经有一定的学习的基础,但是也没有具体好好使用过 GitHub,所以,在进入学习的开始阶段,被 GitHub 的 pull request 的操作搞得很难受,前后捣鼓了 1 个星期左右,才算是真正学会了 Git 的逻辑关系。 |
| 43 | + |
| 44 | +虽然很难,也正如一位曾经的编程高手说的:「GitHub 让所有人觉得自己很愚蠢」,but,真正学会了其中的逻辑和哲学思想,那真的是一件超级强大的工具,除了编程方面,还有很多方面值得我们去使用、探索。 |
| 45 | + |
| 46 | +这方面具体的内容见下面连接,是自己之前学习过程中写的这一点的心得体会,希望对你有所帮助: |
| 47 | + |
| 48 | +[Github进行fork后如何与原仓库同步:重新fork很省事,但不如反复练习版本合并 #67](https://github.com/selfteaching/the-craft-of-selfteaching/issues/67) |
| 49 | + |
| 50 | +## 暂存的问题 |
| 51 | + |
| 52 | +部分章节的内容也是全新学习的新知识,有些内容琢磨明白了,但是还是有些内容不清楚——而这些内容就是自己第二遍学习的时候重点注意的内容了,需要反复查询资料进行攻克的内容了。 |
| 53 | + |
| 54 | +学习过,但是还不是很明白的内容,大致有下面这些内容: |
| 55 | + |
| 56 | +1. lambda 函数的使用。(就是数学里面的那个希腊字母的英文) |
| 57 | +1. recursion 的逻辑再次梳理。 |
| 58 | +1. 「tdd 测试驱动开发」的再理解 |
| 59 | +1. 「BNF 和 EBNF (扩展)巴科斯-诺尔范式」的理解。完全不知道到底和 RE 有什么区别。 |
| 60 | +1. …… |
| 61 | + |
| 62 | +暂时记录在这里,在接下来的第二遍过一遍的时候,再看看这些问题会不会有一些得到理解、进步。。 |
| 63 | + |
| 64 | +## 最大的不同(特点) |
| 65 | + |
| 66 | +xiaolai 这个「入门」教程最大的不同,或者说是特点,就是完全从一个全新的角度,定义了「入门教程」可以有的形态。 |
| 67 | + |
| 68 | +再次之前,所有的入门教程,都是一个个小点、知识点讲解,并且使用的语言还是那么刻板,或者说死板,很难让一个新生理解所学新领域的特点和内容,而很多基础内容由于这个原因,无法继续下去,也就「从入门到放弃」。 |
| 69 | + |
| 70 | +而 xiaolai 是将读者看作一个有主观能动性的个体,所以不会在细节上讲解,即「不会授人以鱼」;而是,有自己学习过程中遇到的感受、以及解决方法的升级的过程的展示,相当于以一个朋友的角色,将内容娓娓道来,让读者欲罢不能,感觉有一个伙伴和自己一起学习,那种陪同的感觉实在是太美妙了,是见过的入门教程所从来不具有的高度。 |
| 71 | + |
| 72 | +正如 xiaolai 自己定位的,是把这个教程当作 Python 官方文档的引入、注释类的地位——相比就是是因为叫这个教程定位为「授人以渔」,所以里面有大量的链接,值得自己后期在按图索骥进行更加深入的学习。 |
| 73 | + |
| 74 | +## 最大的收获 |
| 75 | + |
| 76 | +要说最大的收获,那其实我想说的是入门的「GitHub 的学习和使用」,项目里面具体编程内容,反而没有那么大深刻印象。 |
| 77 | + |
| 78 | +在探索的过程中,发现问题、有什么想法,就尽可能去提交 PR,让自己头脑中不确定的想法得到一个正向反馈——更加兴奋的是这个反馈直接来自 xiaolai 老师,万分喜悦。 |
| 79 | + |
| 80 | +而在这一次次提交 PR 的过程中,对于 GitHub 的逻辑越来越熟悉、操作越来越顺手。 |
| 81 | + |
| 82 | +下面是第一遍学习提交的 PR 成果: |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | +前后包括重复、试错的次数,一共 20 个,其中 7 个被 merge 到项目中(还有个别虽然没有 merged,但是也从 xiaolai 的评论里面得到了很好的交流),有 **35%** 的 merge rate,这个比例让刚刚大致学会 GitHub 和 协同工作的我来说,是一件及其喜悦的事情: |
| 87 | + |
| 88 | +## 庆幸 |
| 89 | + |
| 90 | +庆幸自己在项目的开始的时候,就知道了他的存在,从而进入到项目的学过程中,能够在「毛项目」有最多的迭代可能性的时候,不断学习,自己精进的同时,能够和项目一起升级,这种感觉实在是美妙。 |
| 91 | + |
| 92 | +回想之前得知项目后,还是拖延了 1 周才开始好好了解项目的内容,如果没有动手进入,错过了「项目学习的黄金时间」,那真的不知道自己的世界会变得多么的可悲,「不知道自己可悲其实是最大的可悲」。 |
| 93 | + |
| 94 | +后面加入学习的「同学们」也不用气馁,在我们开辟、完善的「新」项目里,少了很多不必要的坑,你们的学习效率会比我们大很多,今后还有很多其他的项目、内容值得我们去摸索。 |
| 95 | + |
| 96 | +或者,给个 xiaolai 老师的那个建议:**想要获得我们那种完善项目一起升级的美妙感觉,可以用一个全新的方式进行:「教别人」。** |
| 97 | + |
| 98 | +「教别人」的过程里,会看到更多本来书上有、但是被自己忽视掉认为理所当然可以解决的坑,在这个过程里,你自己就升级了——在回答 ```issue``` 里面的帖子的时候,也看到了形形色色其他人的问题,虽然自己理解了,但是使用文字进行回复、讲解明白,还是会重新获得**新的认识**,自己也升级了。 |
| 99 | + |
| 100 | +## 祝福 |
| 101 | + |
| 102 | +祝这里所有学习的人,都学有收获,或大或小,加油~ |
0 commit comments