<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Personal Blog]]></title><description><![CDATA[A blog created and maintained by Matt Zuckermann.]]></description><link>https://blog.mattzuckermann/dev</link><generator>GatsbyJS</generator><lastBuildDate>Fri, 29 Jan 2021 01:38:10 GMT</lastBuildDate><item><title><![CDATA[JavaScript's This Keyword (1)]]></title><description><![CDATA[Why I decided to blog about “this”: I’m a big fan of the Syntax.fm podcast by Wes Bos and Scott Tolinski, and I remember hearing an episode…]]></description><link>https://blog.mattzuckermann/dev/javascripts-this-keyword/one/</link><guid isPermaLink="false">https://blog.mattzuckermann/dev/javascripts-this-keyword/one/</guid><pubDate>Wed, 27 Jan 2021 20:00:00 GMT</pubDate><content:encoded>&lt;h3&gt;Why I decided to blog about “this”:&lt;/h3&gt;
&lt;p&gt;I’m a big fan of the &lt;a href=&quot;https://syntax.fm&quot; target=&quot;_blank&quot;&gt;Syntax.fm&lt;/a&gt; podcast by &lt;a href=&quot;https://wesbos.com&quot; target=&quot;_blank&quot;&gt;Wes Bos&lt;/a&gt; and &lt;a href=&quot;https://leveluptutorials.com&quot; target=&quot;_blank&quot;&gt;Scott Tolinski&lt;/a&gt;, and I remember hearing an episode where Wes said something to the point of a developer really needing to build a site around the JavaScript &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword due to the mysterious output we developers so often get when attempting to use it in various contexts.&lt;/p&gt;
&lt;p&gt;Of course, there is a plethora of documentation on the topic already, and I don’t intend to outshine any of that (I do love the MDN Web Docs). Rather, this blog series along with my site &lt;a href=&quot;https://usethis.dev&quot; target=&quot;_blank&quot;&gt;usethis.dev&lt;/a&gt; will hopefully be able to accomplish centralizing articles and documentation, as well as provide opportunities for developers to quiz themselves on content discussed.&lt;/p&gt;
&lt;p&gt;So without any further introduction, let’s get started!&lt;/p&gt;
&lt;h3&gt;What we’ll be learning in this series:&lt;/h3&gt;
&lt;p&gt;We’ll be learning the basics of the JavaScript &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword in various contexts, the use of bind, the window object, block and function scope, and the difference between regular functions and arrow functions (and, in turn, the effects they have on the &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword).&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/d09461fda9c79b7e6ce07bfb9b3de4dc/29d31/this_logo.jpg&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 43.0379746835443%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFwABAAMAAAAAAAAAAAAAAAAAAAECBP/EABUBAQEAAAAAAAAAAAAAAAAAAAIE/9oADAMBAAIQAxAAAAHTRNMYI//EABUQAQEAAAAAAAAAAAAAAAAAACBB/9oACAEBAAEFAof/xAAXEQADAQAAAAAAAAAAAAAAAAABAhAR/9oACAEDAQE/AS2z/8QAFxEBAAMAAAAAAAAAAAAAAAAAAhASQf/aAAgBAgEBPwEmux//xAAXEAADAQAAAAAAAAAAAAAAAAABESAx/9oACAEBAAY/AsLr/8QAGxAAAAcBAAAAAAAAAAAAAAAAAAERICFBcYH/2gAIAQEAAT8hQoaaHG//2gAMAwEAAgADAAAAEMQv/8QAFhEBAQEAAAAAAAAAAAAAAAAAAREQ/9oACAEDAQE/ECJCTP/EABcRAQEBAQAAAAAAAAAAAAAAAAEREFH/2gAIAQIBAT8QVLTe5//EABwQAQABBAMAAAAAAAAAAAAAAAEhABEggTFBYf/aAAgBAQABPxDttcB0pbMJ3RJJbzD/2Q==&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;this&quot;
        title=&quot;this&quot;
        src=&quot;/static/d09461fda9c79b7e6ce07bfb9b3de4dc/828fb/this_logo.jpg&quot;
        srcset=&quot;/static/d09461fda9c79b7e6ce07bfb9b3de4dc/ff44c/this_logo.jpg 158w,
/static/d09461fda9c79b7e6ce07bfb9b3de4dc/a6688/this_logo.jpg 315w,
/static/d09461fda9c79b7e6ce07bfb9b3de4dc/828fb/this_logo.jpg 630w,
/static/d09461fda9c79b7e6ce07bfb9b3de4dc/29d31/this_logo.jpg 700w&quot;
        sizes=&quot;(max-width: 630px) 100vw, 630px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;h3&gt;What we’ll be learning in this post:&lt;/h3&gt;
