<?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: Victor Inojosa</title>
    <description>The latest articles on DEV Community by Victor Inojosa (@vijoin).</description>
    <link>https://dev.to/vijoin</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%2F253971%2F0e901c2c-dd7d-46d2-b741-70ac5a82d761.jpeg</url>
      <title>DEV Community: Victor Inojosa</title>
      <link>https://dev.to/vijoin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vijoin"/>
    <language>en</language>
    <item>
      <title>Question: How do you differentiate a Junior from a Senior? </title>
      <dc:creator>Victor Inojosa</dc:creator>
      <pubDate>Sun, 23 Feb 2020 16:36:12 +0000</pubDate>
      <link>https://dev.to/vijoin/question-how-do-you-differentiate-a-junior-from-a-senior-59ce</link>
      <guid>https://dev.to/vijoin/question-how-do-you-differentiate-a-junior-from-a-senior-59ce</guid>
      <description>&lt;p&gt;Recently I joined a company and they cataloged me as Junior Advanced (almost a semi-senior).&lt;/p&gt;

&lt;p&gt;Although I know I'm not a senior, I feel like semi senior and I'd like to be re-cataloged soon. &lt;/p&gt;

&lt;p&gt;I know all these are non standardized levels and I want to make a presentation about how a Junior can become a Senior Developer. &lt;/p&gt;

&lt;p&gt;Can you give me ideas about this? &lt;br&gt;
I want to help others (and myself) to clarify this. &lt;/p&gt;

</description>
      <category>frontend</category>
      <category>backend</category>
      <category>python</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Use defaultdict() to handle missing keys in a dictionary</title>
      <dc:creator>Victor Inojosa</dc:creator>
      <pubDate>Mon, 02 Dec 2019 14:45:27 +0000</pubDate>
      <link>https://dev.to/vijoin/use-defaultdict-to-handle-missing-keys-in-a-dictionary-5g73</link>
      <guid>https://dev.to/vijoin/use-defaultdict-to-handle-missing-keys-in-a-dictionary-5g73</guid>
      <description>&lt;p&gt;Sometimes you have a bunch of data into a dictionary and you don't know for sure if all the keys will be in there.&lt;/p&gt;

&lt;p&gt;... and you'll be handling this with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'key1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'missing'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'key2'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'missing'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'key3'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'missing'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;data_dict&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'key4'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'missing'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code above, if any of those keys does not exist in the dictionary it will return a &lt;code&gt;missing&lt;/code&gt; string.&lt;/p&gt;

&lt;p&gt;A better approach for this could be the use of &lt;code&gt;collections.defaultdict()&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;collections&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;defaultdict&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Victor'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'lastname'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Inojosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'year'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1985&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;_get_default_error&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Oops! MISSING"&lt;/span&gt;

&lt;span class="c1"&gt;#data = (lambda: "MISSING", data)
&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;defaultdict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;_get_default_error&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"__main__"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'gender'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# Oops! MISSING
&lt;/span&gt;    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="c1"&gt;# Oops! MISSING
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;defaultdict&lt;/code&gt; requires a callable object (a method without invoke). As you can see you could also use an anonymous lambda function to return a simple string.&lt;/p&gt;

&lt;p&gt;I hope this could help you in your projects! Bye!&lt;/p&gt;

</description>
      <category>python</category>
      <category>backend</category>
      <category>programming</category>
      <category>data</category>
    </item>
  </channel>
</rss>
