Completely new programmer, trying to start with go. Good resources/anything i should know first?

agolangf · · 758 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>Hi, as the title says, i am completely new to programming and trying to start with go. While dave cheney&#39;s site from the sidebar gives a lot of suggestions, most seem to be more appropriate for programmers in other languages switching to go(instead od people with little to no programming experience like myself). Any resources/way of learning/advice you guys can give about what to do? Thanks!</p> <hr/>**评论:**<br/><br/>mwholt: <pre><p>Welcome to the world of code.</p> <p>Opinions about this are probably going to be highly divided. Programming is less about languages (like Go or Python or whatever) and more about writing instructions. Instructions that are clear, correct, and efficient. We simply use languages to encode these instructions in a way that is easy for us to follow but also easy for a machine to perform.</p> <p>The Go tour is good, so you can try it, but it expects that you know basic language constructs like how if statements work and what variables are. To understand that, it&#39;s important to know how the machines work on a mechanical level. I don&#39;t know your background, but make sure you know the components of a computer - not merely that they exist but also how they work (at a high level). For example, you don&#39;t need to know how RAM stores electric charges but you ought to know that memory reads and writes data to addresses and that a variable is a chunk of allocated memory that holds a value. You don&#39;t need to know how a transistor works as much as the fact that a general purpose CPU can only do one thing at a time (basically). Things like that.</p> <p>Honestly, a book would be a good way to start. I don&#39;t know what&#39;s good these days for beginner programmers but find one that doesn&#39;t only teach you a language. Sure, languages are important since that is how we represent computations, but to really grasp programming you need to know what your language features are doing. Not understanding this will lead to lots of copying and pasting code.</p> <p>Also, I recommend that you practice typing. Not speed, but rigor. If you are lazy about typing, as most people are, you will expend more energy on fixing silly syntax errors than solving real problems. Be careful about casing, spacing, indentation, punctuation, etc., and be concerned about overall readability. Many of my friends who started programming never continued because it was too hard to type things correctly. It&#39;s okay to be slow, but be correct! Choose a good text editor and learn it well. Know it&#39;s features and learn keyboard shortcuts. Finally, keep your files organized. Don&#39;t get sloppy about where you put things. It will come back to bite you if you do.</p> <p>So have fun. It really is an exciting field. Frustrating, but fun.</p></pre>seefud: <pre><p>Thanks for the response. I actually know what if/then statements and variables are because of dabbling with matlab(recent engineering graduate) and also super super basic python a while back. I definitely need to learn more about how machines and their separate components work though. Also my typing is pretty bad, so I&#39;ll work on that. I currently use a text editor called Atom according to what <a href="http://www.golang-book.com/" rel="nofollow">http://www.golang-book.com/</a> said, which is a pretty good intro to Go. Thanks for the tips!</p></pre>CapoFerro: <pre><p>Start with <a href="http://tour.golang.org" rel="nofollow">http://tour.golang.org</a></p></pre>seefud: <pre><p>Hey, thanks for the suggestion. This looks pretty good, but I don&#39;t know some of the stuff that it references. For example, I&#39;m not sure what an import path is or what a package is by using the tutorial, even though the tutorial does a good job explaining what each thing does(not each thing is, if that makes any sense). But it&#39;s a pretty good tutorial so far when i use it along with google to understand the words i don&#39;t know that well. </p></pre>Fwippy: <pre><p>&#34;Packages&#34; are just sets of reusable code that someone has written (maybe you, mostly other people). &#34;Importing&#34; a package gives you access to the functions and data that&#39;s written in those packages.</p> <p>As an example, the &#34;math&#34; package provides handy functions like square-root, sine/cosine, and absolute value. Adding <code>import &#34;math&#34;</code> to the top of your program will let you use <code>sideLength := math.Sqrt(squareArea)</code>.</p></pre>klaaax: <pre><blockquote> <p>i am completely new to programming</p> </blockquote> <p>If you can&#39;t find someone who can teach you, AFAIK there is no Beginning Programming with Go book. Go isn&#39;t complicated but things wont make sense if you don&#39;t understand the basics of programming.</p> <p>I advise you to pick a book about Learning programming with C(like &#34;C for dummies&#34;). Then Go will be easy to pick afterwards.</p></pre>yene: <pre><p><a href="http://gobyexample.com/" rel="nofollow">http://gobyexample.com/</a></p></pre>

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

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