时间:2020.11.07 - 2020.11.13

一,本周重点

web后端开发相关

  1. 前端开发的基础知识:HTML(定义网页结构),css(定义网页样式),javascript(定义网页行为)(jguery框架)
  2. html是超文本标记语言,不是编程语言。
  3. web应用的最大优点:不需要安装就能通过浏览器打开。
  4. 什么是web应用?基于web技术实现的软件,是基于超文本和http协议的。
  5. 嵌入式系统是属于Linux系统的,最大的特点是便携,小。
  6. 要学习的数据库:mysql,redis,mongodb。
  7. 为什么要学习http协议?开发的web应用是基于超文本和http协议的。
  8. http是基于tcp和IP协议的。

团队开发与git使用流程

  1. 一个开发团队根据职能来区分主要有:前端,后端,测试,运维,产品经理,
  2. 什么是版本控制?主要是对文件的不同版本进行管理,若不通过git版本管理软件管理就需要手动备份和查找。
  3. git包含:工作区(当前的目录),暂存区(通过git add+文件名 :添加文件到暂存区),
  4. 通过git commit -m +”描述性的信息”。将文件添加到本地的版本仓库,然后会生成一个版本号。
  5. github 是分布式版本控制软件,也是系统软件。
  6. git status查看当前目录下的所有文件状态信息
  7. git log 查看版本的提交的历史信息。
  8. 将本地的文件推送到远程(首先得git commit )
  9. 在推送之前需要先拉取(将远程更新和本地的进行合并。),git pull orign master(若未创建主分支master,就直接git pull和git push),若远程没有更新则可以直接git push而不用再git pull。
  10. 分支(branch),origin(远程),git push origin master:将本地的当前分支的提交推送到远程的master主分支。
  11. 使用git的流程:首先云端创建一个新的仓库,然后克隆到本地,生成一个本地的版本仓库。在本地使用git的时候,手动创建python文件 ,然后将python文件添加到暂存区,之后再提交到本地的版本仓库,最后再拉取远程仓库与本地仓库进行更新合并操作,再最后将python文件推送到远程仓库。
  12. git add+目录,直接将一个目录添加到本地的版本控制仓库。
  13. git rm+文件名(参数 -r,递归删除):使用git命令删除一个文件。
  14. 使用git的流程:

第一周知识周报 - 图1
1.jpg

Windows命令行与Linux命令行

  1. 在Windows中cd命令无法跨磁盘操作
  2. 绝对路径和相对路径的表示方法:绝对路径带盘符;相对路径使用点和点点来结合表示。cd ..可以切换到当前目录的父目录。
  3. 环境变量:配置环境变量是将可执行exe文件的绝对路径添加到系统变量path中。
  4. 为什么有了短选项,还要使用长选项?长选项可读性比较好,短选项命令方便快捷。(短选项和长选项有的命令是一样的,但是短选项和长选项不能同时使用。)
  5. Linux命令行中,pwd命令:查看当前目录的绝对路径,绝对路径都是以正斜杠开始的完整的一个路径。
  6. 前向查找:意思就是向前面查找。
  7. Linux系统的主要特点:路径以正斜杠划分,根目录是正斜杠,家目录是/home。
  8. $PATH,表示将path变量的值取出来,然后再将后面的路径进行拼接。
  9. 逻辑电路主要由三种基本门电路组成,与门,非门,或门。
  10. Linux命令行中,touch命令创建一个或多个文件。rm删除文件
  11. Linux系统中一切皆文件,目录也是文件。
  12. Linux中点号和点点号分别表示当前目录和父目录。
  13. vim模式中的命令模式时可以快速定位到文件的尾部:shift+g。
  14. 怎么在vim中进行查找?前向查找,后向查找,在末行模式中使用?进行前向查找,使用斜杠/进行后向查找。(同时按下SHIFT键和英文的:符号,可以切换到末行模式。在末行模式中输入q退出vim,输入q!强制退出vim,执行q命令不会对文件进行保存。输入x可以直接对修改后的文件进行保存,输入w加文件名,可以将文件内容另存至其它文件。在末行模式中使用?号进行前向查找,使用/符号进行后向查找。在查找过程中按下键盘的n或N键(next)来跳转到下一个查找位置。)
  15. 怎么手动模拟(手动模拟:不同的人修改同一个地方。)和解决git过程中的冲突?打开文件,将git的标记符号用命令行模式dd来删除,或者在编辑模式中删除,同时与同事进行协商讨论所要保存的代码。
  16. 手动解决冲突后,还要重新git add添加,git commit 提交,最后再重新拉取和推送。

