猿创征文|我的Go成长之路道阻且长

自从2016年09月04日加入CSDN,已经整整六年了,回顾自己不太长的技术成长之路(毕竟还是00后),前前后后捣鼓过网络安全、人工智能、区块链、舆情分析。可以说是东一榔头西一棒,至今一事无成。

我学习Go语言还是得感谢我的指导老师,她带我接触区块链,带我阅读区块链的专利文档,让我对区块链产生浓厚的兴趣,同时也了解了Go语言。

我在CSDN与Go的故事

我第一次接触Go语言是在2021年寒假期间,在2021年1月23日晚上我搭建了Go语言的开发环境。我是JetBrains的忠实粉丝,使用的开发工具自然也是Goland。当晚我就整理发表了一篇Go语言的博客:【Go】【GoLand 2020.3.1 x64】Go语言环境的的搭建及运行HelloWorld程序_ReganYue的博客-CSDN博客

搭建好环境,应该和一般的人学习路径不一样,我没有马上学习语法,而是直接奔着Go的密码学库去学习,也在CSDN输出了博客:【密码学】【Go】详解DES-CBC模式_ReganYue的博客-CSDN博客_cbc模式的des

【Go】【密码学】【Day01】对字符串进行简单加解密_ReganYue的博客-CSDN博客

彼时是1月24日,也就是我搭建好Go开发环境的第二天,我照猫画虎编写了几个简单的加解密程序,加上之前对Java、Node.js、C、Python等基础语法的掌握,大概能对Go语法有一些简单的猜测。但是密码学学起来确实很吃力,学了一个星期就学不下去了。我开始学习Go的基础语法,期间在CSDN也输出了几篇博客。彼时正逢情人节,CSDN举行了2021情人节主题征文,我壮着胆子写了一遍博客参赛,没想到居然获奖了:【2021情人节主题征文】和女朋友一起玩猜数字游戏吧!_ReganYue的博客-CSDN博客

之后2月份我不停学习,defer、闭包函数、二级指针、Map映射、Strings包、命令行参数、类库复用、面向对象、文件操作、JSON库、异常处理、Go并发操作… 不停学习,也在不断进步。

今年7月份在CSDN发表《Go-Excelize API源码阅读》系列,系列文章多次上榜CSDN每天值得看、CSDN一周精选,受到了大佬的打赏。特别是该系列作品还受到了Excelize作者的关注与肯定,让我备受鼓舞。

我在开源社区与Go的故事

2022年7月份,我参加了WeOpen Star,一个开源活动。

最开始是给Beego的一个issue优化注释:

我将几个包的注释不符合规范的全部修改了一遍,收到邮件被合并的那一刻真的是很开心,开源的快乐真的就这么简单~

接下来就是把精力全部投入到Excelize的源码阅读之上了,未来打算在这上面投入多一些时间。

在今年七八月份,我基本上平均每隔几天都有阅读Excelize的代码,并试图解析代码,带领大家一起阅读代码。

至今已经在CSDN发表二十二篇原创Excelize API源码阅读博客。可以说从中学会了很多很多,比如:

上面这种从数组中去掉一个元素的方法。

还有下面这种方法:

if _, err = os.Stat(picture); os.IsNotExist(err) {return err}

上面这种方法检查文件路径的图片是否存在。

这种方法可以说比较巧妙了,看能不能获取picture的文件信息,如果不能就会报错,然后看报错。
这个os.Stat()返回的err比较特别:

1、如果返回的错误为nil,说明文件或文件夹不存在或者没有权限
2、如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹存在
3、如果返回的错误为其它类型,则不确定是否在存在

总之在源码阅读的过程中,感到受益匪浅~

Go与我的生活

你可以会不相信,嘿,真能吹,Go还能和你的生活有关。哈哈哈,可以说是勉强凑个相关吧。应该也和开源有关,因为我使用Go语言开源了一个针对我的学校义工时系统的爬虫工具,只要知道学号的范围可以批量获取全校所有学生的义工时信息。

写这个工具时,正在学Python的爬虫,我想能不能用Golang也写一个小爬虫呢,经过一上午的捣鼓,终于在吃午饭前捣鼓成功了。

还有就是前一段时间CSDN送我的一本《Go程序员面试笔试宝典》,这段时间天天晚上睡觉前都要看上十几页,令人爱不释手。

希望能和Go语言一起走下去吧!

道阻且长,

行则将至…