<?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: Eugene Vedensky</title>
    <description>The latest articles on DEV Community by Eugene Vedensky (@ggenya132).</description>
    <link>https://dev.to/ggenya132</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%2F127685%2F622517fb-9008-414c-9166-71c4763b6a21.jpg</url>
      <title>DEV Community: Eugene Vedensky</title>
      <link>https://dev.to/ggenya132</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ggenya132"/>
    <language>en</language>
    <item>
      <title>Depth first traversal of Binary Trees in Javascript</title>
      <dc:creator>Eugene Vedensky</dc:creator>
      <pubDate>Wed, 15 Jul 2020 03:20:42 +0000</pubDate>
      <link>https://dev.to/ggenya132/depth-first-traversal-in-javascript-3ehp</link>
      <guid>https://dev.to/ggenya132/depth-first-traversal-in-javascript-3ehp</guid>
      <description>&lt;h1&gt;Depth First Traversal in Binary Trees&lt;/h1&gt;

&lt;h5&gt;Hello!&lt;/h5&gt;

&lt;p&gt;In an effort to teach myself fundamentals that I might have missed in my rudimentary yet effective bootcamp experience, I'm going to cover some basics in a series about data structures and algorithms. As you might have surmised, in this post we're going to be discussing depth first traversal&lt;/p&gt;
 

&lt;p&gt;
  A depth first traversal is a way of accessing every node in graph or binary
  tree.
&lt;/p&gt;

&lt;p&gt;
  A depth first traversal is characterized by the direction of the traversal.
&lt;/p&gt;

&lt;p&gt;
  In other words, we traverse through one branch of a tree until we get to a
  leaf, and then we work our way back to the trunk of the tree.
&lt;/p&gt;

&lt;p&gt;
  In this post, I'll show and implement three types of depth first traversal.
&lt;/p&gt;

&lt;h2&gt;
  Inorder traversal
&lt;/h2&gt;

&lt;p&gt;
  As 'depth first' implies, we will reach the 'leaf' (a node with no children)
  by traveling downward in a recursive manner.
&lt;/p&gt;

&lt;p&gt;
  Inorder traversal adheres to the following patterns when traveling
  recursively:
&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Go to left-subtree&lt;/li&gt;
  &lt;li&gt;Visit Node&lt;/li&gt;
  &lt;li&gt;Go to right-subtree&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We can illustrate this concept with the follow gif&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--N7ZEdrt5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/amr1issqea2n9yydiizi.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--N7ZEdrt5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/amr1issqea2n9yydiizi.gif" alt="Inorder traversal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Let's code!&lt;/h2&gt;

&lt;p&gt;For the following examples we'll be using the Tree class I've defined below. &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;class&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;right&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;left&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;right&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;right&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;Let's go ahead and create the tree we see in the example gif&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;tree&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
  &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Tree&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;7&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;Finally, let's implement inorder traversal:&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;inOrderTraversal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;inOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;inOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;right&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&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="nx"&gt;inOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// 8, 4, 2, 5, 1, 9, 6, 10, 3, 7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, the code mimics the steps outlined above.&lt;/p&gt;

&lt;p&gt;The trickiest bit of this visualization is imagining the recursion until you hit the left-most leaf. I personally groan at the sight of recursion, but it's just something that has to be confronted with depth first traversal.&lt;/p&gt; 

&lt;h3&gt;Fun fact:&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Inorder Traversal of Binary Search Tree will always give you Nodes in sorted manner&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  Preorder traversal
&lt;/h2&gt;

&lt;p&gt;
  Preorder traversal adheres to the following patterns when traveling
  recursively:
&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Visit Node&lt;/li&gt;
  &lt;li&gt;Go to left-subtree&lt;/li&gt;
  &lt;li&gt;Go to right-subtree&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In other words, preorder is extremely similar to inorder except for the fact it will visit the root of the node first.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ks1yDhk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g3w9bnl8evdtebofub0s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ks1yDhk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g3w9bnl8evdtebofub0s.gif" alt="Preorder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's implement preorder traversal:&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;preOrderTraversal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;preOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;preOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;right&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&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="nx"&gt;preOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// 1, 2, 4, 8, 5, 3, 6, 9, 10, 7&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  Postorder traversal
&lt;/h2&gt;

&lt;p&gt;
  Post traversal adheres to the following patterns when traveling
  recursively:
