Do you think Go would make a good first programming language?

xuanbao · · 440 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>Not for me.</p> <hr/>**评论:**<br/><br/>drewmoney: <pre><p>I&#39;m going through the process of learning it as my first language now. I&#39;ve been in I.T for 10 years though (support and then operations) so I have pretty good I.T knowledge.</p> <p>I find most information on the web is structured like; &#34;In Java/C/C# you&#39;d do this, but it&#39;s different in Golang!&#34; which is pretty useless to me. Not too much is aimed at the true beginner.</p> <p>Recently finished the Udemy course by Todd McLeod that I really liked as he just talked about the language and didn&#39;t go into every other language. He also starts at the very start and assumes very little.</p> <p>I&#39;m only ~6 weeks in to learning this and I have a long way to go, but for now I think I made the right choice for a first language.</p></pre>nyoungman: <pre><p>Here&#39;s a link to the Go course my Todd McLeod: <a href="https://www.udemy.com/learn-how-to-code/" rel="nofollow">https://www.udemy.com/learn-how-to-code/</a></p></pre>scythelx: <pre><p>Great guy and teacher.</p></pre>neoasterisk: <pre><p>Go is a language that you can only truly appreciate once you&#39;ve experienced the frustration with the existing languages and ecosystems. That said, it&#39;s simplicity makes it a pretty good first language. (What is a method? Just a function that you &#34;attach&#34; on a struct.) </p> <p>Also it&#39;s engineering design approach, tooling and ecosystem will likely train better the students into good practices (testing, profiling/benchmarking, writing examples and good docs, sharing code and working with others) that some programmers take for granted.</p> <p>In addition students that learn another language after Go will probably have an easier time understanding ideas like Object oriented design and functional programming since they&#39;ve been already exposed to a basic form of those in Go.</p> <p>Furthermore, Go is also going to be the ideal language to use for classes such as Distributed systems where Go&#39;s concurrent primitives can shine while it&#39;s simplicity will help students focus on what&#39;s important for the class (and not have to deal with say freeing memory).</p> <p>At some point, It is quite likely the students that learnt Go as their first language will get enchanted by the buzzwords and features of other languages. This is exactly the journey they have to go through in order to grow and learn new ways of thinking. It&#39;s very important and Go, like a good teacher, will have enabled them to do that. Then some of them, after a few years, they might realize that they don&#39;t need all that jazz in order to be effective. They might ask themselves if Go was &#34;right&#34; all along.</p></pre>CaptaincCodeman: <pre><p>I agree, it&#39;s not fair that you get to learn Go <em>first</em>. You should have to suffer the other languages and ecosystems and frustrations first so you will truly appreciate the elegance and performance :)</p> <p>I&#39;ve used everything at some point to verying degrees: Assembler, COBOL, Pascal, SmallTalk, BASIC, C#, Java, Python, JavaScript, Go.</p> <p>Go is by far my favourite.</p></pre>comrade_donkey: <pre><p>If you&#39;re going to be teaching programming, there&#39;s two ways you can begin: teach a language in the context of informatics (how computers operate, memory representations, algorithms, etc) or teach a language for productivity, i.e. &#34;how do I X&#34;.</p> <p>My opinion is that Go is a very good fit for the first case. Python/Ruby/JS/etc are more suited for the second.</p></pre>forgiv: <pre><p>Absolutely. </p></pre>drvd: <pre><p>Yes.</p></pre>qu33ksilver: <pre><p>Oh .. not again..</p></pre>fullwedgewhale: <pre><p>I think that&#39;s a very valid question. My personal opinion is &#34;I&#39;m not sure.&#34; On the one hand it&#39;s a fairly comfortable language to work with that seems to work in a way that makes sense to me. On the other hand it has a lot of features that are difficult to appreciate until you&#39;ve worked in other languages. My first languages were assembler, pascal and C++. I&#39;m only mildly scarred for life.</p></pre>Partageons: <pre><p>Your comment doesn&#39;t seem to appear in the thread. Just testing whether I can reply to it.</p></pre>fullwedgewhale: <pre><p>Yes you can.</p></pre>Partageons: <pre><p>That is weird. I can see your comments in my inbox and on your profile page, but if I click &#34;permalink&#34; or &#34;context&#34; it takes me to a page with the whole thread (except your comments) in the &#34;you are viewing a single comment&#39;s thread&#34; style.</p> <p>Anyway, good point. Still, if it has lots of features that make you appreciate it compared to other languages, does that not make it superior to those languages (and therefore good as a first language)?</p></pre>fullwedgewhale: <pre><p>I think that&#39;s a good point. I don&#39;t think of languages as being superior or (conversely) inferior, just better suited to certain problem domains. I&#39;m coming to Go as a very well seasoned programmer who has worked in several languages, and when I use it I feel I&#39;m having an adult conversation with the computer. One feature I think a &#34;first&#34; programming language should have is that it can fit in your head. (Outside of libraries you can pretty much recall pretty much all the useful language rules without referring to a book). I think this is also true of Go. It&#39;s definitely a better choice than Java or C++, I think. </p></pre>dhdfdh: <pre><blockquote> <p>Not for me.</p> </blockquote> <p>Then why&#39;d you ask?</p></pre>Partageons: <pre><p>Because I might end up teaching people how to code in the future.</p></pre>dhdfdh: <pre><p>Then I guess you won&#39;t so why&#39;d you ask?</p></pre>lansellot: <pre><p>I think he knows Go and wants to know if it&#39;s a good language for beginners.</p></pre>dhdfdh: <pre><p>But he already said he doesn&#39;t think that.</p></pre>lansellot: <pre><p>There are two ways to interpret &#34;Not for me.&#34;</p> <p>Do you think it&#39;s a good idea? It&#39;s not [a good idea] for me, I don&#39;t think beginners should start with Go.</p> <p>Do you think it&#39;s a good idea? It&#39;s not for me, I&#39;m not the beginner who wants to learn Go.</p> <p>This is where the confusion comes from. I think I went with the second interpretation and you the first.</p></pre>Partageons: <pre><p>I meant the second.</p></pre>Codemonky: <pre><p>I&#39;d stay away from duck typing and interfaces until you get the hang of things :)</p></pre>

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

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