<?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: Akash Tandon</title>
    <description>The latest articles on DEV Community by Akash Tandon (@analyticalmonk).</description>
    <link>https://dev.to/analyticalmonk</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%2F7033%2F4419448.jpeg</url>
      <title>DEV Community: Akash Tandon</title>
      <link>https://dev.to/analyticalmonk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/analyticalmonk"/>
    <language>en</language>
    <item>
      <title>Kaggle Learn review: there is a deep learning track and it is worth your time</title>
      <dc:creator>Akash Tandon</dc:creator>
      <pubDate>Sun, 28 Jan 2018 05:50:26 +0000</pubDate>
      <link>https://dev.to/analyticalmonk/kaggle-learn-review-there-is-a-deep-learning-track-and-it-is-worth-your-time-2m6e</link>
      <guid>https://dev.to/analyticalmonk/kaggle-learn-review-there-is-a-deep-learning-track-and-it-is-worth-your-time-2m6e</guid>
      <description>&lt;p&gt;Right from my undergrad days when I was starting out with machine learning to this date, my admiration for &lt;a href="http://kaggle.com/"&gt;Kaggle&lt;/a&gt; continues to grow. In addition to being synonymous with and popularizing data science competitions, the platform has served as a launching pad and breeding ground for countless data science and machine learning practitioners around the world, including yours truly. In fact, skills I'd picked up from the platform are part of the reason that I recently got to join &lt;a href="http://socialcops.com/"&gt;SocialCops&lt;/a&gt;, a company I'd admired for years. However, I hadn't been on the platform in 2017 as much as I would have liked. So when I saw &lt;a href="https://twitter.com/benhamner"&gt;Ben Hamner&lt;/a&gt;'s tweet launching &lt;a href="https://www.kaggle.com/learn/overview"&gt;Kaggle Learn&lt;/a&gt;, a set of interactive data science tutorials, I made up my mind to give it a shot.&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--TAmfrHK1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1770043191/image1327119418_normal.png" alt="Ben Hamner profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Ben Hamner
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @benhamner
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Excited to launch Kaggle Learn - interactive tutorials on machine learning, deep learning, R, and data visualization &lt;a href="https://t.co/vWITheLP7K"&gt;kaggle.com/learn&lt;/a&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      22:26 PM - 16 Jan 2018
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=953393146758537217" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=953393146758537217" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=953393146758537217" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;h3&gt;
  
  
  Zeroing in on deep learning
&lt;/h3&gt;

&lt;p&gt;Learn currently hosts tutorials about 4 topics - introductory machine learning, R programming, data visualisation and deep learning. I'd stumbled across machine learning for the first time in the form of neural networks (NN) more than 3 years back. Since then, I'd studied the theoretical details of NN at various points of time but somewhat ironically, I'd never got into practical deep learning except for a few tutorials. Hence, I decided to get started with the deep learning track.&lt;br&gt;
The reason I mentioned my past experience with ML and NN was to point out the fact that I was not a complete beginner when I had gotten started with this track and if you are, start with the machine learning track instead.&lt;/p&gt;
&lt;h3&gt;
  
  
  Getting started
&lt;/h3&gt;

&lt;p&gt;If you are unfamiliar with neural networks or haven't come across them recently, it would be a good idea to get some theoretical foundation before starting with hands-on tutorials. There are a number of introductory resources out there, both text and video. I used an excellent video by &lt;a href="https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw/about"&gt;3Blue1Brown&lt;/a&gt;, a YouTube channel, as a refresher.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Choice of framework
&lt;/h3&gt;

&lt;p&gt;The track uses the high-level &lt;a href="https://keras.io/"&gt;Keras&lt;/a&gt; API and a &lt;a href="http://tensorflow.org/"&gt;Tensorflow&lt;/a&gt; backend. Even with numerous frameworks out there, this combination seems to find favor as a beginner-friendly choice among a large portion of the deep learning community. Personally, I admire Keras for being well-designed, user-friendly and playing a big role in democratizing access to deep learning methods.&lt;/p&gt;

&lt;h3&gt;
  
  
  The track
&lt;/h3&gt;