&lt;p&gt;Today, we will be discussing the global &lt;code class=&quot;language-text&quot;&gt;window&lt;/code&gt; object, block and function scope, JavaScript data types, and gaining a general understanding of what &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; will output in a given environment.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;This in Action&lt;/h1&gt;
&lt;p&gt;&lt;br&gt;
As a brief overview, here is a succinct statement on the topic of &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; from the MDN Web Docs:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In most cases, the value of this is determined by how a function is called (runtime binding).&lt;/p&gt;
&lt;p&gt;— &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this&quot; target=&quot;_blank&quot;&gt;MDN&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While it may seem deceivingly simple, the &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword is not like other keywords in JavaScript. It is completely determined on where it is called. For example, in the code below, we have used &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; not in a function, but simply within a bare HTML script tag.&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;span class=&quot;token language-javascript&quot;&gt;
  console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Window { window: Window, self: Window, document, name: &quot;...&quot;} etc.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You can also get the same result by opening up the developer tools in any browser, go to the console tab, and enter &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; as shown below in Chrome:&lt;/p&gt;
&lt;p&gt;&lt;span
      class=&quot;gatsby-resp-image-wrapper&quot;
      style=&quot;position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px; &quot;
    &gt;
      &lt;a
    class=&quot;gatsby-resp-image-link&quot;
    href=&quot;/static/ebff86a40dc84cfe73f355d0f61fccdb/133ae/devtools.png&quot;
    style=&quot;display: block&quot;
    target=&quot;_blank&quot;
    rel=&quot;noopener&quot;
  &gt;
    &lt;span
    class=&quot;gatsby-resp-image-background-image&quot;
    style=&quot;padding-bottom: 28.48101265822785%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAABYlAAAWJQFJUiTwAAAA7ElEQVQY052QyU7EMBBE/SPDIYnjBK+xsyhk8UicRkII8f//UnQbDcsNcXhqV3erXLbwIYEJw4jL5aGgjcO8rBjiiDTONI9F8w7reXmCdQMetUPXG8Q0wflIswXizFfsx0ligtYePS04H2Cto3MPpRS6riuVe94PMIaN9C96YqTLxO32gte3d2Qy5uV9P5BSwrZtpVprEWMs1RiDEDxdrItWbGw99clQtVBtC5GnCdN6lvhStiUJc08npfyiaZpv3ZCWn7CuacYvEceZsedneuaAqqpQ13Xh5/mvcAAxr1cs606fHEqTU/yHu+EHTa60s43VqiMAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;&quot;
  &gt;&lt;/span&gt;
  &lt;img
        class=&quot;gatsby-resp-image-image&quot;
        alt=&quot;dev tools&quot;
        title=&quot;dev tools&quot;
        src=&quot;/static/ebff86a40dc84cfe73f355d0f61fccdb/f058b/devtools.png&quot;
        srcset=&quot;/static/ebff86a40dc84cfe73f355d0f61fccdb/c26ae/devtools.png 158w,
/static/ebff86a40dc84cfe73f355d0f61fccdb/6bdcf/devtools.png 315w,
/static/ebff86a40dc84cfe73f355d0f61fccdb/f058b/devtools.png 630w,
/static/ebff86a40dc84cfe73f355d0f61fccdb/40601/devtools.png 945w,
/static/ebff86a40dc84cfe73f355d0f61fccdb/78612/devtools.png 1260w,
/static/ebff86a40dc84cfe73f355d0f61fccdb/133ae/devtools.png 1424w&quot;
        sizes=&quot;(max-width: 630px) 100vw, 630px&quot;
        style=&quot;width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;&quot;
        loading=&quot;lazy&quot;
      /&gt;
  &lt;/a&gt;
    &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The reasoning behind the following output is that there is no other &lt;u&gt;&lt;em&gt;object&lt;/em&gt;&lt;/u&gt; (remember this key term for later) encapsulating the &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword from which it will assume that environment. Only the window object is encapsulating the &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword.&lt;/p&gt;