冯诺依曼体系与cpu的组成结构

  1. cpu里面包含寄存器。
  2. 程序中的指令和数据存储在内存中。
  3. PC (program counting)的概念:程序计数器相当于一个指针,用来在执行程序指令时不断被同步修改,使得其始终指向将要执行的下一条指令。
  4. .py文件在计算机中本质是字节序列。在编辑器中输入的代码都是字符,然后在内存中通过字符编码将字符与字节码一一对应起来,(指令在计算机中是设计好的,都是二进制的字节序列。),然后再在内存中通过cpython首先将字节序列转换为中间字节码,之后cpython解释器再逐条地解释执行指令和数据,其实解释和执行就是将中间字节码进一步地翻译成cpu可以理解的字节码(机器指令),最终cpu执行机器指令。

1.jpg

  1. 查找ASCII码表和utf-8编码表,
  2. utf-8的编码规则:
  3. 缓存策略:因为高速缓存区容量有限,所以会优先缓存高频使用的数据和指令。(注意:而不是优先缓存当前活跃的数据和指令。)

计算机的信息表示

  1. 为什么不用二进制语言来编程?因为使用二进制编程很难实现更加复杂的逻辑,而且效率也比较低
  2. 十进制转换为其它进制,为什么除基数后要把余数逆序排列而不是顺序排列?因为刚开始计算的结果都是高位。
  3. 为什么计算机进行浮点运算时会出现精度损失?因为浮点数的小数位在计算机中是用二进制表示的,而十进制小数位转换为二进制需要不断地乘2取整,这样的运算是无穷无尽的,但计算机的存储容量是有限的,所以肯定会出现精度损失。
  4. int函数有两个参数,int(”0x5”,16)int(”0b101”,2)第一个参数是一个字符串,第二个参数表示字符串里的是多少进制,int函数可以将16进制数转换为10进制,可以将二进制数转换为十进制。
  5. 1P是1024T。

    二,本周难点知识笔记

    Linux命令行

  6. vim命令的基本用法:vim path_of_file,path_of_file表示文件的路径,文件不存在时会创建一个新文件。

  7. 使用vim命令的2种方法:第一种是切换到文件所在目录,然后执行vim+ 文件名(文件名要带后缀)命令即可;第二种是直接使用绝对路径或者相对路径的方法,即vim+ 路径+文件名。

常用的git命令语法

  1. git clone https://Aaron-jiuwei992:密码@github.com/Aaron-jiuwei992/Python-Learning.git:将远程仓库克隆到本地
  2. git add+文件名:将本地文件添加到暂存区。
  3. git commit -m “描述与改变和修改相关的信息,应该尽量简短扼要”
  4. git status:查看当前目录下所有的文件状态信息。
  5. git log:查看版本更改的历史日志信息。
  6. git pull origin master:拉取远程仓库的更新与本地合并。
  7. git push origin master:将本地更新的文件推送到远程仓库,与远程仓库进行更新合并。

冯诺依曼体系与cpu

  1. 画出冯诺依曼体系的逻辑组成结构,描述各组成部分的作用。
  2. 画出CPU的逻辑组成结构,描述程序计数器的作用。
  3. 画出计算机存储设备的层次结构,并以此分析缓存的必要性
  4. 画出计算机内存的逻辑结构(一个线性的字节数组,字节编号就是内存地址。有一个四个字节的话,地址仍然式第0个字节编号开头。),并回答何为内存地址。

    三,我的思考

    学习方法

  5. 根据本周知识点的不同类型可以采用不同的学习方法。本周的知识一部分是需要死记的概念,另外一些是需要多实际操作才能完全掌握的知识点,因此本周的学习方法既要多反复记忆,又要结合实际多操作以达到熟练的目的。

  6. 对于难以理解或者很陌生的概念知识点可以通过做预习,边预习边做笔记的形式进行学习。在做笔记的时候可以将难以理解的知识点用键盘敲一遍,能加深记忆。