&lt;p&gt;The deep learning track is currently comprised of six sections. They are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Intro to Deep Learning and Computer Vision&lt;/em&gt;: Starting off with a computer vision example is a great way to get acquainted with machine learning. This is the application which had put deep learning in the limelight and the data (images) is something most of us deal with on an everyday basis. The accompanying exercise allows you to play around with basic &lt;a href="https://en.wikipedia.org/wiki/Convolution"&gt;convolutions&lt;/a&gt; and images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Building Models from Convolutions&lt;/em&gt;: &lt;a href="https://en.wikipedia.org/wiki/Convolutional_neural_network"&gt;Convolutional neural networks&lt;/a&gt; (ConvNet) have received wide praise and coverage for being extremely successful with image recognition tasks. The basics of ConvNets are discussed and the stage is set up for their implementation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Programming in Tensorflow and Keras&lt;/em&gt;: You get to see TF+Keras in action for the first time and you'll be amazed at the ease with which you can get up and running. There's a lot of hand-holding here so getting the code to work alone won't be very useful. Try to understand the code, including helper functions, as much as possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related - &lt;a href="//www.fast.ai/2017/01/03/keras/"&gt;Big deep learning news: Tensorflow chooses Keras&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Transfer Learning&lt;/em&gt;: It was a great decision by &lt;a href="https://www.kaggle.com/dansbecker"&gt;Dan Becker&lt;/a&gt; to include this, and it is my favorite part of the tutorial. Prior to this, my perception of &lt;a href="https://en.wikipedia.org/wiki/Transfer_learning"&gt;transfer learning&lt;/a&gt; was as an advanced topic which would require a decent amount of know-how to even get started. I am delighted to tell you that that I couldn't have been more wrong. Even if all you know are the very basics of NN, the idea of transfer learning itself is fascinating and I've decided to spend some time in near future to research about the topic. Prior to starting this section, I'd gone through the following video by the one and only Andrew Ng.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;em&gt;Data Augmentation&lt;/em&gt;: Simply put, data augmentation is a handy technique which results in increased number of data points for your machine learning algorithm. This section discusses the technique as well as its implementation in Keras.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related - &lt;a href="https://cartesianfaith.com/2016/10/06/what-you-need-to-know-about-data-augmentation-for-machine-learning/"&gt;What you need to know about data augmentation for machine learning&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;A Deeper Understanding of Deep Learning&lt;/em&gt;: The code used in the previous sections, particularly the various parameters, are discussed in more detail. Also, stochastic gradient descent and backpropogation are briefly discussed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion and additional resources
&lt;/h3&gt;

&lt;p&gt;When learning a new topic, I've always found it best to start with a high-level overview. That's precisely what this track aims to offer and for most part, delivers. For a considerable amount of time, setting up deep learning frameworks used to be a roadblock to getting started with the topic. To that end, Kaggle leverages its platform's capabilities to host the code and while doing so, showcases its potential for being useful for collaboration. All that being said, this topic only scratches the surface, even if in a better manner than most tutorials out there. You can plan out your path from here on. If it helps, below are some of the resources I plan to dive into or explore over the next few weeks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="//neuralnetworksanddeeplearning.com"&gt;Neural networks and deep learning&lt;/a&gt; by Michael Nielsen (e-book)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.coursera.org/learn/neural-networks-deep-learning"&gt;Neural networks and deep learning&lt;/a&gt; by Andrew Ng and deeplearning.ai team (MOOC)&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://course.fast.ai/"&gt;Practical deep learning for coders&lt;/a&gt; by Jeremy Howard and fast.ai team (MOOC)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If there's any other useful resource you can think of, feel free to mention it in the comments below.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you read and liked the article, sharing it would be a good next step.&lt;br&gt;
Additionally, you can check out some of my open source projects on &lt;a href="https://github.com/analyticalmonk"&gt;Github&lt;/a&gt;.&lt;br&gt;
Drop me a &lt;a href="//mailto:akashtndn.acm@gmail.com"&gt;mail&lt;/a&gt;, or hit me up on &lt;a href="//akashtndn.acm@gmail.com"&gt;Twitter&lt;/a&gt; or &lt;a href="https://www.linkedin.com/in/akashtandon/"&gt;LinkedIn&lt;/a&gt; in case you want to get in touch.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This post was originally published on &lt;a href="https://techandmortals.wordpress.com/2018/01/27/kaggle-learn-review-there-is-a-deep-learning-track-and-it-is-worth-your-time/"&gt;Tech and Mortals&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>deeplearning</category>
      <category>keras</category>
      <category>tensorflow</category>
      <category>kaggle</category>
    </item>
    <item>
      <title>Open Source: The itch, the hustle and the merge</title>
      <dc:creator>Akash Tandon</dc:creator>
      <pubDate>Thu, 18 May 2017 10:49:48 +0000</pubDate>
      <link>https://dev.to/analyticalmonk/open-source-the-itch-the-hustle-and-the-merge</link>
      <guid>https://dev.to/analyticalmonk/open-source-the-itch-the-hustle-and-the-merge</guid>
      <description>

