08 Jun 2020
Hi! I’m Sneha and this is Blog 2 of my Outreachy series titled “Everybody Struggles”. As humans we have always made to feel bad about our failures/setbacks. Never have we ever looked at it from the perspective of
celebrating our roadblocks since that is what leads to and shapes us to be successful ahead!
Now I know what you all are thinking isn’t this supposed to be like a technical blog enough about the philosophy xD But in reality everything that we go through be it something technical like this internship or even the new year’s resolution that we almost always can never keep up. The one truth behind all of it is everybody struggles and it is okay to accept it and embrace it. If life wasn’t challenging enough we won’t be seeing the growth we wanted would we(?) and everything would be pretty monotonous.
My struggles so far
Now coming to my struggles so far in this programme, some of the tasks that I have outlined seem really difficult to start with. Since my proposal deals with performance optimization, it is an open-ended question really and many a times I am faced with Open-ended questions that can have more than one correct answer.
For example- One of the problems I am dealing with right now is figuring out how to add alternate text for Images uploaded by the user. The trade-off lies in choosing AWS/Microsoft or other such services to recognize the images and accordingly add the alternate text for it or to add an alternate text input field for the user to add it accordingly. The question comes if our data should be made available to these services or if we stick to the alternate text input field will it mess up with the User experience or will it be accurate?
Another perfect example of my struggles lies with figuring out how my performance related optimizations fare out in the production environment. While I want to defer certain scripts to improve page load time, there is always the fear of dependencies relying on those scripts and thus breaking things down. Another issue lies in the fact that for many of these optimizations require me to add more gems and also ensure that future contribuors follow certain guidelines as to not break the code. So is this the correct way to do this?
So with all these questions in my mind, how to deal with these Struggles
How I am dealing with my struggles?
One of the most amazing things I am blessed with so far has been the extremely supportive Publiclab Commmunity. And they are pretty much the reason why my struggles feel more like challenges that just need a little bit of a push and I am always almost already there!
The energy of this community is extremely positive and that is why everytime I find myslef in an endless loop of questions I create an issue with the discussion label, tag all my fellow community members and look forward to their advice! And they never disappoint :p
And this will be my advice to all my readers here too! Never be afraid to ask or speak what’s on your mind! We always hold this fear of sounding stupid enough and break our heads thinking over solutions over and over again. And while that really shows how determined you are but if you have tried for more than a couple of hours and are working in a team, collaborate ask and it will aways yield better and faster results :v Most of the people you reach out to would be happy to answer your questions and could have experienced the same issues when they were starting out.
One of my favorite quotes from the man himself!!
10 May 2020
Myth 1: You need to be from a good college (IIT,NIT..etc)
Now this is something which is true to not just this post but literally anything you want to achieve in your life! Being from not a good college is not a disadvantage in terms of any dream that you want to pursue, and the same is true for Opensource too.
All you need to do is work hard, develop your skillset, network with like-minded people and uplift each other.
I would repeat the above line a million times to just emphasize on how important this is! Sure, the people in these colleges might have a headstart with things but that’s only because they built the community around them for it.They have seniors around them who have achieved similar goals and have encouraged them to do the same.
And you can do that too! How you ask?
- Start learning, gain knowledge. Don’t just buy courses and play it on 2x to build projects. Understand what goes into the course press pause, try to figure out the solution on your own. Or even better start reading documentation of the tools that you would like to use from their own page. Read blogs of other developers trying to build something, try to recreate but add a special element of your own. Could be in terms of design, or a new feature or even content! But make sure you learnt something not just added another certificate to your profile.
- Build a community. Start being around like-minded people and discuss ideas and collaborate on projects. Don’t be the person who only wishes for their own success. Remember true growth always comes from uplifting others and being a team player. So if you get accepted to any of these programs, it’s your time to start a culture in your college/institution to help others start their journey too! There are a lot of other programs too like DSC, Github Campus Expert, Microsoft Student Partner etc. that can help you to start a community with ease.
- Be consistent, Don’t procrastinate. What I often see with students is that they get really motivated during the GSoC period to get accepted but soon abandon the project on getting rejected or losing motivation.Remember all the extra hours that you put in during the time when no one’s contributing gives you the edge when applications open since you have a good deal of knowledge about the codebase.
- Last but not the Least, Ask just Ask. Incase you get stuck or you feel that this is really overwhelming, ask for help. Just ask, a lot of us students think that my question might be stupid or can never gather courage for the same. I was one of them, I used to undermine myself a lot. But in reality there are a lot of people willing to help you. You just need to ask.
Myth 2: You need to be an expert developer
Now this I one I hear a lot from other students. I used to think like this too but on actually contributing I realised that this is half the truth.
Sure, there are a lot of Opensource organizations that need you to have expertise in some specific skills. But, there are also many who are beginner-friendly and encourage you to contribute to them. Also a lot of organizations don’t seek for help only in terms of code, some want help in their documentation or quality assurance and testing.
So this is another one of the questions that I have been getting lately. So what are the skills I should learn then and what organizations should I contribute to?
- The answer to this is really there is no answer! It all depends on you. Whatever intrigues you really, start visiting the GSoC archive, checking out the organizations that you like and their tech stack. Start building your skillset from that.
- For selecting organizations, try to work with an organization with products that you have interesting ideas for and can build upon ( this will help you greatly in shaping up your proposal) and with an active community to address your queries.
- If you are not comfortable with coding don’t forget to check out documentation, QA and other possible projects that the organization might need (if you are applying to Outreachy, you can find them in the projects list). There is also a less heard of program called Google Season Of Docs which promotes documentation and technical writing. Check it out here!
Myth 3: You need a lot of contributions to get accepted
Don’t measure your contributions by quantity but rather by quality. Try to explore unchartered waters and by that I mean really try to find solutions to problems not by mere googling. Dig deeper!
Wait…what do you mean?
- Whenever you find an interesting problem, don’t just google to try to find the solution. Try to figure out what the function tries to do and why it might possibly be failing. Read the documentation of the libraries involved.
- When working with difficult problems, don’t hesitate to ask for help. The community members know that you are learning along the way and always appreciate your efforts.
09 May 2020
Hi! I’m Sneha and I will be sharing with you my journey on being accepted in the Outreachy programme with Public Lab. My guess is if you are here you have already taken your first step towards Opensource or are excited about the same. So let’s dive straight into it!
How I started with Opensource
My journey with opensource began mostly due to a month long-event held in my college called Opencode IIITA (If you are a newbie to Opensource make sure to check it out in Jan’20). This was followed by building small projects and adding them to my Github. I also made it a point to attend as many Hackathons I can.
I also mentored as a GCI mentor for AnitaB.org and contributed to a couple of other Opensource organizations like FOSSASIA, Zulip, AnitaB.org.
What is Outreachy?
Outreachy provides internships to work in open source and free software for under-represented communities. Outreachy internships are open to applicants around the world. Interns work remotely, and are not required to move. Interns are paid a stipend of $5,500 USD for the three month internship. Interns have a $500 USD travel stipend to attend conferences or events.
I came to know about Outreachy from one of my friends. I checked out the website and the program was really intriguing to me! I really wanted to be a part of this and started hustling right away!
Choosing the organization
But how do I start?
Sure, I had contributed to Opensource before but what if I lack the skills or fail at even setting up the project or what if my contributions turn out to be insignificant.
Battling all these questions, I started searching for organizations to contribute to within my skillset.
This is where Publiclab came into picture. It was an organization that made it possible for newbies to contribute to Opensource easily.
This was achieved by having many first-timers-only (issues which are easy and made for contributors who haven’t already contributed to their codebase) and keeping the software extremely modular (broken down into many components making it easier to work on any isssue without having knowledge of the entire codebase). But most importantly!!! The community was absolutely amazing :heart: They constantly supported us throughout the journey and spread positive messages on our every small code change getting merged :tada: Even when we got stuck, they pointed us at the right direction.
We also had Weekly Check-ins which actually helped me a lot during these difficult times to take in all that was going on. Having real people share their stories brought us together as a community!
What is Public Lab ?
Publiclab is an organization that spreads knowledge and addresses the current environmental issues through this massive userbase who together bring change and promote sustainability. P.S if you want to know more about it please check this out!
Initially I stuck to solving simple UI fixes and then moved to finding bugs within the website. This involved testing the website and all possible routes to find out if anywhere the website was not showing expected behaviour. Towards the end of the contribution period, I had moved to a couple of bugs in the backend and solving them.
But what I would really like to highlight here is that your contributions towards your code aren’t all that important. The true spirit of Opensource calls for you to help others in their journey with Opensource too! Be it reviewing others pull requests or opening first-timer-issues for other new contributors or even answering their queries in the chat.
Due to the heavy traffic the site was down for sometime, and with every minute I could feel me sweating really bad. But at that moment I had one realisation that the months that I spent working on the project was worth it because of all the knowledge that I gained over the time and all the amazing people I got to know of!
The moment came and I got in!! I was ecstatic and all the more excited for my project.