Why you should contribute to Open Source.

3,636 views

Published on

Presented at Indian Institute of Information Technology (IIIT) Allahabad on 21 Oct 2009 to students on the benefits of contributing to open source projects. The target audience was freshmen.

Why you should contribute to Open Source.

  1. 1. #!/usr/bin/env python import sys def main(): print ' You should contribute to Open Source ' sys.exit(0) if __name__ == "__main__": main()
  2. 2. Who am I?
  3. 3. Why work in OSS? <ul><li>Work on what you like, when you like
  4. 4. Development in the ”real” world
  5. 5. Learn from the best
  6. 6. Build a publicly verifiable resume
  7. 7. Companies will find you! </li></ul>
  8. 8. What you like, when you like <ul><li>Millions of open source projects
  9. 9. Big names – Linux, MySql, Apache projects
  10. 10. Pick and choose
  11. 11. No schedules, no deadlines
  12. 12. No boss! </li></ul>
  13. 13. Development in the ”real” world <ul><li>”Other” people use it
  14. 14. Build system - Makefile, Ant, Maven
  15. 15. Source control – CVS, SVN, Git
  16. 16. Bug tracker – Bugzilla, Jira, Launchpad
  17. 17. Documentation – Manuals, Wiki, Books!
  18. 18. Support - Mailing lists & Forums </li></ul>
  19. 19. Learn from the best <ul><li>Rock star coders!
  20. 20. Linux Kernel - Linus Torvalds, Ingo Molnar, …
  21. 21. Python - Guido Van Rossum, …
  22. 22. Mono – Miguel De Icaza
  23. 23. Lucene/Hadoop – Doug Cutting, Michael McCandless, Yonik Seeley, …
  24. 24. Thousands of very talented individuals </li></ul>
  25. 25. What you tell in a resume? <ul><li>Contact info
  26. 26. Objective
  27. 27. 9-point someone
  28. 28. Languages X,Y,Z++
  29. 29. Projects
  30. 30. Interests
  31. 31. Blah Blah Blah! </li></ul>
  32. 32. The company wants to know... <ul><li>How good are your design skills?
  33. 33. How well can you write code?
  34. 34. Do you have experience on ”real” projects?
  35. 35. Can you work in a team?
  36. 36. Do you have focus and patience? </li></ul>
  37. 37. A publicly verifiable resume <ul><li>I've worked on this for two years
  38. 38. I wrote features X, Y, Z in Project P
  39. 39. I've over a hundred posts on the user forum
  40. 40. I have commit access to the project
  41. 41. I'm the expert because I ”wrote” it! </li></ul>
  42. 42. Companies will find you! <ul><li>Project X will save us money. Who works on it?
  43. 43. We should have in-house expertise on the Project X.
  44. 44. Hiring open source developers is free publicity
  45. 45. Wow, you work on X, you must be really good! </li></ul>
  46. 46. Requirements <ul><li>English
  47. 47. A programming language
  48. 48. Debugging
  49. 49. Passion
  50. 50. Perseverence
  51. 51. Time </li></ul>
  52. 52. Choosing the right project <ul><li>Filter by your interest area
  53. 53. Filter by language
  54. 54. Something you use
  55. 55. Something you want to learn
  56. 56. Using the project is very important </li></ul>
  57. 57. How do I start? <ul><li>Choose your project
  58. 58. Join the mailing list or forum
  59. 59. Check out the code
  60. 60. Find open issues and feature requests
  61. 61. Ask the developers on what you can work on </li></ul>
  62. 62. Contributing <ul><li>Ideas!
  63. 63. Features & Bug fixes
  64. 64. Unit tests
  65. 65. Documentation
  66. 66. Performance benchmarks </li></ul>
  67. 67. Do's and Don'ts <ul><li>dnt rite sms lingo!
  68. 68. Be courteous
  69. 69. Don't be an island. Collaborate.
  70. 70. Learn from your mistakes
  71. 71. Persevere. It takes time. </li></ul>
  72. 72. Questions? Shalin Shekhar Mangar shalin [at] apache [dot] org http://twitter.com/shalinmangar http://shalinsays.blogspot.com

×