<?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: Hrishikesh Suslade</title>
    <description>The latest articles on DEV Community by Hrishikesh Suslade (@hrishi84).</description>
    <link>https://dev.to/hrishi84</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%2F391933%2Fc9b84096-5372-4aeb-94b6-3a0182ed5538.jpg</url>
      <title>DEV Community: Hrishikesh Suslade</title>
      <link>https://dev.to/hrishi84</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hrishi84"/>
    <language>en</language>
    <item>
      <title>5 Skills a New Software Developer must have!</title>
      <dc:creator>Hrishikesh Suslade</dc:creator>
      <pubDate>Wed, 03 Jun 2020 14:15:45 +0000</pubDate>
      <link>https://dev.to/hrishi84/5-skills-a-new-software-developer-must-have-7n8</link>
      <guid>https://dev.to/hrishi84/5-skills-a-new-software-developer-must-have-7n8</guid>
      <description>&lt;h2&gt;
  
  
  A list of 5 important skills that you should have in your skillset if you are joining as a new Software Developer
&lt;/h2&gt;

&lt;p&gt;The month of June-July and August is the season of college graduates starting their new jobs. A new job is full of challenges. Adapting to a new environment is a big task, you have to interact with new people, new technologies, and what not! But, there some skills that are pretty common irrespective of which software company you join in. Having a good command over these skills will surely help you in adapting to this new environment!&lt;/p&gt;

&lt;p&gt;I will be sharing why you need to know these skills, how will they help you, and from where you can master them.&lt;/p&gt;

&lt;p&gt;Checkout the complete blog on &lt;a href="https://medium.com/@HrishikeshSuslade/5-things-a-new-software-developer-should-know-e1d0a83b3e57"&gt;Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>java</category>
      <category>oop</category>
    </item>
    <item>
      <title>Why I love HashMaps!!!</title>
      <dc:creator>Hrishikesh Suslade</dc:creator>
      <pubDate>Sun, 24 May 2020 16:09:03 +0000</pubDate>
      <link>https://dev.to/hrishi84/why-i-love-hashmaps-4n2l</link>
      <guid>https://dev.to/hrishi84/why-i-love-hashmaps-4n2l</guid>
      <description>&lt;h1&gt;
  
  
  The data structure, which is just a simple combination of key-value pairs, can be your key to solving majority coding questions!
&lt;/h1&gt;

&lt;p&gt;I recently started with May Leetcode Challenge, and so far almost all the questions that I solved were solved using maps! And that's not it, maps can help you a lot in many tricky situations, especially during coding interviews.&lt;br&gt;
When you are clueless about what to do? just give maps a try it is very likely that you will end up getting a solution. It won't be perfect, it won't be the most memory or time-efficient solution but, you'll get an answer.&lt;br&gt;
This can be the point between getting an offer and not getting an offer!&lt;/p&gt;



&lt;p&gt;During my preparation for Amazon Interview, I went through hundreds of interview experience, I did the same during my Google Interview also!&lt;br&gt;
And a whooping, 60%-70% of the questions could be solved using some implementation of maps.&lt;br&gt;
Not only this, but many senior developers, interviewers, and my friends also have suggested Maps as the goto solution when you don't have anywhere to go!&lt;br&gt;
Some reasons why I feel Maps can be really helpful are:&lt;br&gt;
You can access data in O(1) time complexity&lt;br&gt;
Generally, in Tech Interviews there is more focus on minimizing time complexity compared to space. The map is the perfect candidate for this!&lt;br&gt;
Ease of accessing data, as a key can be literally anything!&lt;/p&gt;


&lt;h1&gt;
  
  
  What is a Map? Understanding it logically
&lt;/h1&gt;

&lt;p&gt;A Map is a data structure in which we can store data in a format of key-value pairs.&lt;br&gt;
To understand it more effectively let's take an example of a hypothetical world. In this imaginary world, every person is associated with a Unique Identification number.&lt;/p&gt;

