Getting into one of the reputed internship programs might seem scary and unachievable especially when you don’t consider yourself an expert in that field, but trust me it’s not that hard to get into. How can I say this with so much certainty? Well, I got into Outreachy, one of the prestigious internships as a Fedora intern and through this article, I want to share my journey with you all.
What is Outreachy?
If you are reading this blog, I suppose you already have an idea about what Outreachy is. Well, Outreachy is an open source internship program for individuals belonging to groups traditionally underrepresented in technology. Many well-known organizations such as Mozilla, Wikimedia, GNOME, Linux Kernel, Fedora take part in this program. This program is very similar to Google Summer of Code, except for the fact that it is not limited to students and it happens twice a year, May-August and December – March.
One demerit is if you are already a GSoC participant, you can’t take part in Outreachy. For deeper insights check this out.
How did I get to know about Outreachy?
One of my seniors, Manaswini Das, was able to crack the internship previous year for the very first time from our college. She promoted Outreachy through talks and workshops many times in college and at GDG Bhubaneswar. I was really fortunate to attend all of them and get personal guidance too. You can read some of her articles here.
Guide to get into Outreachy
Around late 2018, during winter break I applied for Outreachy for the first time, but my initial application got rejected due to clash in the internship dates and academic curriculum. So, I ensured that my application during summer break should be with full preparation. So, I followed Outreachy at twitter for updates ( with notifications on ). Read a few articles regarding outreachy internship by previous outreachy interns (check out this). Having an idea beforehand is always helpful.
After the project lists come up, try to sort the project according to your priorities. My first priority was the organization since I was ready to learn new stack and implement. If the stack was too difficult, I switched. Though priorities may vary, some might jump into the known stack, some may want to challenge themselves to learn new things as well. Also, projects have been categorized, the level of expertise it requires for a particular technology, grading them out of 5 which helps a lot for the filtering process.
After Selection of Project
After selecting projects (which necessarily might not be 1), look out for how much dedication and learning it demands. And once you are ready with your project selection (2 at max), reach out to the mentors and involve in the community. My community (Fedora) is best known for its welcoming gesture for newcomers.
Working on the Project
Lookout for first good issues to get started and ask for help (to your mentor or anyone in the community) any time you feel stuck.
My Experience and Suggestion
One of the key principles I followed during the application is “Consistency” and “Being an early bird”. Many time you might feel like quitting and switching to other projects, but I strongly suggest not to. If you have already dedicated 1-2 weeks understanding the project, getting involved in the community, and you are shifting only because you are stuck, then it is not the best option. Because if you switch, you are starting from scratch, understanding a new project and lagging behind by a decent amount of time. Someone might have already done a good amount of contribution to that project and in the long run, you might not feel confident enough to continue in that project as well. So, what I would suggest is to be consistent from the beginning to the last.
Well, the first person that you need to have patience with when you are programming is yourself. Sometimes when you are stuck, you might lose your patience as well. Don’t worry it happens, since the road is not smooth but it depends on how fast we drag ourselves back without losing faith. So, be calm and reach out to the mentors and people in the community for help.
For most problems, there will be more than one solution, never lose hope and try to crash the barrier between your knowledge of knowing its existence and the solution already existing. A large part of our jobs as software developers is to think through those different solutions, seeking help from our mentors and seniors and choosing the one that is best.
The community that we choose is the lifeblood for the project. Being able to network and make connections with people is so important for self-growth, education, relating our experiences and finding new opportunities.
Well, most skills I shared are often referred to as “soft skills”, but lately I felt that’s reductive. These skills help so much with writing code.