<p>I have 2-3 years experience in Python and would like to pick up the Go lang. I do not have much knowledge about pointers and concurrency. I have completed the Tour of Go and didn't face many difficulties until Maps. How do I learn more about the internals of Go while building some projects? What would be some good resources for a project-driven Go learning method?
Suggestions for books, videos, blogs etc are welcomed.</p>
<hr/>**评论:**<br/><br/>NeverUse-YouPromised: <pre><p>Find a Python program or script you love and translate it, line-by-line, into Go. In my case, it was <a href="http://nbviewer.jupyter.org/url/norvig.com/ipython/xkcd1313-part2.ipynb" rel="nofollow">this program</a>. That program includes regular expressions, set operations, object-oriented programming, intricacies on the details of pass-by-value, list comprehensions...it forced me right into the Go way of thinking.</p></pre>dchapes: <pre><blockquote>
<p>line-by-line</p>
</blockquote>
<p>IMO it's not a good idea to translate programs this way. You end up with a Python program shoe-horned into Go instead of a Go program. Different languages have different idioms and ways of doing things and ideally you should translate between those idioms which is a much higher level than "line-by-line".</p></pre>Neurotic_Goose: <pre><p>I started learning by using the Cobra library to build a little CLI tool. They make it super easy to get up and running.</p>
<p><a href="https://github.com/spf13/cobra" rel="nofollow">https://github.com/spf13/cobra</a></p></pre>thewhitetulip: <pre><p>It really depends as to what you are planning to learn, writing cli apps/webapp/ML/AI etc</p>
<p>I would recommend taking a look around what tools you require and aren't existing yet. For instance, I use an android phone with termux terminal, and I wanted a good todo list manager which'll sync up with my machine, so I wrote one in Go, I use the cli in termux which then syncs with syncthing. Thus, I have a small app which I use in day to day life.</p>
<p>I also wrote a todo list manager (<a href="https://github.com/thewhitetulip/Tasks" rel="nofollow">https://github.com/thewhitetulip/Tasks</a>) when I was learning webdev, then I wrote this (<a href="https://github.com/thewhitetulip/Tasks-vue" rel="nofollow">https://github.com/thewhitetulip/Tasks-vue</a>) when I was learning the VueJS.</p>
<p>The key is to build something <em>you</em> use, and if it is really a timesaver, then you can show it to others and they'd use it too.</p>
<p>I wrote a small guide , <a href="https://github.com/thewhitetulip/web-dev-golang-anti-textbook/" rel="nofollow">https://github.com/thewhitetulip/web-dev-golang-anti-textbook/</a>, it aims to teach how to write webapps to total newcomers to web development.</p>
<p>There is a quote attributed to Einstein, "you haven't really understood a topic until you can explain it to your grandmother", what I learned in my journey is that you'll learn faster if you teach others.</p>
<p>All the best!</p></pre>yaourtSS: <pre><p>Hi!
Do you know something about Go usage in cryptography? I found one but now it's too hard for me because I'm a beginner in this language.
I'm not really into webdev, but I love cli tools and crypto.
Can you also recommend some books/guides/repos related to the topic described above, please?
Thank in advance! </p></pre>thewhitetulip: <pre><p>I am not totally sure as to what you mean by Go usage in cryptography, what is it that you exactly want to do. Please forgive my naivety, I have not worked in cryptography.</p>
<p>What is it that you want to build? Do you want to break crypto algo or do you want to build them?</p>
<p>Make sure you read <a href="https://awesome-go.com" rel="nofollow">https://awesome-go.com</a> it has the largest collection of libraries. Do let me know if you need any other help :)</p></pre>whizack: <pre><p><a href="https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw" rel="nofollow">Just for Func</a> is a pretty solid intro.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传