selfteaching-learning-notes / selfteaching-learning-notes.github.io

自学营学员学习笔记
https://selfteaching-learning-notes.github.io
15 stars 83 forks source link

1901100244-自学训练营学习20群-Python入门 #281

Open shen-huang opened 5 years ago

shen-huang commented 5 years ago

学员信息

学习笔记

收获总结

  1. 明确了“自学是一种社交行为”;
  2. 认识到入门营的目的:先完整地做完一轮任务,不求甚解;
  3. 要尝试通过多种途径进行学习,包括但不限于:课程文档、官方文档、搜索引擎、课程教练、训练营同学;
  4. 不要认为“没什么可谈的”,事实上,学习过程中出的很多问题都并不复杂,觉得需要问就问,觉得可以答就答,不必在意“露怯”;
  5. 教学相长,自己可能晃过了别人掉的坑,别人也可能跳过了自己掉的坑,相互帮助,学习效果才会更好。

遇到的难点与问题

1. 网络环境

正常访问 GitHub 和 Google 是个难点

:exclamation::exclamation::exclamation: 据我所知,用于正常访问 GitHub、Google 等网站的计算机(特别是 Windows 系统的),应该避免安装中国大陆地区的各类“安全软件”、“浏览器”甚至“全家桶”,包括但不限于:

有些人可能担心安全问题,其实 Windows 10 自带的 Defender 防护能力非常强,在 2019 年 6 月的 AV-TEST 评测上,Defender 已经成为“顶级产品”了,所以一般使用是不必另外安装安全软件的。

参考资料:
相关知识总结
机场简介
Google 百度和谷歌的那些事
百度云安全让史上最强 DDoS 攻击消于无形
谷歌 Play 商店允许中国开发者销售付费应用

2. 手册话语

手册当中有大量不甚规范的表达,比如——

还有很多同类情况,就不一一列举了。

这类问题在阅读时会给人“磕磕绊绊”的感觉,或许很多人并不在意这些细节,但这些细节会从一个侧面体现出主办方的水平,故而也不应轻慢。

总结

shen-huang commented 5 years ago

附录

本部分用于记录一些与任务关联不大,但值得记录的内容。
部分内容可能暂不完整,会随着任务进程逐步更新。

学员信息

Markdown 相关信息

在 GitHub 上写文档建议使用 Markdown 格式,这是一种“轻量级标记语言”,其设计目的是为了让人们“使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档”。

简单地说,Markdown 格式就是为了给纯文本格式的文档快速地添加一些格式化标记(比如标题、粗体、斜体、引用、链接等等)所用的一种格式。Markdown 文档使用“.md”扩展名,其实质还是文本文档,只是把文本文档的“.txt”扩展名换成“.md”罢了。

1. 相对完整的参考资料

