<?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: Sahil Dua</title>
    <description>The latest articles on DEV Community by Sahil Dua (@sahildua2305).</description>
    <link>https://dev.to/sahildua2305</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%2F11731%2FiNsoyF57.jpg</url>
      <title>DEV Community: Sahil Dua</title>
      <link>https://dev.to/sahildua2305</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sahildua2305"/>
    <language>en</language>
    <item>
      <title>How to make sure you learn something newÂ every day</title>
      <dc:creator>Sahil Dua</dc:creator>
      <pubDate>Thu, 21 Sep 2017 20:23:47 +0000</pubDate>
      <link>https://dev.to/sahildua2305/how-to-make-sure-you-learn-something-newevery-day</link>
      <guid>https://dev.to/sahildua2305/how-to-make-sure-you-learn-something-newevery-day</guid>
      <description>

&lt;p&gt;Let me start this post with a confession –&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;&lt;i&gt;There are a lot of things that I don’tÂ know.&lt;/i&gt;&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everyday while working with experienced developers, I realize that there are a lot of things that I don’t know. So how do I make sure I learn something new everyday?&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;&lt;i&gt;Ask as many questions as possible!&lt;/i&gt;&lt;/h3&gt;
&lt;/blockquote&gt;




&lt;p&gt;Here’s why I ask a lot of questions –&lt;/p&gt;

&lt;h4&gt;Opportunity to learn something new&lt;/h4&gt;

&lt;p&gt;Every time you ask a question, you learn something new. The only downside of asking someone a question is that the other person will know that you didn’t know something. Learning something each day, improving on your skills is much more important than caring about what others might think of you.&lt;/p&gt;

&lt;h4&gt;Every pro was once anÂ amateur&lt;/h4&gt;

&lt;p&gt;Every expert was once a beginner. Anyone who you think is an expert in some area started as a beginner. They know how it feels to not know something. They came to know about a lot of things by being curious and asking questions. So they will empathize with you and help you as much as they can if you are asking some questions for clarification or explanation.&lt;/p&gt;

&lt;h4&gt;No one has time to judgeÂ you&lt;/h4&gt;

&lt;p&gt;One thing that sometimes comes to my mind before asking questions from others is that they may think I’m stupid. However, I learned this with time that no one has time to judge you for asking trivial questions. Even if your question was framed badly, you will learn how to frame questions better in future.&lt;/p&gt;

&lt;h4&gt;There are no stupid questions&lt;/h4&gt;

&lt;p&gt;There is no such thing as a stupid question. In fact, the smartest thing you can do is ask the most basic question you can think of. I have been surprised at many occasions when someone appreciated a question I asked which I thought was a very basic one.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;&lt;i&gt;The only stupid question is the one you don’tÂ ask.&lt;/i&gt;&lt;/h3&gt;
&lt;/blockquote&gt;




&lt;p&gt;Even though it’s perfectly fine to ask as many questions as possible, there are some ways to ask questions efficiently –&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;b&gt;Do prior research before asking a question.&lt;/b&gt; There are some questions to which you can easily find an answer by searching on internet.&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;Provide proper context for your question.&lt;/b&gt; When you ask a question, make sure you provide enough context for the other person to be able to provide you with a good answer to your question.&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;b&gt;&lt;i&gt;Can you think of a time when you were too afraid to ask a question? Did that lack of knowledge ever come back to haunt you? How foolish was that?&lt;/i&gt;&lt;/b&gt; No, that’s not a rhetorical question, I want you to consider how foolish it was to not have asked the question in the first place.&lt;/p&gt;

&lt;p&gt;Let me finish this post by saying –&lt;/p&gt;

&lt;blockquote&gt;
&lt;h3&gt;&lt;i&gt;I will ask as many questions as possible in order to make sure I know more things than I knew yesterday.&lt;/i&gt;&lt;/h3&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can find me on Twitterâ€Š–â€Š&lt;a href="https://twitter.com/sahildua2305"&gt;@sahildua2305&lt;/a&gt;. Feel free to share your views about this post.&lt;/p&gt;


