Repository
Introduction
By the medium of this post, I aim to share my first experience with open source.
Post Body
Hi there!
I am Arnav Raman, a 16-year-old computer enthusiast with a keen interest in everything that smells technology. My childhood was spent with computers, my father being a software developer himself back in 2001. As a child, I’d see various people coming to my house and talking things over with my father, crowding around the computer screen and do things. I recall clearly how, when I was no more than four, one of my father’s friends were working on a project and my father playfully asked me “Son, can you do what he’s doing?” Somehow, I was greatly intrigued by this question posed by my father, and that was the day my interest in computers was ignited.
Then, I began really working on it rather than just playing around, at the age of nine, starting with an HTML4 based website. I sent the zip file of the website to one of my brothers, Vibhav Raman, who currently works at IBM through email for review. He was greatly impressed and asked me to continue my efforts. I also went on to publish three Android apps on Google play and two on Amazon Appstore, along with many small other projects like HTML5 games using JavaScript, Box2D and element.
It was through him that I came to know about Google Code-In (GCI). I received a message from him on January 8th this year at 9:58 pm IST.
It was too late. There were only seven days left for the contest to conclude. Also, my examinations had begun and I was having tests on 9th, 10th, 11th, 12th, 15th, and 16th. However, I decided to register. That night, I got myself registered and completed one task too. I was done by 1:25 am and slept.
The next morning, there was a Gmail notification: my task had been accepted! This fuelled me and as soon as I came back from the test, I claimed another one and began working on it. I was enjoying thoroughly!
After these two, the third task I decided to do was openWISP: Build the openWISP documentation. Before claiming the task, I decided to try doing it first. I tried in my Windows-based machine but was confused beyond imagination. Then, I tried using a Linux VM, but still, I couldn’t figure things out. The instructions were very vague. I tried searching on the internet for help with sphinx and pip, but it was tedious and I had to prepare for the exams as well. This was an aspect I didn’t like.
But this, too, was an amazing learning experience for me. I came to know the basics of GitHub and Git command-line interface. I learned about Linux development a bit, and also learned about Sphinx and python in the process. Truly, failure teaches us more than success.
However, I never lost hope and driven by determination, I tried hands on another one of openWISP’s tasks, Create your own GPG key, authenticate to GitHub and sign commits. I chose this task as it was based on the skills of Git I’d learned during my previous attempt. I completed my studies and got to work on it at 1:40 am. I tried Windows but committed a mistake from an ill-written tutorial, applying a command that rendered git useless. Again, I turned to Linux. I installed git tools and got to work. I cloned the repo, added a hello world program and staged it. Next, I set up a new GPG key (my third key in a day), added it to my account, told git about it and ran the git commit –S –m ‘added’ command for signing the commits. It was executed successfully. I was elated. Then I used git push, entered my account credentials and finally, the task was completed.
That day, I realized a few things:
Hard work, determination, and persistence can help us achieve anything, and
Linux is way better than Windows for development 😉
I learned about:
Git
GPG keys
Cloning repositories
Basics of GitHub like stage and branch
Creating branches and merging them with master branch once done
Committing changes
Signing commits using a GPG key
Creating pull requests
Learning basics of Linux command line
Learning from failures!!
Arnav Raman
@arnavr