<p>And how long does it take to become proficient? I'm still going to learn it whatever the answer may be, I'm just curious.</p>
<hr/>**评论:**<br/><br/>ruralcoypu: <pre><p>It will take you 2 hours 7 minutes and 56 seconds to learn it, and to become proficient it will take an additional 16 hours, 40 minutes and 18 seconds.</p></pre>tinker_tom: <pre><p>Thanks bud.</p></pre>elnawe: <pre><p>+1</p></pre>Jelterminator: <pre><p>Based my experience from the company I work at. If you already have experience in other languages and learn it mostly through coding something full time. It normally takes about a week to get comfortable with syntax and basic design. It takes about a month to design stuff in an idiomatic way. And after about three months you know most of the intricacies of the language. </p></pre>iroflmaowtf: <pre><p>can confirm</p></pre>LadyDascalie: <pre><p>Very difficult to answer. But given you said you had some previous experience with c and c++, probably less than if you were a complete beginner. If you understand general programming paradigms, it won’t be long before you can learn to apply those to Go. But be wary that sometimes this will not always be the best way, Go has a specific way of doing things which sometimes goes against the grain. Understanding those gotchas is what will take you from being a programmer who uses Go to being a Go programmer, at least in my opinion </p></pre>deusmetallum: <pre><p>All depends if you've done any coding in the past. If you've done a fair bit, it shouldn't take you too long to get to learn its excentricities. But if you've never done anyway at all, then you may find it a while as you have to learn some core programming fundamentals.</p></pre>tinker_tom: <pre><p>I've done C and C++ stuff in the past. As in I can make a program work, but nothing major.</p></pre>deusmetallum: <pre><p>Shouldn't take too long then really.</p></pre>Kraigius: <pre><p>Took me a year to be comfortable with most of the language, learning it on weekends by developing some programs and reading here.</p>
<p>My background is with OOP so moving to a functional language was the most challenging part.</p></pre>J_Tarasovic: <pre><p>To paraphrase Shakespeare, "First-class functions does not a functional language make."</p></pre>Kraigius: <pre><p>What does this mean?</p></pre>foreverwantrepreneur: <pre><p>For a language to be considered functional, it needs a lot more that first-class functions. Functional languages are immutable whereas Golang is mutable.</p>
<p>I guess I should note that the amount of immutability depends on purity of the language. Haskell, a purely functional language, is entirely immutable (with the exception of using Monads). Rust, on the other hand, is immutable by default but can be "turned-off" per variable.</p>
<p>There are other concepts that apply to functional languages but, in my opinion, immutability and the degree of it is a major concept that separates functional from non-functional.</p></pre>kalekold: <pre><p>Go is not a functional language.</p></pre>sh41: <pre><p>Depending on whether you're already a programmer, I estimate around a few weeks, maybe even days. See this explanation and list of resources:</p>
<p><a href="https://news.ycombinator.com/item?id=5365401" rel="nofollow">https://news.ycombinator.com/item?id=5365401</a></p>
<p>(Note: it's from 4.5 years ago but still completely relevant.)</p></pre>DemandsBattletoads: <pre><p>I think I've figured most of it out in two weeks. I have a bunch of files, unit tests, and documentation now in my new project. The syntax, philosophy, and toolchains are surprising straightforward. It's very different from C-based languages at first, but it makes a lot of sense a few days in. There's good documentation online and there's a Go By Example site that I often check out.</p></pre>0xjnml: <pre><p>Depends on the definition of "to learn Go". (Yes there's no PL named golang).</p>
<p>For some definitions, it could be easily be less than a hour (helloworld.go).</p>
<p>For some other definitions it can take a couple of years.</p>
<p>The thing is that for the later definitions Go is not much different to most other languages, but what makes Go IMO interesting is the low entry barier - after helloworld.go the journey to the first simple, but real program can be sometimes much shorter compared to some, if not most of other mainstream languages.</p></pre>epiris: <pre><p>If you hit the ground running or not 100% depends on your experience. Are you learning syntax or Go syntax? Are you learning concepts for concurrent programming or concepts for concurrent Go. Then how soon you begin writing <a href="https://golang.org/doc/effective_go.html" rel="nofollow">effective Go</a> depends on if you are learning effective programming principles or effective Go principles. You get the theme here, it will vary by your past experience but generally speaking most Go programmers will agree the learning curve is pretty short in comparison to most languages due to languages fantastic minimal, yet concise syntax.</p></pre>definitelynotpietro: <pre><p>To be able to write stuff fairly quickly but not necessarily well, super quickly - like, hours to days.</p></pre>
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
1 回复 | 直到
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传