<?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: Aleksandar Vasilevsk</title>
    <description>The latest articles on DEV Community by Aleksandar Vasilevsk (@vasilevskialeks).</description>
    <link>https://dev.to/vasilevskialeks</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%2F233987%2F3d72124a-8d02-4d85-8490-d8deda8c11a2.png</url>
      <title>DEV Community: Aleksandar Vasilevsk</title>
      <link>https://dev.to/vasilevskialeks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vasilevskialeks"/>
    <language>en</language>
    <item>
      <title>6 Ways to Loop Through an Array in JavaScript</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Wed, 10 Jun 2020 12:37:29 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/6-ways-to-loop-through-an-array-in-javascript-3k33</link>
      <guid>https://dev.to/vasilevskialeks/6-ways-to-loop-through-an-array-in-javascript-3k33</guid>
      <description>&lt;p&gt;Dealing with arrays is everyday work for every developer. In this article, we are going to see 6 different approaches to how you can iterate through in Javascript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codespot.org/ways-to-loop-through-an-array-in-javascript/"&gt;&lt;strong&gt;Continue reading...&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>8 Best Productivity Tips for Developers and Programmers</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Wed, 11 Mar 2020 16:30:21 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/8-best-productivity-tips-for-developers-and-programmers-427f</link>
      <guid>https://dev.to/vasilevskialeks/8-best-productivity-tips-for-developers-and-programmers-427f</guid>
      <description>&lt;p&gt;To stay productive as a programmer and developer is not an easy task. It's a stressful job that can make you lose focus very fast or make you feel drained, the understanding of how you can focus on your work, and deal with distractions, can help you a lot in making the most out of your working hours. In this article, we have made a list of the best productivity tips for developers and programmers that should follow for the best productivity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codespot.org/productivity-tips-for-developers-and-programmers/"&gt;&lt;strong&gt;Continue reading...&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>career</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Algorithms and Data Structures: Linear Search</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Tue, 03 Mar 2020 14:03:14 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/algorithms-and-data-structures-linear-search-4m6</link>
      <guid>https://dev.to/vasilevskialeks/algorithms-and-data-structures-linear-search-4m6</guid>
      <description>&lt;p&gt;As the name says a linear search is a process that starts at the beginning of a list and goes through every element (one item at a time) until it finds the element which is looking for. To find the element which is searching for (for example we are searching for &lt;code&gt;x&lt;/code&gt;), a linear search algorithm is comparing every element in the list with the value inside of &lt;code&gt;x&lt;/code&gt;, until a match is found or the whole list has been searched. Performance for using linear search in large lists is bad because it makes at most n comparisons, where n is the length of the list. In practice, linear search algorithm is rarely being used because other search algorithms like the binary search algorithm allow significantly faster searching for all but shortlists.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codespot.org/algorithms-and-data-structures-linear-search/"&gt;&lt;strong&gt;Continue reading...&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Best Programming Books in 2020</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Sun, 26 Jan 2020 13:42:30 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/best-programming-books-in-2020-45l4</link>
      <guid>https://dev.to/vasilevskialeks/best-programming-books-in-2020-45l4</guid>
      <description>&lt;p&gt;There are many books out there for programmers and no one can read every book out there. There are many more articles about programming books written too, but it is hard to find a good filtered list with books for programmers. In this article, I wanted to make a list that will help everyone to find particular books about programming topics that they are interested in to read. I selected this particular list of books not just to improve your coding skills and make you a better programmer, but would also help you to grow as a person in every way. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codespot.org/best-books-for-programmers/"&gt;&lt;strong&gt;Continue reading...&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Create React App From Scratch Part 1: Setting Up</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Thu, 26 Dec 2019 11:30:47 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/create-react-app-from-scratch-part-1-setting-up-4b3g</link>
      <guid>https://dev.to/vasilevskialeks/create-react-app-from-scratch-part-1-setting-up-4b3g</guid>
      <description>&lt;p&gt;This post is a preview part of the series &lt;a href="https://www.codespot.org/create-react-app-from-scratch-part-1/"&gt;&lt;strong&gt;Create React App From Scratch&lt;/strong&gt;&lt;/a&gt;, you can find the other parts at &lt;a href="https://www.codespot.org"&gt;https://www.codespot.org&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Series Introduction
&lt;/h2&gt;

&lt;p&gt;Since React is currently one of the most in-demand front-end technology, I have decided to start a course series that intends to show you how to create the React js app from scratch to finish. Today most of the front-end applications are mostly showing real-time data fetched from some backend service, I have decided that it will be useful to create a cryptocurrency single page application that will show prices and chart history of cryptocurrencies that will be fetched from some backend service.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: To follow this ReactJS course series you should have some basic knowledge in JavaScript programming language, even better if you know ES6.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Setting Up React
&lt;/h2&gt;

&lt;p&gt;Before we start setting up the ReactJS app, firstly we need to have node.js installed on our computer. To check if node.js is installed you should open up the terminal or PowerShell in Windows and type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If this shows you the node version, you can skip the installing part, else you should open &lt;a href="https://nodejs.org/"&gt;&lt;em&gt;nodejs.org&lt;/em&gt;&lt;/a&gt; and there you will find the latest version of node.js. &lt;/p&gt;

&lt;p&gt;Setting up React js is easy, Firstly we will name the app crypto-app. Next, we will open up the terminal with a path to the folder where we want the app to be stored. To create a React project we need to use the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-react-app crypto-app
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Feel free to name your app differently if you want to, but in my case, I will name the app crypto-app.&lt;br&gt;
After a couple of seconds, the setup will finish with a couple of messages about our new React app. We can now use the following commands when we are inside the directory of the app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;npm start       &lt;span class="c"&gt;#starts the development server&lt;/span&gt;
npm run build   &lt;span class="c"&gt;#bundles the app into static files for production&lt;/span&gt;
npm &lt;span class="nb"&gt;test&lt;/span&gt;        &lt;span class="c"&gt;#starts the test runner&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To start our development server, first, we need to go into the project folder with the command &lt;code&gt;cd crypto-app&lt;/code&gt;, when we are inside the project folder we can finally start the development server with the command &lt;code&gt;npm start&lt;/code&gt;, our browser will open the app for us at localhost:3000, where we should see the React welcome screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  React File Structure
&lt;/h2&gt;

&lt;p&gt;To open our React project we need to use a text editor or IDE, if you don't have any installed, you can check my post about &lt;a href="https://codespot.org/top-5-best-text-editors-for-2019/"&gt;&lt;em&gt;Top 5 Best Text Editors&lt;/em&gt;&lt;/a&gt;. When we open up the project in the text editor we can see a couple of configuration files and folders.&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- node_modules        - contains all node dependencies
- public              - public files that are served
- src                 - source code of our ReactJS app
.gitignore            - record which files should git ignore
package-lock.json     - contains an exact, versioned dependency tree
package.json          - contains various metadata relevant to the project 
README.md             - readme markdown file
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;First, we will look into the public folder. Here we have one important file and that is the &lt;code&gt;index.html&lt;/code&gt;. This is a normal Html page which is a single page Html, in other words, we are not going to add more Html files to this project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"utf-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"icon"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"%PUBLIC_URL%/favicon.ico"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"theme-color"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"#000000"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt;
      &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"description"&lt;/span&gt;
      &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"Web site created using create-react-app"&lt;/span&gt;
    &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"apple-touch-icon"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"%PUBLIC_URL%/logo192.png"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"manifest"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"%PUBLIC_URL%/manifest.json"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;React App&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;noscript&amp;gt;&lt;/span&gt;You need to enable JavaScript to run this app.&lt;span class="nt"&gt;&amp;lt;/noscript&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"root"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: I have deleted the comments so the file will look a bit cleaner, as it is not that complex as it looks like.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you need to add any inputs, libraries like CSS, or meta tags you can do that here, in this file. Most important part about this file that you should remember is that &lt;code&gt;&amp;lt;div id="root"&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt; is where the React application is mounted.&lt;/p&gt;

&lt;p&gt;Another interesting place for us is the &lt;code&gt;src&lt;/code&gt; folder. When we open our &lt;code&gt;src&lt;/code&gt; folder we can see a couple of files here, these files are our React application. The most important file here is the &lt;code&gt;index.js&lt;/code&gt;. Let's see how does it look:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;ReactDOM&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-dom&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./index.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;serviceWorker&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./serviceWorker&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;ReactDOM&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="c1"&gt;// If you want your app to work offline and load faster, you can change&lt;/span&gt;
&lt;span class="c1"&gt;// unregister() to register() below. Note this comes with some pitfalls.&lt;/span&gt;
&lt;span class="c1"&gt;// Learn more about service workers: https://bit.ly/CRA-PWA&lt;/span&gt;
&lt;span class="nx"&gt;serviceWorker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;unregister&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Here the &lt;code&gt;ReactDOM.render(&amp;lt;App /&amp;gt;, document.getElementById('root'));&lt;/code&gt; method renders our React application. As the first argument we have &lt;code&gt;&amp;lt;App /&amp;gt;&lt;/code&gt; component (we will look into React components in depth later, for now, you can think of it like some element) which was imported at the top of our file. The second argument is where we get access to the root element in our DOM, in the Html file, which we saw before in the public folder.&lt;/p&gt;

&lt;p&gt;Now let's open the &lt;code&gt;App.js&lt;/code&gt; file, our only ReactJS component for now.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;logo&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./logo.svg&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"App"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;header&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"App-header"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;logo&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"App-logo"&lt;/span&gt; &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"logo"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          Edit &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;src/App.js&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;code&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; and save to reload.
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;
          &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"App-link"&lt;/span&gt;
          &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"https://reactjs.org"&lt;/span&gt;
          &lt;span class="na"&gt;target&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"_blank"&lt;/span&gt;
          &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"noopener noreferrer"&lt;/span&gt;
        &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          Learn React
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;header&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Here we see JSX code (we will see later what it is), for now, we will remove all of the content in the wrapping div, also remove the logo import at the top and we will add h1 tag just for testing purpose with text inside it: Hello, World!, and then we will save it!.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./App.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"App"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hello, World!&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;em&gt;App.js&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Because we have &lt;code&gt;npm start&lt;/code&gt; command running, this will automatically trigger recompilation, and will also automatically reload your page (localhost:3000), which now you will see: Hello, World, instead of the old content. We can also remove the &lt;code&gt;logo.svg&lt;/code&gt; file as we no longer needed. Lastly, let's see the two CSS files available, In the &lt;code&gt;App.css&lt;/code&gt; we will delete everything but the first &lt;code&gt;.App&lt;/code&gt; class.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&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;&lt;em&gt;App.css&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The rest of the files are the &lt;code&gt;serviceWorker.js&lt;/code&gt; which is related to the progressive web app, and some files related to unit testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Part Overview
&lt;/h2&gt;

&lt;p&gt;In this part we have seen how we can create React application from scratch, also we have seen the project structure of newly created React application, and at the end, we have tweaked some of the components. &lt;/p&gt;

&lt;p&gt;The code from the course is available on GitHub: &lt;a href="https://github.com/AleksandarVasilevski/create-react-app-from-scratch"&gt;&lt;strong&gt;Create React App From Scratch&lt;/strong&gt;&lt;/a&gt; on the branch: 01-setting-up.&lt;/p&gt;

&lt;p&gt;Next part: &lt;a href="https://www.codespot.org/create-react-app-from-scratch-part-2/"&gt;Create React App From Scratch Part 2: Into Components&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>beginners</category>
    </item>
    <item>
      <title>33 Best Materials to Learn Software Development in 2020</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Thu, 28 Nov 2019 22:42:33 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/33-best-materials-to-learn-software-development-in-2020-20gp</link>
      <guid>https://dev.to/vasilevskialeks/33-best-materials-to-learn-software-development-in-2020-20gp</guid>
      <description>&lt;p&gt;This is a preview of my original post cross-posted from my &lt;a href="https://www.codespot.org/materials-to-learn-software-development/"&gt;&lt;strong&gt;website's blog&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Clean Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BsFgHbHa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images-na.ssl-images-amazon.com/images/I/515iEcDr1GL._SX258_BO1%2C204%2C203%2C200_.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BsFgHbHa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images-na.ssl-images-amazon.com/images/I/515iEcDr1GL._SX258_BO1%2C204%2C203%2C200_.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clean Code by Robert C. Martin (Uncle Bob) is one of the best books for software developers, it is a must-read book. Clean Code like its name says it is focused on how to write clean and good code it is focused on important things in software development like naming, functions, formatting, comments and error handling. It is an evergreen book and every programmer must have it.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Introduction to Algorithms
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WY8uTgd6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images-na.ssl-images-amazon.com/images/I/51rPLfOvqxL._SX376_BO1%2C204%2C203%2C200_.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WY8uTgd6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://images-na.ssl-images-amazon.com/images/I/51rPLfOvqxL._SX376_BO1%2C204%2C203%2C200_.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Introduction to Algorithms, 3rd Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, is another great book, this book has been widely used as the textbook for algorithms courses at many universities. For software and web developers without Computer Science degree learning algorithms can be one of the most beneficial topics in solving problems, even if you have a CS degree it is a great book to have it under your belt. &lt;/p&gt;

&lt;h2&gt;
  
  
  3. MIT OpenCourseWare
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3h0WUb60--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/c/c9/Ocwhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3h0WUb60--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://upload.wikimedia.org/wikipedia/commons/c/c9/Ocwhp.png" alt="mit-open-course-ware"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MIT OpenCourseWare (OCW) is one of the best courses for learning software development out there, they are great especially if you don't have a Computer Science degree. There are video courses from Introduction to Computer Science and Programming, Introduction to Algorithms, etc. The best think about MIT OCW is that it is free and available for everyone.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCEBb1b_L6zDS3xTUrIALZOw"&gt;&lt;strong&gt;MIT OpenCourseWare YouTube&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. HackerRank
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nXlh3l0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.hackerrank.com/wp-content/uploads/2019/07/hackerrank_share-image_0_default_20190722.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nXlh3l0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.hackerrank.com/wp-content/uploads/2019/07/hackerrank_share-image_0_default_20190722.png" alt="hacker-rank"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HackerRank is a website that is focused on learning and competitive programming challenges that can be solved in a variety of programming languages (including Java, C++, PHP, Python, SQL, JavaScript, etc). HackerRank offers programmers to submits a solution to a programming challenge, their submission is given a score on the accuracy of their output. Programmers are then ranked on the HackerRank leaderboard and earn badges based on their results to drive competition among coders. HackerRank is free for coders to use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.hackerrank.com/"&gt;&lt;strong&gt;https://www.hackerrank.com/&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. Design Patterns: Elements of Reusable Object-Oriented Software
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OgPcz7Vc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://prodimage.images-bn.com/pimages/9780201633610_p0_v3_s550x406.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OgPcz7Vc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://prodimage.images-bn.com/pimages/9780201633610_p0_v3_s550x406.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, also known as The Gang of Four is one of the greatest books about object-oriented design theory and practice with a very high influence in the field of software development. The book is divided into two parts in the first part it is exploring the capabilities and pitfalls of object-oriented programming and in the second part describing 23 classic software design patterns. The Gang of Four is a must-read book, especially for Object-Oriented Programming.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Traversy Media
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0KOPfnnl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vtzl6l3z6d1bmdfo0wie.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0KOPfnnl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vtzl6l3z6d1bmdfo0wie.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Traversy Media by Brad Traversy is a YouTube channel mostly focused on web development. The Video courses are great, very good and professionally explained and in-deep, the courses are especially good for beginners. The video course materials by Traversy Media are mostly free.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/user/TechGuyWeb"&gt;&lt;strong&gt;Traversy Media YouTube&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  7. Academind
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M3QN_nwJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/87k1vpc8d4rzojsb2ilh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M3QN_nwJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/87k1vpc8d4rzojsb2ilh.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another great YouTube channel for learning web development is Academind. There are a lot of available tutorials and courses that are very good explained. Some of the tutorials are free on the YouTube channel and some of them you can find it on Udemy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCSJbGtTlrDami-tDGPUV9-w/featured"&gt;&lt;strong&gt;Academind YouTube&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  8. The C Programming Language
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dKfSaIpP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.edutechlearners.com/wp-content/uploads/2017/08/The-C-Programming-Language-by-Kernighan-Ritchie-PDF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dKfSaIpP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.edutechlearners.com/wp-content/uploads/2017/08/The-C-Programming-Language-by-Kernighan-Ritchie-PDF.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The C Programming Language by Brian Kernighan and Dennis Ritchie sometimes termed K&amp;amp;R, after its authors' initials, which also designed and implemented the C language, as well as co-designing the Unix operating system. This book is regarded by many to be the authoritative reference on C programming language and with it, you will learn C programming language and also you will see how to program on the lower level which is very important for every software developer. &lt;/p&gt;

&lt;p&gt;You can read the full post with all the links and resources and find the 25 more tools on my &lt;a href="https://www.codespot.org/materials-to-learn-software-development/"&gt;&lt;strong&gt;website's blog&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How To Build A Blog With Gatsby and Netlify</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Sun, 17 Nov 2019 17:14:40 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/how-to-build-a-blog-with-gatsby-and-netlify-kk1</link>
      <guid>https://dev.to/vasilevskialeks/how-to-build-a-blog-with-gatsby-and-netlify-kk1</guid>
      <description>&lt;p&gt;This is a preview of my original post cross-posted from my &lt;a href="https://www.codespot.org/how-to-build-a-blog-with-gatsby-and-netlify/" rel="noopener noreferrer"&gt;website's blog&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Gatsby js
&lt;/h2&gt;

&lt;p&gt;To build a blog today has become even more easy with the new &lt;a href="https://jamstack.org/" rel="noopener noreferrer"&gt;&lt;strong&gt;JAM Stack&lt;/strong&gt;&lt;/a&gt; (JavaScript, API, and Markup). JAM Stack stands for&lt;br&gt;
&lt;strong&gt;A modern architecture - Create fast and secure sites and dynamic apps with JavaScript, APIs, and prerendered Markup, served without web servers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gatsby is a static site generator that is built on ReactJS.&lt;/strong&gt; In its simplest definition, a static website is a group of HTML pages, which does not pull any data from a database when a viewer visits it. A static site looks the same for every visitor. Static sites are faster to load too, as the server sends the same response to every visitor. However, you can not customize content for visitors. Since Gatsby builds on top of React, you get all the benefits of React such as its performance, components, JSX, React library ecosystem and a large community. &lt;a href="https://www.gatsbyjs.org/" rel="noopener noreferrer"&gt;&lt;em&gt;Gatsby Documentation&lt;/em&gt;&lt;/a&gt; is also very well written so you should not have any problems.&lt;/p&gt;

&lt;p&gt;For many static websites, you will need to use external data sources during the build process. Gatsby provides support for many forms of data, including CMSs like WordPress, APIs, and Markdown. To access this data, Gatsby uses GraphQL.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsgnsb05l2vhpswkvs7we.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsgnsb05l2vhpswkvs7we.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Gatsby js Schema&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you know GraphQL, accessing data from Markdown using Gatsby feels easy. If GraphQL is new to you, it does add yet another thing to learn, however, the &lt;a href="https://www.gatsbyjs.org/docs/querying-with-graphql" rel="noopener noreferrer"&gt;&lt;em&gt;documentation&lt;/em&gt;&lt;/a&gt; on using GraphQL with Gatsby has a lot of information.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: GraphQL is a query language.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Building a Blog With Gatsby js
&lt;/h2&gt;

&lt;p&gt;To create a blog with gatsby js, we need to do a couple of steps. Let's see in the example below.&lt;/p&gt;
&lt;h3&gt;
  
  
  Install the Gatsby CLI
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; gatsby-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Create a new site
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gatsby new gatsby-site
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Change directories into site folder
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;gatsby-site
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Start the development server
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gatsby develop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;After the four steps, your gatsby site will be ready, you can access the gatsby development environment at &lt;code&gt;localhost:8000&lt;/code&gt; by default. You can edit JavaScript pages in the &lt;code&gt;src/pages&lt;/code&gt; and the changes will be reloaded automatically in the browser.&lt;/p&gt;
&lt;h3&gt;
  
  
  Create a production build
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gatsby build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;With the build command, Gatsby will perform production build for your site, which in other words means generating static HTML pages.&lt;/p&gt;
&lt;h3&gt;
  
  
  Serve the production build locally
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gatsby serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Lastly, with the shell command, Gatsby will start local HTML server for testing your build site&lt;/p&gt;
&lt;h3&gt;
  
  
  Gatsby project structure
&lt;/h3&gt;

&lt;p&gt;With the Gatsby site installed you will get the default project structure, which is very simple with a couple of important config files to remember.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/.cach&lt;/span&gt;&lt;span class="err"&gt;e
&lt;/span&gt;&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/plugin&lt;/span&gt;&lt;span class="err"&gt;s
&lt;/span&gt;&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/publi&lt;/span&gt;&lt;span class="err"&gt;c
&lt;/span&gt;&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/sr&lt;/span&gt;&lt;span class="err"&gt;c
&lt;/span&gt;    &lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/page&lt;/span&gt;&lt;span class="err"&gt;s
&lt;/span&gt;    &lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/template&lt;/span&gt;&lt;span class="err"&gt;s
&lt;/span&gt;    &lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="nx"&gt;html&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;
&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="sr"&gt;/stati&lt;/span&gt;&lt;span class="err"&gt;c
&lt;/span&gt;&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;
&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&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;js&lt;/span&gt;
&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;ssr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;
&lt;span class="o"&gt;|--&lt;/span&gt; &lt;span class="nx"&gt;gatsby&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;browser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;js&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Gatsby js project structure&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are four important files for gatsby site:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;gatsby-config.js&lt;/strong&gt; - configure options for Gatsby with metadata like title, description, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;gatsby-node.js&lt;/strong&gt; - Gatsby Node.js API for customizing the default settings about the build process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;gatsby-browser.js&lt;/strong&gt; - Gatsby browser API for customizing the default settings for the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;gatsby-ssr.js&lt;/strong&gt; - Gatsby server-side rendering API for customizing the settings affecting server-side rendering.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can read the rest of the post on my &lt;a href="https://www.codespot.org/how-to-build-a-blog-with-gatsby-and-netlify/" rel="noopener noreferrer"&gt;&lt;strong&gt;website's blog&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>gatsby</category>
      <category>node</category>
    </item>
    <item>
      <title>12 Best Online Tools for Web Developers</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Mon, 11 Nov 2019 18:38:38 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/12-best-online-tools-for-web-developers-22i0</link>
      <guid>https://dev.to/vasilevskialeks/12-best-online-tools-for-web-developers-22i0</guid>
      <description>&lt;p&gt;This is a preview of my original post cross-posted from my &lt;a href="https://www.codespot.org/12-best-online-tools-for-web-developers/"&gt;website's blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are a large number of online tools out there. This article is aimed to help developers in the search to find the best tools to make everyday developing experience better. 12 web tools are listed below for new and experienced developers.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://stackoverflow.com/"&gt;1. Stack Overflow&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bIQ0ImeI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/163p3ejv8g8ys21h8ect.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bIQ0ImeI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/163p3ejv8g8ys21h8ect.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stack Overflow is a question and answer web site for developers. It features questions and answers on topics in computer programming. Stack Overflow is the right hand of every professional and enthusiast software developer, with its huge community of developers it is the number one tool for solving problems and gaining knowledge. Stack Overflow is free to use, just be sure first to check if the answer is already there before you ask one or you will get some negative votes.&lt;/p&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://fonts.google.com/"&gt;2. Google Fonts&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hz5Z_XWF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ikaanm9chzmc9b6qsz0t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hz5Z_XWF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ikaanm9chzmc9b6qsz0t.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Fonts is all you need to find and load a font for your web site. It has a wide range of free fonts and it is very easy for use, in a couple of steps you can find your favorite font, select it, and copy it to your CSS styles.&lt;/p&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://developers.google.com/web/tools/chrome-devtools"&gt;3. Chrome Developer Tools&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---S_Jjs_S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7x1lfwa8lpxd8r7ifqw5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---S_Jjs_S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/7x1lfwa8lpxd8r7ifqw5.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chrome Developer Tools offer a wide range of tools to web developers for testing and debugging their code, from editing HTML and CSS, to writing JavaScript code in real-time. Chrome Developer Tools come as browser add-ons in web browsers, and it is not hard to get started.&lt;/p&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://https://github.com/"&gt;4. GitHub&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5IDAxmjl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hmt897q1gucty1cxprw0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5IDAxmjl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hmt897q1gucty1cxprw0.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every developer nightmare, when you’re working on a project feature and you mess up with your code. Say welcome to version control systems or specifically, GitHub.&lt;/p&gt;





