学员信息
- 姓名:沈璜
- 学号:1901100244
- 系统:Windows 10 version 1903 (64-bit)
- 职业:新闻学在读硕士研究生
- 简介:以前当过 10 年高中教师,因为觉得已经遇到了职业天花板,就参加了国家统招硕士研究生考试,读了全日制的硕士研究生,还有 1 年毕业,现在正在硕士论文写作阶段。关注笑来老师十多年了,对老师思考后的结论深表认同,故而借这个机会学习一下 Python。希望学完之后应用在论文写作等场景里。
目录
- Python 自学训练营 010 期 沈璜 日志
- DAY 00
- DAY 01
- 1. 学习内容
- 2. 学习用时
- 3. 收获总结
- 4. 遇到的难点与问题
- 4.1 “任务2.3 在 develop 分支中创建一个名为 develop.txt 的文件,提交一个 commit”
- 4.2 “任务2.4 从 develop 提交一个 Pull Request 到 master 分支,并将其合并(merge)”
- 4.3 “任务3 在 GitHub 的仓库中提交 Issue”
- 4.4 “任务4.2 通过 下载地址 安装 Github Desktop 桌面客户端,完成后登录自己的账户”
- 4.5 “任务4.4 在本地电脑的 hello-world 仓库中创建一个名为 local.txt 的文本文件”
- 4.6 “任务4.5 通过 Github Desktop 将本地仓库新增的文本文件提交为一个 commit”
- 4.7 “任务5.3 通过 Github Desktop 将自己账户下 fork 的作业仓库 clone 到本地电脑”
- 4.8 “任务5.8 回到 Github 自己账户下的作业仓库页面,向远程公用作业仓库的 master 分支发起 Pull Request,在提交的 Pull Request 的标题(title)中填写自己所在的钉钉群名,如示例:【032901】自学训练营 DAY1 ,并在评论(comment)中 @自己的助教(请向助教索要他的 Github 用户名)提醒他检查作业”
- 总结
- DAY 02
- DAY 03
前期准备
2 小时
- 明确了“自学是一种社交行为”;
- 认识到入门营的目的:先完整地做完一轮任务,不求甚解;
- 要尝试通过多种途径进行学习,包括但不限于:课程文档、官方文档、搜索引擎、课程教练、训练营同学;
- 不要认为“没什么可谈的”,事实上,学习过程中出的很多问题都并不复杂,觉得需要问就问,觉得可以答就答,不必在意“露怯”;
- 教学相长,自己可能晃过了别人掉的坑,别人也可能跳过了自己掉的坑,相互帮助,学习效果才会更好。
正常访问 GitHub 和 Google 是个难点,不过班里没有人聊这个(可能是不方便聊),不知都是怎么搞定的,推测应该是八仙过海了。
由于自己主要用的是飞机/火箭,多少关注了些机场相关的信息,这里就提一个评测站好了: 毒药机场简介 https://duyaoss.com/
手册当中有大量不甚规范的表达,比如——
- 标点
所谓"自学",就是"自己一个人(默默地)学"
- 其中引号有误
- 名词
可以通过 google 翻译或找到翻译件 文字排版请使用 markdown 语法 Github issue 区 是很好的交流场所
- 其中 Google、Markdown、GitHub 的拼写不规范
- 病句
训练营由 "新生大学" 发起,针对基础相对薄弱,想要自学 Python 的人组织的训练营。 教研组由李笑来担任组长,帮大家形成以开放的互联网为师,习得自学这门手艺。
- 这两句话都有成分残缺或赘余的问题
还有很多同类情况,就不一一列举了。
这类问题在阅读时会给人“磕磕绊绊”的感觉,或许很多人并不在意这些细节,但这些细节会从一个侧面体现出主办方的水平,故而也不应轻慢。
- 科学上网问题已解决
- 文字问题应整体编修(本条后文不列)
GitHub 的基本使用
4 小时
- 明确了使用 Git 和 GitHub 的目的——Git 用于版本控制,GitHub 用于网络协作;
- 掌握了拉取请求(Pull Request)相关的操作;
- 了解了 GitHub 的工作流程。
- 创建文件的操作方式在“参考资料1”中没有;
- 新手在尝试创建 develop.txt 时可能会漏掉“.txt”,应予强调;
- 底部“Commit changes”区的提交信息(a commit message)比较重要,不填写或仅依靠默认内容有可能导致无法提交,造成困扰,应予强调;
- “提交一个 commit”表意不明,“commit”本身含义即为“提交”,这一词原本还没有名词词性(GitHub 直接把它当名词用了),故原文的写法令人难以理解,考虑上下文及用例(make a commit、add commits,参见 https://guides.github.com/introduction/flow/ ),可改为:==填写相关说明(在页面底部),并提交新文件(Commit new file)==,或者:==填写相关说明(在页面底部),并创建一个提交(commit)==;
- “develop”写为“==develop 分支==”比较好,避免误解;
- 拉取请求(Pull Request)是 GitHub 协作的核心操作之一,但这个词理解起来颇费思量,简单的解释可以是“请求代码合并”、“请求对方拉你的代码”( 参见 https://www.zhihu.com/question/21682976 ),比较详尽的解释建议参考 GitHub 官方的说明网页( https://guides.github.com/introduction/flow/ );
- “(merge)”写为“==(Merge)==”比较好,与页面一致。
Issue 的位置与“参考资料2”中的截图不一致,应是 GitHub 改版导致的,寻觅了一小会儿。
- “GitHub Desktop”已经有“桌面”的含义,再说“桌面客户端”有语意重复之嫌,或写为“==GitHub Desktop 客户端==”即可;
- GitHub Desktop 登录后如果没有克隆任何仓库到本地的话,主菜单出不来,很难找到登出的地方(我错误地登录了一个旧账号,故需要登出),Google 后了解到,可以通过按快捷键
Ctrl
+,
进入 Options 完成登出操作。
- “文本文件”或应写为“==文本文档==”,与 Windows 的表述一致。
- 为了避免建立扩展名错误的文件(如
local.txt.txt
),应将文件资源管理器设置为显示文件扩展名(【查看】→勾选【文件扩展名】)
“提交一个 commit”和“提交为一个 commit”有什么区别?两种表述法都很不清晰,建议改写,或可写为:==填写相关说明(在软件左下角),并提交(Commit to master)==。
- 这一步耗时甚久,大约 180 MB 的文件,下载速度只有 10~20 KB/s,前后花了约两个小时,手册应该对这种情况予以提醒;
- Google 了一下,知道了出现这种情况的实际原因—— GitHub 相关的一些域名被限制了(如 http://github.global.ssl.fastly.net);
- 不同人给了不同的解决方案,如:改 hosts,利用开源中国提供的代码仓库(码云 Gitee)转移,给 GitHub Desktop 设置代理;
- 个人认为相对彻底的解决方案应该是 GitHub Desktop 整体走代理,方法有两种,一是开 VPN,二是配置 GitHub Desktop;
- 考虑眼下的实际情况,VPN 不算靠谱,所以就只能配置 GitHub Desktop 了,试验发现,GitHub Desktop 不从系统设置中取代理服务器,用修改配置文件的方法才能设置代理
- Windows 版 GitHub Desktop 设置代理的方法如下:
i. 用文本编辑器打开 C:\Users\UserName\.gitconfig 文件,注意 UserName 要换成自己的账号,直接搜索“.gitconfig
”也可以,这个文件只有扩展名,开头就是一个“.”,别弄错了;
用文本编辑器打开C:\Users<em>UserName.gitconfig
文件,注意UserName
要换成自己的账号,或者直接搜索“.gitconfig
”也可以,这个文件只有扩展名,开头就是一个“.”, ii. 在文件末尾添加代理信息,SOCKS5 代理类似这样:HTTP 代理类似这样:[http] proxy = socks5://127.0.0.1:7891 [https] proxy = socks5://127.0.0.1:7891
其中[http] proxy = http://127.0.0.1:7890 [https] proxy = http://127.0.0.1:7890
127.0.0.1
是本机地址,7891
和7890
都是端口号,proxy
前面有一个制表符(Tab),注意,这里的代理地址仅为范例,以具体情况为准。 - macOS 版 GitHub Desktop 的
.gitconfig
文件在~/
,可以在终端(Terminal)用 Vim 打开文件并编辑,步骤为:
i. 在终端(Terminal)输入vi ~/.gitconfig
并回车;
ii. 按i
键进入插入(insert)编辑模式;
iii. 在文件末尾添加代理信息,格式和 Windows 的一样;
iv. 按ESC
键退出插入编辑模式,输入:wq
,回车保存。
我没有 macOS,所以并没有测试这样操作是否可行,仅供参考。另外,这部分参考了:https://www.jianshu.com/p/5e74b1042b70。 - 对比
i. 设置前ii. 设置后
4.8 “任务5.8 回到 Github 自己账户下的作业仓库页面,向远程公用作业仓库的 master 分支发起 Pull Request,在提交的 Pull Request 的标题(title)中填写自己所在的钉钉群名,如示例:【032901】自学训练营 DAY1 ,并在评论(comment)中 @自己的助教(请向助教索要他的 Github 用户名)提醒他检查作业”
- 标题要求和示例不一致,应为“==填写自己的学号、钉钉群名、日期序号,如:【032901】自学训练营 DAY1==”;
- 助教的 GitHub 用户名在开营的时候就给出比较好,写在钉钉的名字上也可以,不然写评论的时候临时问可能会有不便。
- 搞清楚“拉取请求(Pull Request,简称 PR)”的目的和意义
- GitHub Desktop 进入 Option 的方法
- GitHub Desktop 代理设置
配置本地运行开发环境
2.5 小时
- 成功安装了 Anaconda3 及其他软件/程序;
- 掌握了 VS Code 扩展的安装方法;
- 配置了使用 VS Code 撰写 Python 程序和 Markdown 文档的相关扩展;
- 编写了第一个 Python 程序(Hello, World!);
- 明确了提交作业的流程;
- 配置了 JupyterLab。
本次学习特别强调,学习对象是 Python 3.x,不解答任何 Python 2.x 的问题。 这个要求事实上是暗示要安装 Anaconda3,而非 Anaconda2。实际上现在在 Anaconda 官方网站的下载页面上直接下载的 Windows 版安装包就是 Anaconda3,但助教为了方便学员,特别提供了清华大学开源软件镜像站的 Anaconda 下载页面,这个页面上有各种版本的 Anaconda,我就多想了些,觉得 Anaconda 官方网站应该也有类似的下载页面,又回忆起 2015 年的 XcodeGhost 事件,认为从安全的角度考虑,能用官方下载就不用第三方下载,就算用第三方,下载后也要想办法和官方提供的包进行 MD5 对照检查。在这种思路的引导下,我找到了 Anaconda 官方网站的所有版本下载页面(https://repo.anaconda.com/archive/),这里有各种版本及其 MD5,我就从这个页面下载了最靠上的 64 位 Windows 版安装包,下载的时候完全没有意识到这是个 Anaconda2 的包。 下载完成后我就一股脑完成了安装,安装界面上的 Python 2.7 也没有警示到我,直到有同学在学习群里贴安装截图询问的时候,我才发觉不对——为什么他的截图上显示的是“Anaconda3”,而我这里是“Anaconda2”?有什么区别? 快速 Google 了一下我就明白了,我弄错安装包了,而且更无奈的是,Anaconda2 和 Anaconda3 没法共存,所以我能做的就是——卸载 Anaconda2,另装 Anaconda3。好在我发现得早,没做更多的设置,也就没有太多的返工。 另外,我在搜索的过程中,发现了另一个 Python 3.x 强于 Python 2.7 的地方:多语言支持,简单说,就是中文支持更好。我觉得就这一条也值得用 Python 3.x。
PATH 指的是“环境变量”,很多人都没听说过这个东西,所以也值得一记。
设置环境变量的目的,是让某个位置的程序在任何位置都能运行。
举例来说,装好 Anaconda3 后,随带的 Python 在 C:\Users<em>UserName\Anaconda3\python.exe
NodeJS 的安装
小时