&lt;p&gt;&lt;em&gt;DISCLAIMER: Before you begin, be aware that the protagonist of any fictional account that this write-up might contain would be a male and would be referred to as a â€˜he’ or at times, simply as â€˜coder’. That’s not because the author is a sexist prick (hopefully) or a lazy writer; it’s so because the writer is a male, is identified by simpler minds as a â€˜coder’.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---gL26prP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://imgs.xkcd.com/comics/open_source.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---gL26prP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://imgs.xkcd.com/comics/open_source.png" alt="XKCD: Open Source"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://xkcd.com/225/"&gt;XKCD&lt;/a&gt;: Open Source&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;There are two things that might be useful to know before we really dive in: who’s the nut-job who wrote this and why did he do it?&lt;/p&gt;

&lt;p&gt;You can skip this part entirely if you want to. I won’t hate you for that. Or maybe I will. It doesn’t matter anyway, right?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VFmmcDSr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/i8amb7mdwx8h2e9851sj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VFmmcDSr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/i8amb7mdwx8h2e9851sj.png" alt="TWEET IMAGE"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Dev Philosophy&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In context of this post, he is someone who &lt;a href="http://github.com/analyticalmonk"&gt;likes to code&lt;/a&gt; and sporadically write &lt;a href="http://techandmortals.wordpress.com/"&gt;a blog&lt;/a&gt; or &lt;a href="https://believeinyou21.wordpress.com/"&gt;two&lt;/a&gt;. He believes that what he writes, code or letter, can make an impact. Who doesn’t?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why&lt;/strong&gt; he wrote this is more important. The immediate reason is that he recently &lt;a href="https://github.com/pandas-dev/pandas/pull/16047"&gt;contributed&lt;/a&gt; to &lt;a href="https://github.com/pandas-dev"&gt;an amazing library&lt;/a&gt;, felt pretty darn good about it and would like his peers to do the same more often.&lt;/p&gt;

&lt;p&gt;A deeper reason still is his belief in the philosophy of &lt;a href="https://en.wikipedia.org/wiki/Free_and_open-source_software"&gt;Free/Libre and Open Source Software (FLOSS)&lt;/a&gt;. There are different camps within this movement. You are free to either do your research and align yourself with one of them, or stay neutral. The deeper philosophical debate isn’t in this post’s scope.  &lt;/p&gt;

&lt;p&gt;Below are quotes by two dudes who are faces of this movement. They might not be on the same page at times but have done more for the world than most will ever know:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wx5D58M---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o2lf0bqz173qpchys82m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wx5D58M---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/o2lf0bqz173qpchys82m.jpg" alt="Stallman"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TW5QmZLr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/a09a0gx8duo52vqt44yp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TW5QmZLr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/a09a0gx8duo52vqt44yp.jpg" alt="Linus"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Linus likes to fuck around every now and then. No pun intended.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Contribution
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y3UDN5KW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vmevrqs1z1r5qmqtu0jv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y3UDN5KW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vmevrqs1z1r5qmqtu0jv.jpg" alt="PRESTIGE PIC"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Watch closely&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Every great Open Source contribution consists of three parts or acts. The first part is called “The Itch”. Perhaps there’s a bug which cropped up when the coder was working with a library, or maybe there’s some feature which the world needs but hasn’t been implemented yet. Better still, he just wants to â€˜contribute’.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The second act is called “The Hustle”. The coder pulls his socks up, puts on his hackathon t-shirt and dives into the source code and documentation. Now, he’s looking for the solution… but he won’t find it, not soon anyway, because of course he’s overwhelmed. Eventually he will write the required code, update the documentation and send a PR. The world will see his contribution now. Well, not yet. Because writing the code in your branch isn’t enough.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That’s why every contribution has a third act, the critical part, the part we call the “The Merge”.”&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Itch
&lt;/h2&gt;