Markdown 最基础也是最核心的资料,当属由 Markdown 格式创始人约翰·格鲁伯John Gruber)公布在 Markdown 项目网站(https://daringfireball.net/projects/markdown/)上的讯息,在项目网站上,约翰·格鲁伯给出了 Markdown 格式的基本用法以及Markdown 格式的详细语法,他还做了一个在线转换器,可以简单地把 Markdown 格式文本转换成 HTML 格式文本,同时预览浏览器显示的样子。

不过,因为约翰·格鲁伯表示“Markdown 是一种书写格式,而不是一种发布格式”,且他允许不同的平台和应用根据需要对 Markdown 进行调整,使得 Markdown 出现了比其他计算机语言严重得多的“方言现象”。具体的表现是⸺在某个地方可以使用的写法,在另一个地方识别不出来。

这种现实使得我们在使用 Markdown 撰写文档的时候,要知道所用的平台具体支持哪些标记,否则就可能出现“辛辛苦苦写半天,渲染根本不出现”的情况。

具体到 GitHub 上,由于 GitHub 使用了自有的扩展语法“GitHub Flavored Markdown(简称 GFM)”,所以除了 Markdown 官方网站之外,还应该阅读一下 GitHub 的《关于在 GitHub 上编写和设置格式》(About writing and formatting on GitHub)、《基本撰写和格式语法》(Basic writing and formatting syntax)、《使用高级格式》(Working with advanced formatting)等文档中的内容。
(注意,这些文档的中文翻译版或有错漏,阅读出现疑问时,可参看原始的英文版。)

GitHub 为 Markdown 扩展了许多有价值的功能,比如通过键入 :EMOJICODE: 来插入表情符号(键入 :+1: 来插入 :+1: ,键入 :smile: 来插入 :smile: 等,完整列表可以参看《表情符号备忘录》),再比如通过在围栏代码块标记(```)上添加语言标识符(PythonJAVAC等)实现代码高亮等等。

GitHub 在《GitHub Flavored Markdown 规范》中诠释了这一扩展语法的设计构思和细节,有余暇的时候也值得细读。

另外,毕小朋著,电子工业出版社出版的《了不起的 Markdown》也是值得一看的参考读物,里面除了介绍常见的 Markdown 语法外,还讲解了相关应用(Typora、VS Code、reveal.js 等)的使用细节。
这本书的相关信息⸺
在线试读:百度阅读CSDN 博客
纸质版购买:京东天猫
电子版购买:亚马逊

2. 具体使用时的细节

2.1. 软件配置

如果是一般性地使用 Markdown,那么直接下载安装 Typora 即可,下载页面:https://typora.io/#download

安装后的具体设置和使用可以参考《Typora:简单高效的 Markdown 编辑器》一文,也可以参考《了不起的 Markdown》中的相关章节。

如果是为了和 GitHub 联动而使用 Markdown,那么使用 Visual Studio Code(简称 VS Code)编写 Markdown 可能会更顺手。

如果成功安装过 Anaconda,那么 VS Code 就应该一并安装了。也可以直接从 VS Code 的官方页面(https://code.visualstudio.com/)下载 VS Code 的安装包后单独安装。

VS Code 强大的一点是其可以安装大量的插件,安装方法是:

  1. 使用快捷键 Ctrl + Shift + X(Windows)或 Command + Shift+ X(macOS) 进入插件市场;
  2. 在搜索框中输入计划安装插件的关键字;
  3. 在搜索结果中点击插件名,会出现插件的详情页;
  4. 在详情页点击“Install”安装插件;
  5. 重启 VS Code。

我所安装的插件有:

我现在通常使用 VS Code 撰写 Markdown 文档,使用 Typora 阅读 Markdown 文档。

2.2. 使用技巧

其实官方文档几乎已经涵盖了应该知道的各个方面,不过还是有些特别的细节需要单独做做功课。

2.2.1. 一些应当在意的操作
换行
引用
字符

标点 撇号、引号、括号、省略号

空格

Unicode 字符

图片

经测试,GitHub 上 Markdown 文档中的图片尺寸可以调整!
使用 <img> 标签,用类似这样的写法即可: <img src="https://raw.githubusercontent.com/shen-huang/img/master/2019-08/Good_Cheap_Fast_Trilemma.gif" width="200px" alt="质量_价格_速度_不可能三角" />。 对比一下:

质量_价格_速度_不可能三角 质量_价格_速度_不可能三角

注意!只能用 <img> 标签的属性进行设置,通过 CSS 样式是设置不了的!如 <img src="https://raw.githubusercontent.com/shen-huang/img/master/2019-08/Good_Cheap_Fast_Trilemma.gif" style="width:200px;" alt="质量_价格_速度_不可能三角" /> 这样,是不行的!

列表
代码
表格
样式

虽然 GitHub 显示 Markdown 文档的时候会把各种自定样式都去掉,但我们还是可以利用 HTML 标签配合 Stylus 插件的方式进行一些样式调整的。

GitHub 接受的 HTML 标签有:

h1 h2 h3 h4 h5 h6 h7 h8 br b i strong em a pre code img tt div ins del 
sup sub p ol ul table thead tbody tfoot blockquote dl dt dd kbd q samp 
var hr ruby rt rp li tr td th s strike summary details caption figure 
figcaption abbr bdo cite dfn mark small span time wbr

这其中 bi 基本上是不会使用的(通常使用 strongem),而 span 本身就是用来添加样式的。故可以用 <span><i>...</i></span> 来标记一段文本,再用 Stylus 给 span i 设定格式就行了。<span><b>...</b></span> 按理也可以这样操作,但若是照搬 <span><i>...</i></span> 的 CSS 设置,会导致标记文字的粗体无法取消,我试验了 <span><span>...</span></span>,发现会意外地匹配上页面别的部分, <span><span><span>...</span></span></span> 也不好用,最后发现是 span bspan i 的 CSS 设置有分别,想要去掉标签原本默认的效果,span i 要设置 font-style: normal;span b 则要设置 font-weight: normal;

我使用了:

span i {font-style: normal; color: #444444; font-size: 87.5% !important;}
span b {font-style: normal; font-weight: normal; background-color: #ffff00; }

How to display HTML content in github README.md?
sanitization_filter
HTML 标签
CSS 选择器参考手册
CSS 的 ID 和 Class 有什么区别?如何正确使用它们?
GitHub README 文件语法解读

转换

Markdown 与其他格式的转换 Markdown 格式如何转换成 Word? Pandoc Markdown 输出质量可靠的 PDF(参见 吐槽 部分 “复制任务手册中的文本总会出现重复的字”)

3. 参考文献

软件、应用、程序、网站(Windows 平台)

为了正常访问 GitHub、Google 等网站,应该避免安装中国大陆地区的各类“安全软件”、“浏览器”甚至“全家桶”,为此,我觉得相应地提供一些细节上的建议是有必要的。由于个人主要使用 Windows 系统,所以本部分内容以 Windows 平台为主。

按使用类型分类,给出必装(★★★★★)、推荐(★★★★)、可用(★★★)、一般(★★)、回避(★)、禁绝(☆)六个级别的评价。

系统

网络

工作

媒体

学习

娱乐

参考资料:
我最喜欢的软件 Windows 版 - 小众软件
精品绿色便携软件
善用佳软
浏览器 user-agent 字符串的故事
History of the browser user-agent string
List of User Agents
网页浏览器列表
HTML5 test
如何评价2345?

吐槽(?)

搜索问题汇总

在与同学们交流的过程中,我发现很多人的问题都是“不擅搜索”,这让我意识到,把我遇到问题时我尝试的关键字记录一下,可能也有些参考价值。

根据主题大略归了一下类,内部的顺序就不细调了,基本是根据时间先后记录的。

shen-huang commented 5 years ago

学员信息

学习笔记

收获总结

  1. 明确了使用 Git 和 GitHub 的目的——Git 用于版本控制,GitHub 用于网络协作;
  2. 掌握了拉取请求(Pull Request)相关的操作;
  3. 了解了 GitHub 的工作流程。

遇到的难点与问题

1. “任务2.3 在 develop 分支中创建一个名为 develop.txt 的文件,提交一个 commit”
  1. 创建文件的操作方式在“参考资料1”中没有;
  2. 新手在尝试创建 develop.txt 时可能会漏掉“.txt”,应予强调;
  3. 底部“Commit changes”区的提交信息(a commit message)比较重要,不填写或仅依靠默认内容有可能导致无法提交,造成困扰,应予强调;
  4. “提交一个 commit”表意不明,“commit”本身含义即为“提交”,这一词原本还没有名词词性(GitHub 直接把它当名词用了),故原文的写法令人难以理解,考虑上下文及用例(make a commit、add commits,参见 https://guides.github.com/introduction/flow/ ),可改为:填写相关说明(在页面底部),并提交新文件(Commit new file),或者:填写相关说明(在页面底部),并创建一个提交(commit)
2. “任务2.4 从 develop 提交一个 Pull Request 到 master 分支,并将其合并(merge)”
  1. “develop”写为“develop 分支”比较好,避免误解;
  2. 拉取请求(Pull Request)是 GitHub 协作的核心操作之一,但这个词理解起来颇费思量,简单的解释可以是“请求代码合并”、“请求对方拉你的代码”( 参见 https://www.zhihu.com/question/21682976 ),比较详尽的解释建议参考 GitHub 官方的说明网页( https://guides.github.com/introduction/flow/ );
  3. “(merge)”写为“(Merge)”比较好,与页面一致。
3. “任务3 在 GitHub 的仓库中提交 Issue”

Issue 的位置与“参考资料2”中的截图不一致,应是 GitHub 改版导致的,寻觅了一小会儿。

4. “任务4.2 通过 下载地址 安装 Github Desktop 桌面客户端,完成后登录自己的账户”
  1. “GitHub Desktop”已经有“桌面”的含义,再说“桌面客户端”有语意重复之嫌,或写为“GitHub Desktop 客户端”即可;
  2. GitHub Desktop 登录后如果没有克隆任何仓库到本地的话,主菜单出不来,很难找到登出的地方(我错误地登录了一个旧账号,故需要登出),Google 后了解到,可以通过按快捷键 Ctrl + , 进入 Options 完成登出操作。
5. “任务4.4 在本地电脑的 hello-world 仓库中创建一个名为 local.txt 的文本文件”
  1. “文本文件”或应写为“文本文档”,与 Windows 的表述一致。
  2. 为了避免建立扩展名错误的文件(如local.txt.txt),应将文件资源管理器设置为显示文件扩展名(【查看】→勾选【文件扩展名】)
6. “任务4.5 通过 Github Desktop 将本地仓库新增的文本文件提交为一个 commit”

“提交一个 commit”和“提交为一个 commit”有什么区别?两种表述法都很不清晰,建议改写,或可写为:填写相关说明(在软件左下角),并提交(Commit to master

7. “任务5.3 通过 Github Desktop 将自己账户下 fork 的作业仓库 clone 到本地电脑”
  1. 这一步耗时甚久,大约 180 MB 的文件,下载速度只有 10~20 KB/s,前后花了约两个小时,手册应该对这种情况予以提醒;
  2. Google 了一下,知道了出现这种情况的实际原因—— GitHub 相关的一些域名被限制了(如 http://github.global.ssl.fastly.net);
  3. 不同人给了不同的解决方案,如:改 hosts,利用开源中国提供的代码仓库(码云 Gitee)转移,给 GitHub Desktop 设置代理;
  4. 个人认为相对彻底的解决方案应该是 GitHub Desktop 整体走代理,方法有两种,一是开 VPN,二是配置 GitHub Desktop;
  5. 考虑眼下的实际情况,VPN 不算靠谱,所以就只能配置 GitHub Desktop 了,试验发现,GitHub Desktop 不从系统设置中取代理服务器,用修改配置文件的方法才能设置代理
  6. Windows 版 GitHub Desktop 设置代理的方法如下:
    i. 用文本编辑器打开C:\Users\<UserName>\.gitconfig 文件,注意 <UserName> 要换成自己的账户,直接搜索“.gitconfig”也可以,这个文件只有扩展名,开头就是一个“.”,别弄错了;
    ii. 在文件末尾添加代理信息,SOCKS5 代理类似这样:
    [http]
        proxy = socks5://127.0.0.1:7891
    [https]
        proxy = socks5://127.0.0.1:7891

    HTTP 代理类似这样:

    [http]
        proxy = http://127.0.0.1:7890
    [https]
        proxy = http://127.0.0.1:7890

    其中127.0.0.1是本机地址,78917890都是端口号,proxy前面有一个制表符(Tab),注意,这里的代理地址仅为范例,以具体情况为准。

  7. 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
  8. 对比
    i. 设置前
    GitHub_Desktop_设置代理前
    ii. 设置后
    GitHub_Desktop_设置代理后
8. “任务5.8 回到 Github 自己账户下的作业仓库页面,向远程公用作业仓库的 master 分支发起 Pull Request,在提交的 Pull Request 的标题(title)中填写自己所在的钉钉群名,如示例:【032901】自学训练营 DAY1 ,并在评论(comment)中 @自己的助教(请向助教索要他的 Github 用户名)提醒他检查作业”
  1. 标题要求和示例不一致,应为“填写自己的学号、钉钉群名、日期序号,如:【032901】自学训练营 DAY1”;
  2. 助教的 GitHub 用户名在开营的时候就给出比较好,写在钉钉的名字上也可以,不然写评论的时候临时问可能会有不便。

总结