V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
asdf330
V2EX  ›  Go 编程语言

想开始学 go,请大神推荐一下学习线路,谢谢

  •  
  •   asdf330 · 2017-04-20 11:21:04 +08:00 · 4683 次点击
    这是一个创建于 2776 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想开始学 go ,请大神推荐一下学习线路,谢谢

    44 条回复    2017-04-26 09:35:24 +08:00
    reus
        1
    reus  
       2017-04-20 11:27:25 +08:00
    看《 The Go Programming Language 》
    jarlyyn
        2
    jarlyyn  
       2017-04-20 11:28:26 +08:00
    要有项目。

    项目驱动
    spider82
        3
    spider82  
       2017-04-20 11:29:25 +08:00 via iPhone
    官方 api
    awesome go
    看 github 多星项目
    不断练习
    done
    herozzm
        4
    herozzm  
       2017-04-20 11:31:17 +08:00 via Android
    shaozhengmao
        6
    shaozhengmao  
       2017-04-20 11:47:43 +08:00
    同想学,应该项目驱动更好吧
    qiyuey
        7
    qiyuey  
       2017-04-20 11:52:04 +08:00
    先看一遍圣经,然后项目驱动
    rrfeng
        8
    rrfeng  
       2017-04-20 12:15:23 +08:00
    有啥基础?
    dsg001
        9
    dsg001  
       2017-04-20 12:23:57 +08:00
    用 go 写爬虫吧
    ChristopherWu
        10
    ChristopherWu  
       2017-04-20 12:35:15 +08:00
    1. 把官方 tour of golang 看一遍 https://tour.golang.org/welcome/1
    2. 把这个项目用 golang 写一遍
    https://github.com/YongHaoWu/NeteaseCloudMusicFlac/blob/master/python3_main.py
    iot
        11
    iot  
       2017-04-20 12:50:13 +08:00
    看完基础多看几个开源项目就行了,市面上也没几本书,挑几本看看就行。

    我看过《 go web 编程》《 The way to go 》然后研究常用类库,看类库源代码 或者 开源项目源代码,可能涉及到分布式、 linux c 一些知识
    byfar
        12
    byfar  
       2017-04-20 12:59:47 +08:00
    #9 +1
    没有项目驱动,那就用爬虫驱动。

    学习新语言从爬虫入手,既有成就感,又能了解基本用法。
    hornets
        13
    hornets  
       2017-04-20 13:49:51 +08:00
    郝林大大更新了一版书, go 并发编程实战第二版。
    zhengxiaowai
        14
    zhengxiaowai  
       2017-04-20 14:01:34 +08:00
    @hornets 那本就别推荐了,他的写作风格要改改了。。
    asdf330
        15
    asdf330  
    OP
       2017-04-20 14:17:21 +08:00
    @reus 正在看这个的中文版
    asdf330
        16
    asdf330  
    OP
       2017-04-20 14:22:16 +08:00
    @rrfeng 工作中用 perl 、 java ,现在打算学 go 或 python
    asdf330
        17
    asdf330  
    OP
       2017-04-20 14:23:22 +08:00
    @ChristopherWu 不错不错,两个一起学
    asdf330
        18
    asdf330  
    OP
       2017-04-20 14:24:03 +08:00
    @all 多谢各位指点 我先看看圣经
    rrfeng
        19
    rrfeng  
       2017-04-20 14:31:29 +08:00
    有编程基础就直接看圣经啊,看圣经的好处是对一个语言的基础有所了解,不要去看 xxx web 编程, xxx 并发实战 之类的,这些属于进阶。
    圣经看到一半,甚至 1/3 ,就可以动手撸项目了,边撸边看后面的。
    admindemon
        20
    admindemon  
       2017-04-20 14:52:46 +08:00
    WildCat
        21
    WildCat  
       2017-04-20 14:54:51 +08:00 via iPhone
    @reus +1 这本书我有英文原版,觉得写得很好
    jarlyyn
        22
    jarlyyn  
       2017-04-20 14:55:50 +08:00
    反正我的路线吧

    1.写了个简单 mud 连接客户端(个人习惯,刚写 node 的时候也是)
    2.写了个简单爬虫
    3.重写了博客
    4.写了一个简单的组建化框架,
    5.拿来做公司内部项目。
    lovespring4
        23
    lovespring4  
       2017-04-20 17:02:44 +08:00
    @zhengxiaowai 确实感觉是,个人感觉写的没有突出重点,看完没啥收获。
    PhilC
        24
    PhilC  
       2017-04-20 17:19:46 +08:00
    @lovespring4 我看几分钟就能睡着
    mingyun
        25
    mingyun  
       2017-04-20 17:58:18 +08:00
    @Wangxf 404 ?
    alexsunxl
        26
    alexsunxl  
       2017-04-20 19:08:38 +08:00
    来说一下我的路线。
    上来接到一个需求,内部系统需要请求一些数据, 数据提供部门只给 grpc 接口。 
    然后随便挑了一个框架, beego 。 然后把 grpc 代码嵌进框架。
    写了两个星期正好赶上去参加 gopher china
    总共搞了快一个月吧。感觉现在入门了。
    代码写写删删,很快就熟悉了
    misaka19000
        27
    misaka19000  
       2017-04-20 20:02:02 +08:00
    @alexsunxl #26 请问下在真正的项目里 go 是面向对象的方式多一些还是面向过程的方式多一些?
    WildCat
        28
    WildCat  
       2017-04-20 20:45:54 +08:00 via iPhone   ❤️ 1
    @misaka19000 go 面向对象很不完善,面向过程的思想和类似函数式(毕竟 immutable )的思想多一点。比如方法底层就是函数,第一个参数是 self 。
    很多人把 go 称为 命令式语言。

    和王垠大神观点类似,写 go 还不如 python 、 java 舒服。但是我觉得 go 介于两者之间,语言特性做了很多减法,整体非常简单(很多人评价用 go 的好处就是有其他编程语言经验的人一个星期就可以完全上手,其他花哨语言比如 scala 需要六个月)。这就是 go 成功之处, keep it simple, rather than tricky
    scnace
        29
    scnace  
       2017-04-20 20:50:52 +08:00 via Android
    有好多干货很多的 Gitbook 没有出实体书 :(
    misaka19000
        30
    misaka19000  
       2017-04-20 21:13:44 +08:00
    @WildCat #28 3q, get it
    alexsunxl
        31
    alexsunxl  
       2017-04-20 23:00:51 +08:00
    @misaka19000
    要用好 interface , 然后不要做太大的抽象, 标准库和主流 go 开源库里都喜欢用小的 interface , 一个 interface 里大概 2-3 个方法。
    不用太强调面向对象。
    还有个原则是函数要尽量 be conservative what you send , be liberal what you accept
    kotokz
        32
    kotokz  
       2017-04-20 23:14:15 +08:00
    @jarlyyn 胖哥还折腾 mud 啊
    araraloren
        33
    araraloren  
       2017-04-21 09:00:07 +08:00
    @asdf330 如果不反感 python 的 tab 语法,还是建议学习 python3
    python 毕竟是一门相对完善的语言
    关于 go 的缺陷 可以参考 https://github.com/ksimka/go-is-not-good
    misaka19000
        34
    misaka19000  
       2017-04-21 09:38:48 +08:00
    @kotokz #32 mud 是啥😖
    zachgenius
        35
    zachgenius  
       2017-04-21 09:55:27 +08:00
    学什么 GO, 一起来玩 Erlang 啊~~erlang 的进程概念好玩的飞起. 一切皆进程, 万物皆并发
    jarlyyn
        36
    jarlyyn  
       2017-04-21 10:13:21 +08:00
    @kotokz

    不了

    话说居然这里还有泥友?
    majixian621
        37
    majixian621  
       2017-04-21 10:14:38 +08:00
    最近刚开始学习 go ,已经试着用 go 来刷 leetcode,欢迎一起交流
    asen477
        38
    asen477  
       2017-04-21 10:38:48 +08:00
    @hornets 这个第一版太烂了,我买了一本,代码部分印刷,都看不清楚。。。还是在京东买的。
    spice630
        39
    spice630  
       2017-04-21 13:25:25 +08:00
    我就是边学边写,现在已经有几个能看的项目了
    https://github.com/songtianyi/wechat-go
    https://github.com/songtianyi
    julyclyde
        40
    julyclyde  
       2017-04-21 13:26:40 +08:00
    @araraloren python 的 tab 语法是错的。正确的是 4 空格
    zcljy
        41
    zcljy  
       2017-04-21 13:42:47 +08:00
    教程之后做项目 教程之后做项目 教程之后做项目 三遍够了
    8355
        42
    8355  
       2017-04-21 13:56:53 +08:00
    我是 14 年开始学的 那时候只有无闻的视频 看了以后学了 beego 写了个微信商城的项目 性能真的超级屌
    hornets
        43
    hornets  
       2017-04-21 15:38:34 +08:00
    @asen477 第二版是图灵出的,质量真的挺好的。
    araraloren
        44
    araraloren  
       2017-04-26 09:35:24 +08:00
    @julyclyde 喔~~没仔细研究过,我是不怎么喜欢那个东西。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3621 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:01 · PVG 19:01 · LAX 03:01 · JFK 06:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.