<p>Hello, I'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've played with so far. and I'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't really help me achieve anything as a beginner, I tried ncurses but didn't work out well, and GUI was a bit too complicated for me i believe, What I'm about to say is that after i learn and master go lang'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'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's resources to make one, maybe use libvlc ? but how can i go on making it work together, I'm kinda lost since it's my first project ever. Thank you for reading this post.</p>
<hr/>**评论:**<br/><br/>drvd: <pre><p>A "music player" is not simple for any definition of "simple" and "music player". You'll either have to rely on other packages for basically everything which has to do with "music" and "playing" 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'll learn a lot!) and will have to write strictly latency limited code (because the human ear is pretty good). All doable but not "simple". 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 "Go" like C is called "C". "golang" is used to google it. "go lang" is awful.)</p></pre>renken_dz: <pre><p>To be honest, I just want to busy with something practical and not just that I'll be busy reading, I know this looks like such an interesting idea but I don'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'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'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's missing is "how to contribute to a project"</p></pre>Redundancy_: <pre><p>It's a worthwhile effort to start to learn to work in someone else's codebase, with other people, because it'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'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'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't have a single clue.</p></pre>Ullaakut: <pre><p>There'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'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'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'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
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码`
- 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传