<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arpan Abhishek</title>
    <description>The latest articles on DEV Community by Arpan Abhishek (@arpancodes).</description>
    <link>https://dev.to/arpancodes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F281494%2F6b6ca37d-884a-4198-9be4-03fb595bb413.jpeg</url>
      <title>DEV Community: Arpan Abhishek</title>
      <link>https://dev.to/arpancodes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arpancodes"/>
    <language>en</language>
    <item>
      <title>MLH made me better at learning!</title>
      <dc:creator>Arpan Abhishek</dc:creator>
      <pubDate>Tue, 18 Jan 2022 11:29:15 +0000</pubDate>
      <link>https://dev.to/arpancodes/mlh-made-me-better-at-learning-b5f</link>
      <guid>https://dev.to/arpancodes/mlh-made-me-better-at-learning-b5f</guid>
      <description>&lt;p&gt;I can't even begin to express the emotions I felt when I got the acceptance mail from the MLH team for &lt;strong&gt;GitHub Externship track&lt;/strong&gt; in MLH Fellowship Fall 2021!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzek59fhacqf9ttepkq3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzek59fhacqf9ttepkq3p.png" alt="Acceptance mail"&gt;&lt;/a&gt;&lt;/p&gt;
Got the Acceptance mail on 20th August 2021






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

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm0kynfs7wnwju5tbwje.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flm0kynfs7wnwju5tbwje.png" alt="Transferred to open source"&gt;&lt;/a&gt;&lt;/p&gt;
Had to move from Github Externship to Open Source track






&lt;p&gt;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 &lt;a href="https://github.com/facebook/pyre-check" rel="noopener noreferrer"&gt;Pysa by Facebook Open Source&lt;/a&gt;. &lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-1440057278367879178-835" src="https://platform.twitter.com/embed/Tweet.html?id=1440057278367879178"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1440057278367879178-835');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1440057278367879178&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h3&gt;
  
  
  The First Week: Oriental Hackathon
&lt;/h3&gt;

&lt;p&gt;The goal of this &lt;em&gt;Oriental Hack&lt;/em&gt; was for us to get familiarised with our assigned projects. We made a group of 4 and started reading about &lt;a href="https://pyre-check.org/docs/pysa-quickstart/" rel="noopener noreferrer"&gt;Pysa&lt;/a&gt; a static analysis tool written in python.&lt;/p&gt;

&lt;p&gt;After a 4 day long research, we made a CLI tool which will help us in finding SQL Injection vulnerability in a python code.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/arpancodes" rel="noopener noreferrer"&gt;
        arpancodes
      &lt;/a&gt; / &lt;a href="https://github.com/arpancodes/protectsql" rel="noopener noreferrer"&gt;
        protectsql
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A static analyzer to keep your flask app free of SQL Injection.
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/sf8GWfs1dvI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  The contribution begins
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;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. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;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 &lt;code&gt;.gitignore&lt;/code&gt; to my PR, &lt;strong&gt;or let's just say my situation was a little more complicated&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I asked in the channel and my project's maintainer was kind enough to guide me step by step! &lt;/p&gt;

&lt;p&gt;This was my first learning!&lt;/p&gt;

&lt;p&gt;Next, I wrote my first ever unit-test, that too on Facebook's open source project &lt;a href="https://github.com/facebook/sapp" rel="noopener noreferrer"&gt;Sapp&lt;/a&gt; 🎉&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;I started with learning flask and SQLAlchemy, and since we were using &lt;code&gt;unittest&lt;/code&gt; library (which comes with python), I read its docs.&lt;/p&gt;

&lt;p&gt;After creating my PR I got to know that I can use &lt;code&gt;tempfile&lt;/code&gt; 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 &lt;code&gt;with&lt;/code&gt; statements.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;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 😉&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag_github-liquid-tag"&gt;
  &lt;h1&gt;
    &lt;a href="https://github.com/facebook/sapp/pull/62" rel="noopener noreferrer"&gt;
      &lt;img class="github-logo" alt="GitHub logo" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg"&gt;
      &lt;span class="issue-title"&gt;
        Add tests for `warning_messages.py` file
      &lt;/span&gt;
      &lt;span class="issue-number"&gt;#62&lt;/span&gt;
    &lt;/a&gt;
  &lt;/h1&gt;
  &lt;div class="github-thread"&gt;
    &lt;div class="timeline-comment-header"&gt;
      &lt;a href="https://github.com/arpancodes" rel="noopener noreferrer"&gt;
        &lt;img class="github-liquid-tag-img" src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F42417893%3Fv%3D4" alt="arpancodes avatar"&gt;
      &lt;/a&gt;
      &lt;div class="timeline-comment-header-text"&gt;
        &lt;strong&gt;
          &lt;a href="https://github.com/arpancodes" rel="noopener noreferrer"&gt;arpancodes&lt;/a&gt;
        &lt;/strong&gt; posted on &lt;a href="https://github.com/facebook/sapp/pull/62" rel="noopener noreferrer"&gt;&lt;time&gt;Nov 09, 2021&lt;/time&gt;&lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag-github-body"&gt;
      
&lt;p&gt;&lt;strong&gt;Pre-submission checklist&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[x] I've ran the following linters locally and fixed lint errors related to the files I modified in this PR
&lt;ul&gt;
&lt;li&gt;[x] &lt;code&gt;black .&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;[x] &lt;code&gt;usort format .&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;[x] &lt;code&gt;flake8&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[x] I've installed dev dependencies &lt;code&gt;pip install -r requirements-dev.txt&lt;/code&gt; and completed the following:
&lt;ul&gt;
&lt;li&gt;[x] I've ran tests with &lt;code&gt;./scripts/run-tests.sh&lt;/code&gt; and made sure all tests are passing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Summary&lt;/h2&gt;

&lt;p&gt;Added tests for the file &lt;code&gt;/sapp/warning_messages.py&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;
&lt;span class="octicon octicon-link"&gt;&lt;/span&gt;Test Plan&lt;/h2&gt;


&lt;p&gt;Relevant issue: &lt;a href="https://github.com/MLH-Fellowship/sapp/issues/11" rel="noopener noreferrer"&gt;https://github.com/MLH-Fellowship/sapp/issues/11&lt;/a&gt;&lt;/p&gt;

    &lt;/div&gt;
    &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/facebook/sapp/pull/62" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;



&lt;/blockquote&gt;

&lt;p&gt;After that, my last two PRs were for &lt;a href="https://pyre-check.org/pysa-playground/" rel="noopener noreferrer"&gt;Pysa playground&lt;/a&gt; (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.&lt;/p&gt;

&lt;p&gt;And now, here I am writing my first "personal" blog thanks to MLH! 😛&lt;/p&gt;

&lt;h3&gt;
  
  
  Takeaway
&lt;/h3&gt;

&lt;p&gt;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!&lt;/p&gt;

&lt;p&gt;Tell me, how long did it take you to learn your first language? &lt;/p&gt;

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

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Don't make goals like "I want to learn android development to become an android developer". &lt;br&gt;
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.&lt;/p&gt;

&lt;p&gt;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!&lt;/p&gt;

</description>
      <category>mlhgrad</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
