<?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>Forem: Pandu Rijal Pasa</title>
    <description>The latest articles on Forem by Pandu Rijal Pasa (@pandurijal).</description>
    <link>https://forem.com/pandurijal</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%2F452961%2Ff120d18e-8d0e-494f-8cf8-a50df7e50a77.png</url>
      <title>Forem: Pandu Rijal Pasa</title>
      <link>https://forem.com/pandurijal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pandurijal"/>
    <language>en</language>
    <item>
      <title>Debugging Tips for A Complete Beginner</title>
      <dc:creator>Pandu Rijal Pasa</dc:creator>
      <pubDate>Sun, 03 Jan 2021 14:47:41 +0000</pubDate>
      <link>https://forem.com/pandurijal/debugging-tips-for-a-complete-beginner-4pld</link>
      <guid>https://forem.com/pandurijal/debugging-tips-for-a-complete-beginner-4pld</guid>
      <description>&lt;p&gt;Debugging is hard; especially for those who are just getting into code. Often this leads these people to wave the white flag in the early stages of their programming life. So here I have brought you some tips which can help you get rid of bugs in your program:&lt;/p&gt;

&lt;h2&gt;
  
  
  Clarify everything
&lt;/h2&gt;

&lt;p&gt;Before doing anything, try to ask: &lt;code&gt;what do I expect to run?&lt;/code&gt; Then, ask the following question: &lt;code&gt;what happened instead?&lt;/code&gt;. Ideally, this should be documented, in detail. To begin solving the problem, the first thing you have to know is why is this becomes one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproducing the bugs
&lt;/h2&gt;

&lt;p&gt;We should be able to track the bugs on our code, hence we need to reproduce them in our dev environment. Keep in mind that ‘aiming in the dark’ is not the best approach to solve the issue. It might solve the issue, but also might make the problem bigger. So, reproduce!&lt;/p&gt;

&lt;h2&gt;
  
  
  Read &amp;amp; Google error message
&lt;/h2&gt;

&lt;p&gt;Whenever you face any error, read carefully what the compiler tries to tell you. Often this error message comes with file location and even the line number of the error that happened. Jump into that line! This is a great clue before you start to fix the bugs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Print out every step
&lt;/h2&gt;

&lt;p&gt;You have to be sure that every line of your code is working well. I mean, every single line. If you are not so sure about one or two, giving them print out (e.g console log) of a random string on every step is not a bad approach. As long as don’t forget to delete it once the problem is gone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try and try
&lt;/h2&gt;

&lt;p&gt;The substance of the debugging process is to identify the problems and solve those issues. Some of them would be harder than you have ever imagined. Keep trying and do code-run-repeat until it solved and you will learn a lot from this process.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>programming</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Difference Between null And undefined In Javascript (with Notes)</title>
      <dc:creator>Pandu Rijal Pasa</dc:creator>
      <pubDate>Sat, 19 Sep 2020 07:36:19 +0000</pubDate>
      <link>https://forem.com/pandurijal/difference-between-null-and-undefined-in-javascript-with-notes-3o34</link>
      <guid>https://forem.com/pandurijal/difference-between-null-and-undefined-in-javascript-with-notes-3o34</guid>
      <description>&lt;p&gt;You might be thinking that &lt;code&gt;null&lt;/code&gt; &amp;amp; &lt;code&gt;undefined&lt;/code&gt; is the same. You have to know that, spoiler alert, they are not. What I mean by this is: yes both have many similarities, but deep down it's totally different.&lt;/p&gt;

&lt;p&gt;It's confusing, I know. But you need to know these basic things. So let's jump!&lt;/p&gt;

&lt;h3&gt;
  
  
  Similarity
&lt;/h3&gt;

