<?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: Nick Tolhurst</title>
    <description>The latest articles on Forem by Nick Tolhurst (@nicktolhurst).</description>
    <link>https://forem.com/nicktolhurst</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%2F1044887%2Ffdfcf213-ea51-4acd-bfc7-f66066262fde.png</url>
      <title>Forem: Nick Tolhurst</title>
      <link>https://forem.com/nicktolhurst</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/nicktolhurst"/>
    <language>en</language>
    <item>
      <title>day 1 of learning clojure as a total beginner</title>
      <dc:creator>Nick Tolhurst</dc:creator>
      <pubDate>Fri, 17 Mar 2023 18:00:00 +0000</pubDate>
      <link>https://forem.com/nicktolhurst/day-1-of-a-week-of-clojure-as-a-total-beginner-44df</link>
      <guid>https://forem.com/nicktolhurst/day-1-of-a-week-of-clojure-as-a-total-beginner-44df</guid>
      <description>&lt;h3&gt;
  
  
  Context
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I have never used &lt;strong&gt;clojure&lt;/strong&gt; before.&lt;/li&gt;
&lt;li&gt;I will be honest about my approach and thoughts.&lt;/li&gt;
&lt;li&gt;I have experience with various OOP languages, but not in a professional capacity.&lt;/li&gt;
&lt;li&gt;I work as an infrastructure engineer, I am not new to tech.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;p&gt;Where to start?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Google “how to install closure”&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Click on “Show instead ‘how to install clojure’“&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After poking around the many different ways to get &lt;strong&gt;clojure&lt;/strong&gt; installed - and some failed attempts with WSL2 🥴 - I found that vscode has an extension/environment - &lt;a href="https://calva.io/"&gt;Calva&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This was a no-brainer. Though I am also interested in learning &lt;a href="https://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;, &lt;a href="https://www.vim.org/"&gt;Vim&lt;/a&gt;, and the numerous other editors out there (and I will, I promise), I am already familiar with &lt;a href="https://code.visualstudio.com/"&gt;vscode&lt;/a&gt;, and I’m here to give &lt;strong&gt;clojure&lt;/strong&gt; my best effort and full attention.&lt;/p&gt;

&lt;p&gt;Installing Calva is easy. Below is the one-liner, or you could use the UI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;code --install-extension betterthantomorrow.calva
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It is also admirably &lt;del&gt;beginner&lt;/del&gt; friendly, with an interactive getting-started guide that has a witty style. To start this, press&lt;code&gt;ctrl&lt;/code&gt;+&lt;code&gt;shift&lt;/code&gt;+&lt;code&gt;p&lt;/code&gt;, type &lt;code&gt;calfig&lt;/code&gt;, press &lt;code&gt;enter&lt;/code&gt; (you will learn more about these tasks in the guide!).&lt;/p&gt;

&lt;p&gt;Wow. This looks nerdy 🤓. I’ll wait to get stuck in; first, some reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://clojure.org/guides/getting_started"&gt;https://clojure.org/guides/getting_started&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://clojure.org/guides/structural_editing"&gt;https://clojure.org/guides/structural_editing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://clojure.org/guides/repl/introduction"&gt;https://clojure.org/guides/repl/introduction&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Okay, I wish I didn’t read them - even though I know it is essential, it made little sense at this point 🤷‍♂️. It took a lot to follow, especially for a newbie in this type of programming. In retrospect - &lt;em&gt;this blog was written up a day later&lt;/em&gt; - I should have completed the getting-started guide first. A little warm-up is advised.&lt;/p&gt;

&lt;h3&gt;
  
  
  Actually getting started
&lt;/h3&gt;

&lt;p&gt;Ah, this is better.&lt;/p&gt;

&lt;p&gt;My initial thoughts are this is &lt;del&gt;beginner&lt;/del&gt; friendly 🙌. Can programming languages be inclusive for newbies? 🤔 I already feel like I am being lured in and want to learn more. As I spend the next ~40 minutes working my way through the introduction.&lt;/p&gt;

&lt;p&gt;There are lots of shortcuts worth learning. Below 👇 are the top 4 that I most use so far. I’ll continue to post these as I discover them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;alt&lt;/code&gt;+&lt;code&gt;enter&lt;/code&gt;: evaluate top level form.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ctrl&lt;/code&gt;+&lt;code&gt;enter&lt;/code&gt;: evaluate current form.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ctrl&lt;/code&gt;+&lt;code&gt;alt&lt;/code&gt;+&lt;code&gt;c&lt;/code&gt;, &lt;code&gt;enter&lt;/code&gt;: load / reload current file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;escape&lt;/code&gt;: remove all evaluated results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Wrap up
&lt;/h3&gt;

&lt;p&gt;The getting-started guide is longer than I expected. It’s been a very late hour. Yet I’m still here and even more invested. Have I learned anything? Only that I now understand less. I have no idea what this would ever be used for - but that’s okay. Trust the process.&lt;/p&gt;

&lt;p&gt;Let me know your thoughts and recommendations! Apologies if I mistype or misunderstand. I am always open to feedback and corrections.&lt;/p&gt;

&lt;p&gt;I’ll check back in tomorrow, thanks for reading 🙏&lt;/p&gt;

</description>
      <category>clojure</category>
      <category>learning</category>
      <category>technology</category>
    </item>
  </channel>
</rss>
