Resources to learn Go

polaris · · 494 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>Hi guys I would like to get some recommendations about web-based resources to learn Go. I have searched the web and came up with the ones I put on this <a href="https://mindweb.network/board/learn-to-code-googles-go">MindWeb Board</a>. Which other resources like books, videos or websites would you guys recommend?</p> <hr/>**评论:**<br/><br/>deusmetallum: <pre><p>The absolute number 1 resource should be the tour, ahead of anything else. Then it should be followed by the official wiki tutorial. Everything else should exist lower down a list, else it could lead to confusion.</p> <p>If I&#39;m going to be brutally honest though, I don&#39;t think a list like this will do much. People often ask &#34;how can I learn Go?&#34; yet if they were a seasoned programmer, they should have been able to hunt down the tour and get on with it.</p> <p>When people turn up asking to learn go, what they&#39;re really asking is &#34;I want to know how to program, and I&#39;ve heard go is good.&#34; I think in these instances, people should be pointed to places such as Code Academy&#39;s Python course to get the basics of flow control, etc, and then they can look into go.</p></pre>arp242: <pre><p>Personally I don&#39;t really like the Go Tour. It doesn&#39;t really explain things all that well, doesn&#39;t really have any proper exercises (and the exercises that it does have <a href="https://tour.golang.org/flowcontrol/8">ask you to translate some math to Go code</a>), and is in general not a very good resource for really learning stuff, IMHO.</p> <p>I find that <a href="http://www.gopl.io/">The Go Programming Language</a> is a much better resource for people to learn Go. Only downside is that it&#39;s not free, although $32 is very reasonable as far as professionally written programming books go and if you&#39;re serious about picking up a new skill then $32 is a bargain.</p></pre>65a: <pre><p>Is starting with a dynamically typed language really that helpful to new programmers? I sometimes wonder if it&#39;s counterproductive, as debugging dynamically typed problems is often harder than responding to a compiler error.</p></pre>deusmetallum: <pre><p>Debugging may be harder, but I&#39;m not talking about people who are going to be debugging tomorrow code which they wrote today.</p> <p>In trying to get people in to programming, I want to reduce the barriers for entry, and python has nice features for this. </p> <p>Think of the following</p> <ul> <li>Bool</li> <li>String</li> <li>Int</li> <li>Float</li> <li>Pointer</li> <li>Generic</li> </ul> <p>Outside of coding communities these words have little or no meaning, yet we throw them around all the time and expect newbies to pick up these concepts all at the same time they&#39;re trying to understand variables, functions and methods.</p> <p>Let&#39;s remove, for now, any concept which isn&#39;t necessary for a small script, and introduce them when the user is ready for something more meaty.</p></pre>65a: <pre><p>I don&#39;t disagree, but watching someone learn to program lately has led me to believe maybe understanding types is just as important as understanding variables. I just have a guilty thought maybe hiding types actually makes learning to program harder.</p></pre>deusmetallum: <pre><p>This may actually be where go wins, because you can teach the concepts of variables and flow control without introducing types using the quick form, but you can expand on them later.</p> <p>The only problem is you can&#39;t introduce functions without them.</p></pre>65a: <pre><p>I&#39;m not sure I think Go is a better learning language, but I think python also requires learning types, just so you can get your &#34;string&#34; to multiply with an int without errors (i.e., accept user input, extract the number, multiply it, etc). I do feel like the Go syntax is maybe more intimidating than python, but as someone who learned HyperTalk as a first language, distance from English is inversely correlated with surprise.</p></pre>fullmight: <pre><p>I wouldn&#39;t recommend it, but then again I did get started with statically typed languages. I believe <em>most</em> colleges start you out that way.</p> <p>Honestly I find dynamically typed languages to just be hellish and unintuitive to deal with in general, but obviously not everyone feels that way.</p></pre>fullmight: <pre><blockquote> <p>yet if they were a seasoned programmer, they should have been able to hunt down the tour and get on with it.</p> </blockquote> <p>Why would you only wanted seasoned programmers to learn Go?</p> <p>Additionally, it&#39;s still handy to have a readily accessible all in one resource list. Probably not <em>too</em> useful if it doesn&#39;t pop up at the top of a google search, but still having resources already listed and ranked with summaries is going to be faster than taking the time to look it up yourself even if you know what you&#39;re doing.</p></pre>deusmetallum: <pre><p>I&#39;m not saying that only seasoned pros should learn Go. I&#39;m just saying that the tour is so good that a professional programmer should be able to read it and get a good handle on Go very quickly.</p> <p>New programmers should use it too, but I think they will have a better time if they are tought through a practical exercise which creates an application at the end of it.</p></pre>ChristophBerger: <pre><p>A book that should certainly be on this list is <a href="http://katherine.cox-buday.com/concurrency-in-go/" rel="nofollow">Concurrency in Go</a>. </p> <p>Also, <a href="https://www.usegolang.com/" rel="nofollow">„Learn to Create Web Applications using Go“</a> is a great book and online video course about exactly what the title says. </p> <p>And I don‘t know if this plug is appropriate here but may I humbly ask to also consider my course <a href="https://appliedgo.com/p/mastergo" rel="nofollow">Master Go</a> that I launched last Wednesday?</p> <p>(Edited: formatting)</p></pre>f4vy: <pre><p>Cool. Ty</p></pre>Doctuh: <pre><p>Exercism.io</p></pre>fullmight: <pre><p>I&#39;m doing a little open source project with a couple of friends at varying skill levels and our list of getting started resources is:</p> <blockquote> <h4>Resource/Tutorial list</h4> <h4>Very good full video tutorial to Go; learn go in an hour (probably start here)</h4> <p><a href="https://www.youtube.com/watch?v=CF9S4QZuV30" rel="nofollow">https://www.youtube.com/watch?v=CF9S4QZuV30</a></p> <h5>Basic encrypted transport/server tutorial</h5> <p><a href="https://go.unicorn.tv/articles/basic-encryption-in-golang" rel="nofollow">https://go.unicorn.tv/articles/basic-encryption-in-golang</a></p> <h5>Best practices for middleware tutorial/guide (hot topic in go community/most middleware is shit because it was written without following many best practices)</h5> <p><a href="https://www.nicolasmerouze.com/middlewares-golang-best-practices-examples/" rel="nofollow">https://www.nicolasmerouze.com/middlewares-golang-best-practices-examples/</a></p> <h5>Quick intro/&#34;tour&#34; of Go</h5> <p><a href="https://tour.golang.org/welcome/1" rel="nofollow">https://tour.golang.org/welcome/1</a></p> <h5>Official beginner Go tutorial</h5> <p><a href="https://golang.org/doc/code.html" rel="nofollow">https://golang.org/doc/code.html</a></p> <h5>Intermediate/advanced documentation on Go efficiency/optimization</h5> <p><a href="https://golang.org/doc/effective_go.html" rel="nofollow">https://golang.org/doc/effective_go.html</a></p> <h5>Overview of best industry practices. While I&#39;m sure not everyone agrees, most of these are great ideas that we probably ought to use.</h5> <p><a href="https://peter.bourgon.org/go-best-practices-2016/" rel="nofollow">https://peter.bourgon.org/go-best-practices-2016/</a></p> <h5>Unit testing in Go. Yeah, we really do need to know and throughoughly cover our code in unit tests or die trying.</h5> <p><a href="https://blog.alexellis.io/golang-writing-unit-tests/" rel="nofollow">https://blog.alexellis.io/golang-writing-unit-tests/</a></p> </blockquote> <p>Sorry for the weird formatting, but it&#39;s just directly from our github readme file I have locally, and really the list is meant to be used with me around to ask questions.</p> <p>Might be a little biased as a general tutorial list since we&#39;re focusing on over-engineering the project a bit as resume material.</p></pre>snippet2: <pre><p>In the beginning it was the hours spent coding stuff that was fun that gives you a foundation first. The &#34;weird projects&#34;. Like mixing jquery + animatecss + greensockjs to call the animations of all three together with the css library to create a really interactive website for no good reason. It is these weird draws into the programming world that helps you build a foundation into other things and builds a thirst for more tools. In go you learn that it is all built already into the standard library.</p> <p>But most importantly, have fun and eventually everything you do will come back in handfuls and eye memory. I started after all that with Todd mcloeds tutorials, then I knew I had to really get the basics and I just started to try to build stuff without looking it up with gobyexample.com. Like writing embedded structs and passing data through them. Then trying out the packages. Then trying to connect a databases, templates, restful api..ect. You eventually get an eye for things and once you know the concepts, looking it up is easy. Then try to do it by memory. As long as you are hitting the keys and fulfilling your curiosity, you will learn it. </p> <p><a href="https://i.pinimg.com/originals/a7/60/4a/a7604a884ddceb68697ca406d83ee58f.jpg" rel="nofollow">https://i.pinimg.com/originals/a7/60/4a/a7604a884ddceb68697ca406d83ee58f.jpg</a></p></pre>

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

494 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传