</description>
      <category>programming</category>
      <category>development</category>
      <category>personaldevelopment</category>
      <category>careeradvice</category>
    </item>
    <item>
      <title>Unconventional way of learning a new programming language</title>
      <dc:creator>Sahil Dua</dc:creator>
      <pubDate>Sat, 18 Mar 2017 00:32:00 +0000</pubDate>
      <link>https://dev.to/sahildua2305/unconventional-way-of-learning-a-new-programming-language</link>
      <guid>https://dev.to/sahildua2305/unconventional-way-of-learning-a-new-programming-language</guid>
      <description>&lt;p&gt;&lt;em&gt;Note: This article was originally published on &lt;a href="https://hackernoon.com/unconventional-way-of-learning-a-new-programming-language-e4d1f600342c#.1swafwx63" rel="noopener noreferrer"&gt;Hackernoon&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are more than 500 programming languages. Hence, it's pretty normal for you to start learning a new programming language today. It's possible that you know &lt;strong&gt;C++&lt;/strong&gt; and &lt;strong&gt;Java&lt;/strong&gt; but your work requires &lt;strong&gt;Python&lt;/strong&gt; or you are well versed in &lt;strong&gt;Python&lt;/strong&gt; and you need to code in &lt;strong&gt;Java&lt;/strong&gt; at work. Or maybe you want to learn that cool language just to expand your expertise.&lt;/p&gt;

&lt;p&gt;What are your options if you want to learn a new programming language?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn from some online tutorial or&lt;/li&gt;
&lt;li&gt;Learn from some online (MOOC) course&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of you may even argue that the best way of learning a new language is actually as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learn syntax of the new programming language and&lt;/li&gt;
&lt;li&gt;Build some personal project using that language&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fair enough! This makes sure that you apply the knowledge you gain from learning the syntax of the language you want to learn.&lt;/p&gt;

&lt;p&gt;I have developed more than 20 mini projects while learning different languages. Trust me, when you write code for your personal project which may be a weekend project or an overnight quick hack, you write code to get something done. All you care about isâ€Š–â€Š“Does my code work?”. You hardly care about the quality of the code.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”&lt;br&gt;
–â€Š(Martin Fowler)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So, how do you learn good practices of the new programming language that you are trying to learn?&lt;/p&gt;

&lt;h2&gt;
  
  
  Contribute to an open source project in that language.
&lt;/h2&gt;

&lt;p&gt;Surprised? Some of you may be thinkingâ€Š–â€Š“But wait, open source is hard. We can contribute to an open source project only if we are expert in that language, right?”. The answer is No.&lt;/p&gt;

&lt;p&gt;Let me tell you a story.&lt;/p&gt;

&lt;p&gt;Last year, I got an offer for full-time job from Booking.com and I knew that I'd be working on Perl (which is their primary language for backend). In June 2016, when I got done with my college degree, I started learning Perl so as to prepare myself for my first job after college. Since I was to join in second week of the July, I had roughly one month.&lt;/p&gt;

&lt;p&gt;I started reading about syntax of Perl and started understanding some of the common patterns of the language. Now, I really wanted to build something using Perl so that I could apply my knowledge of the language and practice various concepts of the language. While I was looking for ideas to build something in Perl, I came across DuckDuckGo's open source organization on GitHub. I noticed that some of the open projects were written in Perl. I had a look at the issues and found a lot of “beginner” issues. I immediately started working on them and submitted a couple of pull requests. Fast forward to today, I am one of the main contributors for a couple of their open projects and also one of the 20 Open Source Community Leaders for DuckDuckGo.&lt;/p&gt;

&lt;h2&gt;
  
  
  So why did it work?
&lt;/h2&gt;

&lt;p&gt;Right after I learnt the syntax of Perl, I started contributing to open source projects. While doing so, I always used to look at the existing modules. I used to notice the patterns being used in Perl. Hence, I started picking up those good practices in my own code and it helped me in learning how to write good code in Perl.&lt;/p&gt;

&lt;p&gt;That wasn't just a coincidence; let me tell you another story to derive more correlation.&lt;/p&gt;

