Go语言学习之路
2018年09月08日
缘起
- 2018年5月左右了解区块链知识后,开始想了解Go语言,只是主观有想法,并没有安装啥环境,当时弄论文答辩、毕业相关,就从图书馆借了本《Go语言学习笔记》,实话,当时看其实并没有啥感觉,纯粹只是看看。
- 等正式接触链码开发时,装环境,写链码(chaincode),虽然日常语法也能看懂,虽然没有分号,类型写在后面,这些开始不太适应,后面上手倒也挺快的。但代码中
make()
,defer
以及提到的并发和goroutine
和通道这些关键字,总有点似懂非懂,于是琢磨着是不是学一下这门语言。
- 大概7月左右下了本《Go语言实战》以及《Go程序设计语言》,于是7-8月只是随意翻看两本书的内容,日常也做做笔记,敲敲代码,但并没有系统看,或者把这个学习当个task来认真对待。
- 真正想认真去看呢是2018年35周(8.27-9.2),具体那一周有啥输出,后面会聊到。
- 总体目标而言是2018年度把提到的3本书给吃透,如果没有看完,至少要知道自己的问题在哪,而不是这个任务就挂起了。
内容
0、写在前面的
- 因为前期这三本书都有粗略的翻过,大概知识点也知道,于是画了个思维导图,同时“按周安排的学习任务”。
- 总体而言呢,《TGPL》的书有点难度,一些知识点穿插其中,主要啃这本书。其它两本呢,一当是复习,二当是对学习《TGPL》是不是有些点有促进作用。
1、按周安排的学习任务
- 35周(8.27-9.2)已完成
- 安装好开发环境,《GIA》chap02、《TGPL》chap01的代码,照本抄着运行起来,建立一种感觉,当然前期可以运行一下Hello World,并提交到GitHub上。
- 这部分遇到的问题,找身边的人问一下,或者网上问一下,都能解决,耐着性子敲着并运行。大概会遇到两类问题。
- 如何引用包,
go get
从github下载过来的文件夹如何在.go
里找到。
- 代码如果不放在
GOPATH
下可能运行结果不错。
- 36周(9.3-9.9)
- 目标:了解程序结构、常见基本数据类型、main函数的使用,在运行代码中学习语法点,并将代码提交到github上。
- 任务list
- 复习35周的内容。
- 粗读下《TGPL》的chap02-chap09,精读《TGPL》的chap02。
- 精读下《GLSN》的chap01、chap02。
- 37周(9.10-9.16)
- 目标:因为本周末要去青岛,本周就少一些,代码还是要提交的。
- 任务list:
- 复习35周的内容。
- 把《TGPL》chap02精读过程中的问题列一下,chap03也开始读。
- 《GLSN》的chap03得结束,总体而言,这本书没啥难度。
- 可以在路上或者住酒店的时候看看《GIA》的chap01-chap03的电子书内容,权当是复习吧。
- 38周(9.17-9.23)
- 目标:Go里面的”程序结构、基本数据、复合数据类型“常见内容要OK。也就是《TGPL》的前三章,不会的要单独列出来,哪一节的哪个知识点,还是某一节都不OK。
- 列出《TGPL》前3章的问题点,以及有哪些收获。
- 列出38周之前没有真正做到的部分,然后重新排39周的学习任务和目标。
- 完成的list
- 《GLSN》的chap04函数第一遍看完。defer和匿名函数语法上有初步认识,但应用场景还在琢磨
- 39周(9.24-9.30)
- 40周()
后记
备注
- 《Go语言学习笔记》简写成GLSN “Go Language Study Notes” 这是我自己标记的
- 《Go语言实战》简写成GIA 《Go In Action》
- 《Go程序设计语言》简写成TGPL 《The Go Programming Language》