Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's the fuss about the Open Source?

Sushant Hiray
September 23, 2014

What's the fuss about the Open Source?

Introduction to Open Source and GSoC

Sushant Hiray

September 23, 2014
Tweet

More Decks by Sushant Hiray

Other Decks in Programming

Transcript

  1. O P E N S O U R C E

    W H A T ’ S T H E F U S S A B O U T - Sushant Hiray
  2. E R R M W H AT ? O P

    E N S O U R C E
  3. • O P E N A S I N F

    R E E • O P E N A S I N A C C E S S • O P E N A S I N N O T C L O S E D • O P E N A S I N R E U S E A N D C H A N G E • O P E N A S I N A N Y P L A C E A N D F O R A N Y O N E O P E N S O U R C E P H I L O S O P H Y
  4. W H Y O P E N S O U

    R C E S O F T WA R E ? • Availability of source code • No re-inventing of wheel • Quality is perhaps better • Costs less/free as compared to proprietary counterparts • Anyone can fix bugs and adapt accordingly
  5. P H I L O S O P H Y

    B E H I N D G S O C Why does Google hold it every year?
  6. L O N G T E R M B E

    N E F I T S • Increasing Open Source participation among students • Help open source software projects in finding interested and capable developers • Promote collaborative coding among students
  7. S H O R T T E R M B

    E N E F I T S • Provide budding developers with exposure to industry level code • Help the selected FOSS projects to get closer to their next release • Forge relationships between various open source communities and universities
  8. T H E O B V I O U S

    B E N E F I T S • 5500 USD (Quite a huge sum!) • T Shirt and other freebies • Resume point • Bragging Rights
  9. F U N , E X P E R I

    E N C E A N D C O N TA C T S M O N E Y, FA M E A N D R E S P E C T <
  10. T H E M O R E I M P

    O R TA N T B E N E F I T S • Exposure to open source development • Working with projects > million lines of code • Working collaboratively with a team that is distributed globally • Working on production level code • Learning from the pro developers
  11. M Y E X P E R I E N

    C E • How a large codebase is managed • Good programming techniques • Time Management • Code Review • Improved soft skills • Working in sync according to weird timezones
  12. T I P S F O R F U T

    U R E G S O C C E R S • Choose a project wisely (Organizations such as Mozilla, SymPy etc get a lot of applications, which means lower chance of selection) • Choose a project which matches your skills • Expected to work 20-30 hrs every week. Can vary according to the org. (SymPy expects 40 hrs! ) • Be polite and patient on mailing lists
  13. G E T T I N G S TA R

    T E D W I T H O P E N S O U R C E
  14. C H O O S I N G A L

    A N G U A G E • Possibly your favourite programming language • Should’ve enough experience with the language • If you’re not sure work on a mini project. github.com/ karan/Projects has a lot of easy to complete project ideas.
  15. F I N D I N G E A S

    Y T O F I X B U G S There are 2 ways to start filtering bugs: • Fixing random bugs • Choosing a project and diving deep!
  16. F I N D I N G E A S

    Y T O F I X B U G S OpenHatch is primarily for beginners and filters bugs wrt language and projects. I started searching for bugs using openhatch.
  17. C A U T I O N It might be

    possible that a bug is marked easy to fix, but it is not easily understood by a beginner. Pro Tip: Posting willingness to work on a bug almost always help. Easy-to-fix bugs/mentored bugs have a dedicated mentor who will guide you on fixing the bug.
  18. B U G F O U N D . W

    H AT N E X T ? Post on the relevant bug about your willingness to work on it. For eg: Hi, I’m Sushant. I’m currently new here and wish to work on this bug. Can you please guide me on the next steps? You should get a reply back by the mentor explaining on setting up your system and reproducing the bug. ProTip: In case you’ve figured out something more about the bug, do mention it in your initial post.
  19. K N O W Y O U R T O

    O L S Meanwhile its good to know about these tools: • IRC (Internet Relay Chat) • Mailing Lists • Version Control Systems (git/hg/svn) • Bugzilla / Issue Tracker
  20. N E X T S T E P S •

    An important part in fixing bugs is to be able to reproduce them. 
 In some cases, the bug might be a programming error and need not be reproduced. • Understanding the relevant codebase.
 The entire project might be million lines, you just need to understand enough to be able to fix the erroneous code
  21. N E X T S T E P S •

    Show Interest • Write a patch to fix the bug • Test the change. Possibly add unit tests to check your changes. • Get the code reviewed • Iterate till you get a r+