Here’s a somewhat different POV. Hope it helps.

If you decide to work on an existing project, often times as a newbie you’ll be 
asked to fix bugs or add a small feature, which may not always the most 
exciting thing to do + you may have to bootstrap on the code and learn a lot of 
other stuff which isn’t directly relevant to your goal of learning a new 
language. Plus the program architecture is already in place, many of the major 
decisions have already been made and your code has to fit within the existing 
framework. On the positive side, you will likely learn good programming habits, 
may be get access to a mentor, you’ll be contributing to something useful, 
you’ll learn how to work in a team, get familiar with code reviews, unit tests 
etc.

Another option is to code up from scratch something you are interested in. If 
you are really interested in the subject, you’ll more likely stick with coding 
up your solution. Writing a whole program can be very satisfying. It can also 
be scary and overwhelming but the trick is pick something that not too 
complicated and not too trivial. You’ll have to make all the decisions, tiny 
ones as well as major ones, including the architecture of your program, whether 
to write your own code or use an existing go package, look at algorithm 
choices, get a better feel for how the program may be used etc. etc. If you 
build it incrementally and are not afraid to restructure or throw out code as 
needed, you will learn a lot and have lots of fun.

Both options are useful and you’ll learn different things so if you can, do 
both!

Go is actually very good for the second option. You can bring up minimal 
working code very quickly (in hours even if you start from scratch — provided 
you are the type who is always itching write code and not the type who has to 
know everything before writing a single line of code). Then you can add one 
feature at a time, write unit tests for it, and always have a working program. 
Having a code, compile, run, test, debug cycle that can be as short as minutes 
can be very motivating. Then most of your time is not spent on tinkering with 
your program but on thinking about the problem you are solving.

I guess what I am saying is that instead of focusing on "learning Go”, focus on 
learning good programming skills while "using Go" as a medium. As a famous 
scientist once said, the best way to have a great idea is to have lots of 
ideas! The same is true for programming so write lots of code! All the great 
programmers I know (of) are/were prolific programmers.

> On Feb 13, 2017, at 12:35 AM, Malhar Vora <mlvora.2...@gmail.com> wrote:
> 
> Hi Jacob,
> 
> Thanks for reply. I'll surely check links you have provided.
> 
> I agree with your suggestion regarding famous hot repos trending on Github. 
> I'll check them too.
> 
> 
> Thanks,
> 
> 
> Regds,
> Malhar Vora
> http://about.me/malhar.vora <http://about.me/malhar.vora>
> 
> 
> On Mon, Feb 13, 2017 at 12:23 PM, Jakob Borg <ja...@nym.se 
> <mailto:ja...@nym.se>> wrote:
> You can probably assume by default that any open source project out there 
> with open issues welcomes your help. :)
> 
> On GitHub, you can list the most starred repos. These are projects that have 
> been around for a long time and probably are fairly mature in welcoming new 
> contributors. Definitely browse past the first page of results. I see 
> Syncthing is still on there and we certainly welcome you. ;) The ones not 
> obviously tied to a corporate backer may be more in need - although if you're 
> looking for a position at one of the companies in question this could maybe 
> be an inroad, I don't know.
> 
>         
> https://github.com/search?l=go&q=stars%3A%3E1&s=stars&type=Repositories 
> <https://github.com/search?l=go&q=stars%3A%3E1&s=stars&type=Repositories>
> 
> There are also the currently trending ones, although these may in some sense 
> be the ones least in need of additional help since they are apparently 
> getting lots of attention now anyway. But they are also hot (and cool) and 
> probably get lots of bug reports if they are just coming into fame.
> 
>         https://github.com/trending/go?since=monthly 
> <https://github.com/trending/go?since=monthly>
> 
> Try to find something that you use yourself, or that uses a technology or 
> solves a problem you find interesting.
> 
> //jb
> 
> 
> > On 13 Feb 2017, at 03:09, Néstor <rot...@gmail.com 
> > <mailto:rot...@gmail.com>> wrote:
> >
> > Hi,
> >
> > I like e in San Diego, California and I am in the same boat as Malhar, 
> > looking for a chance in the Golang world.
> >
> > Jonathan, how do you find out about open source projects  in Golang that 
> > need help?
> >
> > Thanks,
> >
> > Néstor
> >
> >
> > On Feb 12, 2017 5:35 PM, "Jonathan Yu" <jonathan.i...@gmail.com 
> > <mailto:jonathan.i...@gmail.com>> wrote:
> > Have you considered contributing to an open source project of interest to 
> > you?
> >
> >
> > On Sun, Feb 12, 2017, 10:27 Malhar Vora <mlvora.2...@gmail.com 
> > <mailto:mlvora.2...@gmail.com>> wrote:
> >
> >
> >
> >      Hi Everyone,
> >
> >      I am looking for part-time, remote internship kind of opportunity to 
> > work for completely free to learn Golang. Can anyone help me with that ?.
> >
> >      Just for your information I already have 3 years of experience in 
> > Python and zero experience in Golang.
> >
> >      Please inbox me at mlvora.2...@gmail.com 
> > <mailto:mlvora.2...@gmail.com>.
> >
> >
> >
> >
> >
> >
> >
> >      Thanks,
> >      Malhar Vora
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "golang-nuts" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to golang-nuts+unsubscr...@googlegroups.com 
> > <mailto:golang-nuts%2bunsubscr...@googlegroups.com>.
> > For more options, visit https://groups.google.com/d/optout 
> > <https://groups.google.com/d/optout>.
> > --
> > Jonathan Yu / @jawnsy on LinkedIn, Twitter, GitHub, Facebook
> > “Ever tried. Ever failed. No matter. Try again. Fail again. Fail better.” — 
> > Samuel Beckett, Worstward Ho (1983)
> >
> > “In an adaptive environment, winning comes from adapting to change by 
> > continuously experimenting and identifying new options more quickly and 
> > economically than others. The classical strategist's mantra of sustainable 
> > competitive advantage becomes one of serial temporary advantage.” — 
> > Navigating the Dozens of Different Strategy Options (HBR)
> >
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "golang-nuts" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to golang-nuts+unsubscr...@googlegroups.com 
> > <mailto:golang-nuts%2bunsubscr...@googlegroups.com>.
> > For more options, visit https://groups.google.com/d/optout 
> > <https://groups.google.com/d/optout>.
> >
> >
> >
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "golang-nuts" group.
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to golang-nuts+unsubscr...@googlegroups.com 
> > <mailto:golang-nuts%2bunsubscr...@googlegroups.com>.
> > For more options, visit https://groups.google.com/d/optout 
> > <https://groups.google.com/d/optout>.
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com 
> <mailto:golang-nuts+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to