我最早接触Go是大一下学期的时候,应该算有4年的Go语言学习吧,之所这么说,是因为这种学习完全算不上“Go语言经验”。在经历了数个月的Go语言求职经历尝试后,我终于如愿以偿找到了一份C++工作,怎么说呢,心里有各种不满,不过始终也觉得Go是个好语言,记得刚接触Go的时候这个语言给了我一种前所未有的简单体验,可能就是因为感觉很喜欢Go于是就一路学了下来。但是有些时候,兴趣无法决定一切,当你的同学大四全都出去实习,当你的老妈天天叨叨着你为什么你不赶紧找工作的时候,也许你就会明白,我们追逐梦想没有错,但是我们首先应该独立。

虽然对于长时间的Go学习感到十分惋惜,但是没办法,Go无法为我带来一份哪怕只是能吃饱饭的工作,虽然现在我的C++工作也差不多如此,但是起码让曾经自以为比别人挤出了更多时间研究编程的人来说结果不那么凄凉吧。

之前有回答过一篇帖子:

1、首先我给你说的就是编程语言就是一门工具,作为程序员要学会使用工具

2、转需要不是目的,我们的目的就是挣钱,字节跳动是一个好公司,将来有一天从细节走出来的话会是一个优势

3、目前而言Java竞争非常激烈,内卷化也非常的严重,而go是后来者居上,说不定再过两年go优势会比Java好的多

4、作为程序员,我还是建议多学习一门语言是多么的重要

golang学习路径的价格网站:

1、golang入门

包括环境安装、hello world程序编写、基本语法数据结构介绍

2、eclipse插件Goclipse安装

3、beego框架入门

4、使用beego框架实现的仿百度文库系统

将这个开源项目研究完以后,相信对go和beego都有了一定的了解,自己也可以动手开发了。

5、ubuntu安装go编译环境

最好不要直接使用sudo apt install golang-go命令直接安装,这样会安装旧版本go,如果安装了,先卸载,然后从go官网下载最新的包(需翻墙,或者使用百度浏览器的谷歌插件),然后进行安装,步骤如下。

如果想要具体的话,从0到1可以按照这个步骤走了,如果没哟合适的资源的话,可以下面看一下

基础

安装golang环境
Golang基础,流程控制,函数,方法,面向对象
网络编程(自己做一个简单的tcp的聊天室,websocket,http,命令行工具)
并发(可以看一下并发爬虫或者下载器的项目)
Golang数据结构的使用方式(地鼠文档上有)

进阶

数据库mysql 增删改查
redis相关内容
Gin框架(iris和beego有空也可以学习学习,但是gin必学)
Golang其他的插件库
(这里可以做一个简单的网站,综合上面的东西使用)
了解缓存,进程,性能方面的内容和解决问题的方法。

就业

grpc,go-mirco等微服务相关的内容
刷leetcode题,
多看github开源仓库
学会自己仿照其他人项目写几个项目,可以以此丰富简历。

升级

多翻阅大佬们的书籍,博客,论坛。
可以看看国外的东西
参与或者制作github上面的golang项目

如今感觉自己看透了许多,在这里只希望能给很多喜欢Go的同学或朋友们一点自己的看法,毕竟我走过这段路,可能我们本身之间就有差距,但是还是希望我的话能够让你选对自己想要的东西。

1.如果你喜欢Go,那么你最好在学透了一个保底的东西之后再去花时间研究它,你要理解那些正在奋斗的公司,他们不可能让一个摸不清底细的程序员胡乱编写对自己来说非常重要的项目,一个更明智的策略是通过C++或Java积累几年的经验之后再尝试切换语言,目前我了解到几乎是所有的在职Go程序员都是从某个语言切换过去的

2.向我这样的原生Go程序员很难找到一份工作,因为现在用Go的公司都要求有1-3年的工作经验,而我们毕业生没有工作经验,没有工作经验就只能先找实习积累工作经验,但是公司又不招Go实习生,没有Go实习的机会,年轻的孩子们就没法积累Go工作经验,没有工作经验这些孩子们就永远不能去要求1-3年工作经验的公司工作,如此以往,恶性循环。(没有恶意,非常理解创业者们,谁都不会把风险堵在一个没有任何证明的初学者身上)

3.Go语言没有你想象的那么强劲,它几乎只擅长大量并发的网络程序,而且是后端程序。不过它在这个方面真的是非常在行就是了。

4.不要指望安卓能切换成以Go为主要开发语言的梦想成真了,如果苹果至今也没有开发Swift,Google压根就连这种想法都没有

5.如果要学习一门语言,应该先学完它然后再评论它比别的语言好在哪里,能评论两个语言的人必须是对要评论的两个语言都非常在行的人。千万别听百度谷歌上的、知乎上的、社区中的人对你要了解的语言的宣传,我深深的吃过这个亏,你自己用过某个语言之后的感受才是最宝贵的

6.Go语言为了要保持“快的编译速度”、“简单的设计”和“更少的关键字”而错过了太多,甚至已经到了无法再用“仁者见仁智者见智”去评价它错过的一些该有的功能

7.时刻关注语言们的最近进展,C++和Java都在进步,他们具有速度,现在都在向更方便而进步,Go具有方便,而它正在向速度进步

8.我绝对有对Go有过分悲观的评价,其实很多小众语言和Go一样缺乏工作机会,而大部分会比Go更惨(没有工作机会),但是Go是个让人怒骂不争气的2货,它本来可以成为明星,却被各种看似不如它的语言吊打

9.当别人评论你喜欢的东西时,你更应该关注他们批评的部分

10.我和你们一样梦想过自己写一套什么什么程序,然后一举成名,接着就走上人生巅峰。不过,很多东西和技术一样重要,比如吹牛和撒谎。

PS:如果想学习技术,或者在学习技术的过程中有疑问,对编程方向的选择,可以来这里找小于哥,一个有思想有规划,被代码延误的心灵导师,可咨询offer的选择,职业规划,学习路线,技术开发中的问题

我是 @终端研发部 小于哥

我每天都会出来冒冒泡,专注技术开发技巧,面试,职场经验的分享

参考: