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 a habit, 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.
comments powered by Disqus
This is the most frequently asked questions in the interview. Googling will throw many links related to this topic. How to learn the implementation of hash map? My style of learning using open source learning technique.
I could see many many students posting this question in many forums, I want to contribute to open source but How to contribute? There are many ways to do that. I have listed a few and I hope it might be useful.
EdX is an online learning platform founded by Harvard University and the Massachusetts Institute of Technology (MIT). Along with offering online courses, the institutions will use edX to research how students learn and how technology can transform learning–both on-campus and worldwide. EdX is based in Cambridge, Massachusetts and is governed by MIT and Harvard.
Traditionally Programmers used ODBC, JDBC, ADO etc to access database. Developers need to write SQL queries, process the result set and convert the data in the form of objects (Data model). I think most programmers would typically write a function to convert the object to query and result set to object. To overcome these difficulties, ORM provides a mechanism to directly use objects and interact with the database.
Many startups are entering in to the business due to open source. Open source acts as a back bone / pillar for their business. It reduces the cost of production, Generates revenue from consulting and support. This article describes about the startups which flourished because of open source. Sun acquired MySQL for $1Bn is the biggest achievement for open source startups.
As open source getting popular day by day, many have questions like How to make money from Open Source? Lot more products are getting introduced and don't know who is making money. Certainly open source means, give the product and source for free then how to make money? Yes sell the product for free but get paid for its services.
Git and Subversion are most popular and widely used version control system. What is the best situation to choose them? It is important to know its pros and cons, evaluate your requirement and choose the right one.
You may require GBs of data to do performance or load testing. How your app behaves when there is loads of data. You need to know the capacity of your application. This is the frequently asked question from the sales team "The customer is having 100GB of data and he wants to know whether our product will handle this? If so how much RAM / Disk storage required?". This article has pointers to the large data corpus.
Lucene is a search library built in Java. Solr is a web application built on top of Lucene. Certainly Solr = Lucene + Added features. Often there would a question, when to choose Solr and when to choose Lucene.
There are couple of sites which indexes the open source code and provides support to search code. Recently Google announced that they removed code search support from Google code. This article provides pointer for code search engine sites.