&lt;p&gt;Recently, while working at Booking.com, I picked up some task which included working (adding a new feature) on one of the services written in Go language. This was the conversation I had with my teammate –&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;Me:&lt;/strong&gt; I really like this task. I want to work on it. What do you think about it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Him:&lt;/strong&gt; Yes, it's indeed an interesting one. However, it requires knowledge of Go. Do you know Go?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Me:&lt;/strong&gt; No.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Him:&lt;/strong&gt; Do you want to learn Go?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Me:&lt;/strong&gt; Yes!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Him:&lt;/strong&gt; *smiles* There you go!&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So there I wasâ€Š–â€Šat the verge of learning another programming languageâ€Š–â€ŠGo!&lt;/p&gt;

&lt;p&gt;I started reading about the syntax of Go and found an awesome beginners language tour on their official website. It was good enough to get me acquainted with all the basic concepts of the language.&lt;/p&gt;

&lt;p&gt;Once again, I started looking for open source projects in Go which had some “beginner” or “easy-fix” issues. I found a project by Google which is basically a Go wrapper for GitHub's REST API.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;I had my first PR on that project 2 days after I started learning Go.&lt;/strong&gt;&lt;/em&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2ATsCbnT-eiymTGR5WDQccrA.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2ATsCbnT-eiymTGR5WDQccrA.png" alt="My contribution graph for last 1 year (https://github.com/sahildua2305)"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How Does Open Source Help?
&lt;/h2&gt;

&lt;p&gt;So now you may be wondering about how open source contributions can help you in learning good practices of a language. There are various aspects of it. Let's discuss them one by one.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Quality
&lt;/h3&gt;

&lt;p&gt;Most of the good open source projects have strict coding guidelines which you have to adhere to in order to get your code merged. This will help you in adapting those guidelines and hence writing good quality code even though you are just learning the language.&lt;/p&gt;

&lt;p&gt;Not just that, you have a chance to look at the rest of the code and see how well it's written and/or documented.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Reviews
&lt;/h3&gt;

&lt;p&gt;The best part about open source contributions is code reviewing. When you push your code, you get feedback from the experts associated with that project and hence it gives you a chance to improve your understanding of a language.&lt;/p&gt;

&lt;p&gt;This is like getting a free-of-cost personal guidance about how to write good code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Appreciation
&lt;/h3&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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A3qrExiprhpgmLRSfqzW6Yw.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%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A3qrExiprhpgmLRSfqzW6Yw.png" alt="First comment on my first PR in Go Lang (https://github.com/google/go-github/pull/497)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We, as software developers, really need appreciation for our work; and open source community makes sure you have enough of that. In my whole experience with open source contributions, I have never received even a single comment which was insulting or demotivating. Everyone is super encouraging and helpful.&lt;/p&gt;




&lt;p&gt;So next time you want to learn a new language, go ahead and take the plunge! Find an open source project to contribute to and march ahead on the path to learning that language and its nuances ;)&lt;/p&gt;

&lt;p&gt;Do let me know how this unconventional way works for you. Also, please recommend (â¤) this post if you think this may be useful for someone.&lt;/p&gt;

&lt;p&gt;Feel free to share any other way that worked for you really well. Tweet/follow me &lt;a href="https://twitter.com/sahildua2305" rel="noopener noreferrer"&gt;@sahildua2305&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>github</category>
      <category>coding</category>
    </item>
    <item>
      <title>Hello, I'm Sahil</title>
      <dc:creator>Sahil Dua</dc:creator>
      <pubDate>Fri, 17 Mar 2017 00:42:38 +0000</pubDate>
      <link>https://dev.to/sahildua2305/hi-im-sahil-dua</link>
      <guid>https://dev.to/sahildua2305/hi-im-sahil-dua</guid>
      <description>&lt;p&gt;I have been coding for 5 years.&lt;/p&gt;

&lt;p&gt;You can find me on GitHub  as &lt;a href="https://GitHub.com/sahildua2305" rel="noopener noreferrer"&gt;@sahildua2305&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I live in Amsterdam.&lt;/p&gt;

&lt;p&gt;I work for Booking.com.&lt;/p&gt;

&lt;p&gt;I mostly program in these languages: Python, Go, C++ and JavaScript.&lt;/p&gt;

&lt;p&gt;I am currently learning more about distributed systems.&lt;/p&gt;

&lt;p&gt;Nice to meet you.&lt;/p&gt;

</description>
      <category>introduction</category>
      <category>sahildua</category>
      <category>sahildua2305</category>
    </item>
  </channel>
</rss>
