<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Abdulrahman Ismael</title>
    <description>The latest articles on Forem by Abdulrahman Ismael (@raslan25).</description>
    <link>https://forem.com/raslan25</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%2F985906%2F8edc8e52-0ecd-446b-a220-4d91f960f1de.png</url>
      <title>Forem: Abdulrahman Ismael</title>
      <link>https://forem.com/raslan25</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/raslan25"/>
    <language>en</language>
    <item>
      <title>Unlocking the Power of React: Fresh Hooks to Expand Your Development Toolkit</title>
      <dc:creator>Abdulrahman Ismael</dc:creator>
      <pubDate>Wed, 04 Oct 2023 11:37:36 +0000</pubDate>
      <link>https://forem.com/raslan25/unlocking-the-power-of-react-fresh-hooks-to-expand-your-development-toolkit-40p0</link>
      <guid>https://forem.com/raslan25/unlocking-the-power-of-react-fresh-hooks-to-expand-your-development-toolkit-40p0</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jsf4m5ogxdryg2s877e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jsf4m5ogxdryg2s877e.png" alt="React hooks" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;React has introduced some new hooks that can make it easier to use React.&lt;br&gt;
We're going to discuss some of them today. Enjoy 😉&lt;/p&gt;




&lt;h2&gt;
  
  
  1. useId:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useId&lt;/code&gt; is a new release hook in React. It is used to generate unique IDs.&lt;/li&gt;
&lt;li&gt;It can help in many matters, especially with accessibility attributes in HTML Elements.&lt;/li&gt;
&lt;li&gt;Do not try to use &lt;code&gt;useId&lt;/code&gt; to generate keys in a list. Keys should be generated from the data itself.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useId } from 'react';

function generateUniqueKey() {
  const uniqueKey = useId();
  .
  .
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. useTransition:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;You may want to update the state of &lt;code&gt;useState&lt;/code&gt; hook without changing the UI, now you can do that using &lt;code&gt;useTransition&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In other words, &lt;code&gt;useTransition&lt;/code&gt; is used to mark some states as non-blocking transitions. which means updating states won't block the UI as if nothing changed and that might be useful in some situations.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;useTransition&lt;/code&gt; accepts no parameters. But it returns 2 things:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ispending&lt;/strong&gt;: which indicates whether there is a transition or not&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;transitionFn&lt;/strong&gt;: function  that is used to mark states as transitions by calling the set functions within its function parameter.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function CountComponent() {
  const [isPending, transitionFn] = useTransition();
  const [count, setCount] = useState(0);

  function markCountAsTransition(nextCount) {
    transitionFn(() =&amp;gt; {
      setCount(nextCount);
    });
  }
  .
  .
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. useDeferredValue
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useDeferredValue&lt;/code&gt; is used to delay showing the new value of state or prop in the UI when you change it.&lt;/li&gt;
&lt;li&gt;So, when you change the state, the UI still uses the old value, and the new value is updated in the background. Then, after any other re-renders happen, the UI will use the new value.&lt;/li&gt;
&lt;li&gt;It accepts state or prop that is displayed in the UI as a parameter and returns the deferred value, so make sure to use the deferred value instead of the original one to delay the display.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useState, useDeferredValue } from 'react';

function DeferValue() {
  const [state, setState] = useState(0);
  const deferredState = useDeferredValue(state);
  .
  .
  .

  return &amp;lt;div&amp;gt; {deferredState} &amp;lt;/div&amp;gt;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;These are some of the new introduced hooks, and they're the most significant ones for now. In the future, this article might be updated with any new hooks that are released.&lt;br&gt;
I hope you enjoyed and unleashed your knowledge today 😃&lt;/p&gt;

&lt;p&gt;Have a nice day 🌹&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The power of State Management in React.js</title>
      <dc:creator>Abdulrahman Ismael</dc:creator>
      <pubDate>Fri, 25 Aug 2023 21:55:32 +0000</pubDate>
      <link>https://forem.com/raslan25/the-power-of-state-management-in-reactjs-2483</link>
      <guid>https://forem.com/raslan25/the-power-of-state-management-in-reactjs-2483</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg13sbsvbacvdmjt6of6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg13sbsvbacvdmjt6of6s.png" alt="React.js" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hello again, and sorry for being late. I had some important tasks in the last few months, but today I am back with an important and exciting topic.&lt;br&gt;
Today we are going to talk about state management in React.js.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;One of the most important features of React is state management. It gives React the ability to remember the values even if the component is re-rendered.&lt;/li&gt;
&lt;li&gt;The states are split into local states, global states, server states, and URL states.
Local states are only managed in the current component and cannot be shared across multiple components; they can be managed by 'useReducer' or 'useState'.&lt;/li&gt;
&lt;li&gt;Global states can be shared across multiple components. For that, we can use the React Context API (which will be discussed in another article) or Third-party libraries.&lt;/li&gt;
&lt;li&gt;There are many ways to handle state in React, and we will discuss most of them today.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. UseState hook
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;'useState' is a built-in hook in React. Its main purpose is to store the state, and it has the ability to remember or change it in every render.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: state is a normal value but controlled by React&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;'useState' accepts one argument: the state, and returns two values in an array: the variable that will store the value and the method that can be used to change or set the value (that's why we call it the setter method).&lt;/li&gt;
&lt;li&gt;The convention for naming the setter method is to use 'set' at the beginning, followed by the variable name.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {useState} from 'react';

function stateManagement() {
  const [variable, setVariable] = useState('any value');
  .
  .
  .
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. useReducer hook
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Another valuable hook in React is 'useReducer'. It is similar to useState', but with more features.&lt;/li&gt;
&lt;li&gt;If you want to manage the state based on conditions or complex logic, then 'useReducer' is the appropriate way.&lt;/li&gt;
&lt;li&gt;It accepts two arguments: the reducer function and the initial state, and returns the variable that holds the state and the dispatch method.&lt;/li&gt;
&lt;li&gt;The reducer function contains the logic that changes the state, and it has two parameters: the state and the action (the action is passed to the dispatch method in order to connect the reducer and dispatch methods, which gives us the ability to change the state based on the particular logic).&lt;/li&gt;
&lt;li&gt;The dispatch method is used to change the state based on its argument, which is the action (the action is usually an object that has some helpful properties in the logic)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: developers usually use 'type' property in the action to describe the type of changing in the state&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;An example from w3schools:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useReducer } from "react";

the initial state
const initialTodos = [
  {
    id: 1,
    title: "\"Todo 1\","
    complete: false,
  },
  {
    id: 2,
    title: "\"Todo 2\","
    complete: false,
  },
];

// the reducer method
const reducer = (state, action) =&amp;gt; {
  switch (action.type) {
    case "COMPLETE":
      return state.map((todo) =&amp;gt; {
        if (todo.id === action.id) {
          return { ...todo, complete: !todo.complete };
        } else {
          return todo;
        }
      });
    default:
      return state;
  }
};

function Todos() {
  // calling useReducer
  const [todos, dispatch] = useReducer(reducer, initialTodos);

  const handleComplete = (todo) =&amp;gt; {
    dispatch({ type: "COMPLETE", id: todo.id });
  };

  return (
    &amp;lt;&amp;gt;
      {todos.map((todo) =&amp;gt; (
        &amp;lt;div key={todo.id}&amp;gt;
          &amp;lt;label&amp;gt;
            &amp;lt;input
              type="checkbox"
              checked={todo.complete}
              onChange={() =&amp;gt; handleComplete(todo)}
            /&amp;gt;
            {todo.title}
          &amp;lt;/label&amp;gt;
        &amp;lt;/div&amp;gt;
      ))}
    &amp;lt;/&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Libraries
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;There are third-party libraries used to manage global states.&lt;/li&gt;
&lt;li&gt;For example, we have libraries like Redux, Recoil, and Zustand.&lt;/li&gt;
&lt;li&gt;I recommend the Redux library. You should learn the Redux toolkit first, then move on to using Redux in React using 'React-Redux'.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;We have many ways to manage states, and each has its own uses. So, make sure to know what type of state you need to manage and how to manage it, then choose the appropriate way to do that.&lt;/li&gt;
&lt;li&gt;There are server states (which manage the data coming from the server) and URL states (which are the data in URLs that existed in the pathname and query parameters), we can discuss them in another topic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for Reading and I hope you enjoyed today's topic and learned something, Goodbye ❤️.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Revolutionize Your CSS Skills with These 8 Cutting-Edge CSS Features</title>
      <dc:creator>Abdulrahman Ismael</dc:creator>
      <pubDate>Wed, 22 Mar 2023 21:09:55 +0000</pubDate>
      <link>https://forem.com/raslan25/revolutionize-your-css-skills-with-these-8-cutting-edge-css-features-1gil</link>
      <guid>https://forem.com/raslan25/revolutionize-your-css-skills-with-these-8-cutting-edge-css-features-1gil</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Having all the CSS concepts and remembering them is quite difficult, so here I will go over the most important CSS concepts that will take your CSS knowledge to the next level…&lt;/p&gt;




&lt;h2&gt;
  
  
  Now, get your pen and paper ready because we have some exciting new CSS features to unveil:
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1- “:empty” Pseudo-Class:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A new pseudo-class I came up with is “:empty”, which styles any element that contains no child nodes (child elements, text, etc.) so that you can fill up the element later with JavaScript which will remove those styles as the element is no longer empty.&lt;/li&gt;
&lt;li&gt;This is useful in a variety of situations, including the example we mentioned above.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p:empty{
  display: none;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;the element will not be displayed only if it is empty, otherwise, it will show up on the screen with its children.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2- “:target” Pseudo-Class:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Sometimes you want to make some links that move to someplace on the same page, and at that moment you need to make some “focus styling” on the place you are moving to, that’s why “:target” pseudo-class has existed…&lt;/li&gt;
&lt;li&gt;“:target” pseudo-class is used to style any element in the page that is targeted from some link on the same page
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section:target{
  outline: 2px solid #ff0000;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;3- “:only-child” | “:only-of-type” Pseudo-Classes:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;“:only-child” pseudo-class is used to style an element that is the only child in its parent element&lt;/li&gt;
&lt;li&gt;“:only-of-type” pseudo-class is used to style an element that is the only element of its type in its parent element.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML:
&amp;lt;section&amp;gt;
  &amp;lt;p class='paragraph'&amp;gt; Hello World &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;

CSS:
.paragraph:only-child {
  color: #666;
}
.paragraph:only-of-type {
  border: 1px solid #ff0000; 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;4- “:has()” Pseudo-Class:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Absolutely, It is one of the most powerful features that really changed CSS, you should understand how powerful this pseudo-class is.&lt;/li&gt;
&lt;li&gt;It is used to style any element but just if it has some child element in it.&lt;/li&gt;
&lt;li&gt;for instance, let’s say you have two “section” elements and one of them has “h1” element inside it. If you want to give the element that has the heading element inside it some special style, that can be done by giving the element some specific class or id or using JavaScript.&lt;/li&gt;
&lt;li&gt;but now using this new feature, that can be done in a few seconds.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML:
&amp;lt;section&amp;gt;
  &amp;lt;h1&amp;gt; Hello From Section 1 &amp;lt;/h1&amp;gt;
&amp;lt;/section&amp;gt;
&amp;lt;section&amp;gt;
  &amp;lt;p&amp;gt; Hello From Section 2 &amp;lt;/p&amp;gt;
&amp;lt;/section&amp;gt;

CSS:
section:has(h1) {
  border: 1px solid red;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Only the first section element that has the “h1” element inside it will have a red border.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;5- “:is()” Pseudo-Class:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;This feature will save you a lot of time, It is used to simplify grouping selectors, Its usages:&lt;/li&gt;
&lt;li&gt;grouping element selectors
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:is(h1,h2,h3,h4,h5,h6) {
  margin: 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;grouping pseudo-classes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;button:is(:hover, :focus) {
  border: 1px solid #555;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;6- inset property:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Save yourself some coding time with this shorthand property, which combines the (top, right, bottom, and left) properties into a single line. It’s a convenient way to streamline your code and make it more efficient.&lt;/li&gt;
&lt;li&gt;And if you’re looking to position an element absolutely and have it fill its parent container, look no further than this property. It’s the perfect solution for achieving a seamless, full-width design.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;section::after{
  position: absolute;
  inset: 0;

  /* Instead of */
  /* top: 0; */
  /* bottom: 0; */
  /* left: 0; */
  /* right: 0; */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ** 7- “vmax” unit:**
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;This versatile unit has many applications. For instance, if you want to create a pill-shaped element, simply apply a “border-radius” property with a value of “100vmax”. It’s that easy!
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div{
  .
  .
  border-radius: 100vmax;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;It can be used to give an element the full width of the viewport, instead of using “100vw” values and falling into (overflow) issues:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;div {
  box-shadow: 0 0 0 100vmax var(—same-bgColor-of-the-element);
  clip-path: inset(0 -100vmax); 
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;8- Advanced Selectors:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Knowing these advanced selectors is essential for any web developer, as they can help you achieve complex effects without relying on JavaScript. &lt;/li&gt;
&lt;li&gt;In other words, they’re powerful tools that can streamline your workflow and enhance your coding skills.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;img[alt]{
  /* Selecting any (img) element that has (alt) attribute */
}

img[alt="image"]{
  /* Selecting any (img) element that has (alt) attribute 
  with the value "image" */
}

img[alt^="image"]{
  /* Selecting any (img) element that has (alt) attribute 
  with the letters "image…" at the first of the value */
}

a[href$=".com"]{
  /* Selecting any (a) element that has (href) attribute with
  the letters "….com" at the end of the value */
}

div[class*="box"]{
  /* Selecting any (div) element that has (class) attribute with
  the letters "box" anywhere in the value */
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;In conclusion, CSS is constantly evolving, with new features and enhancements being added all the time. By keeping up to date with the latest developments and leveraging the power of advanced selectors, shorthand properties, and versatile units, you can take your CSS skills to the next level and create stunning, responsive designs. So, keep experimenting, keep learning, and keep pushing the boundaries of what’s possible with CSS!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>codenewbie</category>
      <category>frontend</category>
    </item>
    <item>
      <title>You are not bad at problem-solving as you think, you are just on the right path (Motivated Speech For Developers)👌</title>
      <dc:creator>Abdulrahman Ismael</dc:creator>
      <pubDate>Tue, 20 Dec 2022 18:36:21 +0000</pubDate>
      <link>https://forem.com/raslan25/you-are-not-bad-at-problem-solving-as-you-think-you-are-just-on-the-right-path-motivated-speech-for-developers-36mk</link>
      <guid>https://forem.com/raslan25/you-are-not-bad-at-problem-solving-as-you-think-you-are-just-on-the-right-path-motivated-speech-for-developers-36mk</guid>
      <description>&lt;p&gt;Problem-Solving skill is one of the most essential skills that you must have to apply for jobs in programming, all the interviews ask you to solve a problem using one of the programming languages you know.&lt;/p&gt;

&lt;p&gt;if it is your first time on that path, you may find it difficult a little bit… but by the time, you will master it, all the professional developers have passed through that road at first but later, they managed to master Problem-Solving.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Key of Problem-Solving Mastery :
&lt;/h2&gt;

&lt;p&gt;So what do if you feel that you are getting stuck too much in solving problems whatever the language you use :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;For each problem I couldn't solve, I try hard to think of a solution even if that solution is 100 lines of code that's fine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;if I can't find one, the last step is searching for the solution on Google…&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search for the solution, read it, and then try to remember and write it, do not just read the solution and quit, that's a bad habit for the developers' community and most junior developers do that wrong attitude.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;so do not think of yourself that you are bad in problem-solving as you couldn't solve one, that's fine we all have faced that and by knowing the solution and understanding it and its logic, we improve our logical thinking by that.&lt;/p&gt;

&lt;p&gt;And last but not least, repetition, repetition  is beneficial for any junior developer, try to solve the previous problems that you got stuck in solving again, or maybe try solving them with another programming language, it doesn't matter anyway but it is a solution of Boredom.&lt;/p&gt;

&lt;p&gt;Thanks for reading and I hope you become a master in problem-solving…&lt;/p&gt;

&lt;p&gt;support for more and better posts ❤️&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Netlify vs Vercel vs Surge | The best platform I use to deploy your projects 🤔?!</title>
      <dc:creator>Abdulrahman Ismael</dc:creator>
      <pubDate>Tue, 20 Dec 2022 14:53:01 +0000</pubDate>
      <link>https://forem.com/raslan25/netlify-vs-vercel-vs-surge-the-best-platform-i-use-to-deploy-your-projects--56m5</link>
      <guid>https://forem.com/raslan25/netlify-vs-vercel-vs-surge-the-best-platform-i-use-to-deploy-your-projects--56m5</guid>
      <description>&lt;p&gt;One of the most important steps that should be considered when building Web projects is deploying your project so that anyone can see your work and try the project and its Features live as reading your code is not enough!&lt;/p&gt;

&lt;p&gt;there are several ways and websites used to do this but in this article, I'll mention the most ones I use and I prefer.&lt;/p&gt;

&lt;p&gt;But the most ways I follow for deploying my projects are :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vercel&lt;/li&gt;
&lt;li&gt;Netlify&lt;/li&gt;
&lt;li&gt;Surge&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These three tools are Great and too helpful and each one has its advantages and disadvantages :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; was the first one I used and it was a great experience to use it until I found out a big issue faced me, a lot of times the website is down and the server fails and which causes disturbance for most of the users so most of them are no longer use it.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt; was my second choice after I left using Netlify, and I still use it and deploy my projects through it, the website is always running and the Netlify issue is no longer facing me so for sure I recommend using it, easy and soft use with no issues and fails…&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;the third choice is the easiest one but with less features, it is using &lt;a href="https://surge.sh/" rel="noopener noreferrer"&gt;Surge&lt;/a&gt; Tool, this time it is not a website, just a few cmd commands will do it for you
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm install --global surge
# In your project directory, just run…
$ surg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;….Now for me, I recommend using Vercel, and if not then Surge will be your fastest choice, always make Netlify your last choice&lt;/p&gt;

&lt;p&gt;One last thing, as I mentioned before I know, there are a lot of websites to deploy web projects But here I mentioned my experience of using those websites…. Thanks and Happy Projects 😁❤️&lt;/p&gt;

</description>
      <category>career</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
