Go语言实战笔记(二十八)| Go 后记
《Go语言实战》读书笔记已经完结,感谢支持,欢迎扫码关注公众号
flysnow_org
或者网站http://www.flysnow.org/,跟进后续文章。
《Go语言实战》笔记到现在算是结束了,基本上关于Go的方方面面都讲到了,还有些不是太常用的,比如CGO以后会专门再讲,不会放在这个系列里了。该系列一共写了近30篇文章,约15W字,大概写了近4个月的时间,基本上每周一篇,产出不算高,但还算稳定。
初衷
我14年接触Go语言,是因为Docker,才开始去了解这门语言,入门很简单,比C语言更容易,并且性能也很高,所以就选择了这门语言作为我的“C语言”,平时做一些辅助工作或者批处理的工具什么的,并没有花很大精力去学。
在后面的两年,一直到16年,接触和使用Go都比较少,一直到Go成为16年的年度语言,又开始拾起来。那时候PHP已经开始有点没落,并且边缘化,PHP招聘越来越难,简历也越来越少,PHP的供应越来越不足。在面试PHP的过程中,发现很多PHP的开发人员已经在原来的公司内部转Go,他们找工作虽然还是PHP,但是希望做一些GO的开发工作,或者公司有着方面的计划,这些使我觉得PHP转GO可能是个机会,不管是对公司还是个人,就像10年Java转做Android一样。
所以我就有了让手下的PHP项目组转Go的打算,一来对公司可以同时使用Go和PHP的人才,满足业务需求;而来对于项目组内的PHP人员也是个机会,跟上技术发展的红利,并且可以享受它。为了更好的转,我就开始继续深入学习Go(我自己本身是Java系),自己熟悉了解后,转型也不至于太盲目,所以就买了些书,这其中就包括《Go语言实战》,经典的Action系列。
在我学习的过程中,为了也让同事以及想学习Go的朋友们更好的入门和深入Go,所以我萌发了写这本书的读书笔记,结合自己的理解,用更通俗的语言,诠释书中的内容,并且引申讲解相关的知识点,让大家知其然,并且知其所以然。
过程
写作不是那么容易的,尤其是持续的写作,坚持也很难,还好我以前有写博客的习惯,也写过一本书《Android Gradle权威指南》,所以还算好,产出虽然不高,但是还算稳定,最终写完。
学习一门语言或者说新东西的时候,想的和实践的是不一样,在读这本书的时候我有很深的这样的感触,以前的一些理解,在真正的通过代码实践去验证的时候,发现和想的不一样,我通过实践也不断的修正我以前错误的理解,让我对Go的理解更深入一些。
这本书的好处,在于介绍了一些原理,比如map的内存分配,数组的底层是什么样,这是这本书优秀的地方,不止让我们会用,还要知道它是个什么东西,所以基于此,我也会在我的系列中加入了一些源代码的分析,通过源代码的辅助和理解,更好的学习这个概念。
基础
这本书特意写了笔记,还有一个原因是:不管学什么语言,要注重基础。我面试的时候也是一直坚持这个准则,考试基础,因为基础就像大楼的地基一样,基础越好,走的更远。
尤其对于初学者,不要为了追求成就感,好高骛远,先使用大量的第三方框架工具,开发自己的项目,很快。但是如果你基础不好,这个框架你根本看不懂,一旦遇到问题,你就束手无策,而且对于你自己,如果你换家公司,他们不用这个框架了,那么你以前工作经验都是白搭,无法让你溢价。
框架对我们来说,都是辅助我们的工作,是一套约定,让我们可以更快速的开发项目,同事间协作也更容易,因为你们有同样的基准规范,就是基于这些框架,这是框架的好处。
但是对于我们自己,还要掌握它,了解它,深入研究它,这都要靠深厚的功底,有时候还需要设计模式,架构等方面的知识,有了这些,掌握了框架的基本原理,就不用太依赖框架了,你自己就可以改良框架,甚至可以自己开发框架,以后不管用什么新框架,都可以快速上手。
收益
看不如练,练不如讲,对于我来说,我只看一遍这本书,收益肯定没有现在。当你只看的时候,会想当然的理解,有时候理解是对的,有时候又是错的,这个只能通过代码示例的练习可以发现。
还有一部分概念和原理,只看很难理解甚至理解不了,但是如果你写几个例子,打印输出看下结果,慢慢就理解了,这也是练的好处。
读了,练了,自己学到了,但是如何给别人讲,让别人也能学到,甚至通过你的讲,让其他人更容易理解,甚至比书更通俗易懂,这就是自己的语言组织能力了,通过给别人讲,教别人也可以让自己理解的更深入,这就是教是最好的学。
还有通过写文章,和读者可以互动,一起讨论,相互交流学习,共同进步。
结语
这个系列写完了,这几个月非常感谢大家的支持,相互的交流,也认识了不少朋友,自己也学到了很多。这个后记也是一篇学习一门知识的思路,通过读、练、讲,让自己更深入的学习一本知识,不管什么知识,基础很重要,打好基础,路更远。
《Go语言实战》读书笔记已经完结,感谢支持,欢迎扫码关注公众号
flysnow_org
或者网站http://www.flysnow.org/,跟进后续文章。
- 018 final 关键字的用途
- 04-01.总结switch,for,while,do。while跳转语句
- JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- 019 单例模式的5种写法
- 图书管理系统【部署开发环境、解决分类、图书、前台页面模块】
- 图书管理系统【用户、购买、订单模块、添加权限】
- 04-02.总结switch,for,while,do。while跳转语句
- 图书管理系统【总结】
- JDBC【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】
- JDBC【事务、元数据、改造JDBC工具类】
- JDBC【数据库连接池、DbUtils框架、分页】
- HTTP常见面试题
- Java基础-18(01)总结Map,HashMap,HashMap与Hashtable区别,Collections工具类
- 一个oracle查询引起的bug (r4笔记第59天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- hive数据加载
- Python 技术篇-使用opencv读取图片实例演示,python安装opencv库
- 关于页更改并加入一些在线服务
- Hadoop-2.6.0为基础的Hive安装
- Python 技术篇-opencv读取中文路径图片报错及解决办法
- Javaweb鼠标事件案例分析—鼠标移入移出表格颜色变化
- docker registry V2私有仓库搭建
- Python 路径问题:cv2.error: OpenCV(4.1.0)...size.width>0 && size.height>0 in function 'cv::imshow'. 原因与解决
- 算法案例分析—字符串模式匹配算法
- Docker-软件工程集装箱技术
- PyQt5 技术篇-获取电脑屏幕桌面的宽、高和分辨率
- 使用Python快速抠图
- 值得白嫖的数据库常用操作语句汇总(数据库、数据表、数据操作)
- JavaScript 技术篇-js正则表达式匹配字符串左右两边是否包含空格
- 初入编程吓破胆?那是你还不懂这些!(高能预警)