&lt;h2&gt;
  
  
  &lt;a href="https://jsfiddle.net/"&gt;5. JSFiddle&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oxC_bnEN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ud4hay95kxx8pkwis4ap.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oxC_bnEN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ud4hay95kxx8pkwis4ap.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With JSFiddle you can add JavaScript alone or in combination with HTML and CSS and render the code in the output window, There is also an option to save the code or send to other people. With JSFiddle, you can inject JavaScript and CSS from other web sites and load it in jQuery. It is not hard to get started, try it.&lt;/p&gt;



&lt;h2&gt;
  
  
  &lt;a href="https://jsonlint.com/"&gt;6. JSONLint&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mWUf9IYS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/i07aft5rr77i6nr7hpt5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mWUf9IYS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/i07aft5rr77i6nr7hpt5.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JSONLint is a great tool for debugging JSON, it lint flags if you’ve missed something in the syntax. JSONLint is a great tool for working with big JSON formats, and it is easy to get started.&lt;/p&gt;

&lt;p&gt;You can read the full post and find the 6 more tools on my &lt;a href="https://www.codespot.org/12-best-online-tools-for-web-developers/"&gt;website's blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>php</category>
      <category>react</category>
    </item>
    <item>
      <title>Token vs Session Authentication</title>
      <dc:creator>Aleksandar Vasilevsk</dc:creator>
      <pubDate>Wed, 09 Oct 2019 07:52:05 +0000</pubDate>
      <link>https://dev.to/vasilevskialeks/token-vs-session-authentication-56ed</link>
      <guid>https://dev.to/vasilevskialeks/token-vs-session-authentication-56ed</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.codespot.org" rel="noopener noreferrer"&gt;https://www.codespot.org&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTP (HyperText Transfer Protocol)
&lt;/h2&gt;

&lt;p&gt;HTTP is a protocol for communication between the client and the server. HTTP is stateless, which means each request doesn't know of any previous actions. For example, when a user logs in, and then navigate through the app, the server will not know that we just logged in without session or token authentication. &lt;/p&gt;



&lt;h2&gt;
  
  
  Session Authentication
&lt;/h2&gt;

&lt;p&gt;In session authentication, the server is responsible for creating a session for the particular user when the user log's in, after that the id of the session is stored in a cookie on the user browser. For every request sent by the user, the cookie will be sent too, where the server can compare the session id from the cookie with the session information stored on the server so the user identity is verified.&lt;/p&gt;



&lt;h2&gt;
  
  
  Token Authentication
&lt;/h2&gt;

&lt;p&gt;In token authentication, the server creates a JSON Web Token (JWT) and sends the token to the client. The JSON Web Token usually is stored in a local storage or in the cookie, and it is included in every request made by the user. The server will validate the JSON Web Token. The JSON Web Token authentication is a more modern approach used in newer web applications and for mobile devices. The user state is not stored on the server with this approach instead it is stored in the token. &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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frdsz6dac8pwthhoatf0t.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frdsz6dac8pwthhoatf0t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Scalability
&lt;/h2&gt;

&lt;p&gt;Generally, the JSON Web Token scales much better with the size of the application because it is stateless, there is no need user information to be stored, on the other side sessions can use a lot of the server resources if the application has a lot of traffic.&lt;/p&gt;



&lt;h2&gt;
  
  
  Security
&lt;/h2&gt;

&lt;p&gt;The JSON Web Token usually is either stored in local storage or cookies, and JavaScript has the access to the storage, this simply means that JSON Web Tokens might be vulnerable to XSS (Cross-site Scripting), that's why very sensitive data should not be stored in the Local Storage. I case when the JSON Web Tokens are stored in the cookies are vulnerable to CSRF (Cross-site Request Forgery) attacks. One way to prevent the CRSF attack is to be sure that the cookie is accessible by only your domain. The JWT also should be with short expiration times and HTTPS/SSL should be used for safe client and server transmission.&lt;/p&gt;



&lt;h2&gt;
  
  
  Which Is Better?
&lt;/h2&gt;

&lt;p&gt;While sessions and JSON Web Tokens are both viable options, in some situations one is better to be used over the other. For smaller and medium websites, when we got just user login session authentication is usually good. For larger web sites and applications, when we need to handle a lot of requests, JSON Web Token is much better because of scaling.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>security</category>
      <category>javascript</category>
      <category>token</category>
    </item>
  </channel>
</rss>
