1. 16
  1. 7

    I’m not sure if this article has been submitted here before or not but I wanted to share it with the community or anyone who is interested in contributing to open source but is hesitant about starting. This is the article that got me to make my first PR. Sahil does a great job in presenting open source contributions from a new perspective, as a way of learning a new programming language. A must read.

    1. 3

      Meta point: the search functionality should help you out looking for previous submissions. Also, when you submit an article, if the URL is the same as a previous submission it usually tells you.

      1. 1

        Thanks for the info I completely overlooked the search tab.

    2. 2

      If this method is more effective than others, I’d guess the mechanism of action abstracts to “solve a real world problem in the language to learn.” Open source is just a convenient source for real problems with the added benefit that your solution is code reviewed.

      1. 3

        It is the synthesis of “solves a real world problem”, “read code”, and “get someone who’s more experienced to review your code.”

        1. 1

          Some other benefits of open source over personal side projects (even though personal projects are a great way to learn a new concept/language) are:

          • Your code is tested against a large test suite.
          • Code quality guidelines help you pick up best practices specific to that language much faster than you would do usually do while working on your own projects.
          • You get to interact with developers who have a lot of experience in that language which will also help you learn faster than a personal project where you code on your own isolated from other developers.

          I agree with you that open source is just one of the ways of “solving a real-world problem” but for amateur developers, with little or no work experience it can prove beneficial and can get them up to speed with the best practices related to writing production quality code in a specific language(s).

          1. 2

            Oh, and your code is run against lots of machines and configurations. Personal projects can reflect the quirks of your machine if they don’t get out into the world.