收获与成长

  1. 本周初步领略到编程过程中需要掌握的的一些规范,如写注释、程序文件的命名可读性问题,学会了将相同类的程序函数封装到一个程序文件中。
  2. 本周的知识点都讲到了web后端开发的相关知识、团队开发与git的整体使用流程、Windows和Linux命令行操作、冯诺依曼体系与cpu组成结构以及计算机中的信息表示。
  3. 对于web后端开发的学习有了清晰的概念,明白了需要掌握的知识点分布地图;
  4. 对在公司中团队开发的一些工作过程和交接有了一定程度的了解,学会了使用git版本控制系统来进行更新迭代式的开发。
  5. 对Windows和Linux操作系统的命令行使用有了比较清晰的理解,能使用命令行命令对文件进行创建、删除、复制、查看等操作,也能够在命令行中打开程序软件等等操作。
  6. 对计算机的组成结构有了一个比较清晰的概念,知道冯诺依曼体系结构式什么,知道cpu的逻辑结构,知道存储设备的层次结构是什么。

如何改进

  1. 经过作业的检测,知道了自己知识点的薄弱环节,也知道了有百分之一的那些知识点是需要反复记忆才能完全掌握的,对于这些我会重点抽时间复习。这百分之一的知识点主要是Linux命令行中一些带参数和选项的命令,这些参数和命令要想记牢固唯有多练习。

    四,单词背诵

    1、print:打印/输出 2、coding:编码 3、syntax:语法 4、error:错误 5、invalid:无效 6、identifier:名称/标识符 7、character :字符

1、user:用户 2、name:姓名/名称 3、attribute:字段/属性 4、value:值

1、upper:上面 2、lower:下面 3、capitalize:用大写字母写或印刷 4、title:标题 5、replace:替换 6、old:旧的 7、new:新的 8、count:计数 9、swap:互换 10、case:情形 11、path:路径 12、new:新的\新建 13、project:项目 14、test:测试 15、file:文件 16、data:数据

1、strip:去除 2、index:索引 3、find:查找 4、count:计数 5、start:开始 6、end:结束 7、chars:字符 8、sub:附属

1、input:输入 2、prompt:提示 3、ID:身份证 4、format:格式化 5、args(argument):参数 6、kwargs:关键字参数 7、year:年 8、month:月 9、day:日

1、tuple:元组 2、max:最大 3、min:最小 4、iterable:可迭代 5、key:关键字 6、function:方法/函数 7、stop:停止 8、object:对象

1、list:列表 2、reverse:反向 3、true:真 4、false:假 5、append:附加 6、extend:扩展 7、insert:插入 8、pop:取出 9、remove:移除 10、del(delete):删除 11、clear:清除 12、sort:排序

1、set:集合/设置 2、add:添加 3、update:更新 4、discard:丢弃 5、intersection:相交 6、union:联合 7、difference:差数 8、symmetric:对称 9、in:在…里面 10、not:不/不是 11、disjoint:不相交 12、subset:子集 13、superset:父集/超集 14、copy:复制

1、dict:字典 2、key:键/关键字 3、value:值 4、item:项 5、mapping:映射 6、seq(sequence):序列 7、from:从/来自 8、get:获取 9、default:默认 10、none:没有 11、arg:可变元素 12、kwargs(keyword args):可变关键字元素

1,pip:package install for python 2,esc:escape 3,computational adj. 计算的,电脑的 4,mode n. 模式 5,primitive n. 原始、基元,是后续操作的基础 6,gigabyte n. 千兆字节,是数据单位 7,storage n. 储存体, 仓库 8,retrieve n. 检索,恢复 9,algorithm n. 算法 10,accomplish vt. 完成