前端 Coder 如何学习 Golang? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zoeyx
V2EX    程序员

前端 Coder 如何学习 Golang?

  •  
  • &nbp; zoeyx 2024-05-07 15:41:27 +08:00 3845 次点击
    这是一个创建于 571 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在各招聘网站稍微好点的岗位基本都需要熟练使用 golang 语言,前端现在也要兼顾做些后端的事了。

    各位有什么好的学习路线 or 建议?
    31 条回复    2024-05-09 16:49:14 +08:00
    Shijamlin
        1
    Shijamlin  
       2024-05-07 15:46:07 +08:00
    其实 Golang 不难上手, 如果你是从零学的话, 建议你直接学 Rust
    rookie2luochao
        2
    rookie2luochao  
       2024-05-07 15:49:12 +08:00
    @Shijamlin 一般用 go 还可以写服务端,用 rust 写 web 服务的少,前端更多的是重写基础构建工具,后端主要是重写中间件
    rookie2luochao
        3
    rookie2luochao  
       2024-05-07 15:49:59 +08:00
    直接找一个 go 全栈项目,直接变看文档边调试学习
    yekern
        4
    yekern  
       2024-05-07 15:52:29 +08:00
    随便找个入门视频看看 大概 3 个小时够了, 剩下就 GTP 呗.随用随问, 写写就会了 感觉还比较简单的
    ixixi
        5
    ixixi  
       2024-05-07 15:54:39 +08:00
    go 很简单 我某天接了了外包单子 , 就想尝试点新东西, 然后边学边做慢慢掌握了, 刚开始学会写增删改查基本就入门了百分之八十了
    azhong123
        6
    azhong123  
       2024-05-07 16:07:21 +08:00
    @Shijamlin 佬,指点一下,为啥 Rust; 想学,求个动力
    rookie2luochao
        7
    rookie2luochao  
       2024-05-07 16:17:55 +08:00
    @azhong123 因为前端基础工具很多占有内存和 cpu 的都在用 rust 重构提升效率,学 rust 有机会在这些地方去实践
    rookie2luochao
        8
    rookie2luochao  
       2024-05-07 16:19:04 +08:00
    @azhong123 但是楼主说明了背景:需要兼顾做些后端的事了,说明考虑到后端 curd ,所以问 go 的学习
    CJ2r4u3EH4lrM7aR
        9
    CJ2r4u3EH4lrM7aR  
       2024-05-07 16:21:28 +08:00   3
    @yekern 初学才最怕用 gpt ,你根本没听说过的东西他一个字都不会提,除非你证明你会这个东西,那他也不一定会打的就是对的。初学者最忌讳遇到假知识、片面误导的知识,因为没有能力分辨。
    ZnductR0MjHvjRQ3
        10
    ZnductR0MjHvjRQ3  
       2024-05-07 16:21:40 +08:00
    @yekern 正解 基础语法学会了后面就是 用到了找 gpu 问 我 python 就是这么学的
    ZnductR0MjHvjRQ3
        11
    ZnductR0MjHvjRQ3  
       2024-05-07 16:23:09 +08:00
    @Jame00001 不能一味的听取 gpt 的 他的正确用法是让他给你个大方向 然后你在自己去跟着大方向去寻找 中间卡壳了再去想办法或者问他 一步一步的向下走 但是中间你还是要思考
    azhong123
        12
    azhong123  
       2024-05-07 16:29:51 +08:00
    @rookie2luochao 好的,get; 谢谢佬;

    另外再问一下佬,推荐系统工程岗了解吗? 我 java 后端好多年了,想转过去,但是不知道怎么入门
    rookie2luochao
        13
    rookie2luochao  
       2024-05-07 16:39:26 +08:00
    @azhong123 我不是大佬,这个岗位好像门槛还有点高?半路转行确实不容易,我没有相关经验,无法帮助你,建议你找点相关框架 TensorFlow 、PyTorch 学习一下,再写点东西去投递一下试试
    kuanat
        14
    kuanat  
       2024-05-07 16:41:03 +08:00
    语法层面过一遍官方的 Tour 差不多够了。

    练手的话我比较推尝试写个爬虫服务,不是让你真去爬什么,而是这个过程用到的东西学习曲线比较平滑。

    解析页面元素这个过程,大概能熟悉强类型语言处理字符串的模式,了解结构体的应用。后期还会接触到反射等机制的应用。

    之后是一般的网络编程,发送接收请求。这个过程可以熟悉标准库的风格和惯例,网络库算是 Go 比较精髓的部分了。

    再之后是多线程处理,了解 chan/goroutine 的使用,以及常见的并发模型。领会一下用通信的方式来共享内存的核心思维。

    最后把改造成服务,学习一下路由处理、中间件等等服务端常见的应用。之后有可能会慢慢接触到模板、泛型的应用。

    前期不用考虑处理太复杂的情形,用标准库把功能实现出来就行。整个过程里可以慢慢熟悉后端工程化的实践。
    mxT52CRuqR6o5
        15
    mxT52CRuqR6o5  
       2024-05-07 16:41:56 +08:00
    @azhong123 #6
    js 是动态类型、有 runtime 、有 gc
    go 是静态类型、有 runtime 、有 gc
    rust 是静态类型、无 runtime 、无 gc
    从类型、runtime 、gc 三个角度来看,rust 是和 js 完全不同的语言,能学到的东西更多
    azhong123
        16
    azhong123  
       2024-05-07 16:43:52 +08:00
    azhong123
        17
    azhong123  
       2024-05-07 16:44:16 +08:00
    @rookie2luochao 感谢,大佬
    redbule
        18
    redbule  
       2024-05-07 16:46:39 +08:00
    如果你没做过后端,那你可以用 nodejs 的技术栈快速上手。熟悉了之后再看 go 的东西,就很简单了。
    you222
        19
    you222  
       2024-05-07 16:51:45 +08:00
    可以看下面两个链接入门:
    1. https://go.dev/tour/
    2. https://go.dev/doc/effective_go
    adrianyx
        20
    adrianyx  
       2024-05-07 16:54:32 +08:00
    我感觉 go 真的是最好入手的语言,语法层面的东西不多,反正我最喜欢看 go 的代码,理解起来比其他语言的代码要容易一些(代码层面),我甚至觉得要是之前有别的语言的基础就没必要专门学 go 了,go 和并发有关的,例如 goroutine ,chan 什么的需要额外看一看,自己动手写一写,就差不多了。
    Moierby
        21
    Moierby  
       2024-05-07 19:12:43 +08:00
    我前端,感觉 golang 很容易上手的,很多写法和 TS 差不多
    suyulingxm
        22
    suyulingxm  
       2024-05-07 19:16:22 +08:00
    golang 看文档一个星期就可以上手,搞懂 goroutine 和 select 的使用就算入门了
    meshell
        23
    meshell  
       2024-05-07 20:43:05 +08:00
    看到这个问题,就想起 7 天前面试做了 35 道面试题。其中有一个题目问 func, val, struct, class 这几个那 些是 golang 的关键词,我就全选了。。。然后面试官说你应该好好系统的学习下 golang 语言。。。其实我也不知道 class 是不是我猜是保留关键词。。。。
    LeegoYih
        24
    LeegoYih  
       2024-05-07 20:56:39 +08:00   1
    0Z03ry75kWg9m0XS
        25
    0Z03ry75kWg9m0XS  
       2024-05-07 21:16:22 +08:00
    go 语法非常简洁,过完文档挑个 CRUD 的项目看一遍就行
    Amyang
        26
    Amyang  
       2024-05-08 06:21:51 +08:00
    Morning009
        27
    Morning009  
       2024-05-08 09:34:43 +08:00
    @Shijamlin rust 主要写工具链吧,想入门后端还是 go 比较好
    imianba2zz
        28
    imianba2zz  
       2024-05-08 11:28:01 +08:00
    看完这个,我觉得就学会 70%-80%了: https://github.com/Zhouchaowen/golang-tutorial
    xxxccc
        29
    xxxccc  
       2024-05-08 14:47:12 +08:00   1
    @Motorola3 可怕的是,gpt 给你的知识是错的,但是你又没有能力辨别真伪。
    ZnductR0MjHvjRQ3
        30
    ZnductR0MjHvjRQ3  
       2024-05-08 15:20:23 +08:00
    @d9e7381f 人不啥 gpt 不是百分百可信 当你发现有问题或者走不通 就要怀疑它
    Shijamlin
        31
    Shijamlin  
       2024-05-09 16:49:14 +08:00
    @azhong123 Go 上手比较丝滑, Rust 学习曲线比 Go 要陡峭一点, 但是能比 Go 学到更多的东西, 看你的目标是什么, 如果你主业是前端, 后端只是兼顾做些小事情, 那 Go 学习要舒服点, 如果你是想系统性的搞后端, Rust 是个不错的选择, 我了解的几个牛逼项目, 都从 Go 迁移到 Rust 了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     952 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 23:37 PVG 07:37 LAX 15:37 JFK 18:37
    Do have faith in what you're doing.
    ubao msn 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