貌似 Golang 很火,想学一下

2018-09-10 10:35:53 +08:00
 chaomin1014

最近看很多公众号什么的在说 Golang 值得一学,有没有技术大佬推荐学 GO 语言的渠道~没学过编程。有什么学习视频或书籍可以介绍吗?谢谢啦~

18026 次点击
所在节点    程序员
140 条回复
abusizhishen
2018-09-11 12:42:08 +08:00
go 语言简单,学习的过程最好是工作驱动,否则没有应用场景,也很快会忘得
abusizhishen
2018-09-11 12:42:45 +08:00
极客时间,跟郝林学 go
dingyaguang117
2018-09-11 13:12:23 +08:00
C 上学的时候不是都学过么~
gowk
2018-09-11 13:30:52 +08:00
等 Go 2 出来再学不迟,引入了泛型和改进的错误处理机制后,一大波库都会根据泛型重构,那时 Go 的生态会更好
gowk
2018-09-11 13:32:21 +08:00
@Aoang 深得我心
clino
2018-09-11 13:56:10 +08:00
@Aoang
"没学过 C,指针是什么?长度和容量怎么理解和实现?"
你这个是说要拿 Golang 里切片的 C 语言实现去尝试理解切片对吧?
意思是如果没学过 C 不从切片的实现去理解,而直接在 Golang 里实践,从而在脑子里建构对切片的理解是无法做到的?或者说比先学 C 的指针数组再学这个成本更高?

我没办法验证这个想法因为我原来就会 C,但我认为没学过 C 也是能理解的,而且成本比先去学 C 再来理解成本更低
Aoang
2018-09-11 14:15:39 +08:00
@clino Golang 自带切片,且没有指针运算,你怎么实现?
在大脑构建对切片的理解,你确定零基础的人能做到?
完全就是不存在的。

话题的对象是零基础的人,你零基础的时候能直接理解切片?

C 之所以难,很大一部分程度就是在指针上。Golang 的指针没有指针运算,没有其他语言的基础,想理解切片,对于零基础的人有多吃力?

目前招聘 Golang 的企业都只招聘中级、高级,因为几乎没有初级。都是 C/C++、Java、Python 等等其他语言转过去的。
编程入门首选 C,兴趣爱好选 Python,谋生之计选 Java。Golang,对于现在来说,有编程基础的人一天上手,没编程基础的人上手再快,也会掉坑里。
reus
2018-09-11 14:22:42 +08:00
@Ediacaran DSL? go 编译器就是 go 写的,哪个 DSL 能自举的?还有一堆存储和基础服务的软件你不知道?
reus
2018-09-11 14:24:08 +08:00
@gowk 要学现在就学,go2 都不知道要几年后了。
clino
2018-09-11 14:39:17 +08:00
@Aoang 举个例子,参考这篇文章我就能理解 Golang 里的切片而不用 C 的知识
https://segmentfault.com/a/1190000006056800
这就是我说的就在 Golang 中实践来构建对于切片的理解
clino
2018-09-11 14:43:55 +08:00
@Aoang "编程入门首选 C,兴趣爱好选 Python,谋生之计选 Java。Golang"
我一直没有讨论语言本身的学习成本,我一直针对的是学 Golang 必须要先学 C 这种论调

另外我认为编程入门也可以用 Python,感觉你一定要理解到底层的具体实现才能叫"入门"?那么那些从 Scratch 开始的岂不是更奇怪?
Aoang
2018-09-11 15:37:06 +08:00
@clino 你确定零基础的人看得明白?更多的是一知半解吧。且这篇文章讲的并不是基础。

没谁说学 Golang 必须先学 C,话题对象是零基础的人,话题是入门编程,不是学习某一种语言。

至于是不是需要了解底层,我说的是基础,而不是底层。当解决一个问题可以使用多种方式的时候,最先使用的是自己熟悉的,但是自己熟悉的并不是最高效率的时候,是不是要了解那种方式效率更高?你不了解基础怎么去判断?凭借自己的感觉和经验?
ranwu
2018-09-11 16:18:54 +08:00
在 hackernews 上看到一篇文章介绍用 go 写的微服务,reddit 的广告系统,说响应时间从 90ms 提高到 10ms,感觉很牛逼。可以从框架入手,写个实际的应用,然后再看源码·=·
clino
2018-09-11 16:22:05 +08:00
@Aoang 你说的理解必须理解到底层? 比如 python 的 dict 我认为了解其特性会使用就叫入门了,你认为这不叫入门叫一知半解,必须了解其实现细节才行? 但是 C 里面没有 dict 没办法从 C 这里学起怎么办?
这个问题就和你说的切片一样,如果我只用 Golang 掌握其概念,能使用,我认为这就足够入门能利用其做不少开发了.
Aoang
2018-09-11 16:31:26 +08:00
@clino Golang 是独立特行的,能使用不代表会使用。

看了看你的 github,听别人说千遍万遍,不如自己亲身体验。

Golang 好处是多,坏处也有。非要说 Golang 适合入门编程,你去写一个项目就能明白为什么本帖那么多 Gopher 的固执了。
clino
2018-09-11 16:56:13 +08:00
@Aoang 要我说多少遍,我一直没有说"Golang 适合入门编程"这个观点

我一直觉得奇怪的是要学 Golang 非要先学 C 的这种奇谈怪论

如果你会 C/C++,那么是有助于你理解 Golang 没错,但是如果就要学 Golang,完全可以不会 C/C++就能入门并很好的使用,这样的成本比去学一边 C/C++/Java 再来学 Golang 更低,这是我的完整看法,你如果要批驳我请针对完整看法.
Aoang
2018-09-11 17:13:59 +08:00
@clino 是不是奇谈怪论你怎么不去试试?看看有多少人是直接零基础上手 Golang 的?

我回复的是楼主,对象是零基础的人,目的是入门编程。你没弄明白对象和目标有什么好说的。

有编程基础的人一天上手,没编程基础的你怎么学?有 Golang 的入门编程书和教程吗?有的只是入门 Golang 这门语言,没有入门编程。

至于学习成本,弄明白对象和目标了么?弄明白对象和目标了,你首先就应该知道一点,基础很重要。别扯什么能用就行,打个 hello world 和写个 TCP server 能一样吗?
你去问问,先学基础再慢慢进阶到一定程度快,还是先丢下基础以后慢慢补快。
myyou
2018-09-11 17:29:13 +08:00
@Aoang golang 是新语言,肯定没有多少人选择零基础入门 golang 啊。楼主也只是想学学 golang 而已,还有你说的哪些编程基础,没有一样能学。而且学习一门编程语言的过程中也会涉及到相关基础。你太绝对了,而且是忽略事实的绝对。
finalsatan
2018-09-11 19:36:22 +08:00
推荐一下雨痕大神的 go 语言学习笔记 吧
JokerHuang
2018-09-12 08:55:08 +08:00
@marcong95 我真的不得不给你点个赞... 咕

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/487774

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX