Using classes, function or libraries built by others is hard

Sometimes it seems almost impossible, you start looking for examples, StackOverflow answers to understand how to use or do something while programming.

What School teaches you?

You start building programs on your own but sooner or later you are going to build something with other people or you’ll use their functions or classes.

Then you keep trying to solve your problems using some external help.

What might be a better solution and why?

Open Source project hosted on Github(Git) or other platforms has brought almost to zero the barriers to collaborate or build things together even across the world, talking with Issues and making Pull request to help out with your own fixes or addons to existing projects.

One of the most unexplored things at school, universities and even work places are Pull Request.

Merging hundreds of commits won’t be our focus.

I’m thinking about the main purpose of those actions, helping a codebase grow or improve.

To do that you need to change your way of programming.

My First Pull request

In my last project to build a Single Page Application with Vue.JS I used different components, some of them more or less famous than other. To use the user webcam I picked up this vue-web-cam on Github.

While using it, I had to modify various parts, adding more functions to get custom behaviors such as being able to change different cameras on smartphones and I even introduced new API to get UserMedia.

However I modified a big chunk of this class. A few weeks later after having asked to the developer of this repository if he wanted my help, I opened up my first real pull request!

This final pull request wasn’t identical to the real class I used on my project.

I had to rewrite again most of the functions to make them more aligned to the pre-existent ones and I had to simplify them removing double parts to make someone else understand my purpose with each line of the code.

“School” experience is focused on getting efficient code with exams such as “Data structures and Algorithms”. We might try to introduce a new exam, “Make Pull Request to Open Source” having only real features to implement or fix on Open Source projects to pass the exam.

I hope to inspire you too to start making small pull request even if you’re shy like me, always thinking “no one is gonna like code or my help!”.

Let’s help Open Source and improve our skills!