1. 程式人生 > >關於開源的兩篇文章

關於開源的兩篇文章

Benefits in contributing to Open Source

What the benefit will i get, if i contribute to Open Source? This is the frequently asked question by many people. I just want to pen down the benefits which i know and i hope you will agree with it.

Open Source is free to use and very few successful project owners are paid well. Remaining others are struggling for a sponsor, but still as a project owner, they know how to survive and move ahead. They know they have to face lot of difficulties to make their project successful and useful to others.

Now, You may ask, Even the project owners are struggling, What benefit will i get in contributing to a project? Below are few.

Practical knowledge:



In college, we learn mostly theory. What we learn in college and what we work is totally different. There is a huge gap between college and industry. If you contribute to Open Source project by spending time in reading the code, Try to understand how they have written , Try to fix a bug or add additional feature. During the course of the work, you will learn a lot. Say for example, If you pick a Content Management System (CMS), you will learn about archiving, searching and lot more. 

Certificate / Acknowledgement of work:


By contributing, you may request for a Certificate or Acknowledgement for your work. Project owner are obliged to do that. If you contribute regularly then they will list your name in their contributors list and provide a link to your profile page. You could request for a recommendation from project owner, from your Linked in user account. This will increase your chance of getting selected in other companies. Your resume will be easily picked up by the consultants.

Money / Perks:


Well funded open source projects may pay you for your contribution. Few may give out some perks / gifts like T-shirt, Mugs etc to motivate the contributors.

Identity / Recognition:

If you regularly contribute, you will get identified / recognized within the project community, user group and mailing lists. You could answer the queries raised in the forum. You will get an identity. 

Consulting:

I know, two of the people here in Bangalore work for full time in an open source project. They do work from home and their parent company is in US. They are paid in dollars and it is big money. Open Source project might have started in a country but it require presence in every other country / state / city. You could take initiative in bringing up the community. You could provide consulting for the project in your place. If you get an identity, people will have faith in you.

Give back to the society:

We accumulate wealth for our need but some times it is pleasure to give some money back to social cause. Similarly it is good to share our knowledge for others by contributing to open sorce projects. 

I hope this article may motivate you guys to start contributing. Just check out our previous article, how to contribute to Open Source.

 這篇文章是我從http://www.findbestopensource.com/article-detail/benifits-contribute-opensource這八下來的。目的是想知道開源到底對我們有啥用處,這篇是說為什麼我們要開源。 提煉下文章的觀點: 學校學的東西過於理論化,如果你能花時間去閱讀別人的程式碼,努力去弄清楚別人寫的是什麼,嘗試去修補一個bug或者去增加一些功能,在這個過程中,你收穫頗豐。在專案中學習是學到最快的。 在開源專案中有貢獻,那麼更容易讓簡歷出彩 ,甚至獲得相關開源專案組的推薦,更容易進入別的大公司。 獲得一些資質,或者紀念品(應該是說在他那個開源網站裡面的貢獻者有機會獲得)

How to learn from open source projects

Students ask this question frequently steps or methodology to learn from open source projects. There is no single answer or steps available. I listed the steps which i follow and i hope this will help for few.

Consider a java programmer wants to access database via ORM tools like Hibernate. In this case pick any open source projects which use database. The choice could be content management system or forum software. Among that pick Java projects and see which all use Hibernate to connect to database. Shortlist one or two and download their source. Search the source for hibernate related keywords. Most of the projects are object oriented and only one or two class will be responsible to access it to the database. Pick the class and learn the code. Reuse if possible.

If you want to learn anything related to generating charts, then pick projects related to reporting and analyze its source. If you want to learn any PHP based framework, then pick a CMS project which uses that.

Again this is should be a one time task. If you search, when there is a urgent requirement then you will waste more time in searching projects. This should be a like ahabit, learn about one open source projects once a day or a week. Read their site and learn their design. What all the components they use to build their projects. Download the source and peep in to the lib directory to get the list of dependency. There are many small libraries which could make our life easier. Bookmark it and use whenever required.

Please feel to add your comments and write how would you learn. 這篇文章就直接是說如何從開源專案中學習,來源:http://www.findbestopensource.com/article-detail/learn_from_open-source 同樣,我翻譯一些觀點: 去需找一些與你想要相關的開源專案,然後縮小範圍,最後確定一兩個,把程式碼下下來,並去看程式碼; 不要一直找專案,當你找到了相關的專案後應該在某一天或某個星期內只看一個專案,去看他們用了什麼去構建他們的專案,下載原始碼,去剖析庫目錄,分析裡面的從屬關係。要記得這世界上有很多很不錯的庫可以讓我們的工作變得更簡單,記錄起來,以備將來不時之需。