Hacker News new | past | comments | ask | show | jobs | submit login
Unconventional way of learning a new programming language (dev.to)
43 points by Philipp__ on March 18, 2017 | hide | past | favorite | 6 comments

TL;DR: Contribute to "open source"

>[code review feedback] is like getting a free-of-cost personal guidance about how to write good code

It's not free for the reviewer who's trying to safeguard project quality. If they're investing in you, it's likely under the assumption that you'll contribute back. If you don't, then you're just crowdsourcing and then running off with the ill-gained knowledge, possibly having had a negative impact on the project.

Code review happens after the code is written so how could the contributor "run with ill-gained knowledge".

NOTE: I've started with 2nd person (to match the article, be more personal and appeal to the reader's conscience), so I'll be sticking with "you" instead of "the contributor".

If you're unfamiliar with programming language idioms, it is likely that your (ultimate, approved) contribution may not be be worth the time and the effort that has been put into guiding you to it. The help may instead have been given to you in hopes that it will pay off with your future contributions. If your only or main motivation is to learn a programming language, there's a greater chance that there won't be any.

Contributing out of sheer sense of obligation is hard. Even worse, it may so happen that you realize that you don't even like the language. Not only is the the time invested in teaching you the project a waste for the project, but the teaching you the language was not beneficial for other projects written in the same language. To stay interested in a project, you should be certain of your interest in some thing intrinsic to the project.

At least be very frank and clear about your intentions.

So your concern is that people will fix bugs, send PRs, learn from a review, improve the patch, and then just not send another PR? That seems like a very contrived problem.

That's not it, see my reply to adamnemecek.

A more unconventional (but effective) way would be writing a compiler for the language you want to learn.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact