Let’s explore the Struggle Town!

Here is my second post regarding struggles as an outreachy intern in Mozilla. Today, I am gonna share my struggles and the learning I grasped from them. Without problems how do we find solutions? How do we grow? How will we be stronger? Most of all How will we improve?
I went through a lot of challenges/problems during my first few weeks of the intern. I gathered all my experiences and learnings in order to help someone who is having a hard time, just to make you feel a bit more motivated so that you don’t give up. I will try my best to push you a step ahead after you read this.

Before starting my intern, I brushed my JS concepts in order to speed up my tasks and do them as fast as I can. But here comes the irony of coding. There a difference between understanding the code and when you actually start to write the code (it may scare you with a lot of errors :P). It’s easy to understand a well-written code, which is true in most of the cases in open source communities.

People are so passionate to help and improve the community that you will enjoy working with them and that vibe is just amazing. It brings so much motivation to see people devoting so much from their lives to contribute to open source. When I see people around me and with me, working so hard. It gives you motivation no doubt in that but at the same time, it also scares you. You develop this fear of not giving your best. Which I was facing hugely in my first few weeks.

Learning by Doing:

Learning by doing refers to a theory of education expounded by American philosopher John Dewey. The reason I highlighted this point is that I feel a lot of people seek Learning and Doing as same. But in case of coding challenge actually starts when you start writing code own your own. They believe doing a good tutorial and you know just reading a book can help them all way along. It does help no doubt, but if you don’t practice it along the learning way you are choosing a path of fooling yourself.

All the amazing coders were at this stage when they initially started. They were just stubborn enough to go through their struggles and come out stronger. If you are feeling little low or you are having this emptyish feeling in your stomach that whether you should try or not? Are you good enough or not? Are you going to be good enough or not? You can’t really be certain enough in your life and you can’t just wait for a perfect moment to start, because there is never gonna be a perfect time. So, start now! Trust me you deserve a good try at least.

You can ask different people and read different articles to ensure your self-confusion. From some, you will relate a lot and from some, you might get discouraged. So here is one of my all time favourite quote. 🙂

It definitely helped me when I was in your period.

The after party struggle:

You know people think once you got your intern/job now you are sorted. It’s all easy. They have these pre-consumed notions that before getting the job people must have read all or practised all or that may be people who are doing their job they know everything about it and they just type it as soon as they see the problem. Well, that’s not the case. People do read a lot and practice a lot that’s why they got the intern/job, but at the same time, you can never learn enough. There are always challenges that push you to do things you haven’t done it before. That’s when the real struggle of looking yourself as Am I good enough to get this intern/job? begins.

After starting my intern I had my first meetings with my mentors and fellow interns. It was really good e-meeting my mentors and all other new fellas. I was really nervous and excited at the same time. I was assigned some first tasks, in which I had to work with an issue that I partially solved in my application period. It was a complex one and I wasn’t able to solve it completely in my first week. I was really panicking and frustrated for not being able to find that perfect solution.

When drama hits our mind 😛

I had to add a cross icon in the list of sites/tab that was opened in that container has an ability to be closed individually when clicked on that icon. If you hover on that icon it should turn dark and when you click it, it should close that particular tab. I did implement it before but the problem was it was by adding a column to the right of the list in which the cross icon was appearing.

My mentor suggested that it’s not space friendly as it is occupying a whole column space so the space for site information is left less. So I had to dynamically add the icon while hovering on that particular site in the list with having those properties(to click and close it). I was really confused. I asked some questions and tried some different concepts I read a lot online on what different I can apply? How should I manage the opacity and make it being added smoothly? It did get dynamically added but it was not being added smoothly. It was loading the whole list again and it looked so messy.

Times we all can relate to!

Then I was given some hints and help from my mentor. He gave a link to an example which was partially implementing a concept ( using flex how you can use visibility: collapse) that he suggested so that I could get some idea to improve my solution. That was a really good resource, it cleared all the doubts I was having regarding implementing it like that.

After me crawling with that issue since so long I finally managed to do it. I was so happy to solve that, I use to call it the monster issue. Thankfully my mentors luke and Jonathan are really amazing and helping. They never let me feel like I am not good enough as I couldn’t solve my initial tasks that soon as I expected. They have been really patient and motivating. I couldn’t ask for better mentors.

The art of asking questions:

I was really bad at asking questions. I was never a confident girl, you know like the ones who ask questions in the class and responds whichever answer come to their mind. I use to be the silent one always. I even confronted that to my mentors that I really struggle with asking questions as I think I should read before asking questions and I end up reading too much.

I struggled with my issue for a week just because I was reading every possible resource and not asking questions frequently until I gave up and was like I am not able to solve it. I tried it all. That is not a good practice trust me.

My mentor then told me that it could save my couple of hours. Because a fresh eye can spot errors quickly and they can provide you direction which you might have lost while struggling with it.

The art and science of asking questions is the source of all knowledge.

Thomas Berger

I pushed myself to ask questions and it made my life easier and I was able to deliver more. Once I use to get the necessary direction, I then use to search for the resources in that lane. It reduced the amount of time I use to spend on issues and I learnt more ways to approach the problem which was the best part of asking questions or direction.

Meanwhile struggling with that, I got through this quote which really impacted me in a way to ask more questions. As most of us develop this fear because we think our question is a really stupid one to ask. What will they think we don’t know even this? This is the most common thought we have while asking a question.

There is no stupid question: stupid people don’t ask questions.

Some times we even find a solution while asking for the question. If not, then once we get the answer most of the time we feel really dumb. Mind goes like “Oh crap!! yes, how can I not know this? How can I be so stupid? Why didn’t they disown me yet? This was so simple.” It’s just that span of time in which we are inclined to some other complicated thoughts regarding that problem that we miss simple solutions on the way.

You are intelligent. So don’t hesitate to ask questions! 😉

I hope I motivated you enough to ask questions and to be okay while struggling. Stay tuned until my next blog.
Good day 🙂

Advertisements

The road to Outreachy as a Mozilla Intern

My graduation was about to end. The placements were over and almost everybody around me got placed. I, on the other hand, was not even eligible for the process of every company that came for recruitments in my college; for not having what they called “a good CGPA.”

I was in the stage where nothing went my way!

I always wondered, why it is necessary to have good grades to get a job. Why aren’t we are checked on the basis of our skill set? Why every time I was rejected just because I didn’t have a convincing mark sheet? Why I am not given a chance to prove what I really know for once?

It was starting of 2017 and I had lost all hopes of getting a job or intern. It was the lowest phase of my life. Then my friend told me about Outreachy. At first, I saw it as a far-fetched thought which seemed nearly impossible. Then on one sleepless night, I researched about it and read the articles written by outreachy alums for motivation and I began to saw outreachy as a ray of light in the darkness of my life.

Then I started preparing for it. I wanted to work on front-end so that I can bring my creative side along with my technical knowledge. I knew basics of CSS, HTML, JS but it wasn’t enough, I had to go long way ahead.
I gathered the courage to still work hard and able to aim for Outreachy December’18 round and marked the start to this journey by signing up for the Outreachy announcements mailing list.
I started learning ReactJS after covering the basics of front-end development, git/GitHub and made a dynamic ‘Burger-Builder App’  from scratch in ReactJS. The code for the same is open-sourced on GitHub and is live here. With this it was deep dive into advanced concepts of React, Redux, working with web pack etc. After completing this project it was the first time I felt I could make it, I could make it big.

This followed my journey to open source, exploring the word which I had heard a lot but didn’t know what it exactly stood for. I started contributing to Mozilla/addons-frontend and Mozilla/testpilot. Started off by picking up real simple issues with a few lines of changes and eventually moved forward. This process went for more than 1.5 months during which the mentors were really patient and nice (special mention to Will Durand and Paul) for reviewing and pointing out my mistakes. The thing that helped me the most to make progress was to make a systematic table to keep the record of all the issues I picked/created in my notes as shown in the picture below. Yeah, my own very personal version of Trello. 😉

About Outreachy:

Outreachy is an opportunity that provides a chance to excel for the underrepresented people in tech. It runs twice a year. It is a three-month internship to work in Free and Open Source Software (FOSS). Interns are paid a stipend of $5500 and also they are given $500 travel stipend. Outreachy is not limited to programming only. It also includes projects based on user experience, documentation, illustration and graphical design, to data science.

The official Outreachy website is here. It is well designed and you can get all the desired information about application process, eligibility rules and the stipend. Mozilla, Git, Debian, GNOME, Kubernetes, OpenStack are few big names which participate in outreachy.

Application Process: 

The application process of outreachy is well crafted. It mainly has three stages.

Initial Application: 

Outreachy asks you to fill an initial application which needs to be approved to further be eligible to apply to the projects. In this application your time commitments, eligibility along with some answers are reviewed by the outreachy team. If your application is approved, then the project list and mentors are visible and you can start making contributions to the projects.

Selection and contribution:

This is the most important part, choosing the right project. You can aim more than one project and start making contributions if you aren’t sure about one particular project. But try not to aim more than two projects as you won’t be able to concentrate properly in between the hustle. 

I’ll suggest choosing your project wisely. Shortlist the project according to your best-suited skillset or interest. Start interacting with your mentors, join the communication channels and introduce yourself. Get yourself comfortable with the codebase and start making contributions. Keep track of your contributions and add them time to time so that you don’t rush at the deadline.

Mozilla:

The FOSS community I decided to contribute was Mozilla. Mozilla had 9 projects and they intend to select 15 interns for these projects. I quickly went through the projects and decided to contribute mainly to “Improve Firefox Containers Add-ons” project. I already had past experience for add-ons from my previous contributions to Mozilla/addons-frontend and Mozilla/testpilot. So this project piqued my curiosity and I found the code base and mainly the entire concept on which container addon is based really interesting.

I tried to make myself quickly comfortable with the codebase by understanding the main chunks of code, quickly went through the good first bugs and tried to solve them and send a PR as soon as possible. Luckily I was able to solve my VERY first bug and send a PR on the first day. 
There might be a lot of people on your project and you might feel there are no issues left to claim, I’ll suggest to be patient and take help from mentors at that time. Try to help other contributors too, who are struggling to either set up the project or are in some way stuck with their first bugs.
In the end, complete your application a bit before the deadline just to you have enough time to discuss it with your mentor. Make sure you record all your contributions and then you are all set to apply to that project. I submitted the proper timeline after discussing it with my mentor, of complete 3 months in which I wrote my goals I want to achieve during this period and make the best out of it. 

Mozilla Perks

Getting intern at mozilla add some additional perks to the basket, which makes the journey even more interesting and motivating.

• Mozilla gives each intern a new laptop which is completely their’s to keep.
It feels so good and pampered to have your own latest laptop.
  >> I can’t stop staring at my latest Macbook Pro 😀

• Mozilla gives all of its interns the LDA credentials i.e official mozilla e-mail id. More to that, you can also attend the Mozilla All-Hands which is a global mozilla event. All the interns and employees are invited to meet their colleagues, share respective experiences, interact with each other. So you get a chance to meet your mentors and other volunteers you are working with.

Results:

Finally, the day arrived. It was a long day with lots and lots of wait! I can’t explain the moment I saw my name on the list. I couldn’t stop my tears and was just staring at my picture for a few minutes.

The way from here on this roller-coaster

I am really excited to dive deep into the project’s codebase and to learn as much as I can despite all the hurdles that are waiting for me in the way ahead. Hope you feel motivated enough for today, so go ahead, make your first contribution today!
If you have any query or doubts regarding outreachy process you can leave me a message, here

A note to mentors and organisers

I want to thank first of all Sage sharp and Marina for organising outreachy this gracefully. My mentors Luke Crouch and Jonathan Kingston, who helped me a lot in every little step till now and reviewing my initial terrible PR’s.

I will keep blogging about my project during my intern period. Till my next blog, stay tuned!

The days are long, but the years are short. A year from now you may wish you had started today!

Have a good day! 🙂