&lt;p&gt;To further explain this, let’s look at a couple other examples:&lt;/p&gt;
&lt;h4&gt;Examples&lt;/h4&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Example 1&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;wrapperFunction&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Example 2&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; wrapperObjectWithFunction &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function-variable function&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;What do you think these will output? Take a moment before scrolling down to view the answer.&lt;/p&gt;
&lt;p&gt;What&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
           Are&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
                       The&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
                                   Answers&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
                                               Going&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
                                                           To&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
                                                                       Be&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;br&gt;
                                                                                         Here?&lt;/p&gt;
&lt;h4&gt;Results&lt;/h4&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;// Example 1&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;wrapperFunction&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// Window { window: Window, self: Window, document, name: &quot;...&quot;} etc.&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Example 2&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; wrapperObject &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function-variable function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// {log: ƒ}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;You might be surprised to see that in our first example, what is logged out is once again the &lt;code class=&quot;language-text&quot;&gt;window&lt;/code&gt; object. Now, why is that?&lt;/p&gt;
&lt;p&gt;We must first understand that JavaScript variables can contain expressions. A simple yet pointless expression could be&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; sum &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A common misconception in metaphor that many programmers have is thinking of variables as a box “holding” a value (i.e. sum holding the value of 2).&lt;/p&gt;
&lt;p&gt;Instead, variables act rather as &lt;u&gt;pointers&lt;/u&gt;. Variables point to either &lt;em&gt;primitives&lt;/em&gt; (i.e. string, number, boolean, bigint, symbol, undefined, or null), &lt;em&gt;functions&lt;/em&gt;, or &lt;em&gt;objects&lt;/em&gt;. (If you’d like to go deeper in this topic rather than get a 10,000 foot view, you should definitely check &lt;a href=&quot;https://twitter.com/dan_abramov&quot; target=&quot;_blank&quot;&gt;Dan Abramov’s&lt;/a&gt; course &lt;a href=&quot;https://justjavascript.com&quot; target=&quot;_blank&quot;&gt;Just JavaScript&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Thus, when we are logging &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; within a function we are not in fact logging out the variables assigned the function. That would be a bit of an oxymoron since the variable is the evaluation of an expression. Put simply, a function is really just a group of expressions to perform a particular task. Thus, it would make sense that we get the &lt;code class=&quot;language-text&quot;&gt;window&lt;/code&gt; object in the first example since the variable is defined within the global scope.&lt;/p&gt;
&lt;p&gt;Remember what we said about variables being pointers to either &lt;em&gt;primitives&lt;/em&gt;, &lt;em&gt;functions&lt;/em&gt;, or &lt;em&gt;objects&lt;/em&gt;? Well, the same attribute stands for object keys. In the second example, the &lt;code class=&quot;language-text&quot;&gt;log&lt;/code&gt; key is pointing to the function with the &lt;code class=&quot;language-text&quot;&gt;console.log&lt;/code&gt; method. The only difference is objects create their own block scope which changes the value of &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt;. In this instance, the function is being pointed to by the log key which is defined within the object pointed to by the objectWrapper variable. As a result, the function is not bound to the global window object but instead it is tied locally to the object it is defined, which is why we are logging out an object containing the key &lt;code class=&quot;language-text&quot;&gt;{log: f}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;In our next article, we will be looking further at the difference the &lt;code class=&quot;language-text&quot;&gt;this&lt;/code&gt; keyword has within arrow functions as well as the implications block scope has with different variables.&lt;/p&gt;</content:encoded></item><item><title><![CDATA[A Brief Introduction]]></title><description><![CDATA[Hello! This is the very first post on my first ever blog. I’m so excited to share my projects, thoughts, and findings with you! I’ll be…]]></description><link>https://blog.mattzuckermann/dev/introduction/</link><guid isPermaLink="false">https://blog.mattzuckermann/dev/introduction/</guid><pubDate>Wed, 20 Jan 2021 20:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Hello!&lt;/h2&gt;
&lt;p&gt;This is the very first post on my first ever blog. I’m so excited to share my projects, thoughts, and findings with you!&lt;/p&gt;
&lt;p&gt;I’ll be writing a lot more in the future. A New Year’s resolution for 2021 is to start a blog and post a new article every week on things I’m either building or learning in my web developer journey, so be on the lookout for more articles on this blog as well as my &lt;a href=&quot;https://medium.com/@mattzuckermann&quot;&gt;Medium&lt;/a&gt; and &lt;a href=&quot;https://dev.to/mattzuckermann&quot;&gt;Dev&lt;/a&gt; profiles!&lt;/p&gt;
&lt;p&gt;I look forward to learning alongside you and sharing interesting findings along the way. See you later!&lt;/p&gt;</content:encoded></item></channel></rss>