Thoughts About GOLANG For A Beginners Projects

agolangf · · 405 次点击    
这是一个分享于 的资源,其中的信息可能已经有所发展或是发生改变。
<p>Hello, I&#39;m currently a 2nd year CS univ student. For the mean time, we just started studies, somehow seems more focus on maths and electronics than programming which im interested to, so i thought about putting the thing i learned to work, all I know is basic programming, trees, linked lists and files, are probably the complicated things I&#39;ve played with so far. and I&#39;m thinking of picking up go lang because it seems a friendlier version of C, I learned the basics in C and i love the way C is typed, same goes for golang however C is such a low-level programming language, it doesn&#39;t really help me achieve anything as a beginner, I tried ncurses but didn&#39;t work out well, and GUI was a bit too complicated for me i believe, What I&#39;m about to say is that after i learn and master go lang&#39;s basics im looking to make small projects to focus on, on my free time. such as a simple TUI music player maybe and other command line programs, till later on i&#39;ll try to get more in depth if possible. I checked the <a href="https://github.com/gizak/termui" rel="nofollow">termui</a> and it seems so friendly and easy to use, hopefully to master! about the music player project i dont know how to use go lang&#39;s resources to make one, maybe use libvlc ? but how can i go on making it work together, I&#39;m kinda lost since it&#39;s my first project ever. Thank you for reading this post.</p> <hr/>**评论:**<br/><br/>drvd: <pre><p>A &#34;music player&#34; is not simple for any definition of &#34;simple&#34; and &#34;music player&#34;. You&#39;ll either have to rely on other packages for basically everything which has to do with &#34;music&#34; and &#34;playing&#34; and all your Go code will be totally uninteresting and non-portable glue code of the form read file, push into external code. Or you have to dig into the gory details of audio formats (you&#39;ll learn a lot!) and will have to write strictly latency limited code (because the human ear is pretty good). All doable but not &#34;simple&#34;. Expect several weeks to months to just study the format specifications if you are not working full time on such projects.</p> <p>(Nitpick: The language is called &#34;Go&#34; like C is called &#34;C&#34;. &#34;golang&#34; is used to google it. &#34;go lang&#34; is awful.)</p></pre>renken_dz: <pre><p>To be honest, I just want to busy with something practical and not just that I&#39;ll be busy reading, I know this looks like such an interesting idea but I don&#39;t have much free time due to studies. So I might take the uninteresting choice and focus on giving it a ui. Then make my own when I get time for it. Thank you for your time and help.</p></pre>Ullaakut: <pre><p>Instead of directly starting your own project, I can recommend maybe giving a try to contributing to small and simple open source projects.</p> <p>Doing this, you will most likely learn not only about the syntax but also about:</p> <ul> <li>Useful libraries and tools</li> <li>How to setup CI</li> <li>How to properly use git (most schools don&#39;t teach git workflows)</li> <li>Your code will be reviewed by people so they will point out problems and you will learn from this</li> <li>You will be contributing to projects that people already use</li> <li>You can even contribute to projects that YOU use and make them better</li> </ul></pre>renken_dz: <pre><p>Hello comrade, I wanted to do such a thing, but it seems way too complicated because I don&#39;t know how to attempt to do it since the software will be in a late stage version and I will have to understand most if not all of it. Which kinda makes contributing vague for me, I am familiar with basic git usage, I have used it couple of times. What&#39;s missing is &#34;how to contribute to a project&#34;</p></pre>Redundancy_: <pre><p>It&#39;s a worthwhile effort to start to learn to work in someone else&#39;s codebase, with other people, because it&#39;s what most of your professional life as a programmer is likely to involve. You will probably spend much more time reading code than writing it.</p> <p>Doing your own projects is also useful, but I wouldn&#39;t start with something like a music player. Start with something where you can do simple increments of functionality.</p></pre>renken_dz: <pre><p>I&#39;m out of ideas to be truly honest with you lads, mind telling me what are some simple projects i can consider making? Should I consider going for Web dev with go(im interested in web dev) ? Don&#39;t have a single clue.</p></pre>Ullaakut: <pre><p>There&#39;s a huge difference between being familiar with git by using it a few times on school projects and being able to use git optimally (learning how to squash your commits before rebasing your branch etc.)</p> <p>As for it being complicated, there are really many little go repositories that are easy to contribute to even without a deep knowledge of the language / project. (Lately I&#39;m thinking about <a href="https://github.com/gernest/wow" rel="nofollow">https://github.com/gernest/wow</a>, which is a very simple and short project, and it&#39;s quite easy to build features on top of it or to fix existing issues.)</p> <p>Also some projects tag some issues as <code>beginner-friendly</code> or <code>easy</code> to make it easier to get into contributing. I might start doing this too on my project, but the upcoming tasks are mostly not beginner-friendly unfortunately.</p> <p>Good luck!</p></pre>raff99: <pre><p>Have a look at portaudio: <a href="https://github.com/gordonklaus/portaudio" rel="nofollow">https://github.com/gordonklaus/portaudio</a></p></pre>Romdeau4: <pre><p>I&#39;d check out <a href="/r/dailyprogrammer" rel="nofollow">/r/dailyprogrammer</a>, project Euler, or code fights. All provide great puzzles to solve that can greatly improve your skills while also preparing you for white board interviews in the future</p></pre>

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

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