&lt;p&gt;Reasons why the itch might crop up have been detailed in the previous section. It might appear after a week or month-long buildup. Then again, it can also hit you out of nowhere one sunny afternoon as you are crouched in your air-conditioned office trying to implement a shiny new feature for your company’s â€˜world-changing’ product or at midnight when you are working on a college assignment due next morning.&lt;/p&gt;

&lt;p&gt;It can hit you because you want to make an impact, or because someone told you that Open Source can help you land your dream job. Simpler reasons could be to attend conferences or a desire to get your Github tiles to turn green.  &lt;/p&gt;

&lt;p&gt;Whether you are a noble technologist or a simple prick, &lt;a href="http://stackoverflow.com/questions/2745076/what-are-the-differences-between-git-commit-and-git-push"&gt;commits and pushes&lt;/a&gt; don’t judge. &lt;a href="https://help.github.com/articles/about-pull-requests/"&gt;Pull requests&lt;/a&gt; might.  &lt;/p&gt;

&lt;p&gt;If you know the library you want to work with, what bug you want to fix and the new feature that you need, that’s great! Get the library’s source code and documentation on your local system. Maybe &lt;a href="https://help.github.com/articles/about-issues/"&gt;open an issue&lt;/a&gt;, &lt;a href="http://www.softwaretestinghelp.com/how-to-write-good-bug-report/"&gt;file a bug&lt;/a&gt; or feature request while you’re at it.  &lt;/p&gt;

&lt;p&gt;If you’re one of those who just want to â€˜contribute’ but don’t where to start, pat yourself on the back for taking the first step. In a nutshell, you will need to zero in on the source code (library/package) and what you want to do with/in it. Maybe you want to &lt;a href="https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Introduction"&gt;help the folks at Mozilla&lt;/a&gt; or maybe you want to contribute to the popular &lt;a href="https://github.com/tensorflow/tensorflow/blob/master/CONTRIBUTING.md"&gt;machine learning library by Google&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;These links will help you get started with scratching the itch:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.hackerearth.com/getstarted-opensource/"&gt;How to get started with OpenSource | HackerEarth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=""&gt;How do I start contributing in Open Source projects? | Quora&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.developer.com/open/how-to-start-contributing-to-open-source.html"&gt;How to start contributing to Open Source | Developer.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Author’s itch
&lt;/h4&gt;

&lt;p&gt;As for author’s most recent brush with Open Source, he wanted to contribute to &lt;a href="http://pandas.pydata.org/"&gt;Pandas&lt;/a&gt;, an amazing Python library for data analysis that he had been using for some time now.  &lt;/p&gt;

&lt;p&gt;He went to Panda’s GitHub repository, filtered &lt;a href="https://github.com/pandas-dev/pandas/issues?q=is%3Aopen+is%3Aissue+label%3A%22Difficulty+Novice%22"&gt;open issues with the tag â€˜difficulty novice’&lt;/a&gt; and found &lt;a href="https://github.com/pandas-dev/pandas/issues/15520"&gt;a bug&lt;/a&gt; which seemed interesting.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hustle
&lt;/h2&gt;

&lt;p&gt;You are done searching and deciding the higher-level details. You know which project to contribute to and what bug-to-solve/feature-to-implement.&lt;/p&gt;

&lt;p&gt;Buckle up because you’re just getting started. More often than not when working with an OS project, a large code-base or tons of documentation won’t be your first hurdle. Setting up the project or building it and running the tests can be a real pain though. Being on a UNIX-based system (Linux or Mac-OS) and being adept with the command line will come in extremely handy when doing this. Sorry Windows users, that’s just the way things are!  &lt;/p&gt;

&lt;p&gt;Most important tool you would ever use when developing Open Source software is &lt;a href="https://git-scm.com/"&gt;git&lt;/a&gt;, a tool for &lt;a href="https://en.wikipedia.org/wiki/Version_control"&gt;version control&lt;/a&gt;. Version control enables multiple developers, hundreds or thousands at times, to work together on the same code-base. If you haven’t already, &lt;a href="https://try.github.io/levels/1/challenges/1"&gt;learn git&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Since tests have already been mentioned, it’s essential that you know this: they are important! In fact, tests are one of the most important components of any decently-sized software project. Think of it this way. In absence of reliable tests, we could end up breaking old features whenever we make changes. The developers would keep fixing bugs which could have been easily avoided and will eventually give up altogether. Many popular OS projects use a &lt;a href="https://en.wikipedia.org/wiki/Test-driven_development"&gt;test-driven development (TDD)&lt;/a&gt; style and &lt;a href="https://www.thoughtworks.com/continuous-integration"&gt;Continuous Integration (CI)&lt;/a&gt;. Read up about CI and testing frameworks for your language of choice.  &lt;/p&gt;

