DEV Community

Cover image for MLH made me better at learning!
Arpan Abhishek
Arpan Abhishek

Posted on

MLH made me better at learning!

I can't even begin to express the emotions I felt when I got the acceptance mail from the MLH team for GitHub Externship track in MLH Fellowship Fall 2021!

Acceptance mail

Got the Acceptance mail on 20th August 2021

On 8th September, I got another mail that due to my region I couldn't get into the Github Externship track, so I had to either switch to Open Source track or defer my enrolment. And I am glad that I made the decision to switch to Open Source track

Transferred to open source

Had to move from Github Externship to Open Source track

On 20th September, we kicked-off the batch with an onboarding session, where we got to know about the amazing things that awaited us, and the details of the projects were revealed wherein we had to contribute in the next 12 weeks. My project was Pysa by Facebook Open Source.

The First Week: Oriental Hackathon

The goal of this Oriental Hack was for us to get familiarised with our assigned projects. We made a group of 4 and started reading about Pysa a static analysis tool written in python.

After a 4 day long research, we made a CLI tool which will help us in finding SQL Injection vulnerability in a python code.

GitHub logo arpancodes / protectsql

A static analyzer to keep your flask app free of SQL Injection.

The contribution begins

From the second week, the actual contributions began. We set up weekly calls with the maintainers, set up office hours (two calls per week) where anyone could drop in and ask their doubts to the maintainers and 1-on-1 calls with the mentors (one call every two weeks) for career advice.

Now, I had contributed to open source before so this wasn't the most challenging part for me, or that's what I thought!
My first PR and I made a boo boo. I committed .gitignore and pushed.

The thing I absolutely love about the open source community or even the complete hacker community is that no one will judge you no matter how stupid the questions you ask or the things you do are.

I did a search on how to remove one file from the PR but couldn't get the desired results as I had committed 2-3 times after I added .gitignore to my PR, or let's just say my situation was a little more complicated.

So I asked in the channel and my project's maintainer was kind enough to guide me step by step!

This was my first learning!

Next, I wrote my first ever unit-test, that too on Facebook's open source project Sapp ๐ŸŽ‰

While working on this PR I had to learn a whole lot of things since I was writing tests for it, I wanted to know at least a little more than basics.

I started with learning flask and SQLAlchemy, and since we were using unittest library (which comes with python), I read its docs.

After creating my PR I got to know that I can use tempfile to avoid manually creating the file and deleting after the test finishes, which lead me to learn about context managers in python since I was using nested with statements.

While writing this article I am realising that this PR has a whole story to it. In case you are interested with the changes it had over the time you can check it here ๐Ÿ˜‰

Add tests for `warning_messages.py` file #62

Pre-submission checklist

  • [x] I've ran the following linters locally and fixed lint errors related to the files I modified in this PR
    • [x] black .
    • [x] usort format .
    • [x] flake8
  • [x] I've installed dev dependencies pip install -r requirements-dev.txt and completed the following:
    • [x] I've ran tests with ./scripts/run-tests.sh and made sure all tests are passing

Summary

Added tests for the file /sapp/warning_messages.py

Test Plan

Relevant issue: https://github.com/MLH-Fellowship/sapp/issues/11

After that, my last two PRs were for Pysa playground (Both for frontend and backend) for which I had to learn a little bit about Web-Sockets and how we can use them with flask.

And now, here I am writing my first "personal" blog thanks to MLH! ๐Ÿ˜›

Takeaway

The goal of this article was not to boast about the things I learnt during MLH fellowship but to make you realise that I learned so much in just a few weeks! And this realisation is really really powerful!

Tell me, how long did it take you to learn your first language?

I was very new to python if not completely new, but after MLH fellowship I am very well familiar with it's eco-system!

So what we need to do is to change the approach to learning. The reason I learned so much was to accomplish some task not just to know a new tech! And I strongly believe that if you have a task to accomplish or a goal to achieve you will learn 10x faster.

Don't make goals like "I want to learn android development to become an android developer".
Instead, take small steps and make micro goals like "I want to learn to create bots so I can attend my online classes passively" ๐Ÿ˜… or something like that.

And if you can't find such a goal, contribute to open source! It will provide you with so many things to learn that you couldn't even begin to imagine!

Top comments (6)

Collapse
 
ben profile image
Ben Halpern

Congrats!

Collapse
 
arpancodes profile image
Arpan Abhishek

Thanks! ๐Ÿ™‚

Collapse
 
rakeshseervi profile image
Rakesh Seervi

keep the blogs coming ๐Ÿ”ฅ

Collapse
 
arpancodes profile image
Arpan Abhishek

Sure!

Collapse
 
ishita0112 profile image
Ishita

This is super cool! Indeed the entire experience was so special ๐Ÿ˜

Collapse
 
arpancodes profile image
Arpan Abhishek

Yesss ๐Ÿ˜๐Ÿ˜