《自学是门手艺》GIT HUB地址:https://github.com/selfteaching/the-craft-of-selfteaching
预学习 2019.3.31
今天终于启动了编程之旅,前前后后花了五个小时才把第一天 的任务完成,在这个过程中,没有人可以问,唯一能依靠的是辅导员发过来的资料,按照说明,一步一步地往下走,一个小任务一个小任务地拿下,最终啃下了五个大任务。这是自己第一次面对一个完全陌生的领 域,完全只靠阅读来习得某项技能中的一部分,这是一个里程碑。也就是说,只要手头上有足够多的资料,我都可以通过阅读来自学。今天的人比一百年前的人幸福多了,想学任何一样东西,都可以在网上找到足够的资料,像以前,想拜个师,那真是太难了。要么是师傅藏私,怕教了徒弟饿死自己,一个好的师傅万里挑一,厉害的师傅不会轻易收徒,收的也不多,有些运气好的,跪上两三天,也许就收了,而运气不好的,跪上一个月也不收。就算是进了门,也是师傅领你入门,口心相授,没有文字资料,这也是为什么我国的很多传统工艺失传,而西方的科学能成为体系,为了防止手艺传到外边,每一代的掌门都死死地守住秘密,不到临终绝不把最后的家底透露出来,而万一有个意外,中途挂了,那手艺也就永远失传了。
学号:1901040047
姓名:朱家道
学习内容:DAY1新建库,创建分支,合并,克隆到本地,请求,利用桌面端同步
用时:5小时
收获:
今天终于启动了编程之旅,前前后后花了五个小时才把第一天 的任务完成,在这个过程中,没有人可以问,唯一能依靠的是辅导员发过来的资料,按照说明,一步一步地往下走,一个小任务一个小任务地拿下,最终啃下了五个大任务。这是自己第一次面对一个完全陌生的领 域,完全只靠阅读来习得某项技能中的一部分,这是一个里程碑。
一周前就注册了GITHUB账户。今天学了创建仓库,分支,合并,克隆到本地,提交申请,同步更新,创建ISSUE,安装GITHUB DESKTOP桌面端,学会了通过本地电脑把手头上的代码同步到GITHUB上,进行协同合作。
其中卡得比较久的位置是最后一步,回到 Github ⾃自⼰己账户下的作业仓库⻚页⾯面,向远程公⽤用作业仓库的 master 分⽀支发起 PullRequest,在提交的 Pull Request 的标题(title)中填写⾃自⼰己所在的钉钉群名。这一步居然用了一个小时,走了几次弯路,最后才发现,原来需要先创建一个文件夹,才能做以下的操作。当然,这些都是学习一门新手艺所必经的阶段,开始阶段是有点难,但迈过去之后,就顺畅了。
提交了之后导师说还有问题,于是我果断直接删了库,重建一个库,第二次做只用了半小时就完成了。
学号:1901040047
姓名:朱家道
学习内容:DAY2
用时:2.5小时
收获:
今天的学习内容比较少,主要是安装需要的软件及配置PYTHON的运行环境,编写第一个最简单的PYTHON程序,并用Anaconda里的组件JupyterLab看笑来老师的开源书。第一步早在几天前就把软件装好了,今天主要卡在了创建一个.py文件这件事上,学习资料那里说得不明白,我无法直接在电脑里面创建一个.py后缀的文件,只有.txt .doc等这些常见的,后来请教导师,直接在VSD里面像WORD新建文件一样新建一个,这个方法好得很,简单,直接。
然后是在配置环境那里花了很长时间阅读,也不知道要做什么。这一步是糊里糊涂的,内容太多,对于我们初学者来说,抓不到重点,老师们可不可以整理一下文件呢?
学号:1901040047
姓名:朱家道
学习内容:DAY3
用时:5小时
收获:
今天的学习内容是浏览,大概了解一下PYTHON主要是做什么的,可以完成什么任务,各种字符的作用及字符串组合的使用,然后根据这些内容编写一个基本的包含加减乘除的计算器程序,花了三个小时来阅读英文内容,然后花了半小时来阅读中文版的。第一次正式动手编写程序,第一步,依然是上网查,看看别人的程序是如何实现的,模仿并不丢人,重要的是搞懂程序实现的逻辑。看了几个程序之后,知道了编一个计算器,需要三个部分组成,定义加减乘除函数,用户选择计算方式以及输入需要计算的两个数字。
弄懂了之后,就开始把程序逐个输进去,然而,问题来了,当我把代码全部敲进去后,运行却出现了代码不能识别的问题,卡在这里好久,提交ISSUE,导师说在程序前加两段代码可以解决,于是我照做,然而这次出来的结果,却是几行乱码,就像我们用WORD打开了不支持的文件一下。没办法,只好先得交作业。第二天,我另外安装了PYTHON3.7,再运行那个程序,完全没有问题。
对于我们来说,每一个小障碍都可以挡住我们好久。不知道原因的话,花很多时间都解决不了问题。由于笑来老师一再说,要尽量自己解决,这样多花了很多时间。如果问题解决了还好,如果最终没能解决,那真是绕好大的弯。当然,不管绕到哪,能力都能得到提升。
学号:1901040047
姓名:朱家道
学习内容:DAY4
用时:4小时
收获:
今天的学习内容是学会使用两个循环语法,FOR 和WHILE,并且使用FOR编写一个九九乘法表,再用WHILE编写一个只含有奇数行的九九乘法表。今天主要弄清楚了FOR函数的使用格式,以及外循环和外循环,利用PRINT函数逐个条打印内循环,打完内循环再打外循环。并使用" \t“制表符来对齐,用end=" “命令来结束,用format命令来规范打印的格式。
学会了两种不同的打印方法,一种是直接打,像print(j,"*",i,"=",i*j,end='\t')这种,另一种是先定义好一个函数,比如,spe=i*j,再把定义好的这个函数放到打印的内容里面去 print('{}*{}={}'.format(j,i,spe),end='\t'),这种排版会比较紧密,而上面那种直打的排版会比较疏朗。殊途同归。这算是一种简单的函数调用吧。还学会了奇数的判断方法, while x % 2 = 0:
通过慢慢地思考,慢慢地搞懂了机器的逻辑,还尝试了好几十遍,略改一个参数,程序的运行结果会产生怎样的变化,这是一种很好的体验。
学号:1901040047
姓名:朱家道
学习内容:DAY5
用时:5小时
收获:今天有三大学习任务,一是字符的基本处理,在一段文字里进行单词替换,查找并删掉含有某个字母组合的单词,对文段中的字母进行大小写字母的转换,并对结果中的单词进行升序排列,并输出结果。任务二是统计文段中各个词汇出现的频率,并按每个词出现次数,从大到小进行排序,并打印结果。任务三是对数组进行颠倒、化字符串、切片获取某段数字、转换为INT型、进制转换。用到的命令语法比较多。这些命令都比较实用,尤其是统计词频,是一大利器。我想,热搜用的就是这个技术了,把每个人的搜索某词的次数进行统计,就得到热搜榜的前十个热搜词了。
还用到了replace(替换) ,reverse(颠倒), swapcase(大小写字母互换),[]列表,find(查找),sort(排序),lower(变换小写字母),d{字典},count(数数)等命令。
今天学习进行到第五天,回头一看,第一天的自己是多么的笨拙,光是为了打印出‘HELLO WORLD’,这个最简单的PYTHON任务,都花了近五个小时。在逐渐入门了以后,慢慢地领会到计算机语言的精妙之处,真是增之一分则肥,减之一分则瘦,无论是增还是漏掉一些东西,程序都不能运行,务必极其精确。我在想,如果小孩能从小学习编程,并且能学下去,他的其它学科的学习怎么可能差呢?如此严谨的逻辑思维之下,数学是不可能差的,英语也是不能差的,阅读理解能力也不能差,因为每一个差了,都无法进行下去。所以,当我家小孩能懂一点逻辑的时候,我要让她学编程。定义好一个函数,并赋值,我们就可以调用它,这又跟你在社会上调用各种资源很相似,当我们掌握的函数越多,那么可以调用的资源就越多,那时就会发现,左右能逢源,资源信用拈来,那是多么幸福的事情。同时,在程序世界里,实现任务的方式有很多种,有的需要很多步骤,而有的简洁优美如同艺术,每当发现一种简洁优美的实现方式,都像找到一个宝藏一样会愉悦那一阵子。