&lt;p&gt;Both of them usually called &lt;em&gt;nullish value&lt;/em&gt;: have either &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt; value. These also listed as &lt;code&gt;falsy values&lt;/code&gt;, which are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;null&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;0&lt;/code&gt; (zero) —(also for &lt;code&gt;-0&lt;/code&gt; and &lt;code&gt;0n&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;“”&lt;/code&gt; (empty string)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;NaN&lt;/code&gt; (Not a  Number)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Falsy values itself means that the value will be generated as &lt;em&gt;false&lt;/em&gt; on the boolean approach. &lt;/p&gt;

&lt;h3&gt;
  
  
  Difference
&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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuq73osi7sqq8za8rbaw1.jpg" 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%2Fi%2Fuq73osi7sqq8za8rbaw1.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the definition, &lt;code&gt;null&lt;/code&gt; is an intentional absence of a value. While &lt;code&gt;undefined&lt;/code&gt; is a default value for a variable with no value assigned.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bowl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//null&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;bowl&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;//undefined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As mentioned above, both are &lt;em&gt;falsy values&lt;/em&gt;. Even so, it works this way:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kc"&gt;null&lt;/span&gt;  &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;
&lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Why? Because when it comes to type, it's totally different. Javascript defines &lt;code&gt;null&lt;/code&gt; as an empty object, hence if you do &lt;code&gt;typeof null&lt;/code&gt; it will show &lt;code&gt;"object"&lt;/code&gt;. While &lt;code&gt;undefined&lt;/code&gt; is a primitive value. The type of &lt;code&gt;undefined&lt;/code&gt; will be &lt;code&gt;"undefined"&lt;/code&gt; itself.&lt;/p&gt;

&lt;p&gt;If we try to make equalization on a number format, &lt;code&gt;null&lt;/code&gt; will be identified as a 0 (zero), while &lt;code&gt;undefined&lt;/code&gt; will not be recognized as any number (&lt;code&gt;NaN&lt;/code&gt;). Like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;addNum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt; &lt;span class="c1"&gt;// 8&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;addNum&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt; &lt;span class="c1"&gt;// NaN&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Both &lt;code&gt;undefined&lt;/code&gt; and &lt;code&gt;null&lt;/code&gt; have the same value, the same &lt;em&gt;nullish&lt;/em&gt; and &lt;em&gt;falsy&lt;/em&gt;, but each has a different type. Hence use in its own place.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
    <item>
      <title>5 Programming Skills That Never Get Outdated</title>
      <dc:creator>Pandu Rijal Pasa</dc:creator>
      <pubDate>Mon, 07 Sep 2020 17:13:53 +0000</pubDate>
      <link>https://forem.com/pandurijal/5-programming-skills-that-never-get-outdated-44h6</link>
      <guid>https://forem.com/pandurijal/5-programming-skills-that-never-get-outdated-44h6</guid>
      <description>&lt;p&gt;Technology will always move forward. No matter what stack or technique you are using at the moment will probably be replaced with another one soon. Therefore we must not stop learning, especially the special skills below that will never be outdated to be used as a software engineer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Math &amp;amp; Logic
&lt;/h3&gt;

&lt;p&gt;It's true that you don't really have to be good at math to survive in the world of programming, but at the lowest level, we'll always need math, at least in the logic part. Besides, we know that sometimes we just can't avoid using combinations, recursions, permutations, etc. So it never goes out of style.&lt;/p&gt;

&lt;h3&gt;
  
  
  Algorithms
&lt;/h3&gt;

&lt;p&gt;Creating step-by-step procedures for desired goals and then executing it is an essential skill for fellow developers. Over time, you will face various cases that must be resolved. Therefore, continuing to practice algorithmic skills will go a long way toward solving more complex things.&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem Solving
&lt;/h3&gt;

&lt;p&gt;The key to a programmer's job is to solve problems. You shouldn't raise other issues, such as bugs, when solving one. So the expertise to find the most efficient way of dealing with problems has always been a very important skill in this subject.&lt;/p&gt;

&lt;h3&gt;
  
  
  Debugging
&lt;/h3&gt;

&lt;p&gt;It's hard to have zero bugs when developing software, this makes debugging is important. Ability to locate the bugs, reproduce it in development-mode, and find a solution to handle the bugs will always be needed, regardless of the tech stack that you currently use.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn New Language
&lt;/h3&gt;

&lt;p&gt;Even though there are many programming languages ​​around, the concept will always be the same: as a tool of communication. Therefore, the ability to learn a new language is an important skill that must be possessed. With this, you can switch to any programming language easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You can use any stack or language to code, but don't forget to remember to practice and improve the skills above. This will help you regardless of the technology you are currently using.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Understanding CSS Initial, Inherit &amp; Unset</title>
      <dc:creator>Pandu Rijal Pasa</dc:creator>
      <pubDate>Sun, 06 Sep 2020 05:01:20 +0000</pubDate>
      <link>https://forem.com/pandurijal/understanding-css-initial-inherit-unset-3j58</link>
      <guid>https://forem.com/pandurijal/understanding-css-initial-inherit-unset-3j58</guid>
      <description>&lt;p&gt;As we write a lot and lots of CSS code, we know that sometimes our styling will going to something weird. So it’s important to know the CSS basic values. In this article, you will read three of them: initial, inherit and unset.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS &lt;code&gt;initial&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Every property in CSS has its own initial values. These initial values represent the default value of a specified property, as defined by &lt;a href="https://www.w3.org/TR/CSS"&gt;The Official CSS Working Group&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Note that HTML doesn’t have an initial style, so they use User Agent Stylesheet from the browser as a basic styling. This User Agent Stylesheet overrides the initial value of some properties based on the HTML tag hence there will be a slight difference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0d1LaWDT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o50c0xkd37env2wegyqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0d1LaWDT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/o50c0xkd37env2wegyqt.png" alt="Basic Styling of tag H3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, the initial value of &lt;code&gt;display: inline&lt;/code&gt;. But in the UserAgent Stylesheet above on the H3 tag, declared &lt;code&gt;display: block&lt;/code&gt;. We can reset this value by using &lt;code&gt;display: initial&lt;/code&gt; and the value will be back to inline.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS inherit
&lt;/h3&gt;

&lt;p&gt;The value inherit let the browser to look for the closest parent and pass the right value for the current property. This value could be implemented to all CSS properties, but there are some properties in CSS that uses inherited value as a default (e.g. &lt;em&gt;color&lt;/em&gt;) hence for this kind of property you don’t have to write explicitly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vUFnub_D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tr42c5ln9v692xu7zsqi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vUFnub_D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/tr42c5ln9v692xu7zsqi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it couldn’t find any value from the parent element to the top, it will use the initial value. This will be implemented in all kinds of elements.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS unset
&lt;/h3&gt;

&lt;p&gt;CSS unset is the combination between initial and inherit, depending on its type of property. The property who declared as an inherited property will be made unset act as an inherit. For anything else, the unset will act as an initial.&lt;/p&gt;

&lt;p&gt;As written above, to determine whether the element is initial or inherit, you can check on &lt;a href="https://www.w3.org/TR/CSS"&gt;The Official CSS Working Group&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Well, it's pretty basic but not many developers using this. Understanding this concept could help you know how every single element works and determine which way better to manipulate it.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>css</category>
      <category>webdev</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
