Skip to content

Commit 1ca4914

Browse files
sxuyaxiaolai
authored andcommitted
Create sxuya-selfteaching-story.md
1 parent 5693085 commit 1ca4914

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
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+
![PRsLogs](https://github.com/sxuya/the-craft-of-selfteaching/blob/sxuyaStudy/my-notes/PRsLogs.jpg?raw=true)
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

Comments
 (0)