Go 语言入门疑惑 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Co1a
V2EX    问与答

Go 语言入门疑惑

  •  
  •   Co1a 2018-11-30 13:45:08 +08:00 5057 次点击
    这是一个创建于 2508 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在正儿八经准备系统学习 GO 之前在 youtube 上观看了大致一周的学习视频,趁着最近 X 东购书满减,买了一本 Go 语言圣经,这下好了,完全一头雾水,之前自认为还能了解个大概,现在完全一脸懵逼,是因为非科班的原因?!?顺便求一下 Go 语言相关练习题

    52 条回复    2018-12-02 00:38:35 +08:00
    loading
        1
    loading  
       2018-11-30 13:47:12 +08:00 via Android
    码起来再说
    mason961125
        2
    mason961125  
       2018-11-30 13:47:37 +08:00
    科班?你问问这里野路子有多少...
    Yoock
        3
    Yoock  
       2018-11-30 13:48:34 +08:00 via iPhone
    所以说,你哪里不懂呢?
    Co1a
        4
    Co1a  
    OP
       2018-11-30 13:49:45 +08:00
    @loading 小结哪怕是章节后并没有例题&&翻译不完全?一章大概有十几个 slice,一脸懵逼啊
    bonfy
        5
    bonfy  
       2018-11-30 13:50:21 +08:00   2
    这个建议你有一定的目标,完成个小的 project, 然后再审视一下之前学的东西,哪些不稳固的 重点加强下
    学以致用,不要为了学而学,个人看法

    顺便有兴趣的话 看看这个: https://github.com/bonfy/go-mega 照着完成一个网站啥的,可能对 Go 的认识更直观
    Co1a
        6
    Co1a  
    OP
       2018-11-30 13:50:30 +08:00
    @Yoock slice 的概念以及相关的入门题目
    cp333
        7
    cp333  
       2018-11-30 13:51:37 +08:00 via iPhone
    快速上手看完 go by example 就行了
    loading
        8
    loading  
       2018-11-30 13:55:25 +08:00 via Android
    没有任何编程经验?
    chucongqing
        9
    chucongqing  
       2018-11-30 13:56:24 +08:00
    一个周还没写代码?先随便找几个需求码起来啊!
    Co1a
        10
    Co1a  
    OP
       2018-11-30 13:56:29 +08:00
    @loading
    loading
        11
    loading  
       2018-11-30 13:58:57 +08:00 via Android   1
    建议先去学别的语言,例如 python。

    go 确实很难的。
    AzadCypress
        12
    AzadCypress  
       2018-11-30 14:21:31 +08:00 via Android
    我感觉完全没有编程经验的话直接学 Go 不是很好入门,尤其是从 GoPL 这本书入门
    ClutchBear
        13
    ClutchBear  
       2018-11-30 14:33:59 +08:00
    golang 不适合没有其他语言基础的人直接学习,
    现在没有大神或者培训班总结出一套良好的适用多数人的学习路线.

    java 和 python 有.
    chenset
        14
    chenset  
       2018-11-30 14:34:13 +08:00
    写网络工具, 自从用了 GO 以后就没再看过 Python 一眼...
    lucifer9
        15
    lucifer9  
       2018-11-30 14:34:15 +08:00
    别看翻译的书
    zhaishunqi
        16
    zhaishunqi  
       2018-11-30 14:39:44 +08:00
    你不会当看小说一样的全看了一遍吧...
    fy1993
        17
    fy1993  
       2018-11-30 14:40:53 +08:00   1
    在看 go 语言学习笔记,不懂的地方照着书上的例子边敲边理解,目前感觉良好
    88250
        18
    88250  
       2018-11-30 14:41:54 +08:00   1
    Go 边看边练 -《 Go 学习笔记》系列 https://hacpai.com/article/1437497122181
    Co1a
        19
    Co1a  
    OP
       2018-11-30 14:48:01 +08:00
    可能我说的不太确切。。。之前 12 年学过 Python,高中三年过去语法糖忘得差不多了,现在大一老师带我们入门 C
    所以想学习一些别的语言
    Co1a
        20
    Co1a  
    OP
       2018-11-30 14:50:15 +08:00
    12>>初二
    loading
        21
    loading  
       2018-11-30 14:51:16 +08:00 via Android
    建议先把 c 学扎实。快考试了吧。
    Co1a
        22
    Co1a  
    OP
       2018-11-30 14:52:43 +08:00
    @loading 考试还行吧。。。书上例题也不怎么难,我们现在才学到指针,太慢了,我直接自学刷 runoob 的 C 语言 100 例,专科还是得靠自学
    d5
        23
    d5  
       2018-11-30 14:58:00 +08:00 via iPhone
    建议看陈佳烨(无闻)大神的 Go 基础视频教程
    cin
        24
    cin  
       2018-11-30 14:58:15 +08:00
    https://tour.golang.org/ 跟着官方的 tour 把代码敲出来.
    samt42
        25
    samt42  
       2018-11-30 15:05:49 +08:00
    如果你会 C 语言或者学过 APUE,应该会很简单,基本不用看书了
    tt67wq
        26
    tt67wq  
       2018-11-30 15:06:46 +08:00
    直接去找个 go 的工作就行了
    Rehtt
        27
    Rehtt  
       2018-11-30 15:27:09 +08:00 via Android
    做一个小项目边做边学,我当初用 go 写的爬虫就是边做边学的
    y835L9DyC5XD09kq
        28
    y835L9DyC5XD09kq  
       2018-11-30 16:08:11 +08:00
    专科通病:觉得老师教的太慢
    boris1993
        29
    boris1993  
       2018-11-30 16:25:10 +08:00 via Android
    书?
    脑子里有了需求
    网上跟着教程学了语法,数据结构等必备基础
    开始写,一边写一边纠正知识上的误区
    完成,运行,结束
    书?好像没书啥事。
    hehe12dyo
        30
    hehe12dyo  
       2018-11-30 17:11:56 +08:00
    go 不适合没有基础的人。
    tcpdump
        31
    tcpdump  
       2018-11-30 17:34:19 +08:00 via Android
    标记一下
    tingyunsay
        32
    tingyunsay  
       2018-11-30 17:40:38 +08:00
    写呀,先别让程序奔溃慢慢改逻辑~~
    Co1a
        33
    Co1a  
    OP
       2018-11-30 17:46:21 +08:00
    @kangkang 一周只有三节 C 语言,迫于无奈,自己学习
    y835L9DyC5XD09kq
        34
    y835L9DyC5XD09kq  
       2018-11-30 17:50:38 +08:00
    @Co1a 要是真的理解了 C,学 Go 根本不用一天。这两个语言的关系非常暧昧
    whoami9894
        35
    whoami9894  
       2018-11-30 18:03:02 +08:00 via Android
    @kangkang

    细节得花时间掌握,int[]和[]int,typedef a b 和 type b a 之类的就很别扭
    Co1a
        36
    Co1a  
    OP
       2018-11-30 18:25:15 +08:00
    @kangkang 道理我都懂,这不就和念书一个道理吗。。。你懂了和掌握了并不是一个东西,圣经这本书只能说她讲的太透彻,一个基本数据章节的浮点数(详见 P42)他能给你画个函数图形输出样例.一个复数小结(详见 P46)能够提及用 image 函数和 color 函数制出 mandelbrot 集的黑白图。。。,这才仅仅是第三章基本数据就有了这么些个函数,这本书得入门之后深度研读,总而言之,这本书目前不适合我
    kingcos
        37
    kingcos  
       2018-11-30 18:29:17 +08:00 via iPhone
    看了一个库,就开始上手撸……其实也没多难,goroutine 没深入
    tomoya92
        38
    tomoya92  
       2018-11-30 18:33:33 +08:00 via iPhone
    看一下基础,然后选一个框架,开发一个小网站,学的最快,不要一直看视频和书,一直看不动手,大都是前学后忘
    y835L9DyC5XD09kq
        39
    y835L9DyC5XD09kq  
       2018-11-30 18:49:39 +08:00
    @Co1a 你可能没懂我在说什么...
    akagishigeru
        40
    akagishigeru  
       2018-11-30 19:10:26 +08:00 via iPhone
    看书,第一遍你绝对懵懵懂懂,记住一定要看第二遍
    anonymous256
        41
    anonymous256  
       2018-11-30 19:35:32 +08:00 via Android
    没有其它语言基础,最好不要碰 golang。
    golang 中面向对象的设计和其它语言截然不同。golang 中的
    struct 和 interface 实现了其它语言中[类,继承,多态]。
    新人必然很难理解这种设计~建议从 python 入手,再试试 golang
    mritd
        42
    mritd  
       2018-11-30 19:55:59 +08:00 via iPhone
    相信我,基础语法搞完就开始造轮子就行了
    SuperMild
        43
    SuperMild  
       2018-11-30 21:53:51 +08:00
    你这种情况,不建议学 Go,建议先用 Python 或 C 写些东西,培养一下编程的感觉。
    cgpiao
        44
    cgpiao  
       2018-11-30 22:21:09 +08:00
    php 欢迎你
    GG668v26Fd55CP5W
        45
    GG668v26Fd55CP5W  
       2018-11-30 22:25:06 +08:00 via iPhone   1
    我是看 go 语言实战 入门的,圣经节奏太慢了,这本快一些。
    mangoDB
        46
    mangoDB  
       2018-11-30 23:35:40 +08:00 via Android
    之前有其他语言学习经验吗?如果有的话,学起来不难。如果完全没有经验,估计会有点坎坷。
    SorcererXW
        47
    SorcererXW  
       2018-11-30 23:41:21 +08:00   1
    瞄几眼基本语法, 就直接上 Leetcode 用刷题, 刷个几道题目就熟悉了, 就我而言, 这是熟悉新语言最快的方式
    接下去就可以上手做项目了, 一些高级的特性跟着项目边做边学
    Co1a
        48
    Co1a  
    OP
       2018-12-01 10:37:06 +08:00 via iPhone
    @falcon05 就是这个意思……慢但是详细,准备再买一本,go tour 其实就是基本语法,开始造轮子了
    vsomeone
        49
    vsomeone  
       2018-12-01 12:25:57 +08:00
    Go 其实和 C 很像。我猜可能设计者一开始有抱着开发一个更好用的 C 的目标
    所以不如先把 C 用熟练吧
    abcbuzhiming
        50
    abcbuzhiming  
       2018-12-01 12:41:52 +08:00
    @anonymous256 我这么说吧,Go 根本就不想实现什么“继承”,“多态”。Go 的核心思想是组合,所以才会有那么特别的接口实现。继承封装多态是过去传统的面向对象理论界喜欢的东西,工程界更关注的是组合,因为组合的耦合度是最低的。我建议如果要学 go,最好把继承封装多态这套东西全抛开
    aa514758835
        51
    aa514758835  
       2018-12-01 14:21:24 +08:00
    看视频+多敲敲,
    anonymous256
        52
    anonymous256  
       2018-12-02 00:38:35 +08:00 via Android
    @abcbuzhiming 不太同意你的看法。因为“封装” “多态”“继承”不是实现的目的,而是实现的结果。go 是一门面向对象的语言,体现了这些思想毫不奇怪,只是它看起来“不寻常”一些。

    1. 封装是 go 自身的特性之一,比如函数名首字母大写才能在 package 外使用。通常而言,我只会把封装好的函数使用首字母大写,供其它的 package 调用。而其它我不希望别人调用的方法和结构体,首字母小写。go 为什么要搞大小写,说到底还是为更好的封装一个包。

    2. go 的确没有继承的概念,"Composition over inheritance",它通过对象组合实现了多态行为和代码复用。多态行为也是它的典型特征,接口最容易体现多态。

    https://spf13.com/post/is-go-object-oriented/
    https://golangbot.com/polymorphism
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5473 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 01:25 PVG 09:25 LAX 18:25 JFK 21:25
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86