<p>Hi, I am basically a not-very-experienced developer and I am now trying to hit two birds with one stone - learn Go and decent web development. I have seen (and used) applications like Syncthing which work very well and I was am looking for advice on how to proceed? Should I look into using frameworks (So i can use MVC or something)? I see that a lot of people say that we should not bother with frameworks (but I don't understand why?). I think for a starter project, I would make a simple file hosting application (like mega but not fancy) and go from there.</p>
<p>Thanks!</p>
<hr/>**评论:**<br/><br/>ChristophBerger: <pre><p>About learning Go and Web dev at the same time:</p>
<p>There is a good book and video course available on this very topic at <a href="https://www.usegolang.com/" rel="nofollow">https://www.usegolang.com/</a>. (I'd love to also recommend my own video course here, but it is only on Go, not on Web dev.)</p>
<p>About frameworks vs libaries: </p>
<p>A framework gives you a quick start but can limit you in severe ways once your project grows bigger and more complex.</p>
<p>A set of libraries makes you stay in control. You decide about your architecture, your data structures, etc. Libraries are here to help but do not get in your way when your project expands. </p>
<p>Go comes with a rich standard library from the start, and therefore naturally supports the "stay free, stay in control, use libraries" philosophy. So yes, there is a bias in Go towards libaries.</p>
<p>This being said, you are of course free to use a framework if you want, as long as you are aware of the limitations. And the borders between libraries and frameworks can be blurry sometimes -- there can be frameworks that give you quite some freedom, and there can be libraries that put considerable constraints on your own code. </p>
<p>Whatever you choose, choose wisely.</p></pre>rixnyg: <pre><p>Thank you for the book recommendation! As for the framework vs library question, would the above book show us how to set up our own customized libraries?</p></pre>ChristophBerger: <pre><p>The book's approach is to walk you through a Web project, and you learn Go as you build up the Web application. Libraries ("packages" in Go lingo) are created in the course of this project and therefore demonstrate <em>by example</em> how to structure packages around an application. There is no generalized "how to" chapter on packages, but then creating a package is really quite easy in Go. </p></pre>rixnyg: <pre><p>Great, thank you!</p></pre>johnythe: <pre><p>I am in very similar situation, learning go and Web development. For me very useful about learning go itself is Youtube channel justForFunc. Basic web development is also covered there. More you can learn from some open source projects on github.com or by creating your own app and posting it somewhere (gophers slack #reviews) to review. </p></pre>SupersonicSpitfire: <pre><p>Only take advice from people you want to become more like, in a specific area.</p></pre>