What I learned through OpenCode!

Varun Tiwari
Nybles
Published in
5 min readOct 22, 2021

Introduction

For someone who doesn’t know about OpenCode, it’s a month-long program for students to start their journey in the world of open-source. It offers a variety of projects from different domains like Web Development, Android Development, Design, Game Development, Machine Learning, and whatnot. You name a tech and they have a project for that. Therefore, students from different domains and tech stacks can easily participate and get hands-on experience in the open-source world. The only requirement is having an enthusiastic heart to learn.

Some Backstory

I started development by learning some basics of HTML, CSS, and JavaScript and created a bunch of projects. Also, I learned some basics of git and GitHub to push and host my projects to hosting services like Netlify, Heroku, etc. After that, I continued to learn different frameworks and libraries like ReactJs, ExpressJs, etc. But I was missing one important thing that everyone should do before making websites, Designing. I never thought of designing web pages before coding them. I just used to think about the design in my head and start coding. This was in fact time consuming, but I didn’t realize it at that time. Also, there were some UI/UX competitions in our college but I was not interested in them. I thought that designing is not my piece of cake until I participated in OpenCode’21.

How I Started Designing ?

I was familiar with the MERN stack and had also made some decent projects with that too, so now I wanted to get hands-on with open-source and kick-start my open-source journey. I got to know about OpenCode’21 through my college. I didn’t want to miss this awesome opportunity and so I registered for OpenCode’21 in September. OpenCode started on 4th October. As soon as it was started, everyone hurriedly started claiming issues. I didn’t thought that all the issues will be assigned within minutes. I was only able to do the issues which were open for all. This happened for 2 to 3 days when I finally decided that this isn’t going to work. There were only a few open for all issues in all the repositories with the tech stack I knew. To rank up, I needed points and for points I must have some issues assigned to work upon. I started searching for open issues on which I can work upon. I saw that the design repositories had many issues at that time and all of them were open for all.

Despite ignoring design repositories at first, they proved to be my only saviors. Now for designing, I needed some designing tools. At that time I didn’t knew any designing tools, so I learned the one on which the issues were to be done, Figma. I went on and watched some YouTube videos to get some basic idea about Figma. After learning some basics I picked my first design issue. In this issue, the task was to design the footer for theOpenCode’21 website. I began working on it. Although I struggled for hours to align all the elements, type buttons, and so forth, I finally made a Pull Request. When I awoke the next morning, I found that the Pull Request for the footer design I created had been merged. I was delighted. I decided that now I can continue doing the design issues until I get some assignments in other repositories.

I carried on and made many designs. Some were good and were merged in one go. But others required some changes. As a design newbie, I couldn’t figure out that what could be improved. I contacted the mentors and told them about the issue. The mentors were extremely helpful. They told me about all the changes that were required and also told me some ways to improve the overall design. They provided a lot of insight and guidance. Every time I got stuck, the mentors were there to help. During this time, I learned a lot. As time passed by, some other repositories also opened some design issues. The issues wanted the participants to completely redesign the UI of the application. The best three designs were to be selected and the best among the three was to be used for reconstructing the style of the applications. Although I knew that only three were to be selected, I still wanted to give it a try, as I was quite confident with my designs at that time. I redesigned the application for all the three repositories, which had these design issues at that time. And guess what, my designs got selected for all the three of them. Not only this, two of them were selected as the best one. My joy was undeniable as I had never considered myself suited for designing.

Now, my mentality has quite changed, as I believe that designing before coding can greatly improve the workflow and make coding easy. This is how I learned designing through OpenCode’21. There are still many design principles I don’t know, but I am sure I will continue to learn these even after OpenCode’21 ends.

What Else I Learned ?

Apart from designing, another most crucial skill I learned was git. I had some knowledge of git before, but mostly about staging files, committing changes and pushing them. But git is vast, and there are many concepts of git that every developer must be knowing. OpenCode’21 also had a repository for learning git. As this was a great opportunity for me to learn git (and also gain some points), I started tackling the tasks described in the issue. At first, I was unable to do them, as I didn’t know the commands that were required for the task. In order to complete the assignment, I had to learn the concepts required, so I looked for some information on Google and found several interesting articles about them. After getting a basic idea, I performed the tasks and succeeded. In this way, I learned many important concepts that I regret I hadn’t learned earlier.

I consider this as one of the most important skills I learned from OpenCode’21 after designing. It taught me several important concepts like: branching, merging, resetting, rebasing, cherry-picking, splitting commits, deleting commits, working with remotes, etc. Also whenever I got stuck, our mentors were always there to help. They taught me how to use these concepts in case we mess up our git/github repository. In case, when some participants were unable to complete the task the, mentors even gave some hints to solve them, After all it’s all about learning, and that’s what OpenCode’s motive is, Learning by collaborating.

Conclusion

These were only some of the major things I learned in OpenCode. But the list isn’t this small. Every issue I solved, be it a design task or an issue with web applications, I always learned something new. I also learned some concepts that I was unaware of even after having written thousands of lines of code. OpenCode taught me that learning never stops. Every day we learn something new and this cycle continues forever.

At last, all I want to say is, Thank you OpenCode 🖤

About Me 😃

Hello everyone, I’m Varun Tiwari, a web development enthusiast, currently pursuing an Integrated B.Tech and M.Tech in Information Technology from ABV-IIITM, Gwalior. I’m exploring new technologies in the field of web.

Want to Know more about me ? Visit my website

--

--