&lt;p&gt;The drudge work has been done and the project has been set up on your machine. Ensure that you go through the project’s developer documentation (&lt;a href="http://docs.python-requests.org/en/master/dev/contributing/"&gt;example&lt;/a&gt;). Once that’s done, we are all set to start writing code!&lt;/p&gt;

&lt;p&gt;The coding can take time but it’s simple in principle. Write tests, if needed, and the required code.  &lt;/p&gt;

&lt;p&gt;At this point, the code has been written. It’s time to open a Pull Request and start working towards the third act.&lt;/p&gt;

&lt;h4&gt;
  
  
  Author’s Hustle
&lt;/h4&gt;

&lt;p&gt;After identifying the bug, he &lt;a href="https://help.github.com/articles/fork-a-repo/"&gt;forked&lt;/a&gt; the Pandas repo and &lt;a href="https://help.github.com/articles/cloning-a-repository/"&gt;cloned&lt;/a&gt; it on his local machine. He went through the &lt;a href="http://pandas.pydata.org/pandas-docs/stable/contributing.html"&gt;â€˜Contributing to pandas’&lt;/a&gt; docs which detailed how to work with the code-base, installed dependencies, &lt;a href="https://www.atlassian.com/git/tutorials/using-branches"&gt;created a new branch&lt;/a&gt;, wrote the required tests and code, pushed to his fork on Github, opened a Pull Request and waited for a maintainer to review his PR.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Merge
&lt;/h2&gt;

&lt;p&gt;At times, this will be a smooth ride. You would have done everything correctly and your PR will be merged without much fuss. Many a times, that won’t be the case; especially when you are starting out.  &lt;/p&gt;

&lt;p&gt;If the project uses CI, you will have to make sure that the required tests and checks pass. If the changes made by you aren’t up to the mark, you will be told by those reviewing the PR about what changes to make. This might happen multiple times but your hard work will pay off once the needful has been done and your PR will get approved.  &lt;/p&gt;

&lt;p&gt;This will be followed by the moment which you had been looking forward to all this while. Your contribution will get merged into the project. Hooray!&lt;/p&gt;

&lt;h4&gt;
  
  
  Author’s Merge
&lt;/h4&gt;

&lt;p&gt;Changes had to be made to his PR multiple times after being opened. Getting all the checks to pass took couple of iterations of the process described previously. Then he was asked by the maintainer to add a few more tests just to be safe since a tricky case was involved. After a week of opening the PR, it got approved, the changes got merged and the author slept peacefully that night.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ksaqebur--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/buhusnf3u7cxhv2g6lxc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ksaqebur--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/buhusnf3u7cxhv2g6lxc.png" alt="The Merge: initiation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Merge: Initiation&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6zg7nwoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pzl35u0kqc4pz69idn6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6zg7nwoP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/pzl35u0kqc4pz69idn6y.png" alt="The Merge: Conclusion"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Merge: Conculsion&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Epilogue
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;You might feel overwhelmed at this point and that’s all right. It’s a lot of information to process and Open Source might seem like a lot of work. But this is how great software gets built. Also, this is a great way to make an impact through your code and meet awesome people in the process. Hang on and you will have the time of your life, mate.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can follow my work on &lt;a href="https://github.com/analyticalmonk"&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you read and liked the article, sharing it would be a good next step.&lt;/p&gt;

&lt;p&gt;Drop me a &lt;a href="mailto:akashtndn.acm@gmail.com"&gt;mail&lt;/a&gt;, or hit me up on &lt;a href="https://twitter.com/AkashTandon"&gt;Twitter&lt;/a&gt; or &lt;a href="https://www.quora.com/profile/Akash-Tandon-1"&gt;Quora&lt;/a&gt; in case you want to get in touch.&lt;/p&gt;


</description>
      <category>opensource</category>
      <category>python</category>
      <category>github</category>
      <category>technology</category>
    </item>
  </channel>
</rss>
