<?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: nat_souljah</title>
    <description>The latest articles on DEV Community by nat_souljah (@sodjanathan).</description>
    <link>https://dev.to/sodjanathan</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%2F104294%2Fc7d97942-ed29-4bc3-9c45-477a9466c719.jpg</url>
      <title>DEV Community: nat_souljah</title>
      <link>https://dev.to/sodjanathan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sodjanathan"/>
    <language>en</language>
    <item>
      <title>React Hooks like am 5-ish... (useRef with a pinch of useState)</title>
      <dc:creator>nat_souljah</dc:creator>
      <pubDate>Sun, 06 Feb 2022 14:28:03 +0000</pubDate>
      <link>https://dev.to/sodjanathan/react-hooks-like-am-5-ish-useref-with-a-pinch-of-usestate-3gi3</link>
      <guid>https://dev.to/sodjanathan/react-hooks-like-am-5-ish-useref-with-a-pinch-of-usestate-3gi3</guid>
      <description>&lt;p&gt;We all know the &lt;strong&gt;&lt;em&gt;"explain it like I am 5"&lt;/em&gt;&lt;/strong&gt; test which seeks to determine that the taker of the challenge can truly express the topic to its very basics such that a five-year-old can make sense of it. This helps to ascertain whether or not that a line of thought is truly understood. That's what I seek to do in this series, by breaking down react hooks that I use quite often, this will help me in the process to truly understand what these hooks are about and most importantly use-cases to use them, further improving my React knowledge and perhaps yours too as you read.&lt;/p&gt;

&lt;h1&gt;
  
  
  The useRef hook:
&lt;/h1&gt;

&lt;p&gt;The useRef hook in the simplest of terms is a lot like the&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
 DOM method (assuming said 5-year-old already knows the document model and its related methods), whereas if the DOM is a tree, useRef allows you to choose a branch of your choice or a leaf and do whatever you want with it, eg. take its value and add some text to it, measure the height etc.

Using

 ```querySelector()```

 vs

 ```useRef()```

 same scenario

With querySelector in Vanilla JS


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;// HTML&lt;/p&gt;

&lt;p&gt;// JS&lt;br&gt;
const textValue =  document.querySelector('.someValue').value&lt;br&gt;
console.log(textValue) // returns value "abc"&lt;/p&gt;

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


With useRef in React


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;const UseRefBasics = () =&amp;gt; {&lt;br&gt;
  const refContainer = useRef(null)&lt;br&gt;
  const handleSubmit = (e) =&amp;gt; {&lt;br&gt;
    e.preventDefault()&lt;br&gt;
    console.log(refContainer.current.value) // value "abc" will be returned&lt;br&gt;
  }&lt;br&gt;
  return (&lt;br&gt;
    &amp;lt;&amp;gt;&lt;br&gt;
      &lt;/p&gt;
&lt;br&gt;
        &lt;br&gt;
          &lt;br&gt;
          submit&lt;br&gt;
        &lt;br&gt;
      &lt;br&gt;
    &amp;lt;/&amp;gt;&lt;br&gt;
  )&lt;br&gt;
};
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;


# What about useState ?
The useState hook in my opinion is like declaring a variable in react, although you can still declare variables in react, said variables cannot trigger a state change, which is what react is all about. Therefore, by declaring useState, you are telling react to hold a value and watch it for changes, also the useState hook returns the value you initialized when you called useState and a function to change that value.



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;// React.useState Hook Example&lt;/p&gt;

&lt;p&gt;const someComponent = () =&amp;gt; {&lt;br&gt;
  // 0 is the initial value in the count, a value that&lt;br&gt;
  // will cause a rerender when updated by calling&lt;br&gt;
  // setState, in this case: setCount.&lt;/p&gt;

&lt;p&gt;const [count, setCount] = React.useState(0);&lt;/p&gt;


&lt;p&gt;return &lt;/p&gt;Some content rendered.;&lt;br&gt;&lt;br&gt;
};

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


Refer to the useRef example earlier to compare

## The difference: 
useRef does not trigger a rerender of the react elements, however, it can hold literally any value, even a DOM element or its parent, using useRef together with useEffect can result in a rerender but upon further research, callback ref is more appropriate to the task, here's a source for reference:  [using useRef inside useEffect](https://medium.com/@teh_builder/ref-objects-inside-useeffect-hooks-eb7c15198780) 


# What can you do with useRef ?

Since useRef() is the equivalent of the DOM querySelector (IMO), you can use it to get a  parent div element, measure its height or width, or any properties available.

You can also use it to grab a textInput element, and autofocus on it as soon onLoad (with useEffect()).

# Understood? perhaps a bit... or more?
Anyways I heavily doubt there's a five-year-old prodigy that is writing React, who knows, there might be, I don't know how well this explanation has worked out for you, but in the course of this write up I have had to refer to the DOCS and googled several articles to make this easy on myself. In effect, I have better understood a hook I barely use and might use more often. For further understanding, please visit the docs, which might be jargon-heavy, but more accurate in terminology and detail.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
    <item>
      <title>React Hooks like am 5-ish: useContext with a pinch of Composition...</title>
      <dc:creator>nat_souljah</dc:creator>
      <pubDate>Tue, 01 Feb 2022 22:21:46 +0000</pubDate>
      <link>https://dev.to/sodjanathan/react-hooks-like-am-5-ish-usecontext-with-a-pinch-of-composition-431h</link>
      <guid>https://dev.to/sodjanathan/react-hooks-like-am-5-ish-usecontext-with-a-pinch-of-composition-431h</guid>
      <description>&lt;p&gt;I am fully convinced that if you are reading this you are definitely not a toddler who writes React, perhaps you are reading this because you have hit "the wall" and seek an escape, the kind of relief that simple and precise information can give. I am no expert but I have hit this wall countless times and that's why I put together this information as simple as I can, just so the future me that hits it again will have a reference to freshen up, and perhaps you can too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Straight to the chase:
&lt;/h2&gt;

&lt;p&gt;IMO, React sought to solve one major problem, to be a great option as the View of the "MVC" architecture, a problem that I haven't necessarily experienced because I don't know what scope "large applications" fall into, is it 5000+ lines of code, youtube level codebases? perhaps... but what I do know is when you are building very complex web applications with several parts that are likely to be reused repeatedly, you start to wish that you didn't have to copy and paste code so many times (that's what I did at one internship). You begin to wish that you wrote something once and it could be reused many times, that's what components are for. React solves that problem and more... &lt;/p&gt;

&lt;p&gt;Some parts of a website are going to hold static data, data that won't change (if so you probably could get away with any good CMS + some templates), and others will continuously display different information depending on what "kind of data" is assigned. This is where state management comes in.&lt;/p&gt;

&lt;p&gt;The React core provides two known ways of representing states in a React component, the previously discussed useState hook and the famous "Context API".  &lt;a href="https://nates.hashnode.dev/react-hooks-like-am-5-ish-useref-with-a-pinch-of-usestate"&gt;useState hook&lt;/a&gt; and the famous "Context API". &lt;/p&gt;

&lt;h2&gt;
  
  
  useState and the Context API
&lt;/h2&gt;

&lt;p&gt;Class components in React have state (state is simply the current dynamic value of the component) built-in,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Example stateful class component
class Clock extends React.Component {
  constructor(props) {
    super(props);
    this.state = {date: new Date()}; // state
  }

  render() {
    return (
      &amp;lt;div&amp;gt;
        &amp;lt;h1&amp;gt;Hello, world!&amp;lt;/h1&amp;gt;
        &amp;lt;h2&amp;gt;It is {this.state.date.toLocaleTimeString()}.&amp;lt;/h2&amp;gt;
      &amp;lt;/div&amp;gt;
    );
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;functional components used to be used just for presentation before the release of hooks made it possible to add state.&lt;/p&gt;

&lt;p&gt;That's simple enough, right?&lt;br&gt;
What if you need to track several values at once whilst passing them to other components that require the same data to be relevant, that's a common use case.&lt;/p&gt;

&lt;p&gt;For example, you have managed to build an amazon eCommerce clone where a user can sign in... you can track the user's login status by using useState and then passing the value through all the child components to whichever component that actually needs the user's email to be displayed, this is known as "prop drilling", and aptly named it is.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Example stateful function component
function Clock() {
 const [dateState, setDate] = React.useState({date: new Date()})
    return (
      &amp;lt;div&amp;gt;
        &amp;lt;h1&amp;gt;Hello, world!&amp;lt;/h1&amp;gt;
        &amp;lt;h2&amp;gt;It is {dateState.date.toLocaleTimeString()}.&amp;lt;/h2&amp;gt;
      &amp;lt;/div&amp;gt;
    );
  }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;useState is "local" to the functional component and therefore, the only way you will be able to get the data to the child component will be through "prop drilling" which becomes unbearable after about three levels deep. How do you get around this: Most will quickly call on state management tools or perhaps composition, however it appears composition is less used as compared to state management.&lt;/p&gt;

&lt;h2&gt;
  
  
  To Context or To Compose:
&lt;/h2&gt;

&lt;p&gt;The useContext hook in React solves the problem (prop drilling) easily, but the react docs provide a subtle caution, that it will introduce additional complexity to your code, whilst making your components less reusable ( &lt;a href="https://reactjs.org/docs/context.html#before-you-use-context"&gt;before you use context&lt;/a&gt; ), less reusable in the sense that, once a component is dependent on context to have full functionality, it cannot maintain same functionality outside of context, hence it's less usable, for this reason, they offer an alternative to consider before using context. Outside of the official React docs "Redux Toolkit/Redux" is also very popular as a state manager.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before Context, consider Composition:
&lt;/h2&gt;

&lt;p&gt;How do you use Composition to get past this issue, the react docs referenced in the previous paragraph highlight how but here's an example with code&lt;/p&gt;

&lt;p&gt;Prop Drilling:&lt;br&gt;
The user data is passed 4 levels deep into the component hierarchy to reach the component that actually needs it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Before implementing context
import React, { useState } from "react";

//* Main Parent Component
function App() {
  let [currentUser, setCurrentUser] = useState(null);
  return (
    &amp;lt;div
      className="App"
      style={{ display: "flex", flexDirection: "column", height: "100vh" }}&amp;gt;
      &amp;lt;div style={{ backgroundColor: "lightgray" }}&amp;gt;
        &amp;lt;Header /&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={{ flex: 1 }}&amp;gt;
        {currentUser ? (
// passing user as prop to Dashboard
          &amp;lt;Dashboard user={currentUser} /&amp;gt;
        ) : (
          &amp;lt;LoginScreen onLogin={() =&amp;gt; setCurrentUser({ name: "John Doe" })} /&amp;gt;
        )}
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={{ backgroundColor: "lightgray" }}&amp;gt;
        &amp;lt;Footer /&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

//* Children Components
function Header() {
  return &amp;lt;div&amp;gt;Header&amp;lt;/div&amp;gt;;
}

function LoginScreen({ onLogin }) {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Please login&amp;lt;/h3&amp;gt;
      &amp;lt;button onClick={onLogin}&amp;gt;Login&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function Dashboard({ user }) {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h2&amp;gt;The Dashboard&amp;lt;/h2&amp;gt;
      &amp;lt;DashboardNav /&amp;gt;
// Passing user prop to DashboardContent
      &amp;lt;DashboardContent user={user} /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function DashboardNav() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Dashboard Nav&amp;lt;/h3&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function DashboardContent({ user }) {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Dashboard Content&amp;lt;/h3&amp;gt;
// Passing user prop to WelcomeMessage
      &amp;lt;WelcomeMessage user={user} /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function WelcomeMessage({ user }) {
// Welcome message finally gets component,
// and this is prop drilling at it's worst.
  return &amp;lt;div&amp;gt;Welcome {user.name}&amp;lt;/div&amp;gt;;
}

function Footer() {
  return &amp;lt;div&amp;gt;Footer&amp;lt;/div&amp;gt;;
}
export default App;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After Context:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//* Main Parent Component
// initialising context
let Context = React.createContext();

function App() {
  let [currentUser, setCurrentUser] = useState(null);
  return (
// Context wraps around the main parent component, any child component within,
// has access to whatever value is in context.
    &amp;lt;Context.Provider value={{ currentUser }}&amp;gt;
      &amp;lt;div
        className="App"
        style={{ display: "flex", flexDirection: "column", height: "100vh" }}&amp;gt;
        &amp;lt;div style={{ backgroundColor: "lightgray" }}&amp;gt;
          &amp;lt;Header /&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div style={{ flex: 1 }}&amp;gt;
          {currentUser ? (
            &amp;lt;Dashboard /&amp;gt;
          ) : (
            &amp;lt;LoginScreen onLogin={() =&amp;gt; setCurrentUser({ name: "John Doe" })} /&amp;gt;
          )}
        &amp;lt;/div&amp;gt;
        &amp;lt;div style={{ backgroundColor: "lightgray" }}&amp;gt;
          &amp;lt;Footer /&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/Context.Provider&amp;gt;
  );
}

//* Children Components
function Header() {
  return &amp;lt;div&amp;gt;Header&amp;lt;/div&amp;gt;;
}

function LoginScreen({ onLogin }) {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Please login&amp;lt;/h3&amp;gt;
      &amp;lt;button onClick={onLogin}&amp;gt;Login&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function Dashboard() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h2&amp;gt;The Dashboard&amp;lt;/h2&amp;gt;
      &amp;lt;DashboardNav /&amp;gt;
      &amp;lt;DashboardContent /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function DashboardContent() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Dashboard Content&amp;lt;/h3&amp;gt;
      &amp;lt;WelcomeMessage /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

// Notice that there is no prop drilling...
// And the component that needs the prop is the one that gets it...
// However, this component's reuse is now dependent on context...

function WelcomeMessage() {
  let { currentUser } = React.useContext(Context);
  return &amp;lt;div&amp;gt;Welcome {currentUser.name}&amp;lt;/div&amp;gt;;
}

function DashboardNav() {
  return (
    &amp;lt;div&amp;gt;
      &amp;lt;h3&amp;gt;Dashboard Nav&amp;lt;/h3&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

function Footer() {
  return &amp;lt;div&amp;gt;Footer&amp;lt;/div&amp;gt;;
}
export default App;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Now to Composition
&lt;/h2&gt;

&lt;p&gt;Now that we have explored solving the problem with Context, let's take a look at using Composition to solve the same problem. Composition aims to maintain the reusability of the component whilst avoiding prop drilling.&lt;/p&gt;

&lt;p&gt;We will do this by making use of the children prop that's available to us in React. &lt;br&gt;
The children prop allows you to create "wrapper components", these components wrap take a component or components and render them/it.&lt;br&gt;
Observe the basic example below to understand the final implementation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function ComponentA ({children}) {
    return(
         {children}
  )
}

// the wrapper component
&amp;lt;ComponentA&amp;gt; 
// the child component
   &amp;lt;childofA/&amp;gt;  
&amp;lt;/ComponentA&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I hope this brief demo is OK for now, otherwise here's some expansion on the topic &lt;a href="https://reactjs.org/docs/composition-vs-inheritance.html"&gt;Composition and Inheritance&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now to the much-awaited solution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//* Main Parent Component

// Notice that we are no more using the context hook
function App() {
  let [currentUser, setCurrentUser] = useState(null);
  return (
    &amp;lt;div
      className="App"
      style={{ display: "flex", flexDirection: "column", height: "100vh" }}&amp;gt;
      &amp;lt;div style={{ backgroundColor: "lightgray" }}&amp;gt;
        &amp;lt;Header /&amp;gt;
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={{ flex: 1 }}&amp;gt;
        {currentUser ? (
          &amp;lt;Dashboard&amp;gt; // wrapper component
            &amp;lt;DashboardNav /&amp;gt; // wrapper component
            &amp;lt;DashboardContent&amp;gt; // wrapper component
// and we pass our prop, whilst escaping drilling, atleast three times.
              &amp;lt;WelcomeMessage user={currentUser} /&amp;gt; 
            &amp;lt;/DashboardContent&amp;gt;
          &amp;lt;/Dashboard&amp;gt;
        ) : (
          &amp;lt;LoginScreen onLogin={() =&amp;gt; setCurrentUser({ name: "John Doe" })} /&amp;gt;
        )}
      &amp;lt;/div&amp;gt;
      &amp;lt;div style={{ backgroundColor: "lightgray" }}&amp;gt;
        &amp;lt;Footer /&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Additional Useful Implementation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.digitalocean.com/community/tutorials/how-to-create-wrapper-components-in-react-with-props"&gt;How to create Wrapper components&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/composition-in-react-f02afe24bc46"&gt;Composition, alternative to prop drilling&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://javascript.plainenglish.io/component-composition-in-react-c66f1fd02b45"&gt;When and How to use Composition&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Additional References for further reading...
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://redux-toolkit.js.org/"&gt;More on Context and Composition from the DOCS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://redux-toolkit.js.org/"&gt;All about redux, a popular state management tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=3XaXKiXtNjw"&gt;React Composition Demo by Michael Jackson which this article is based on&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>Getting things done, the easy way...</title>
      <dc:creator>nat_souljah</dc:creator>
      <pubDate>Fri, 01 Jan 2021 07:27:29 +0000</pubDate>
      <link>https://dev.to/sodjanathan/getting-things-done-the-easy-way-4bp2</link>
      <guid>https://dev.to/sodjanathan/getting-things-done-the-easy-way-4bp2</guid>
      <description>&lt;p&gt;Got several tasks to finish and not even done with one yet?&lt;/p&gt;

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

&lt;p&gt;Photo by Magnet.me on Unsplash&lt;/p&gt;

&lt;p&gt;Do you sit for several unproductive hours only to leave the office with very little accomplished?&lt;br&gt;
Well, seems like I can be of help.&lt;br&gt;
Let me go straight to the point, perhaps you really need this information, so why waste your time (since you won’t be getting it back) and withhold this help any longer?&lt;/p&gt;

&lt;p&gt;Let me introduce you to a technique so simple yet so effective, a technique that can help you organise and get things done, even if you are a video game-loving, social media surfer like me. Ever heard of the Pomodoro technique? yeah, maybe not and that’s why you are probably here unless some programmers cryptic algorithm threw this article your way.&lt;/p&gt;

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

&lt;p&gt;Photo by Oladimeji Ajegbile on Unsplash&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s.[1] The technique uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. Each interval is known as a pomodoro, from the Italian word for ‘tomato’, after the tomato-shaped kitchen timer that Cirillo used as a university student.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The above is lifted straight from Wikipedia, why reinvent the wheel when you can just copy.&lt;br&gt;
Anyways, the Pomodoro technique encourages you to split your mammoth office task or notes into bite-sized chunks of time, so you can take one small step at a time to slowly finishing up the boring 88-line SQL Query or the long list of clients in the excel document that your boss gave you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally, The Hack!
&lt;/h2&gt;

&lt;p&gt;Dividing your tasks into several bits alone sounds like work enough to make you jump in and try getting work done straight away (work that you will probably inefficiently finish, that’s if you finish…)&lt;br&gt;
Therefore, do this instead, find a Pomodoro app in your app store, I personally recommend this one: &lt;a href="https://play.google.com/store/apps/details?id=com.superelement.pomodoro"&gt;https://play.google.com/store/apps/details?id=com.superelement.pomodoro&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Features:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Allows you to list the tasks like a to-do list, so you can check off the finished ones.&lt;/li&gt;
&lt;li&gt;You can set a custom duration for each session before breaks, you can do the same for breaks too.&lt;/li&gt;
&lt;li&gt;You can create Folders for similar tasks for organisation.&lt;/li&gt;
&lt;li&gt;This app is cross-platform and works on all the most popular platforms (Apple Ecosystem, Android and PC) and the data will sync across your devices.&lt;/li&gt;
&lt;li&gt;Another interesting feature is the “Focused Mode”, where the app will block access to apps that are likely to lure you away into the world of dawdling.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Using this app, I greatly improved my time management in the office, the short breaks I added in between Pomodoros also helped my stress, physically and mentally. Overall, I enjoy working more when I use this method. Highly recommend. Also, a major key of this method is to remain &lt;strong&gt;completely FOCUSED&lt;/strong&gt; on the task until it’s done or it’s break time. Utilise your break time to take a walk or something and come back refreshed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repeat cycle.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading …&lt;br&gt;
Feel free to leave any comments, and if you find this helpful, please share…&lt;br&gt;
&lt;a href="https://sodjanathan.medium.com/getting-things-done-the-easy-way-e59f31f6add8"&gt;Read on Medium&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>efficiency</category>
      <category>success</category>
      <category>selfhelp</category>
    </item>
  </channel>
</rss>
