Open Source Exploration

Why is this valuable?

On the job, you will likely be working in a large, unfamiliar codebase. This exercise provides the opportunity to explore a legacy codebase as if you were a developer on the team solving an open issue. Not only is this a skill for on the job, but as you interview you may be asked to talk about what your process is for working in an existing codebase. You will also be gaining more experience with this in Mod 4 on your.

Learning how to navigate an open-source application is also a great experience if you wish to contribute to any in the future! This exercise is designed to help you identify projects you might want to come back to, and demystify the process of diving into open source development.

Directions

Identify an open-source project you’d like to explore. As part of this exercise you are not required to actually contribute anything but you might choose to on your own time. If you do want to contribute, make sure you read the project guidelines on contributions.

Where to Find Projects?

  • Ruby for Good Repositories
    • By default, these are sorted by most recent commits. Identify a project that has active maintenance.
    • These are great projects to explore a fullstack Rails application! Check out the views directory and the html.erb files inside of them!
  • List of React Open Source Projects
  • Good First Issue List and you can select the language of your choice!
  • Is there a gem or library you use and love that has some open issues? These are often great open-source projects to explore!
    • Example: The Faker Gem has a ton of easy issues to explore!

Explore

Clone the project and try to set it up locally. Then (even if running it locally isn’t successful), identify an open issue to focus on for your exploration.

In a gist or document, write down your approach and considerations for how you familiarize yourself with the existing code as if you were implementing a solution to the issue you’ve selected. You can use these questions as a guiding point.

  • Where did you start in the codebase, and why did you decide to start there?
  • What is familiar to you about the codebase?
  • Are you making any assumptions? If so, what are they?
  • How are you identifying what files are relevant to your issue?
  • What is the data flow in the application?
  • What is unfamiliar? (different file structures, new packages or gems, etc.)
  • Is there technology that you would need to research?
    • Include the link to documentation for that technology
    • Include at least one other source, such as an article/video you might use to gain an understanding of that technology (You do not need to read/watch).
    • Include what search terms you used to find that source.

A few things to keep in mind before you start.

  1. You are not expected to implement a solution.
  2. You are not expected to learn the new technology/technologies that you have identified.
  3. Keep your focus on only familiarizing yourself with what is relevant to the issue you chose. It can be tempting to feel like you need to understand the entire application. That is not true and can lead to unnecessary stress if you try to understand all the code within the application.
  4. Have fun! The attitude that you bring makes a difference. If you approach it with curiosity and enthusiasm, then it will be a great experience to speak to as you are interviewing.

Be sure to save your document! Make it share-able. You will be asked to turn it in when submitting deliverables

Lesson Search Results

Showing top 10 results