&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Go to left-subtree&lt;/li&gt;
  &lt;li&gt;Go to right-subtree&lt;/li&gt;
  &lt;li&gt;Visit Node&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once again, postorder is extremely similar to the others except for the fact it will visit the left subtree, then the right subtree and finally the node itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HGbBHiEL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yxahifv1817m9zh27axx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HGbBHiEL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/yxahifv1817m9zh27axx.gif" alt="Postorder"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's implement postorder traversal:&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;postOrderTraversal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="kc"&gt;undefined&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;postOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;postOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;right&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nx"&gt;cb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;node&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&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="nx"&gt;postOrderTraversal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;tree&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// 8, 4, 5, 2, 9, 10, 6, 7, 3, 1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That wraps it up for depth first traversal...as far as I know.
Please let me know if you've learned anything or I've made any egregious mistakes!&lt;/p&gt;

&lt;p&gt;Till next time,
cheers!&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>You are not the code you write</title>
      <dc:creator>Eugene Vedensky</dc:creator>
      <pubDate>Wed, 13 Mar 2019 02:36:57 +0000</pubDate>
      <link>https://dev.to/ggenya132/you-are-not-the-code-you-write-2h6l</link>
      <guid>https://dev.to/ggenya132/you-are-not-the-code-you-write-2h6l</guid>
      <description>&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbkxvzerf5icihk4x0aq3.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fbkxvzerf5icihk4x0aq3.jpg" title="Logo Title Text 1" alt="alt text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a common sentiment to hear that your value as a human being does not come from the output of your labor. &lt;/p&gt;

&lt;p&gt;Our work is a central part of our identity and it’s important to take pride in our professional and sometimes personal accomplishments, but it is my sincere hope that we all have more than our vocation to reply upon when the existential question of our who we are comes sharply into focus. &lt;/p&gt;

&lt;p&gt;Like many others in Technology, I don’t have a traditional four year computer science degree; I’m the product of java focused bootcamp so I’ll be the first to admit I feel particularly susceptible to imposter syndrome when comparing my base of knowledge to some of my colleagues’. In addition to this, I tend throw myself into whatever craft or hobby I’m pursuing (currently it’s rock-climbing) so I emphatically understand the desire to become the art you make whatever through whatever medium you choose to express yourself in. &lt;/p&gt;

&lt;p&gt;Having said all this, I will still never understand some of my peers who’s entire sense of self relies on being a ‘good coder’. I’ll recount the story of Tyler (named changed), a fellow boot camp student who fought very viciously in the initial four week period of our cohort to establish himself as THE dev guy guru tech dude hobbyist coder genius. The impression he wanted to give was that he was clearly some kind of code wizard— he cast this spell by asking technical questions well outside the scope of most student’s initial knowledge and priding himself on having already done some coding years before as a computer science major. &lt;/p&gt;

&lt;p&gt;The problem with Tyler however is that his hard-earned sense of pride was quite fragile and began to rapidly shatter the moment other talented students started picking up some momentum and getting comfortable with the world of programming. I vividly recall Tyler lamenting his perceived fall in ‘rank’ to an exceedingly patient instructor during the course of the program. I must admit, during my time in the boot camp I had very little sympathy for Tyler and his plight; however, after having spent some time in the industry I’ve been able to empathize with Tyler and many others like him, maybe we are all prisoners of our own self imposed aspirations of sometimes unattainable excellence. &lt;/p&gt;

&lt;p&gt;Within yourself there are a multitude of infinite identities waiting to be discovered, each one filled with nuance and complexity. Why shove all your value into this one coveted monicker-- why gate your entire sense of worth behind an impossibly limiting expectation of perfection. Realize your idea of an amazing engineer is a moving goal post-- the glimmer of a mirage on an ever shifting horizon. You can close the distance between your skills and your ideas of pinnacle performance, but the approach is inherently asymptotic. There will always be a gap between you and your sense of excellence no matter how infinitesimal. Embrace that distance and join me in saying that good enough is good enough and look forward to the things in your life that aren’t coding. As for myself, I just want to climb some more (literal) walls. &lt;/p&gt;

&lt;p&gt;I've no doubt this idea and discussion can be generalized to many professions and ‘curated identities'. Please join me in discussing if you've had similar experiences in your workplace or school. &lt;/p&gt;

</description>
      <category>beginners</category>
      <category>impostersyndrome</category>
      <category>curatedidentity</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
