Find the right nanodegree program for you.
Start Learning

Become a GitHub Pro

What’s GitHub?

GitHub is a web-based Git repository hosting service that provides access control and collaboration features for every project. GitHub provides a space for open source projects, working with peers, and even  a venue for recruiting. As of 2014, Github is the largest code host in the world.

The Open Source Philosophy – Recursively Share Work for Others to Build Upon!

GitHub will help you contribute to the open-source community. You can set up your profile for free, start your projects,  or build on top of others’ work. Over time, people can learn from you too!

GitHub as a Learning Space:

GitHub can be a great space and tool for learning.

  1. Learn about new projects:  Newsfeed features such as curated discovery pages, trending showcases, and searchable live newsletters expose you to a variety of current and past projects.
  2. Search projects by interest: If you have particular interests such as a coding language, you can search for these and target projects or topics of interests.
  3. Learn about the history of a project: Want to understand how a project came to be or who contributed to a project? You can look at how a project evolved and who contributed (individual contributors and organizations).
  4. Learn by asking questions & getting feedback: GitHub allows you to make active pull requests submit an open project of suggestions. This creates a space for dialogue about your work.
  5. Vocabulary growth:  Absorb and integrate the Git vocabulary and workflow by working on real projects. This will come in handy in the future!

GitHub as a Resume:

GitHub is increasingly used as an additional recruiting platform, or simply a place to showcase your skills. If you are using GitHub as a way to enhance your resume – we recommend looking at it in one of two ways: curate your projects to show a particular interests, or include a variety of projects as a conversation piece. When choosing projects, pick things that interest you. Find an open-source “superhero” who inspires you and contribute to their projects. Don’t be afraid to ask for help on projects!

GitHub Best Practices:

When creating in GitHub, keep the following in mind:

  • GitHub repos can be great starting points for your own projects!
    Your ability to take existing code bases and modify or extend them to your needs is a real-world application that you will need in the workforce. Very rarely will you be asked to create from scratch; often you will be working on legacy projects. To make your open source project appealing, be sure to: tell what value it gives, tell audience how to use it, tell how others can contribute.
  • Don’t downplay your contributions – small works and contributions of any sort are very useful.
    Commits to an open-source project (however small) are beneficial to all parties, not to mention, there are many ways to contribute that are not directly related to writing code. Creating your own project, however small, also demonstrates interest and ability to commit. Pull requests (even simple ones), filing bug reports and helping research existing bugs, and contributing to documentation show participation and attention to a project.
  • Employers love it when….
    Employers love to see contributions to repos with lots of stars, contributions, or general popularity/ This raises a green flag for employers. Picking out a good project is often the best way to guarantee a positive response. If you are interested in showcasing a wide range (or deep concentration) of projects, focus on quantity and a solid streak of contributions. If you are interested in showcasing community investment, broad contributions are best.
  • Sharpen Command Line Proficiency (CLP) & Key Vocabulary.
    Terminology streamlines communication between people using GH for version control, not just for show. All users have a shared vocabulary of concise terms, known as Git Vocabulary . You need to be able to speak the same language as developers and hiring managers during technical interviews

Now that you’ve had an overview of GitHub, here is a list of action steps to get started:

  1. Find ‘Explore’ pages
    1. Data Visualization
    2. Front-End Javascript Frameworks
  2. Clone existing repos that you find on Github related to a project that you want to make
  3. Ways to find repos to contribute to
    1. Trending repos
    2. Curated showcases
    3. Search for favorite topic or by language
    4. Find tools you already use and if they’re open-source (almost always are)
  4. Things you can learn from existing repositories
    1. GitHub has their own recommendations on how to make good pull requests.
    2. Studying other repos is a great way to learn good coding practices, some repositories have explicit style guides.
    3. Many repositories include example code or software tests that demonstrate usage
    4. Large, highly organized projects may even document their interaction patterns. You can use these as an example.

The Common Concerns: GitHub & the Nanodegree Student

Questions about GitHub range, but the most common Nanodegree student questions revolve around getting started with the platform and perceived lack of experience.  To calm these nerves, just remember the best way to learning through GitHub is to try. You may not be perfect at your first attempt but that’s ok! You will learn something in the process. Open-source is an “open” environment, so embrace the welcoming space and get busy, ask questions, comment, and create!

Helpful Links and Projects

Useful Links:

Open-Source Projects:

 

For a more in-depth information on GitHub, check out a presentation of our workshop here. Hosted by GitHub’s Alyson La and Matthew McCullough, the workshop will introduce you to GitHub, open-source projects, how-to tips, and answers to students’ questions!

 

Elyse Kolin
Elyse Kolin
Elyse is an adult educator with a background in higher education, academic advising, and online learning. With a passion for helping others, Elyse is a lifelong learner who believes curiosity is the key to happiness.