小弟是多年的 java 开发,目前对 Go 非常感兴趣想要学习。
本人深刻知道学习一个新的语言,系统性的学习资料是非常重要的,否则学的七零八碎的,Go 的项目规范,开发规范等等都使用的不标准也太尴尬了。
我看到一些很好的资料,一个是极客时间的《 Go 语言核心 36 讲》: https://time.geekbang.org/column/intro/100013101?utm_campaign=geektime_search&utm_content=geektime_search&utm_medium=geektime_search&utm_source=geektime_search&utm_term=geektime_search
这个是极客时间读者挺多的专栏,我感觉这个内容也很不错,但唯一的问题就是据我了解这个专栏是 18 年的内容了,目前已经 2023 年,我不知道 Go 的迭代速度,在这 5 年是否有做大的变更?如果学这个内容,会不会跟不上现在的 Go 的新的特性和节奏?
除了以上内容外,小弟也想咨询一下各位 Go 的大佬,大家经常混的 Go 的社区有哪些?以及比较好的学习资源和资料是否有一些?谢谢提供。感谢。
1
dearzhzhao OP |
2
dearzhzhao OP 我这这里帖子下面也看到一些很好的推荐: https://www.v2ex.com/t/988107#reply21
|
3
singer 2023-11-07 11:55:31 +08:00
看开源项目、试着写一个网关、再写点业务性强的代码,基本就能上手了。但一定要把自己的 java 习惯抛弃掉,不然容易写出 go 版的 java 代码
|
4
Nazz 2023-11-07 11:57:29 +08:00
重大变更: 包管理, 泛型
|
5
mgzu 2023-11-07 11:58:02 +08:00
https://go.dev/doc/effective_go 官方的这个看着还不错
|
7
monkeyWie 2023-11-07 12:00:46 +08:00
18 年到现在比较大的改动也就是 go mod 和泛型支持了,这两个特性稍微看看就会用了,至于社区嘛就是多逛逛 github
|
8
duanbiaowu 2023-11-07 12:04:51 +08:00 2
|
9
goxy 2023-11-07 12:04:54 +08:00
有基础的话,找个感兴趣的开源项目,直接开始看源代码
|
10
Corybyte 2023-11-07 12:10:07 +08:00
|
11
littlecreek 2023-11-07 12:16:48 +08:00
Go 语言层面的变动不大, 建议看 The Go Programming Language. 然后读代码, 看到不懂的用法再 Google 就行了.
相比 Java, Go 语言的复杂度低一个数量级, 好处是比较易懂, 很工程化的语言 |
12
thinkershare 2023-11-07 12:18:00 +08:00
The Go Programming Language + go mod + 泛型就够了,作为一门语言的 go 其实是简单的,甚至可以说是简陋的。但 go 写的很多云原生的基础设施是精巧的,值得一看源码。
|
13
dearzhzhao OP 感谢各位的指点
|
14
dearzhzhao OP 🙏
|
15
k9982874 2023-11-07 12:22:04 +08:00
学会 go mod ,配置好梯子能无障碍访问 github 就够了
代码风格只需要 vscode 装好 go 插件都是自动的,不需要操心 项目结构,既然 java 转过来的,直接硬套也不是不行 一开始会不适应面向对象到面向过程,多写习惯就好了 |
16
lveye 2023-11-07 12:30:02 +08:00
head first go 这本书入门极好
|
18
dearzhzhao OP @monkeyWie 谢谢
|
19
imianba2zz 2023-11-07 13:27:17 +08:00 2
哎,感觉 go 的社区现在都是半死不活的状态。项目规范和开发规范推荐一个老外的培训课件: https://github.com/ardanlabs/service 个人觉得非常不错(注:b 站有搬运的视频)。入门的话感觉随便找个书或者极客的课感觉都差不多。深入的话个人感觉就是看开源项目:bigcache ,ants 、gnet 、rosedb ,nsq 都不错。最后附一下自己学习 golang 的一些笔记感兴趣可以看看: https://github.com/Zhouchaowen/golang-tutorial ,https://github.com/Zhouchaowen/Labs
|
20
jiayouzl 2023-11-07 13:33:26 +08:00
go 的导入包的方式我是真心不习惯!
|
21
codcrafts 2023-11-07 13:56:54 +08:00
geektime 的 《 go 语言核心 36 讲》真心不推荐,他里面自创了很多名词,不如 tony bai 那个 go 语言课。但是 go 极其容易上手,建议把官方的 [Effective_go]( https://go.dev/doc/effective_go) 看一遍,然后好好看一下官方推荐的 [go 项目的结构]( https://go.dev/doc/modules/layout),基本就可以写东西了。
|
22
cookgo 2023-11-07 13:58:22 +08:00
|
23
nodejsexpress 2023-11-07 14:12:06 +08:00
编程社区都好像没有特别出名的,比如 java 社区你们平时逛哪个? python 社区都是国外比较出名,nodejs 社区好像没听过出名的。。
|
24
layxy 2023-11-07 14:16:49 +08:00
go 对项目结构其实没啥约束,我在 github 上找到一个项目结构感觉还行,java 学 go 最难理解和不习惯就是接口实现和很多包通过入参传指针赋值而不是通过返回值
|
25
dearzhzhao OP @codcrafts 啊,我看这个课程学习的人数挺多的,还准备基于这个课程开始学习了呢、、
|
26
jonsmith 2023-11-07 14:43:36 +08:00
The Go Programming Language ( Go 语言圣经),很不错的入门书。再看下常用的标准库,应该差不多了。
|
27
cnfox 2023-11-07 14:47:27 +08:00
go 的基本语法并不困难 。。
特色协程之类的就算一开始不理解并不影响简单需求的开发 有编程语言基础简单看一下基础语法 然后直接看开源脚手架就好了 我就是 java 转 go 然后几天就开始上手公司项目的,底层开发者。感兴趣可以我们弄一些小需求项目,有问题的时候简单解答一下。慢慢就熟练精进了 |
28
lsk569937453 2023-11-07 15:02:40 +08:00
go 本质上和 java 是重合的。你要学点 node ,搞前端还行,学 go 是为了啥? go 的市场又不如 java 大。
|
29
javaisthebest 2023-11-07 15:08:32 +08:00
学 Go 还要想这些 ? go 的唯一好处就是没有任何规范
最难的地方无非就是 携程和锁的使用上需要注意了 恕我直言,你还是回去先把 java 搞明白再学 go 吧 |
32
8X96ZltB8D7WggD7 2023-11-07 15:46:52 +08:00
@iamee 不错的谐音
|
33
Ericcccccccc 2023-11-07 15:53:49 +08:00
go 几乎没啥要学的语法.
|
34
aaddccaaa 2023-11-07 16:24:00 +08:00
官方文档看懂语法,然后干活的时候对着别人代码抄,调不通了就 cv 到 gpt 给调通,再自己测测
|
36
Fooooo0 2023-11-07 16:37:56 +08:00
官方的入门学一下: https://go.dev/learn/ ;
官方的《 Effective Go 》看个两三遍 https://go.dev/doc/effective_go ; 标准库全部大概看一遍: https://pkg.go.dev/std 有 Java 基础看完以上的基本可以开始写项目玩了,同时找一两个知名的自己感兴趣的 go 开源项目看。 然后深入学习可以看雨痕的《 go 程序设计》 https://www.yuque.com/qyuhen/go 。 另外,我面试比较喜欢问的一个问题是:你是如何学习 go (或一门新技术)的? |
37
macscsbf 2023-11-07 16:49:53 +08:00
uber 在 github 上开源的项目全部啃下来,你就是大神了。
|
38
dearzhzhao OP |
39
poembre 2023-11-07 17:44:18 +08:00
小弟是多年的 Go 开发,目前对 java 非常感兴趣想要学习。
本人深刻知道学习一个新的语言,系统性的学习资料是非常重要的,否则学的七零八碎的,java 的项目规范,开发规范等等都使用的不标准也太尴尬了。 ----- 特别是框架的使用不能很好的掌握 spring-boot 还有库的使用 无法判断 用哪种 orm 更好 比如 orm-jdbctemplate mybatis mybatis-plus 希望能和 java 互换技能 |
40
dearzhzhao OP @poembre 认真的?
|
41
z1829909 2023-11-07 19:32:35 +08:00
https://www.bilibili.com/video/BV1gf4y1r79E 这个不错, 适合有开发经验的人快速上手
|
42
cI137 2023-11-07 23:48:36 +08:00 via iPhone
go 就完事了,用 go 还那么拘谨干什么
|
43
poembre 2023-11-08 19:08:38 +08:00
@dearzhzhao 认真,花了 1 天时间 装了环境 。 目前还在 拿 8 年前 springMvc blog 练手中。
|
44
dearzhzhao OP @poembre 互加微信,你有问题请教我,我有问题也可以请教你呐。完美的。本人 v:x_h886688
|
45
nanmu42 2023-11-10 09:27:30 +08:00
|
46
dearzhzhao OP @nanmu42 好的,谢谢!
|