
Unconventional way of learning a new programming language - mightybyte
https://hackernoon.com/unconventional-way-of-learning-a-new-programming-language-e4d1f600342c
======
antfarm
_Trust me, when you write code for your personal project which may be a
weekend project or an overnight quick hack, you write code to get something
done. All you care about is — “Does my code work?”. You hardly care about the
quality of the code._

Not in my experience. When I learn a new language by implementing a project in
it, I do not consider the job done unless I have written idiomatic code in the
new language and really understood every piece of code I took from
Stackoverflow.

Not saying that contributing to open source projects for learning a new
language isn't a good idea. Free code review in exchange for your contribution
to the project is a win-win.

~~~
khedoros1
Agreed. If I'm trying to learn a language, my first concern will be the style
that I write in. I'll pay special attention to elegant ways to express my
intent in the new language, with special attention paid to features that
differ strongest from languages that I already use. Having the project work is
important, of course; it's the proof of having learned something. But the
initial project needs to be clean and idiomatic first, and correct second.

Personal projects in languages that I'm already familiar with are the places
that I allow myself some sloppiness.

------
philh
I note that if you pick the wrong project, you might not get code quality,
reviews or appreciation. So it sounds like you need to go specifically
searching for a project to learn with, rather than e.g. a tool you already
use.

------
hackermailman
There's an [1]interview with Richard Stallman and this article is the exact
answer he gave when asked what the best way to learn programming: write a
feature for an open source project with active users, then debug said feature,
and repeat until you get better.

[1][https://youtu.be/dvwkaHBrDyI](https://youtu.be/dvwkaHBrDyI)

------
zamalek
Contributing to an open source project (coredns - who are super-helpful) was
also one of the steps that I took to learn Go. It's a good early step but I
still think you should do some tutorials before asking for a person's time.

------
sammythefly
Free Code Camp has students build open-source projects for non-profits.

------
Odin78
So how does one go about finding open source projects with easy tasks?

~~~
kwhitefoot
You need to decide what you might be interested in first. Then search for a
small project on Github, Bitbucket5, etc., that does something like that or
related to that and see if they have any open bugs that need fixing or a list
of features that they want implemented.

It's probably best to ignore any projects that have not had any recent
contributions at this stage because the maintainer might have lost interest so
you won't get any feedback about your contributions.

