<?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: Ujah Emmanuel </title>
    <description>The latest articles on DEV Community by Ujah Emmanuel  (@codeboss).</description>
    <link>https://dev.to/codeboss</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%2F368411%2F46db19b4-d9fb-4ef2-a1e9-1dde19baafe8.jpg</url>
      <title>DEV Community: Ujah Emmanuel </title>
      <link>https://dev.to/codeboss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codeboss"/>
    <language>en</language>
    <item>
      <title>Changing Careers &amp; FOMO</title>
      <dc:creator>Ujah Emmanuel </dc:creator>
      <pubDate>Fri, 03 Jun 2022 04:50:31 +0000</pubDate>
      <link>https://dev.to/codeboss/changing-careers-fomo-1kji</link>
      <guid>https://dev.to/codeboss/changing-careers-fomo-1kji</guid>
      <description>&lt;p&gt;Do I have FOMO(fear of missing out)if I change careers after 6 months of learning?&lt;/p&gt;

&lt;p&gt;What's your take on this...&lt;/p&gt;

&lt;p&gt;All feedback is appreciated 👍&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>How to Switch Between Node Versions on Windows</title>
      <dc:creator>Ujah Emmanuel </dc:creator>
      <pubDate>Mon, 11 Apr 2022 04:03:14 +0000</pubDate>
      <link>https://dev.to/codeboss/how-to-switch-between-node-versions-on-windows-39mb</link>
      <guid>https://dev.to/codeboss/how-to-switch-between-node-versions-on-windows-39mb</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;we build projects based on a specific version of tools, dependencies, and packages. And quite often, these tools and packages get updated. What happens when you need to work on a project that requires a previous version of Node? Do you have to uninstall the current version and install the version you need? what happens after you finish working on the project? &lt;/p&gt;

&lt;p&gt;In this post, I will share how you can switch between multiple versions of Node and manage your projects easily using &lt;strong&gt;Node Version Manager(NVM)&lt;/strong&gt; on windows.&lt;/p&gt;

&lt;p&gt;As developers, we work on many projects that run on different versions of packages. I recently had a similar challenge where my system is running Node v 16.14.2 which is the latest version at the time, and the project I want to work on required Node v 16.8.0. Hence, the motivation for writing this article. &lt;/p&gt;

&lt;h2&gt;
  
  
  Node Version Manager (NVM)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;Node Version Manager (NVM)&lt;/a&gt;&lt;/strong&gt; is a tool that allows developers to easily switch between multiple node versions without having to manually uninstall and install a new version anytime the need arises. Just as the name implies, nvm manages our Node version. &lt;/p&gt;

&lt;h2&gt;
  
  
  Installing NVM on Windows
&lt;/h2&gt;

&lt;p&gt;Now before you install NVM, be sure to uninstall any existing installation of Node from your system to avoid complications during installation. Head over to Github and download &lt;a href="https://github.com/coreybutler/nvm-windows/releases" rel="noopener noreferrer"&gt;nvm-setup.zip&lt;/a&gt; from the list of available options and follow through a regular installation process, nothing new. &lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;Further information on installing NVM on windows can be found &lt;a href="https://github.com/coreybutler/nvm-windows" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;After successfully installing NVM, open up your terminal and enter the following command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm help
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the installation was successful, you should get a response like the image below.&lt;/p&gt;

&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649638220772%2Fqagw9SDoC.png" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649638220772%2Fqagw9SDoC.png" alt="1.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Node.js using NVM on Windows
&lt;/h2&gt;

&lt;p&gt;The next step after installing NVM is to install Node. NVM makes it very easy to install multiple versions of Node with a single command. Before we proceed, it is important to note that NVM requires a level of permission to make changes to your system. Open up PowerShell as an administrator and enter the following command to install Node.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm install lts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above command installs the current and most recent &lt;strong&gt;LTS&lt;/strong&gt; version of Node. Optionally, you can install &lt;strong&gt;"latest"&lt;/strong&gt; for the latest version available. To install an older version of Node, specify the version number with the command &lt;code&gt;nvm install &amp;lt;version-number&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm install 8.17.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's install an even older version, so we can see clearly how easy it is to switch and manage these different node versions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm install 6.5.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything works correctly, you should have three (3) versions of Node installed onto your system. Let's confirm this by entering the next command in the terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649640875693%2FlCzAipfO2.png" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649640875693%2FlCzAipfO2.png" alt="2.png"&gt;&lt;/a&gt;&lt;br&gt;
 The &lt;code&gt;nvm list&lt;/code&gt; command displays a list of all installed node versions and specifies the currently active version.&lt;/p&gt;
&lt;h2&gt;
  
  
  Switching Between Node.js Versions
&lt;/h2&gt;

&lt;p&gt;By default, your system should be running the first version of Node you installed. In my case, it would be Node v16.14.2 which is the &lt;strong&gt;LTS&lt;/strong&gt; version at the time. To use any of the available versions, enter the next command &lt;code&gt;nvm use &amp;lt;version&amp;gt;&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm use 6.5.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should get the following response.&lt;/p&gt;

&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649641944289%2FjVzj4KRKz.png" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649641944289%2FjVzj4KRKz.png" alt="3.png"&gt;&lt;/a&gt;&lt;br&gt;
Alternatively, you can enter the following command &lt;code&gt;nvm current&lt;/code&gt; to see the currently active version.&lt;/p&gt;

&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649642158580%2FdC1h4bPyY.png" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649642158580%2FdC1h4bPyY.png" alt="4.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is also important to &lt;strong&gt;note **that each Node version you install automatically comes with a **node package manager(npm)&lt;/strong&gt; that is compatible with the Node version. &lt;/p&gt;
&lt;h2&gt;
  
  
  Uninstalling a Node.js Version
&lt;/h2&gt;

&lt;p&gt;To uninstall a Node version, enter the command &lt;code&gt;nvm uninstall &amp;lt;version&amp;gt;&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nvm uninstall 6.5.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649643618418%2FTKeFFrx1f.png" 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%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1649643618418%2FTKeFFrx1f.png" alt="5.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's as easy as it gets when using NVM. There are more options you can explore when you run the &lt;code&gt;nvm help&lt;/code&gt; command. But I don't want to bore you with that information. &lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;NVM makes switching between Node versions a seamless experience. Hope you are able to set up and use NVM to manage Different Node versions on your system. If you found this post useful, you can live a &lt;strong&gt;like&lt;/strong&gt; and &lt;strong&gt;share&lt;/strong&gt;. Connect with me on &lt;a href="https://twitter.com/codeboss_" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; for more content like this. That would be all for now, see you in the next one.&lt;/p&gt;

</description>
      <category>node</category>
      <category>beginners</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Effective Software Documentation*</title>
      <dc:creator>Ujah Emmanuel </dc:creator>
      <pubDate>Tue, 05 Apr 2022 10:13:03 +0000</pubDate>
      <link>https://dev.to/codeboss/effective-software-documentation-38ah</link>
      <guid>https://dev.to/codeboss/effective-software-documentation-38ah</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The primary goal of every software product is for it to be successful and a huge percentage of that success depends on how well the documentation is designed. In fact, a well-built software product without decent documentation is as good as nothing. The success of a software product depends more on how comprehensible and detailed the documentation of that software is, and not just the code.&lt;/p&gt;

&lt;p&gt;In this article, I will discuss software documentation in regards to types, best practices, tools for building, and the importance of documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eric Holscher&lt;/strong&gt; the co-founder of Write the Docs once said, "&lt;em&gt;Documentation is one of the most important parts of a software project. However, a lot of projects have little or no documentation to help their (potential) users use the software&lt;/em&gt;".&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Software Documentation?
&lt;/h3&gt;

&lt;p&gt;Software documentation refers to any written document that provides users with information such as; the processes involved in building a particular software, why a piece of software was built, what it does, how it works, and basically how it can be used in a clear and easy to comprehend approach.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Incorrect documentation is often worse than no documentation - Bertrand Meyer&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most times, users of a software product usually find themselves in the documentation only when the need arises. They are often in a haste to quickly find information that solves their problem. If the user finds the documentation complex, poorly structured, and inconsistent, they will easily ditch the service or product for an alternative.  As a result, the availability of documentation is not enough. The content of the documentation has to be given the highest priority and delivered in a strategic approach in a way that the user can easily grasp.&lt;/p&gt;

&lt;p&gt;Software documentation should be nothing short of elegance and effective because bad documentation can also hurt your software product even more than when there is no documentation. Bad documentation can lead to scaring away potential clients, losing existing clients, and wasting internal resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of Software Documentation
&lt;/h3&gt;

&lt;p&gt;Software documentation is divided into two main categories, which are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process documentation&lt;/li&gt;
&lt;li&gt;Product documentation &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Process documentation&lt;/strong&gt; refers to a document that describes the processes involved in building and maintaining a software product. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product documentation&lt;/strong&gt;  is a document that basically describes a software product and provides information such as software requirements, how-to guides on different use cases of the software, terminologies, and concepts used in the software.&lt;/p&gt;

&lt;p&gt;There isn’t one thing called “documentation” but four things known as documentation and they represent different purposes. According to &lt;strong&gt;Daniele Procida&lt;/strong&gt;, the structure of good documentation is broken down into four quadrants which are; &lt;strong&gt;tutorials&lt;/strong&gt;, &lt;strong&gt;how-to guides&lt;/strong&gt;, &lt;strong&gt;explanation&lt;/strong&gt;, and &lt;strong&gt;reference&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YS874Wfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1647926573343/9Z2sqQVpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YS874Wfn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1647926573343/9Z2sqQVpq.png" alt="overview.png" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://documentation.divio.com/#about-the-system"&gt;The documentation system&lt;/a&gt; ~ Daniel Procida&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tutorials (learning-oriented)&lt;/li&gt;
&lt;li&gt;How-to guides (problem-oriented)&lt;/li&gt;
&lt;li&gt;Explanation (understanding-oriented)&lt;/li&gt;
&lt;li&gt;Reference (information-oriented)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Software documentation delivered in this format makes it easier to maintain and update and also on the part of end-users, navigation and search for information in the documentation becomes a seamless experience. &lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explicitly Structured&lt;/strong&gt;: The structure of documentation really matters a lot, because it determines how users can navigate and access information quickly; Delivering documentation following the tutorials, how-to guides, explanation, and reference structure makes it easy for users to navigate and find information quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistency:&lt;/strong&gt; Good documentation is consistent with information covering all aspects of the software use cases and without gaps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Up-to-date:&lt;/strong&gt; The documentation of software should evolve according to the changes in the software, to capture all changes and remain consistent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear and Inviting:&lt;/strong&gt; Users always look for documentation that is clear and easily comprehensible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sample Code:&lt;/strong&gt; Good documentation should provide code examples for various use cases of the software, so users can see key concepts in action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Know your Target Audience:&lt;/strong&gt; Identify and evaluate different personas for your software and curate documentation that is appealing to their various use cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience:&lt;/strong&gt; Good documentation should consider the users' experience of the software documentation and also should be as inclusive as possible.&lt;/li&gt;
&lt;li&gt;The documentation should be &lt;strong&gt;scannable&lt;/strong&gt;, &lt;strong&gt;easy to find,&lt;/strong&gt; and &lt;strong&gt;contribute&lt;/strong&gt; to.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Documentation tools
&lt;/h3&gt;

&lt;p&gt;There are various tools for creating software documentation; some of the popular ones are &lt;a href="https://pages.github.com/"&gt;GitHub&lt;/a&gt;, &lt;a href="https://www.writethedocs.org/"&gt;Read The Docs&lt;/a&gt;, &lt;a href="https://www.docz.site/"&gt;Docz&lt;/a&gt;, &lt;a href="https://docusaurus.io/docs"&gt;Docusaurus&lt;/a&gt;, &lt;a href="https://www.dropbox.com/paper"&gt;Dropbox Paper&lt;/a&gt;, &lt;a href="https://www.documize.com/"&gt;Documize&lt;/a&gt;, etc. You can use whichever tool you feel comfortable with, having in mind that they all have their ups and downs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Importance of effective documentation
&lt;/h3&gt;

&lt;p&gt;Some of the benefits of good software documentation are as follows;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sustains Open Source Software:&lt;/strong&gt; The success of an open source software depends on the strength of the community behind it, effective documentation enables contributors to use and contribute to the software and this ensures growth, maintainability, and scalability. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content Marketing:&lt;/strong&gt; Good software documentation serves as a form of an advert for your software because it makes your software appealing and easier for intending users to comprehend the various use cases for your software.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saves Time and Effort:&lt;/strong&gt; Decent documentation saves time and effort for both developers and end-users of your product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Makes Hiring and Onboarding so much easier:&lt;/strong&gt; It simplifies, the hiring and onboarding of new members because all necessary information relating to process, product, and the company is made available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cuts down Duplicate Tasks:&lt;/strong&gt; The issue of having to reinvent the wheel or creating something that already exists is handled by good documentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Defines your product:&lt;/strong&gt; Documentation summarizes important information about your software such as what the product does, how it works, and other essential details about the software&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;The success of a good software product depends not just on the code and the functionalities behind it but also on the documentation of that software. Writing documentation has to be strategic and follow best practices in other to avoid bad documentation. &lt;br&gt;
The goal of Documentation doesn’t have to be “Just documentation” but effective documentation.&lt;/p&gt;

&lt;p&gt;To recap, we discussed what software documentation is, types, best practices, tools for creating documentation, and the importance of effective software documentation.&lt;/p&gt;

&lt;p&gt;If you find this article useful you can give it a like and share, and also, you can follow me on &lt;a href="https://twitter.com/codeboss_"&gt;Twitter&lt;/a&gt; for more content like this. Thanks 🙌 and see you in the next one.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>writing</category>
      <category>productivity</category>
      <category>documentation</category>
    </item>
  </channel>
</rss>