&lt;p&gt;The organization that runs this hypothetical world is very insecure and tracks every person with a GPS, by using the Unique ID (sorry this world doesn't have any concerns about your privacy).&lt;br&gt;
So whenever they need to find any person, they just use the unique ID of that person and boom! They know where he/she is.&lt;br&gt;
As this ID is unique for every person they can find any person within seconds and minimum efforts.&lt;/p&gt;


&lt;h1&gt;
  
  
  How does it work?
&lt;/h1&gt;

&lt;p&gt;Map stores all the entries in a key-value format in table&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| KEY      |  VALUE   |
-----------------------
| 1        | A        |
-----------------------
| 2        | B        |
-----------------------
| 456      | PQO      |
-----------------------
| 789      | A        |
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Some rules that you must remember&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A key can not be repeated again (It must be unique)&lt;/li&gt;
&lt;li&gt;A value can be repeated many times&lt;/li&gt;
&lt;li&gt;The data type of key must be consistent. For a particular map, all the keys should be either an INT or STRING, etc. (Python Dictionary can have multiple Datatypes as key values, but it is not suggested that you do that)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is the structure of a map. Whenever a new entry comes it is appended to the table. If the key is already present you can modify the current value.&lt;br&gt;
But, I guess you can do all this with normal arrays and vectors also. Then why do you need a map for this?&lt;br&gt;
Let me ask you some questions.&lt;/p&gt;

&lt;p&gt;Does array or vectors have the has_key or find or findKey method?&lt;br&gt;
Can you access the values with an index which is a string, char, object, or struct?&lt;/p&gt;

&lt;p&gt;NO! you can not do all this with simple arrays or vectors!&lt;br&gt;
In arrays and vectors data is stored serially so the index range from 0 to n. But, in a map, we define the index so we can access the index in O(1). And the map provides us with a function that can tell us whether a particular exists or not!&lt;br&gt;
This is the biggest USP of Maps!&lt;/p&gt;


&lt;h1&gt;
  
  
  How to use it?
&lt;/h1&gt;

&lt;p&gt;I'll tell you some basic and important functions related to maps in the C++ language. The key logic behind these functions remains the same only their name and usage changes, so don't worry if your favorite language is JAVA or Python. I'm sure you'll figure it out by using the documentations.&lt;br&gt;
Photo by Kevin Ku on UnsplashLibraries required&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#include &amp;lt;bits/stdc++.h&amp;gt;       //STL library (SUGGESTED)
OR
#include &amp;lt;map&amp;gt;                //Only Map will be included
OR
#include &amp;lt;unordered_map&amp;gt;     //Only Unordered Map will be included
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Defining a Map
The unordered map also follow a similar process
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;map&amp;lt;int, string&amp;gt; peopleTracker;   
/*
key: int
value: string:
name of map: peopleTracker
*/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Inserting data elements
Inserting Data is very similar to inserting data in an array or vector
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;peopleTracker[234] = "Mr John Doe";
/*
key: 234 and value:"Mr John Doe"
*/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Key Collisions
Here comes the tricky part, what is the entry already exits? Don't worry you'll simply override the previous Data
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;peopleTracker[234] = "Mr Dane John";
/*
value changed from "Mr John Doe" -&amp;gt; "Me Dane John"
*/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now you want to check if there is an entry for some value or not. Here comes the find method!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if(peopleTracker.find(234) != peopleTracker.end())
    cout &amp;lt;&amp;lt; "Entry for 234 exits" &amp;lt;&amp;lt; endl;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;mapName.find method will return a pointer to the end of the map if there is no entry with matching key, else it will point to the entry with the corresponding key!&lt;br&gt;
To learn more about maps and hash-table refer to this cheatsheet which was suggested by Trey Huffine.&lt;/p&gt;




&lt;p&gt;Now enough of knowledge, its time to practice!&lt;br&gt;
Try to solve these seven problems on Leetcode.&lt;br&gt;
Not all problems can be solved using a map, but figuring out where to use the map is also a skill! So go give your brains some exercise and try to solve these questions!&lt;br&gt;
I hope you'll understand where and how you can use maps and hash tables. With consistent practice, you'll be able to master this data structure.&lt;/p&gt;




&lt;p&gt;Once again thank you for reading!&lt;br&gt;
Happy Coding :)&lt;/p&gt;

&lt;p&gt;Originally published on Medium.com&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>computerscience</category>
      <category>tutorial</category>
      <category>python</category>
    </item>
    <item>
      <title>An accidental side hustle!</title>
      <dc:creator>Hrishikesh Suslade</dc:creator>
      <pubDate>Thu, 21 May 2020 12:58:22 +0000</pubDate>
      <link>https://dev.to/hrishi84/an-accidental-side-hustle-33lo</link>
      <guid>https://dev.to/hrishi84/an-accidental-side-hustle-33lo</guid>
      <description>&lt;h1&gt;
  
  
  How one of my python projects is becoming a silent side hustle for me!
&lt;/h1&gt;

&lt;p&gt;About two years ago I had a humongous task in front of me sending certificates to over 10k+ participants digitally. This was never done before, earlier my college use to give physical certificates, but due to financial constraints that year we decided to go digital!&lt;/p&gt;

&lt;p&gt;I sat with one of my seniors and discussed this problem, and we thought why not create a python script that will do this for us?&lt;br&gt;
And within minutes we created a script that can simply write text on an image, by this, we automated the task of writing&lt;br&gt;
Next thing we did was create a whole bunch of certificates by using CSV file as an import&lt;br&gt;
We were making 100+ certificates in a minute!!!&lt;/p&gt;

&lt;p&gt;Everyone from my team and college was happy we had solved a great thing!&lt;br&gt;
But, I thought of going one step ahead!&lt;br&gt;
Why not send the certificates directly? Why not mail them directly?&lt;br&gt;
Earlier we were planning to send all those certificates manually!! A very tedious process :(&lt;/p&gt;

&lt;p&gt;Another couple of days and we were able to send mails using SMTP.&lt;br&gt;
Now we are creating 100+ certificates and at the same time sending them to their recipients &lt;/p&gt;

&lt;p&gt;It was pretty impressive 10k+ certificates from created, sent, and delivered within an hour!&lt;/p&gt;

&lt;p&gt;The project was widely appreciated in my college and over 1 year we sent over 50,000+ certificates!&lt;/p&gt;

&lt;p&gt;I was also paid sometimes for it!&lt;/p&gt;

&lt;p&gt;But, again I thought of going one step ahead!&lt;br&gt;
Why not store these certificates on a blockchain? This will also make the certificates verifiable!&lt;/p&gt;

&lt;p&gt;And yes now we have started working on it! We are creating a website where you can create, generate, send, and verify certificates. Everything in one place!&lt;/p&gt;

&lt;p&gt;Even though we haven't gone public yet there are many parties and groups who are willing to use our product!&lt;/p&gt;

&lt;p&gt;By keeping bare minimum fees we can generate good revenue and also reduce a significant amount of carbon footprint caused by using Paper-based certificates!&lt;/p&gt;

&lt;p&gt;We hope to release this product within the next 2-3 months!&lt;/p&gt;

</description>
      <category>python</category>
      <category>blockchain</category>
    </item>
  </channel>
</rss>
