I am completely new to coding and Golang, where should I start?

xuanbao · · 459 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>Hi all! </p> <p>I am a 21 year old marketing student with love for tech who wants to create his own tech startup and from what I have seen and researched on the internet Golang is the way to go for the future despite Python being easier to learn with much more info.</p> <p>As Golang is relatively new, I haven&#39;t really found where I should start and what could help me most. What would you all suggest I do? </p> <p>Thanks already!!</p> <hr/>**评论:**<br/><br/>the_andrei: <pre><p>The <a href="https://tour.golang.org/welcome/1" rel="nofollow">Tour of Go</a> is a great place to start. It assumes some prior programming knowledge, but will get you ramped up on Go specifics very quickly.</p></pre>Southclaws: <pre><p>Just For Func is a great series of simple coding screencasts by Francesc Campoy (dev at google) - it includes code reviews and short projects which definitely delve into the go-specific features and reasoning for certain patterns, definitely recommend for once you&#39;ve gone over the basics in the Tour or Go and Go By Example!</p></pre>goboy123: <pre><p>Here is another great video that kinda explains the concepts of go and regular programming. Honestly it&#39;s kinda dry but as you can see, many don&#39;t watch and read these things and so they get their information mixed up. <a href="https://youtu.be/ABGF_ryhFzM" rel="nofollow">https://youtu.be/ABGF_ryhFzM</a></p> <p>A great article that explains maybe why go more is this way. <a href="https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html?m=1" rel="nofollow">https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html?m=1</a></p> <p>Go is very quickly getting talked about in the world as you can see. But that bump took about 7 years to come to be. <a href="https://www.tiobe.com/tiobe-index" rel="nofollow">https://www.tiobe.com/tiobe-index</a></p> <p>Really it comes down to a couple things from what I see.</p> <ul> <li><p>Readability = maintanability</p></li> <li><p>Uncoupled from traditional OOP</p></li> </ul> <p>-Less to memorize</p> <ul> <li><p>Gives you understanding of reusable interface types. Don&#39;t couple your code with inheritance if possible but through what the structures have in common as far as what they &#34;do&#34;. This way your code can be like water.</p></li> <li><p>Gives you kinda access to low level procedures like pointers, core go code, and fundamental understanding of types.</p></li> <li><p>Errors are values. Basically instead of try catches you would store the error inside a variable. Which is nice for adaption.</p></li> <li><p>The advocates are really really helpful and real people. Look them up on Twitter!</p></li> <li><p>If you see a big code base they end up looking nice. Look at Rob Pike&#39;s code. You can actually understand the best programmers code! </p></li> <li><p>Im burned out personally from the million php core methods, js libraries, and Python frameworks. Go doesn&#39;t concrete itself on these giant monoliths that have no code visibility.</p></li> <li><p>For fun it installs on almost any infrustructure and actually tells you what&#39;s wrong. It let&#39;s you drill down to it&#39;s core code and let&#39;s you reuse it&#39;s guts. </p></li> </ul></pre>video_descriptionbot: <pre><table><thead> <tr> <th align="left">SECTION</th> <th align="left">CONTENT</th> </tr> </thead><tbody> <tr> <td align="left">Title</td> <td align="left">Go-Miami: Object Oriented Programming in Go</td> </tr> <tr> <td align="left">Description</td> <td align="left">Steve Francia, the Chief Developer Advocate at MongoDB and a current Go speaker at OSCON, will give a presentation about object oriented programming in Go. Steve has contributed to dozens of open source projects in many different languages. He has an extensive repository on Github and is the author of Hugo, a fast and modern static website engine built in Go. Steve also gives talks at different conferences throughout the year.</td> </tr> <tr> <td align="left">Length</td> <td align="left">0:46:37</td> </tr> </tbody></table> <hr/> <p><sup>I am a bot, this is an auto-generated reply | </sup><sup><a href="https://www.reddit.com/u/video_descriptionbot" rel="nofollow">Info</a></sup> <sup>|</sup> <sup><a href="https://www.reddit.com/message/compose/?to=video_descriptionbot&amp;subject=Feedback" rel="nofollow">Feedback</a></sup> <sup>|</sup> <sup>Reply STOP to opt out permanently</sup></p></pre>ger4thewin: <pre><p>Wow, thank you for taking the time to make this list! It means a lot, and this all sounds like great advice that I definitely needed! </p></pre>goboy123: <pre><p>I would study error handling in great detail. Cause every language you need to check your errors like as if you wouldnt even trust Jesus with your inputs. <a href="https://dave.cheney.net/2016/06/12/stack-traces-and-the-errors-package" rel="nofollow">https://dave.cheney.net/2016/06/12/stack-traces-and-the-errors-package</a></p> <p>Also, study the heck out of interfaces and multiple types cause that&#39;s where go shines. Go is more about coding philosophy then shiny new features.<br/> <a href="https://youtu.be/7YcLIbG1ekM" rel="nofollow">https://youtu.be/7YcLIbG1ekM</a></p> <p><a href="https://docs.google.com/document/d/1Zb9GCWPKeEJ4Dyn2TkT-O3wJ8AFc-IMxZzTugNCjr-8/edit?usp=drivesdk" rel="nofollow">https://docs.google.com/document/d/1Zb9GCWPKeEJ4Dyn2TkT-O3wJ8AFc-IMxZzTugNCjr-8/edit?usp=drivesdk</a></p> <p>Just don&#39;t code like you learned in school for the most part. Because you&#39;ll be turning go into something it is not. It is a simple solution. It&#39;s sorta what people turn to when they get burned out memorizing the new generics of c++/c#/js</p></pre>irqlnotdispatchlevel: <pre><p>I don&#39;t code in JavaScript but does it have generics?</p> <p>And what do you mean by &#34;new generics&#34;?</p> <p>And why do you consider generics bad? </p> <p>And why do you think that people should memorize a language instead of learning it through exercise? </p></pre>Killing_Spark: <pre><p>Javascript doesnt need generics, as it isnt strongly typed i think</p></pre>anacrolix: <pre><p>It doesn&#39;t need them because it&#39;s dynamically typed.</p></pre>goboy123: <pre><p>a generic is a concept of separating logic from a data type. In javascript everything is an object type except primitives. So javascript does this implicitly.</p></pre>goboy123: <pre><p>Sorry for the slang. That was a mistake. This example should be what I should of sent instead.</p> <p><a href="https://youtu.be/sBzRwzY7G-k" rel="nofollow">https://youtu.be/sBzRwzY7G-k</a></p> <p>Which lead to this.</p> <p><a href="https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f" rel="nofollow">https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f</a></p> <p>Really, I almost had a meltdown lol. </p></pre>could-of-bot: <pre><p>It&#39;s either should <strong>HAVE</strong> or should<strong>&#39;VE</strong>, but never should <strong>OF</strong>. </p> <p>See <a href="http://www.grammarerrors.com/grammar/could-of-would-of-should-of/" rel="nofollow">Grammar Errors</a> for more information.</p></pre>winger_sendon: <pre><p>This bot is awesome</p></pre>Killing_Spark: <pre><p>Hell yeah it is. As a non native this throws me off every time </p></pre>irqlnotdispatchlevel: <pre><p>You didn&#39;t really answered my questions.</p></pre>goboy123: <pre><p>Well libraries and frameworks are basically generics because they are reusable code. When a library comes out every week that the community pushes, then there becomes a problem with a communities ability to communicate. Because terms used to describe generics change almost excessively. This was described in my article and video and short description.</p></pre>irqlnotdispatchlevel: <pre><p>While the article was a fun read (except the python thing, I didn&#39;t really get what it was about), what the hell are you talking about with &#34;libraries and frameworks are basically generics&#34;? </p></pre>goboy123: <pre><p><a href="https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/mobilebasic" rel="nofollow">https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX4pi-HnNjkMEgyAHX4N4/mobilebasic</a></p></pre>irqlnotdispatchlevel: <pre><p>I&#39;m not interested in Go&#39;s history of generics, but I&#39;m starting to think that you don&#39;t know what generics are. </p> <p>And the fact that you seem to be unable to discuss something and always give long documents instead of answers is a bit weird. </p></pre>goboy123: <pre><p>There are people here who genuinely are looking for help here in the go community.</p> <p>If you are you are contributing then solute your solution or go here -&gt; <a href="/r/programmingcirclejerk" rel="nofollow">r/programmingcirclejerk</a> otherwise in my view you are negatively affecting the community. </p></pre>mixedCase_: <pre><p>You&#39;re misguiding the community by equating reusable code with generics, so before starting accusations you should reflect on what irql told you, because he&#39;s right.</p></pre>video_descriptionbot: <pre><table><thead> <tr> <th align="left">SECTION</th> <th align="left">CONTENT</th> </tr> </thead><tbody> <tr> <td align="left">Title</td> <td align="left">2016/2017 MUST-KNOW WEB DEVELOPMENT TECH - Watch this if you want to be a web developer</td> </tr> <tr> <td align="left">Description</td> <td align="left">What should you learn in 2016/2017? This video gives you a complete roadmap! View the mindmap: <a href="https://coggle.it/diagram/Vz9LvW8byvN0I38x" rel="nofollow">https://coggle.it/diagram/Vz9LvW8byvN0I38x</a> The Docker Course!: shop.oreilly.com/product/0636920051343.do</td> </tr> <tr> <td align="left">Length</td> <td align="left">0:22:52</td> </tr> </tbody></table> <hr/> <p><sup>I am a bot, this is an auto-generated reply | </sup><sup><a href="https://www.reddit.com/u/video_descriptionbot" rel="nofollow">Info</a></sup> <sup>|</sup> <sup><a href="https://www.reddit.com/message/compose/?to=video_descriptionbot&amp;subject=Feedback" rel="nofollow">Feedback</a></sup> <sup>|</sup> <sup>Reply STOP to opt out permanently</sup></p></pre>goboy123: <pre><p>If &#34;generic&#34; is just a concept of separating logic from it&#39;s data type... Then js pretty much already does that by definition. Because everything except primitives are considered object types. But on Reddit if you use the wrong semantics you&#39;ll be burned at the stake.</p></pre>ger4thewin: <pre><p>Thank you! This is already a great start! Also, I have seen A Tour of Go, is this a good place to start, too? </p></pre>forfunc: <pre><p>Yes!</p></pre>Arftacular: <pre><p>I think this is really great. Along with OP, I&#39;m completely new to coding and the philosophy behind Golang has really caught my attention. How can I learn about the things this guy is talking about: like code coverage, best practices, and things like that especially when I don&#39;t come from a coding background?</p> <p>Thank you so much in advance. I&#39;m really excited about learning this but I really want to learn it the right way.</p></pre>Mentioned_Videos: <pre><p>Videos in this thread: <a href="http://subtletv.com/_r6gev9p?feature=playlist" rel="nofollow">Watch Playlist ▶</a></p> <table><thead> <tr> <th>VIDEO</th> <th>COMMENT</th> </tr> </thead><tbody> <tr> <td><a href="http://www.youtube.com/watch?v=7YcLIbG1ekM" rel="nofollow">Go Talk &amp; Ask Me Anything With William Kennedy</a></td> <td><a href="https://www.reddit.com/r/golang/comments/6gev9p/_/dipr0gf?context=10#dipr0gf" rel="nofollow">+3</a> - I would study error handling in great detail. Cause every language you need to check your errors like as if you wouldnt even trust Jesus with your inputs. Also, study the heck out of interfaces and multiple types cause that&#39;s where go shines. Go i...</td> </tr> <tr> <td><a href="http://www.youtube.com/watch?v=ABGF_ryhFzM" rel="nofollow">Go-Miami: Object Oriented Programming in Go</a></td> <td><a href="https://www.reddit.com/r/golang/comments/6gev9p/_/dipynvi?context=10#dipynvi" rel="nofollow">+2</a> - Here is another great video that kinda explains the concepts of go and regular programming. Honestly it&#39;s kinda dry but as you can see, many don&#39;t watch and read these things and so they get their information mixed up. A great article that explain...</td> </tr> <tr> <td><a href="http://www.youtube.com/watch?v=sBzRwzY7G-k" rel="nofollow">2016/2017 MUST-KNOW WEB DEVELOPMENT TECH - Watch this if you want to be a web developer</a></td> <td><a href="https://www.reddit.com/r/golang/comments/6gev9p/_/diq6w6e?context=10#diq6w6e" rel="nofollow">+1</a> - Sorry for the slang. That was a mistake. This example should be what I should of sent instead. Which lead to this. Really, I almost had a meltdown lol.</td> </tr> </tbody></table> <p>I&#39;m a bot working hard to help Redditors find related videos to watch. I&#39;ll keep this updated as long as I can.</p> <hr/> <p><a href="http://subtletv.com/_r6gev9p?feature=playlist&amp;ftrlnk=1" rel="nofollow">Play All</a> | <a href="https://np.reddit.com/r/SubtleTV/wiki/mentioned_videos" rel="nofollow">Info</a> | Get me on <a href="https://chrome.google.com/webstore/detail/mentioned-videos-for-redd/fiimkmdalmgffhibfdjnhljpnigcmohf" rel="nofollow">Chrome</a> / <a href="https://addons.mozilla.org/en-US/firefox/addon/mentioned-videos-for-reddit" rel="nofollow">Firefox</a></p></pre>rondr: <pre><p>Marketing guy here. I&#39;d avoid Golang. </p> <p>The documentation is written for people who already know other languages, making it very difficult as a first language. (I love when the documentation says &#34;as you might expect&#34; or &#34;the same as C&#34; or whatever. )</p> <p>There is much less golang code out there on github to borrow from. </p> <p>Much of the very cool stuff about golang about concurrency etc is not anything a beginner or marketer would need. </p> <p>Why not do JavaScript. That&#39;s what I wish I had done. </p></pre>mobiledevguy5554: <pre><p>Bad advice, I&#39;ve been dong this 25 years and go is the perfect language to learn as a first language.</p></pre>Improvotter: <pre><blockquote> <p>Why not do JavaScript. That&#39;s what I wish I had done.</p> </blockquote> <p>Please, if you&#39;re gonna recommend him a good language. Do not recommend him Javascript or PHP. New people need to know that a language needs to be consistent and that it lives up to expectations. Expectations like &#34;oh this is a for in loop, this array key must be an integer&#34;, which is not true in Javascript for example.</p> <p>You can always say that some other language is better. But I would&#39;ve preferred to have started with something like Go. Back when I was 15 or so I read the book &#34;The C programming language&#34; and that book back then learned me more than anything else ever would teach me in a language like Javascript. I got to know how a language really worked behind the scenes. I could then improve how I wrote my code.</p> <p>Learning Go is imo still a great way when you have good introductions to the language. And I&#39;m sure there are more than enough out there when there also are way more C introductions out there for complete beginners.</p></pre>Killing_Spark: <pre><p>This so much. I am currently in university and some guys i know are struggling so hard with c and java because all the funky hacks that worked in js now do not work anymore and they have to think in totally different ways now. </p> <p>Also a language where something like jsfuck is possible cannot be a good language for a beginner as they will most likley pick up some bad habits on the way. </p></pre>Improvotter: <pre><p>I&#39;m currently pursuing my second degree but started programming since I was about 12. I see all of these fellow students using Javascript because they are too damn lazy to struggle through the seemingly hard part. They have no idea how to operate in a team or with large project and then you get the community Javascript has: libraries left and right and people reinventing the wheel every day.</p></pre>

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

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