<?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: Roberto Hernandez</title>
    <description>The latest articles on DEV Community by Roberto Hernandez (@blarzhernandez).</description>
    <link>https://dev.to/blarzhernandez</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%2F190581%2Fbfebfd4a-d171-4ca1-9c59-dbf43c11bc6d.jpg</url>
      <title>DEV Community: Roberto Hernandez</title>
      <link>https://dev.to/blarzhernandez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/blarzhernandez"/>
    <language>en</language>
    <item>
      <title>What Will Shape the Next Wave of Frontend Development in 2026 (Backed by Experts + Data)</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Tue, 14 Oct 2025 21:36:02 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/what-will-shape-the-next-wave-of-frontend-development-in-2026-backed-by-experts-data-52h3</link>
      <guid>https://dev.to/blarzhernandez/what-will-shape-the-next-wave-of-frontend-development-in-2026-backed-by-experts-data-52h3</guid>
      <description>&lt;p&gt;&lt;strong&gt;Includes resources to get started or master them&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Originally published on &lt;a href="https://javascript.plainenglish.io/what-will-shape-the-next-wave-of-frontend-development-in-2026-backed-by-experts-data-5f7189089fc4" rel="noopener noreferrer"&gt;Medium.com&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;A quick overview of the frontend landscape&lt;/li&gt;
&lt;li&gt;Where do these predictions and trends come from?&lt;/li&gt;
&lt;li&gt;Where frontend is headed in 2026 and beyond.

&lt;ol&gt;
&lt;li&gt;AI-first development environments&lt;/li&gt;
&lt;li&gt;React, Next.js, and the new Meta-framework era&lt;/li&gt;
&lt;li&gt;TypeScript, tRPC, and the backendless revolution&lt;/li&gt;
&lt;li&gt;State management &amp;amp; data layer 2.0&lt;/li&gt;
&lt;li&gt;The new frontline: AI, WebAssembly, and edge&lt;/li&gt;
&lt;li&gt;The edge &amp;amp; WebAssembly revolution&lt;/li&gt;
&lt;li&gt;Utility meets design systems&lt;/li&gt;
&lt;li&gt;Micro-frontends &amp;amp; module federation - maturing architecture&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Final Thoughts&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Ten years ago, frontend engineering was simple. You picked React or Angular, wrote a few CSS modules, and called it a day.&lt;br&gt;&lt;br&gt;
Fast-forward to 2026, and the landscape has become unrecognizable.&lt;br&gt;&lt;br&gt;
Frameworks are running on the edge, AI tools are not only generating entire components but full-stack apps, and the line between frontend and backend is disappearing.&lt;/p&gt;

&lt;p&gt;The Stack Overflow Developer Survey 2025, State of JS/CSS 2025, and GitHub Octoverse 2024 reveal a fascinating truth: frontend is no longer just about rendering UIs — it's about orchestrating intelligence, performance, and experience.&lt;br&gt;&lt;br&gt;
This post breaks down the key shifts shaping frontend development in 2026 — with insights, examples, and resources to help you actually learn what's next.&lt;/p&gt;




&lt;h2&gt;
  
  
  A quick overview of the frontend landscape
&lt;/h2&gt;

&lt;p&gt;If you are a busy person and want to go straight to the key points, the following front-end landscape is for you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI went from a shiny toy to a tool you can't ignore anymore. I ignored it, unfortunately.&lt;/li&gt;
&lt;li&gt;JavaScript is still the world's most used programming language (12 years in a row, according to Stack Overflow 2025).&lt;/li&gt;
&lt;li&gt;TypeScript is now almost the "default mode" for serious frontend work.&lt;/li&gt;
&lt;li&gt;Hybrid frameworks (Next.js, Remix, SvelteKit, Astro) are standard. CSR-only is rare.&lt;/li&gt;
&lt;li&gt;WebAssembly has broken out of niche use-cases.&lt;/li&gt;
&lt;li&gt;Micro-frontends continue to power large orgs.&lt;/li&gt;
&lt;li&gt;Accessibility, performance, and motion-based design are becoming product differentiators, not afterthoughts.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Where do these predictions and trends come from?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Stack Overflow Developer Survey 2025&lt;/strong&gt; — latest insights on language/framework popularity, AI usage &amp;amp; trust gap.
&lt;a href="https://insights.stackoverflow.com/survey/2025" rel="noopener noreferrer"&gt;https://insights.stackoverflow.com/survey/2025&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;State of JS &amp;amp; State of CSS (2023–2025)&lt;/strong&gt; — community adoption reports.
&lt;a href="https://stateofjs.com" rel="noopener noreferrer"&gt;https://stateofjs.com&lt;/a&gt; / &lt;a href="https://stateofcss.com" rel="noopener noreferrer"&gt;https://stateofcss.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Octoverse 2024&lt;/strong&gt; — open-source usage patterns.
&lt;a href="https://octoverse.github.com" rel="noopener noreferrer"&gt;https://octoverse.github.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;My 10+ years as a frontend engineer&lt;/strong&gt;, building products across web and mobile.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Where frontend is headed in 2026 and beyond
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. AI-first development environments
&lt;/h3&gt;

&lt;p&gt;We are moving from autocomplete to AI-powered IDEs. Tools like &lt;strong&gt;GitHub Copilot&lt;/strong&gt;, &lt;strong&gt;Cursor&lt;/strong&gt;, and &lt;strong&gt;Replit AI&lt;/strong&gt; are no longer novelties.&lt;br&gt;&lt;br&gt;
Now in 2025, they're shaping how juniors learn, how seniors review, and how teams ship faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources to explore:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Copilot — &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;https://github.com/features/copilot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Cursor — &lt;a href="https://cursor.com" rel="noopener noreferrer"&gt;https://cursor.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Replit AI — &lt;a href="https://replit.com" rel="noopener noreferrer"&gt;https://replit.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even with these AI-first development environments, there are a few facts about AI usage you should keep in mind:&lt;br&gt;&lt;br&gt;
According to the 2025 Stack Overflow Survey, 84% of developers say they use or plan to use AI tools in their development process, up from 76% in 2024. But the trust is not proportionally rising: 46% of devs in 2025 don't trust the accuracy of AI tool output. Developers are also asking: are these tools assistants or collaborators? Do they help or create fragility (bugs, unexplained behavior, security risk, dev-dependency)?&lt;/p&gt;




&lt;h3&gt;
  
  
  2. React, Next.js, and the new Meta-framework era
&lt;/h3&gt;

&lt;p&gt;If 2025 is about stability, 2026 is about specialization. React remains dominant, but it's the meta-frameworks around it that are rewriting the rules.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React — &lt;a href="https://reactjs.org" rel="noopener noreferrer"&gt;https://reactjs.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Next.js — &lt;a href="https://nextjs.org" rel="noopener noreferrer"&gt;https://nextjs.org&lt;/a&gt; (Next.js Learn: &lt;a href="https://nextjs.org/learn" rel="noopener noreferrer"&gt;https://nextjs.org/learn&lt;/a&gt;)
&lt;/li&gt;
&lt;li&gt;Astro — &lt;a href="https://astro.build" rel="noopener noreferrer"&gt;https://astro.build&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Remix — &lt;a href="https://remix.run" rel="noopener noreferrer"&gt;https://remix.run&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Qwik — &lt;a href="https://qwik.builder.io" rel="noopener noreferrer"&gt;https://qwik.builder.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;SolidStart — &lt;a href="https://solidstart.com" rel="noopener noreferrer"&gt;https://solidstart.com&lt;/a&gt; (Solid: &lt;a href="https://www.solidjs.com" rel="noopener noreferrer"&gt;https://www.solidjs.com&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These frameworks share a goal: deliver speed, simplicity, and smarter data flow — something traditional SPAs struggle to achieve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world shift:&lt;/strong&gt; Companies migrating from Create React App to Next.js or Astro report up to 40% faster load times and lower infra costs (see State of JS / migration case studies).&lt;/p&gt;




&lt;h3&gt;
  
  
  3. TypeScript, tRPC, and the backendless revolution
&lt;/h3&gt;

&lt;p&gt;Frontend engineers are now building full-stack systems — without ever writing traditional REST APIs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tRPC — &lt;a href="https://trpc.io" rel="noopener noreferrer"&gt;https://trpc.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Zod — &lt;a href="https://zod.dev" rel="noopener noreferrer"&gt;https://zod.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Drizzle ORM — &lt;a href="https://drizzle.team" rel="noopener noreferrer"&gt;https://drizzle.team&lt;/a&gt; (Drizzle ORM docs)
&lt;/li&gt;
&lt;li&gt;Bun — &lt;a href="https://bun.sh" rel="noopener noreferrer"&gt;https://bun.sh&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Deno — &lt;a href="https://deno.com" rel="noopener noreferrer"&gt;https://deno.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;tRPC lets you define backend procedures and instantly call them from your frontend with full type safety. Zod validates everything at runtime, and Drizzle ORM makes type-safe SQL feel like art.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The takeaway:&lt;/strong&gt; Learn to think full-stack through TypeScript, not in layers.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. State management &amp;amp; data layer 2.0
&lt;/h3&gt;

&lt;p&gt;If you still reach for Redux first, you're probably maintaining legacy code.&lt;/p&gt;

&lt;p&gt;Modern apps handle data through smarter caching and signals-based reactivity. Key libraries and patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;TanStack Query — &lt;a href="https://tanstack.com/query/latest" rel="noopener noreferrer"&gt;https://tanstack.com/query/latest&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Jotai — &lt;a href="https://jotai.org" rel="noopener noreferrer"&gt;https://jotai.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Recoil — &lt;a href="https://recoiljs.org" rel="noopener noreferrer"&gt;https://recoiljs.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Apollo GraphQL — &lt;a href="https://www.apollographql.com" rel="noopener noreferrer"&gt;https://www.apollographql.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At the same time, frameworks like Solid and new React signal experiments are redefining reactivity itself — no more rerenders for everything.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. The new frontline: AI, WebAssembly, and edge
&lt;/h3&gt;

&lt;p&gt;The GitHub Octoverse 2024 report showed a huge surge in AI SDK usage. AI is not coming—it's here.&lt;/p&gt;

&lt;p&gt;Frontend developers are now integrating AI copilots, LLM prompts, and real-time assistants directly into UI logic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vercel AI SDK — &lt;a href="https://vercel.com/docs/ai" rel="noopener noreferrer"&gt;https://vercel.com/docs/ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;LangChain.js — &lt;a href="https://js.langchain.com" rel="noopener noreferrer"&gt;https://js.langchain.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Cloudflare Workers — &lt;a href="https://developers.cloudflare.com/workers" rel="noopener noreferrer"&gt;https://developers.cloudflare.com/workers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Rust + WASM — &lt;a href="https://rustwasm.github.io/docs" rel="noopener noreferrer"&gt;https://rustwasm.github.io/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI literacy — prompt design, response handling, and model orchestration — is quickly becoming the next must-have skill.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. The edge &amp;amp; WebAssembly revolution
&lt;/h3&gt;

&lt;p&gt;The frontend is going serverless and edge-first.&lt;/p&gt;

&lt;p&gt;User experience depends on milliseconds saved and distance reduced. Frameworks now deploy server components on the edge (Vercel, Cloudflare, Netlify), executing logic close to the user.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;web.dev Performance — &lt;a href="https://web.dev/performance/" rel="noopener noreferrer"&gt;https://web.dev/performance/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Cloudflare Workers — &lt;a href="https://developers.cloudflare.com/workers" rel="noopener noreferrer"&gt;https://developers.cloudflare.com/workers&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Vercel Edge Functions — &lt;a href="https://vercel.com/docs/concepts/functions/edge-functions" rel="noopener noreferrer"&gt;https://vercel.com/docs/concepts/functions/edge-functions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Rust + WASM guide — &lt;a href="https://rustwasm.github.io" rel="noopener noreferrer"&gt;https://rustwasm.github.io&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;WASM is breaking JavaScript's limits. Developers use Rust, Go, or Zig to handle compute-heavy tasks inside browsers.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. Utility meets design systems
&lt;/h3&gt;

&lt;p&gt;If you stopped learning CSS after Flexbox, 2026 will surprise you.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;State of CSS 2025 — &lt;a href="https://stateofcss.com" rel="noopener noreferrer"&gt;https://stateofcss.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Tailwind CSS — &lt;a href="https://tailwindcss.com" rel="noopener noreferrer"&gt;https://tailwindcss.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Vanilla Extract — &lt;a href="https://vanilla-extract.style" rel="noopener noreferrer"&gt;https://vanilla-extract.style&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Radix UI — &lt;a href="https://www.radix-ui.com" rel="noopener noreferrer"&gt;https://www.radix-ui.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;shadcn/ui — &lt;a href="https://ui.shadcn.com" rel="noopener noreferrer"&gt;https://ui.shadcn.com&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Container Queries, CSS Layers, and new color APIs are making CSS once again a language for serious engineering. Tailwind CSS 4 and variable-based utilities bridge tokens and scaling design systems.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Micro-frontends &amp;amp; module federation — maturing architecture
&lt;/h3&gt;

&lt;p&gt;Definition: an architectural style where independently deliverable frontend applications are composed into a greater whole.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Martin Fowler on Micro-Frontends — &lt;a href="https://martinfowler.com/articles/micro-frontends.html" rel="noopener noreferrer"&gt;https://martinfowler.com/articles/micro-frontends.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Building Micro-Frontends (book) — Luca Mezzalira
&lt;/li&gt;
&lt;li&gt;Single-SPA — &lt;a href="https://single-spa.js.org" rel="noopener noreferrer"&gt;https://single-spa.js.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Module Federation examples (Webpack) — &lt;a href="https://webpack.js.org/concepts/module-federation/" rel="noopener noreferrer"&gt;https://webpack.js.org/concepts/module-federation/&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Companies like Netflix, PayPal, IKEA, Spotify, American Express, and Starbucks have implemented micro-frontends. The approach is maturing, and adoption is increasing in large orgs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Frontend in 2026 isn't just about frameworks. It's about adapting faster than the ecosystem changes.&lt;/p&gt;

&lt;p&gt;The developers who thrive now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automate repetitive UI patterns using AI.
&lt;/li&gt;
&lt;li&gt;Optimize performance at the edge.
&lt;/li&gt;
&lt;li&gt;Treat design systems as living architecture.
&lt;/li&gt;
&lt;li&gt;Embrace type safety, signals, and declarative data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After 10+ years building across web and mobile, I've realized something simple:&lt;br&gt;&lt;br&gt;
Every trend you ignore today becomes your technical debt tomorrow.&lt;br&gt;&lt;br&gt;
But the opposite is true, too — every new skill you pick up early becomes your advantage when everyone else catches up.&lt;/p&gt;

&lt;p&gt;Jump to MullinStack now — build the future, not just read about it:&lt;br&gt;&lt;br&gt;
&lt;a href="https://mullinstack.com" rel="noopener noreferrer"&gt;https://mullinstack.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
    <item>
      <title>I Wasn't Born a Developer — I Became One the Hard Way</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Sun, 05 Oct 2025 22:06:38 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/i-wasnt-born-a-developer-i-became-one-the-hard-way-35e1</link>
      <guid>https://dev.to/blarzhernandez/i-wasnt-born-a-developer-i-became-one-the-hard-way-35e1</guid>
      <description>&lt;p&gt;&lt;strong&gt;And if you're still waiting for "motivation," you're already losing time&lt;/strong&gt;&lt;br&gt;
Originally published on &lt;a href="https://javascript.plainenglish.io/i-wasnt-born-a-developer-i-became-one-the-hard-way-9a6a2522e415" rel="noopener noreferrer"&gt;Medium.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me get this straight from the beginning.&lt;/p&gt;

&lt;p&gt;You don't need another inspirational quote.&lt;br&gt;&lt;br&gt;
You don't need another perfect roadmap.&lt;br&gt;&lt;br&gt;
And you sure as hell don't need another YouTube guru telling you how "easy" it is to become a software engineer in 6 months.&lt;/p&gt;

&lt;p&gt;If that were true, you wouldn't be reading this. You'd already be writing clean code, deploying apps, solving real problems, and getting paid for it.&lt;/p&gt;

&lt;p&gt;So let's stop lying to ourselves.&lt;/p&gt;

&lt;p&gt;This whole "become a developer fast" trend is killing more dreams than it builds.&lt;/p&gt;

&lt;p&gt;It screwed me up big time.&lt;/p&gt;

&lt;p&gt;I spent years frustrated, hopping from tutorial to tutorial, watching others "make it" while I still felt like an impostor with 38+ open tabs and zero clarity.&lt;/p&gt;

&lt;p&gt;But I didn't quit.&lt;/p&gt;

&lt;p&gt;And that's the only reason I'm still here — still coding, still fighting, still building.&lt;/p&gt;

&lt;p&gt;So I'm writing this to you, who's probably stuck somewhere between wanting it and actually doing it. Or doing it but still feeling stuck.&lt;/p&gt;

&lt;p&gt;This is how I survived that phase without giving up — and how you can too.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1: Admit how you got here
&lt;/h2&gt;

&lt;p&gt;Everyone loves to flex their "origin story."&lt;/p&gt;

&lt;p&gt;Not me. Mine is as raw as it gets.&lt;/p&gt;

&lt;p&gt;I didn't discover Computer Science because I was some genius building robots at age 12.&lt;/p&gt;

&lt;p&gt;I didn't grow up with fast Wi-Fi, a MacBook Pro, and parents who bought me a Raspberry Pi to "explore my passion."&lt;/p&gt;

&lt;p&gt;I grew up in a poor neighborhood where even finding a computer was a miracle. Half of my learning happened without the internet.&lt;/p&gt;

&lt;p&gt;Half of my motivation came from pure tenacity.&lt;/p&gt;

&lt;p&gt;Maybe your story is different. Maybe you came here because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You saw a "$100k salary in 9 months" ad.
&lt;/li&gt;
&lt;li&gt;A friend told you to switch careers.
&lt;/li&gt;
&lt;li&gt;You're just sick of your current life and want something better.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever your reason — own it.&lt;/p&gt;

&lt;p&gt;Because where you come from explains where you are, but it doesn't decide where you'll go.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Stop learning to code. Start deciding who the hell you want to be.
&lt;/h2&gt;

&lt;p&gt;Let me drop something brutally honest:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want to learn to code" is NOT a goal.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's like saying you want to get fit without knowing whether you want to lift weights, run marathons, or simply fit into your jeans again.&lt;/p&gt;

&lt;p&gt;So let me ask you straight:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you want to become a Frontend Engineer?
&lt;/li&gt;
&lt;li&gt;Or a Backend Developer?
&lt;/li&gt;
&lt;li&gt;Or Fullstack?
&lt;/li&gt;
&lt;li&gt;Or build indie SaaS for fun?
&lt;/li&gt;
&lt;li&gt;Or maybe just make enough to work from home?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever it is — pick a damn lane.&lt;/p&gt;

&lt;p&gt;Write it down.&lt;br&gt;&lt;br&gt;
Commit to it.&lt;br&gt;&lt;br&gt;
And stop flirting with everything you see on social media.&lt;/p&gt;

&lt;p&gt;If you scroll through dev Twitter, LinkedIn, Facebook, and switch your stack every week, congratulations — the algorithm owns your future.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3: Stick to your path like your life depends on it (because it does)
&lt;/h2&gt;

&lt;p&gt;Choosing a path is easy.&lt;br&gt;&lt;br&gt;
Staying on it is where 99% of people lose.&lt;/p&gt;

&lt;p&gt;Consistency beats intelligence. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;Not because consistent people don't get tired.&lt;/p&gt;

&lt;p&gt;But because consistent people don't negotiate with themselves.&lt;/p&gt;

&lt;p&gt;They don't say:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'll code only when I feel motivated."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They say:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'll code whether I feel like shit or feel like a god."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So let me give you the only discipline rule that changed my life:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never go two days without touching code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not an entire bootcamp. Not 5 hours of grinding. Just touch code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read the docs.
&lt;/li&gt;
&lt;li&gt;Solve one bug.
&lt;/li&gt;
&lt;li&gt;Write 10 lines.
&lt;/li&gt;
&lt;li&gt;Improve one function.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Momentum is a weapon. Either you use it, or it kills you slowly while you scroll.&lt;/p&gt;




&lt;h2&gt;
  
  
  Don't go fast — go consistent and honest
&lt;/h2&gt;

&lt;p&gt;I'll make you a bet:&lt;br&gt;&lt;br&gt;
You've probably said this before:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I'm going to learn React… no wait, maybe Angular… no, I should probably master JavaScript first… or maybe I should learn backend basics too…"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Stop.&lt;/p&gt;

&lt;p&gt;Stop sprinting like a headless chicken.&lt;/p&gt;

&lt;p&gt;You don't need speed. You need depth.&lt;/p&gt;

&lt;p&gt;Foundations are not "boring." They are your secret weapon.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you know real JavaScript, you'll learn React faster.
&lt;/li&gt;
&lt;li&gt;If you understand HTTP and JSON, APIs won't scare you.
&lt;/li&gt;
&lt;li&gt;If you know loops, conditions, and functions, you'll write cleaner logic everywhere.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Speed burns you out.&lt;br&gt;&lt;br&gt;
Consistency creates mastery.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5: Resilience &amp;gt; Talent
&lt;/h2&gt;

&lt;p&gt;There were nights when I questioned everything.&lt;/p&gt;

&lt;p&gt;I wrote code with all my energy. I studied until my brain melted.&lt;/p&gt;

&lt;p&gt;And still — no job, no recognition, no big win.&lt;/p&gt;

&lt;p&gt;I thought:  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Maybe I'm not smart enough."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Wrong.&lt;/p&gt;

&lt;p&gt;The truth?&lt;/p&gt;

&lt;p&gt;You don't fail because you're not smart. You fail because you expect results too early.&lt;/p&gt;

&lt;p&gt;Do not judge your future based on your current output.&lt;/p&gt;

&lt;p&gt;Real developers are not the ones who "never fail."&lt;br&gt;&lt;br&gt;
They are the ones who fail slower, recover faster, and show up again.&lt;/p&gt;

&lt;p&gt;If you're feeling stuck — good.&lt;/p&gt;

&lt;p&gt;That means you're actually building the muscle that matters most: &lt;strong&gt;Resilience.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6: Track your growth (so your brain stops lying to you)
&lt;/h2&gt;

&lt;p&gt;Your brain is your biggest enemy.&lt;/p&gt;

&lt;p&gt;It loves to whisper:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"You haven't improved."
&lt;/li&gt;
&lt;li&gt;"You're still a beginner."
&lt;/li&gt;
&lt;li&gt;"Everyone else is ahead of you."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So here's how you slap your brain back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start a Progress Log.
&lt;/li&gt;
&lt;li&gt;Write one sentence per day: &lt;em&gt;"Today I learned…"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Screenshot a solved bug.
&lt;/li&gt;
&lt;li&gt;Push one tiny repo to GitHub.
&lt;/li&gt;
&lt;li&gt;Compare your old code every month.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you see how far you've come, quitting becomes impossible.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 7: Read. Code. Write. Share. Repeat.
&lt;/h2&gt;

&lt;p&gt;This is the ultimate cycle that built me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Read&lt;/strong&gt;, but only about your chosen path.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code&lt;/strong&gt;, even when it's ugly. Especially when it's ugly.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write&lt;/strong&gt;, even if nobody reads it. Your brain remembers what your hands type.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share&lt;/strong&gt;, not for likes — but for help, feedback, and accountability.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repeat&lt;/strong&gt;, even when nobody claps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Success isn't glamorous.&lt;br&gt;&lt;br&gt;
It's boring repetition done by stubborn dreamers.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Words (read this twice)
&lt;/h2&gt;

&lt;p&gt;I'm not writing this because I'm "better" than you.&lt;br&gt;&lt;br&gt;
I'm writing it because &lt;strong&gt;I am you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I still doubt myself. I still break things. I still feel behind sometimes.&lt;/p&gt;

&lt;p&gt;But here's what keeps me alive in this journey:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In the race between consistency and talent — consistency wins. Every damn time.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Now stop reading. Start moving.
&lt;/h2&gt;

&lt;p&gt;If you're serious about this life — not just thinking about it — here's your first real move:&lt;/p&gt;

&lt;p&gt;Stop scrolling "motivational posts" right now.&lt;/p&gt;

&lt;p&gt;Open &lt;strong&gt;&lt;a href="http://www.mullinstack.com" rel="noopener noreferrer"&gt;www.mullinstack.com&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Pick one article.&lt;br&gt;&lt;br&gt;
Execute something from it &lt;strong&gt;TODAY&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;No excuses. No "I'll do it later." No more waiting for the perfect moment.&lt;/p&gt;

&lt;p&gt;Because let me be real with you:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your future self will SLAP you if you don't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;See you inside.&lt;br&gt;&lt;br&gt;
👉 &lt;a href="http://www.mullinstack.com" rel="noopener noreferrer"&gt;www.mullinstack.com&lt;/a&gt; — Where dreamers stop dreaming and start building.&lt;/p&gt;

</description>
      <category>career</category>
      <category>webdev</category>
      <category>motivation</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Between Coding And Changing Diapers 24 Hours Are Not Enough</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Fri, 03 Jan 2025 07:05:37 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/between-coding-and-changing-diapers-24-hours-are-not-enough-1p6n</link>
      <guid>https://dev.to/blarzhernandez/between-coding-and-changing-diapers-24-hours-are-not-enough-1p6n</guid>
      <description>&lt;p&gt;Originally published on my blog &lt;a href="https://www.mullinstack.com/2025/01/03/between-coding-and-changing-diapers-24-hours-are-not-enough/" rel="noopener noreferrer"&gt;mullinstack.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You, your future self, your kids and their future-self will gain priceless life gifts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I was deeply focused on building a new app feature. It was a feature with a complex business logic.&lt;/p&gt;

&lt;p&gt;Suddenly I heard a little cry.&lt;/p&gt;

&lt;p&gt;I slowly started to listen it way closer and higher.&lt;/p&gt;

&lt;p&gt;Guess what was happening?&lt;/p&gt;

&lt;p&gt;Yes, you're right.&lt;/p&gt;

&lt;p&gt;A little and sweet girl was crying.&lt;/p&gt;

&lt;p&gt;I stood up from my chair and walked off from my office room to see what's going on.&lt;/p&gt;

&lt;p&gt;There's she was. A sweet girl shedding tears and raising her hands so I can pick her up.&lt;/p&gt;

&lt;p&gt;Her weeping, seemed to be related that she did not feel comfortable.&lt;br&gt;
How did I know it?&lt;/p&gt;

&lt;p&gt;Simply. I deeply know her since the first day she was born.&lt;/p&gt;

&lt;p&gt;You might think this was the first time she was crying and interrupting me. No. You are not right.&lt;/p&gt;

&lt;p&gt;This was the third time during the day.&lt;/p&gt;

&lt;p&gt;So I was quite exhausted combining my full-time job and my full time as a stay-home dad.&lt;/p&gt;

&lt;p&gt;I knew what to do, though.&lt;/p&gt;




&lt;h1&gt;
  
  
  Juggling coding and changing diapers
&lt;/h1&gt;

&lt;p&gt;Coding and changing diapers are two chores I have never thought I would do it together.&lt;/p&gt;

&lt;p&gt;At a glance, it seems quite simple, trivial and feasible. Isn't it?&lt;br&gt;
Yet, it is not.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Let's categorize a task by its complexity for a better understanding. There are simple, medium and complex tasks, correct?&lt;/p&gt;

&lt;p&gt;So the simple chore of changing diapers is easy but with a high cost because of the distraction.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fact: It takes about 23 minutes and 15 seconds to fully regain focus after a distraction, according to a study by Gloria Mark, a researcher on workplace behavior.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Of course there are a few factors we need to consider like task complexity, type of distraction and the person itself but a thumb of rule this is time needed to come back to the task you were working on.&lt;/p&gt;

&lt;p&gt;So, as I said at the beginning, I was on building a complex business logic feature that demanded a high level of focus.&lt;/p&gt;

&lt;p&gt;This type of work is the art of joining and moving puzzles, so you need deep work.&lt;/p&gt;

&lt;p&gt;Yet, being interrupted several times during the day was hard to get things done.&lt;/p&gt;

&lt;p&gt;I did not know how hard this would be.&lt;/p&gt;

&lt;p&gt;Yet, I had to do it.&lt;/p&gt;

&lt;p&gt;I now understand you all stay-home moms and dads that work from home and hold on your back kids and house chores.&lt;/p&gt;

&lt;p&gt;This is so damn fuck**** hard.&lt;/p&gt;




&lt;h1&gt;
  
  
  Working from home and transparency
&lt;/h1&gt;

&lt;p&gt;Back then, I was a parent of two kids, 6 years old son and a little daughter of 6 months old. Still today.&lt;/p&gt;

&lt;p&gt;My wife worked on a government institution, so she needed to commute and go to the office.&lt;/p&gt;

&lt;p&gt;Me on the opposite worked from home since after COVID-19 succumb the world.&lt;/p&gt;

&lt;p&gt;We moved out to the capital when our firs kid was 4 years old.&lt;/p&gt;

&lt;p&gt;When our daughter born, we had no relatives or loved ones or trusted friends who take care of kids even partially.&lt;/p&gt;

&lt;p&gt;It was so damn hard to find support.&lt;/p&gt;

&lt;p&gt;So I was transparent about my personal situation with my boss. Fortunately, he understood, and I got all the support and encouragement to keep going.&lt;/p&gt;

&lt;p&gt;Even though I almost succumbed to this time, I tried to focus on the good things or benefits I could get from this situation.&lt;/p&gt;




&lt;h1&gt;
  
  
  Benefits for dads and kids by changing diapers
&lt;/h1&gt;

&lt;p&gt;As Epictetus said&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It is not what happens to you, but how you react to it that matters&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Changing diapers bring some benefits for both parents and kids.&lt;/p&gt;

&lt;p&gt;Changing diapers provides an opportunity for close interaction, helping parents and kids bond through touch, eye contact, and playful communication.&lt;/p&gt;

&lt;p&gt;During this period of life, babies' brains grow more rapidly which they need their diapers changed than will ever be the case again.&lt;/p&gt;

&lt;p&gt;According to a research, approximately 1000 synaptic connections are formed every second during this period.&lt;/p&gt;

&lt;p&gt;And it is the emotional experiences that babies have over and over again that build the most robust neural pathways.&lt;/p&gt;

&lt;p&gt;Nappy changing isn't quite as trivial as we might at first have thought.&lt;/p&gt;

&lt;p&gt;It has an impact on babies' brain development.&lt;br&gt;
Apart from that, as a full-time worker, being more productive was something I took advantage of this situation.&lt;/p&gt;




&lt;h1&gt;
  
  
  Being more productive even under the daunting days
&lt;/h1&gt;

&lt;p&gt;Really, Bob?. Please guide me how.&lt;/p&gt;

&lt;p&gt;Yes sure here a proof of a week when I went so damn productive.&lt;/p&gt;

&lt;p&gt;This is a Slack message I shared at my work the end of the week.&lt;/p&gt;

&lt;p&gt;So proud of myself of accomplished this.&lt;/p&gt;

&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%2Fcdn-images-1.medium.com%2Fv2%2Fresize%3Afit%3A1600%2F1%2A8Jz-BO3NKbCcBaoAUd32nQ.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%2Fcdn-images-1.medium.com%2Fv2%2Fresize%3Afit%3A1600%2F1%2A8Jz-BO3NKbCcBaoAUd32nQ.png" alt="Author Update&amp;lt;br&amp;gt;
" width="800" height="386"&gt;&lt;/a&gt; Provided by author - Slack message sharing my most productive week&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I was 2x more productive at work, even when taking care of my little daughter during the day.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I played soccer as Messi on a tournament. If you believe it, it is TRUE.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I took cared of my little 6-month-old daughter. I played with her. I fed her.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I retook Undebtme project after a month of rethinking and fighting with infra stuff.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I stopped being hard with myself on things I can't control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I did more workouts than the previous 3 weeks or so.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Parenthood, especially when paired with a full-time job that demands focus and deep work, is an unparalleled test of patience, resilience, and adaptability.&lt;/p&gt;

&lt;p&gt;My journey of juggling coding and childcare has been filled with challenges, but it's also been deeply rewarding.&lt;/p&gt;

&lt;p&gt;Through the tears, distractions, and moments of exhaustion, I've come to the realization: the chaos of balancing work and family life isn't a hindrance - it's a privilege.&lt;/p&gt;

&lt;p&gt;The quiet moments of changing diapers, the heartfelt cries for comfort, and the interruptions that remind me of what truly matters - my kids.&lt;/p&gt;

&lt;p&gt;For all the stay-home-parents out there walking this delicate line, remember this: you're doing something extraordinary.&lt;/p&gt;

&lt;p&gt;Every day you show up, for both your work and your family, is a triumph. Congrats! You all are extraordinary.&lt;/p&gt;

&lt;p&gt;It would be great to have your experience on this. Drop them in the comment section.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>parenting</category>
      <category>softwaredevelopment</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Top 7 Frontend Trends 📈 and Predictions For 2024 You Should Watch Out (According to Experts)💎</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Fri, 08 Dec 2023 19:43:22 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/top-7-frontend-trends-and-predictions-for-2024-you-should-watch-out-according-to-experts-239n</link>
      <guid>https://dev.to/blarzhernandez/top-7-frontend-trends-and-predictions-for-2024-you-should-watch-out-according-to-experts-239n</guid>
      <description>&lt;p&gt;Originally published on &lt;a href="https://medium.com/javascript-in-plain-english/the-7-frontend-trends-and-predictions-for-2024-you-should-watch-out-according-to-experts-0ab1b528d725" rel="noopener noreferrer"&gt;Medium.com&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Includes resources to get started 🚀
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Table of Content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;A quick overview of the frontend landscape&lt;/li&gt;
&lt;li&gt;Where Do These Predictions and Trends Come From?
Predictions and Trends&lt;/li&gt;
&lt;li&gt;The rise and ever-evolving Chatbots and AI&lt;/li&gt;
&lt;li&gt;JavaScript continues unstoppable. Long live the king!&lt;/li&gt;
&lt;li&gt;TypeScript rises in popularity and usage&lt;/li&gt;
&lt;li&gt;React.js - The most commonly used and popular web library&lt;/li&gt;
&lt;li&gt;Progressive Web Apps (PWAs) are now a Standard&lt;/li&gt;
&lt;li&gt;JAMSTACK is not the future. It is now a standard.&lt;/li&gt;
&lt;li&gt;Micro frontends have moved forward and gained more maturity&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Dear frontend dev, 2024 is just around the corner.&lt;/p&gt;

&lt;p&gt;Now, it's the perfect time to bring to the table the 7 front-end trends and predictions for 2024 you should keep an eye on.&lt;/p&gt;

&lt;p&gt;On the frontend tech race, you might have been witness how a few ones keep fighting on the road to be alive.&lt;/p&gt;

&lt;p&gt;A few of them have lost developers' interest, so they are now the "walking techs dead" - Literally.&lt;/p&gt;

&lt;p&gt;Others have become stronger and the market leading, instead.&lt;br&gt;
This race has brought both innovations and overwhelming in the front-end sand.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Innovations that go from more and better app performance, ease of use, greater developers experience, code quality to faster app's developments.&lt;/p&gt;

&lt;p&gt;On the other hand, tiredness and overwhelming due to the fast way of how new frontend techs appear. They come up in a blink of an eye.&lt;/p&gt;

&lt;p&gt;Yet, those are the two big reasons why front-end development is really so powerful.&lt;/p&gt;

&lt;p&gt;Now, let's explore what are these trends and predictions for 2024.&lt;/p&gt;




&lt;h1&gt;
  
  
  A quick overview of the frontend landscape.
&lt;/h1&gt;

&lt;p&gt;There are substantial differences between the trendy frontend technologies I highlighted and predicted in the past in regard to 2024 and beyond.&lt;/p&gt;

&lt;p&gt;There are new, trendy and mind-blowing frontend kids and a few more that have gained maturity and stability.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chatbots and AI has become now the game-changer player on the frontend land. They are now the hottest topic, and they will remain as is for so long.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The old, well-known kid - JavaScript, continues unstoppable - long life to the reign!.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Single Page Application (SPA), Server Side Rendering (SSR), and Static Site Generators (SSGs) are technologies that have gained a tremendous growth in both usage and popularity. We can call them a standard now.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TypeScript came to stay and makes web development less frustrating. It seems to be more and more adopted and loved by the community.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React.js, continues its reign, it is the most commonly used and popular web library.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Micro-frontends are on their way to stability and maturity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Frontend trends give you an idea of where things are going, so you can take action and decide the direction you want to follow for the products you are building.&lt;/p&gt;

&lt;p&gt;How accurate and reliable is all this? Let's talk about in the next section.&lt;/p&gt;




&lt;h1&gt;
  
  
  Where do these predictions and trends come from?
&lt;/h1&gt;

&lt;p&gt;All data shared over this post come from different reliable and up-to-date resources, experts' opinions, and my ten years as a front-end engineer.&lt;/p&gt;

&lt;p&gt;If you want to go deeper, you can take a look at the &lt;a href="https://survey.stackoverflow.co/2023/#overview" rel="noopener noreferrer"&gt;2023 Stack Overflow Developer Survey&lt;/a&gt;, the &lt;a href="https://tsh.io/state-of-frontend/" rel="noopener noreferrer"&gt;State of Frontend&lt;/a&gt;, and the &lt;a href="https://2022.stateofjs.com/en-US/" rel="noopener noreferrer"&gt;State of JS&lt;/a&gt; which are part of the references used here.&lt;/p&gt;




&lt;h1&gt;
  
  
  Predictions and Trends
&lt;/h1&gt;

&lt;p&gt;Let's jump onto the the 7 frontend trends and predictions for 2024 you should watch out.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. The rise and ever-evolving Chatbots and AI
&lt;/h1&gt;

&lt;p&gt;Chatbots and AI has transformed the way we do things.&lt;br&gt;
The frontend land is not the exception.&lt;/p&gt;

&lt;p&gt;We can now be leveraging AI algorithms to create more suitable user experiences and more personalized and accessible UI with a tremendous time less than the way we did it before.&lt;/p&gt;

&lt;p&gt;One of the biggest advantage of AI on the frontend is the ability to serve a high level of app's personalization.&lt;/p&gt;

&lt;p&gt;This means learning from user behavior to tailor content.&lt;/p&gt;

&lt;p&gt;This is so good for end users.&lt;/p&gt;

&lt;p&gt;To accomplish that, there are a few interesting AI tool you should play around as a frontend engineer in 2024.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;a href="https://www.tensorflow.org/js/tutorials" rel="noopener noreferrer"&gt;TensorFlow&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;TensorFlow.js is a JavaScript library for training and deploying machine learning models in the web browser and in Node.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://cloud.google.com/dialogflow" rel="noopener noreferrer"&gt;Dialogflow&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;It is a comprehensive platform for developing chatbots, voice bots, and virtual agents using natural language understanding and Google AI.&lt;br&gt;
Put it into practice with this tutorial.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.datarobot.com/algorithmia/" rel="noopener noreferrer"&gt;Algorithmia&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Combines the best AI, MLOps, and DevOps practices, establishing machine learning workflows and processes for IT, data scientists, and other teams that orchestrate machine learning models in production.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. JavaScript continues unstoppable. Long live the king!
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A_rHB_hW5mryiV9V-_LTbkg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A_rHB_hW5mryiV9V-_LTbkg.png" alt="Stack Overflow Developer Survey 2023&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt; credit: Stack Overflow Developer Survey 2023&lt;/p&gt;

&lt;p&gt;No doubt, JavaScript becomes stronger each year.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://survey.stackoverflow.co/2023/#most-popular-technologies-language" rel="noopener noreferrer"&gt;Stack Overflow Developer Survey 2023&lt;/a&gt;, JavaScript continued its streak as its eleventh year in a row as the most commonly-used programming language.&lt;/p&gt;

&lt;p&gt;So it is obvious to think that it will remain at its peak and beyond in 2024, its reign will continue for more years.&lt;/p&gt;

&lt;p&gt;This is perfect for everyone.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because every single day, there are more and more development services that require JavaScript skills.&lt;/p&gt;

&lt;p&gt;That avalanche of need of services is bringing more and more job opportunities, which is just awesome for me and for you. It isn’t?&lt;/p&gt;

&lt;h3&gt;
  
  
  How to learn it the right way
&lt;/h3&gt;

&lt;p&gt;Here is a list of up-to-date and valuables resources to learn it.&lt;/p&gt;

&lt;p&gt;Even though most of them are for those who are just starting out, it can’t hurt if more seasoned developers take a look at them 😎&lt;/p&gt;

&lt;h3&gt;
  
  
  Books and GitHub repositories
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/getify/You-Dont-Know-JS" rel="noopener noreferrer"&gt;You don’t know JS Yet 2nd Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742" rel="noopener noreferrer"&gt;JavaScript: The Good Parts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eloquentjavascript.net/" rel="noopener noreferrer"&gt;Eloquent JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ryanmcdermott/clean-code-javascript" rel="noopener noreferrer"&gt;Clean Code JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Free JavaScript courses
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.codecademy.com/learn/introduction-to-javascript" rel="noopener noreferrer"&gt;Learn Javascript&lt;/a&gt; — Codecademy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.udemy.com/course/javascript-essentials/" rel="noopener noreferrer"&gt;JavaScript Essentials&lt;/a&gt; — Udemy&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  3. TypeScript rises in popularity and usage
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A9EW3xDrdog9C18cS4WbOEg.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A9EW3xDrdog9C18cS4WbOEg.png" alt="The State of Octoverse 2023"&gt;&lt;/a&gt;&lt;a href="https://github.blog/2023-11-08-the-state-of-open-source-and-ai/" rel="noopener noreferrer"&gt;The State of Octoverse 2023&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This year (2023), TypeScript overtook Java for the first time as the third most popular language across OSS projects on GitHub with 37% growth of its user base according to &lt;a href="https://github.blog/2023-11-08-the-state-of-open-source-and-ai" rel="noopener noreferrer"&gt;The State of Octoverse 2023&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This trend is also backed by the Stack Overflow Developer Survey 2023.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AMbYg4blK3zqsDc7Md7tGCA.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AMbYg4blK3zqsDc7Md7tGCA.png" alt="Stack Overflow Developer Survey 2023"&gt;&lt;/a&gt;&lt;a href="https://survey.stackoverflow.co/2023/#most-popular-technologies-language" rel="noopener noreferrer"&gt;Stack Overflow Developer Survey 2023&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You might wonder why TypeScript has gained too much popularity.&lt;/p&gt;

&lt;p&gt;Simply because it is a strongly typed language, object-oriented, type checker, compiler, and language service all in one.&lt;/p&gt;

&lt;p&gt;If you want to write more readable, cleaner, and maintainable code, you definitely will have to use TypeScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to learn it the right way
&lt;/h3&gt;

&lt;p&gt;The following are a few free and paid resources to get started or dive into it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/intro.html" rel="noopener noreferrer"&gt;The TypeScript handbook (official doc)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/understanding-typescript/" rel="noopener noreferrer"&gt;Understanding TypeScript: 2023 Edition by sensei Maximilian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontendmasters.com/courses/typescript-v4/" rel="noopener noreferrer"&gt;TypeScript 5+ Fundamentals, V4-V5 — FrontendMaster.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/typescript-the-complete-developers-guide/" rel="noopener noreferrer"&gt;Typescript: The Complete Developer’s Guide [2023] — Stephen Grider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontendmasters.com/courses/typescript-v3/" rel="noopener noreferrer"&gt;TypeScript Fundamentals, V3 — FrontendMaster.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontendmasters.com/courses/intermediate-react-v5/" rel="noopener noreferrer"&gt;Intermediate React, V5 &lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. React.js — The most commonly used and popular web library
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AgvR22UbPhRDzFPn4vwyJIg.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AgvR22UbPhRDzFPn4vwyJIg.png" alt="Stack Overflow Developer Survey 2023"&gt;&lt;/a&gt; &lt;a href="https://survey.stackoverflow.co/2023/#technology-most-popular-technologies" rel="noopener noreferrer"&gt;Stack Overflow Developer Survey 2023&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The picture is clear.&lt;/p&gt;

&lt;p&gt;React will continue its dominance among JavaScript frameworks and libraries in 2024.&lt;/p&gt;

&lt;p&gt;That hegemony will continue despite the fast growth and popularity of the next-generation reactive frameworks like Vue.js and Svelte.&lt;/p&gt;

&lt;p&gt;For sure, there is a significant rise in the usage of those reactive frameworks as well.&lt;/p&gt;

&lt;p&gt;But if we rely on the data, the latest data above indicates that React was the most loved web framework, with 42.65% of respondents using it or having an interest in using it in the near future.&lt;/p&gt;

&lt;h3&gt;
  
  
  A new kid in the first places
&lt;/h3&gt;

&lt;p&gt;It is surprising, but it is real.&lt;/p&gt;

&lt;p&gt;Next.js moved from 11th place in 2022 to 6th this year (2023), likely driven by its popularity with those learning to code.&lt;/p&gt;

&lt;p&gt;Now let’s take a look at the downloads of the NPM packages of these technologies.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Azcbg8h-i8aqnzF7wXPaQ3g.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Azcbg8h-i8aqnzF7wXPaQ3g.png" alt="NPM trends last 5 years&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Progressive Web Apps (PWAs) are now a standard
&lt;/h1&gt;

&lt;p&gt;Progressive Web Apps (PWAs) have officially ascended to the status of a standard, marking a pivotal moment in the evolution of web applications.&lt;/p&gt;

&lt;p&gt;Let’s see the key features that make PWAs so powerful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsive design
&lt;/h3&gt;

&lt;p&gt;PWAs adapt to various screen sizes and orientations, providing a consistent and optimal user experience across devices.&lt;/p&gt;

&lt;h3&gt;
  
  
  Offline functionality
&lt;/h3&gt;

&lt;p&gt;One of the standout features of PWAs is their ability to work offline. By leveraging service workers, PWAs can cache essential resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  App-like interactions
&lt;/h3&gt;

&lt;p&gt;PWAs offer a native app-like experience with smooth transitions, gestures, and responsive animations, creating a more engaging and immersive user experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Push Notifications
&lt;/h3&gt;

&lt;p&gt;Users can receive push notifications, even when the PWA is not actively open, enhancing user engagement and keeping them informed about updates or relevant content.&lt;/p&gt;

&lt;h3&gt;
  
  
  Secure connection (HTTPS)
&lt;/h3&gt;

&lt;p&gt;PWAs mandate a secure connection, ensuring the safety and privacy of user data.&lt;/p&gt;

&lt;p&gt;So it is clear that businesses and developers can leverage this technology to create more robust, responsive, and user-friendly applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to get started
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://web.dev/learn/pwa" rel="noopener noreferrer"&gt;Learn Progressive Web Apps!&lt;/a&gt; — Web Dev&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.udemy.com/course/progressive-web-app-pwa-the-complete-guide/" rel="noopener noreferrer"&gt;Progressive Web Apps (PWA)&lt;/a&gt; — The Complete Guide — Udemy&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.pluralsight.com/courses/progressive-web-app-fundamentals" rel="noopener noreferrer"&gt;Progressive Web App Fundamentals&lt;/a&gt; — PluralSight&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  6. JAMSTACK is not the future. It is now a standard
&lt;/h1&gt;

&lt;p&gt;The Jamstack has transformed our approach to web development, offering a more straightforward developer experience, enhanced performance, reduced expenses, and increased scalability.&lt;/p&gt;

&lt;p&gt;But what is actually JAMSTACK?&lt;/p&gt;

&lt;p&gt;JAMSTACK stands for Javascript, APIs, and Markup.&lt;/p&gt;

&lt;p&gt;It is a software architecture that leverages the above elements to build secure, scalable, cheaper, and performant websites and apps.&lt;/p&gt;

&lt;p&gt;This year (2023), Static Site Generators (SSGs) have gained tremendous popularity.&lt;/p&gt;

&lt;p&gt;Using frameworks and techologies like Gatsby, Next.js, Nuxt, and Hugo, developers can leverage the power of pre-rendering to deliver highly performant and SEO-friendly websites.&lt;/p&gt;

&lt;p&gt;On top of that, we have witnessed the emerged of new kids like Remix, SvelteKit, and Astro, who want to grab their piece of the market cake.&lt;/p&gt;

&lt;p&gt;All these techs adoptions makes the JAMSTACK no a cutting-edge technology but a standard from 2023 and beyond.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to get started
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jamstack.org/resources/" rel="noopener noreferrer"&gt;Learning Jamstack — Official resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/what-is-the-jamstack-and-how-do-i-host-my-website-on-it/" rel="noopener noreferrer"&gt;What is the JAMstack and how do I get started?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://buttercms.com/blog/what-is-jamstack/" rel="noopener noreferrer"&gt;https://buttercms.com/blog/what-is-jamstack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  7. Micro frontends have moved forward and gained more maturity
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AqGNy0p0Z6YuAQicHxlrW2Q.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AqGNy0p0Z6YuAQicHxlrW2Q.png" alt="The State Of Frontend"&gt;&lt;/a&gt; &lt;a href="https://tsh.io/state-of-frontend/#what-solution-do-you-use-for-micro-frontends-the-most-often" rel="noopener noreferrer"&gt;The State Of Frontend&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For those who dont know this concept let’s define it first.&lt;/p&gt;

&lt;p&gt;Martin Fowler it defines as an architectural style where independently deliverable frontend applications are composed into a greater whole.&lt;/p&gt;

&lt;p&gt;Think about a website or web app as a combination of features that are owned by independent teams so they can work isolated from each other.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://tsh.io/state-of-frontend/" rel="noopener noreferrer"&gt;The State of Frontend 2022&lt;/a&gt; , Micro Frontends are embraced by a variety of companies nowadays.&lt;/p&gt;

&lt;p&gt;Among others, Netflix, PayPal, American Express, IKEA, Spotify, and Starbucks, have implemented this architecture approach in some of their systems.&lt;/p&gt;

&lt;p&gt;Definitely, micro-frontends have moved forward in comparison to two years ago and will see how more and more company adopt it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://martinfowler.com/articles/micro-frontends.html" rel="noopener noreferrer"&gt;Martin Fowler — The evangelist of this architecture
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Ending Thoughts
&lt;/h1&gt;

&lt;p&gt;Frontend land is really powerful and also surprising.&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because more and more libraries and frameworks are coming up in the blink of an eye.&lt;/p&gt;

&lt;p&gt;Should this overwhelm us?&lt;/p&gt;

&lt;p&gt;Not really. We should embrace and study them and prepare ourselves as best as we can.&lt;/p&gt;

&lt;p&gt;If you followed the reading till now, we learned about the 7 frontend trends 📈 and predictions for 2024.&lt;/p&gt;

&lt;p&gt;To sumarize it&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chatbots and AI has become now the game-changer player in the frontend land.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The old, well-known kid — JavaScript, continues unstoppable.&lt;br&gt;
Single Page Application (SPA), Server Side Rendering (SSR), and Static Site Generators (SSGs) and JAMSTACK are technologies that have gained a tremendous growth in both usage and popularity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TypeScript came to stay and makes web development less frustrating.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React.js, continues its reign.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Micro-frontends are on their way to stability and maturity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For sure there are other technologies like Web3, WebAssembly and Web Componentes amonght others I haven't covered here.&lt;/p&gt;

&lt;p&gt;I promise you I will in a future post. Thanks for reading.&lt;/p&gt;

&lt;p&gt;I hope this article turned to be out helpful. See you in the next reading. Happy Coding!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>javascriptlibraries</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>From Being A Little Farmer Kid to Being a Software Engineer</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Thu, 22 Jun 2023 17:57:00 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/from-being-a-little-farmer-kid-to-being-a-software-engineer-3ebl</link>
      <guid>https://dev.to/blarzhernandez/from-being-a-little-farmer-kid-to-being-a-software-engineer-3ebl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://www.mullinstack.com/2022/10/15/from-being-a-little-farmer-kid-to-being-a-software-engineer/"&gt;my blog&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  36 Years Discovering Myself Counted In 3 Minutes
&lt;/h1&gt;

&lt;p&gt;It is not about how many years we have gone through, but how many meaningful things we have added to those years that really count.&lt;/p&gt;

&lt;p&gt;The more things you experience, the more input you have in the decision-making process. Most importantly, more wise decisions.&lt;/p&gt;

&lt;p&gt;Let’s jump into the purpose of this piece. The next are crucial things that happened in my life. But the most important part is the factor that plays goals and the self-discovery process.&lt;/p&gt;

&lt;h1&gt;
  
  
  1996 Just a farmer kid
&lt;/h1&gt;

&lt;p&gt;Zero Goals.&lt;/p&gt;

&lt;h1&gt;
  
  
  1999 A young guy with dreams to be a soccer player
&lt;/h1&gt;

&lt;p&gt;Zero real goals.&lt;/p&gt;

&lt;h1&gt;
  
  
  2003 A baker
&lt;/h1&gt;

&lt;p&gt;Zero Goals, just surviving and bringing a few pennies to my family’s table&lt;/p&gt;

&lt;h1&gt;
  
  
  2006 A college student
&lt;/h1&gt;

&lt;p&gt;Goal: Finish university, then find an 8–5 job and get paid, so I can put food on my family’s table.&lt;/p&gt;

&lt;h1&gt;
  
  
  2011 A naive freelancer and entrepreneur
&lt;/h1&gt;

&lt;p&gt;Goal: Get a few more pennies. A tiny income stream to survive and learn over the process to gain experience. Work for free.&lt;/p&gt;

&lt;h1&gt;
  
  
  2012 A newbie entrepreneur again
&lt;/h1&gt;

&lt;p&gt;Goal: Get income to survive.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Outcome: Debts&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2013 Get hired as a “webmaster”
&lt;/h1&gt;

&lt;p&gt;Goal: Get money to buy a car, pay the bills, support my family, and nothing else.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Outcome: more debts.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2014 A better developer
&lt;/h1&gt;

&lt;p&gt;Goal: Get money to buy another car, pay the bills, have fun, and support my family.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Outcome: I ended up sinking into debt.&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2018 Become a Software Developer
&lt;/h1&gt;

&lt;p&gt;Goal: Understand the root of computer science, get more income, buy a house, and get out of debt.&lt;/p&gt;

&lt;h1&gt;
  
  
  2019–2021 A Front-end Engineer and a Technical Writer
&lt;/h1&gt;

&lt;p&gt;Goals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specialize on the frontend side, especially with everything around JavaScript, React and React Native.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.thetopoffensive.com/"&gt;The Top Offensive&lt;/a&gt;: Get out of debt and reach a better financial state&lt;/li&gt;
&lt;li&gt;Help and advise others to achieve more, earn more, and live a better and more meaningful life.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  2023–Beyond. An author, a real software engineer, a motivational speaker, and an entrepreneur
&lt;/h1&gt;

&lt;p&gt;Goals: I want to become an author, a real software engineer, a motivational speaker, and a tech entrepreneur.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;It’s never late to start and rediscovery who you really are. Start today if you haven’t done it yet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Don’t just count your years, make your years count - George Meredith&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I have transitioned from being a little farmer kid to being a baker, webmaster, and software developer.&lt;/p&gt;

&lt;p&gt;I am so grateful for the kind of life I am building. But I am aware that I am still learning and discovering myself. We are just humans in constant evolution.&lt;/p&gt;

&lt;p&gt;Finally, I would like to share the things today that I enjoy the most that add meaning to my life.&lt;/p&gt;

&lt;p&gt;Spend quality time with my family as much as I can.&lt;br&gt;
Enjoy and lose myself in writing. I want to be a voice in the silence and spread it to the last corner of the world. I want to express myself and my thoughts.&lt;br&gt;
Spark and spread my voice and story to somewhat inspire others.&lt;/p&gt;

&lt;p&gt;Encourage people, that everybody has an undiscovered potential&lt;br&gt;
Solve people’s problems to make a happier and more meaningful life.&lt;/p&gt;

&lt;p&gt;Thanks for reading. I hope this turned out to be helpful for you. If you liked it, share it to reach a wider audience.&lt;/p&gt;

</description>
      <category>web</category>
      <category>career</category>
      <category>softwareengineering</category>
      <category>motivation</category>
    </item>
    <item>
      <title>I Wan To Buy a Coffee Machine. Do you have one ? Which do you recommend me?</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Wed, 07 Jul 2021 13:13:49 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/i-wan-to-buy-a-coffee-machine-do-you-have-one-which-do-you-recommend-me-124m</link>
      <guid>https://dev.to/blarzhernandez/i-wan-to-buy-a-coffee-machine-do-you-have-one-which-do-you-recommend-me-124m</guid>
      <description>&lt;p&gt;Thanks folks. Really appreciate it&lt;/p&gt;

</description>
      <category>advice</category>
      <category>coffee</category>
      <category>life</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>🔥 A Few Gotchas To Consider When Working With Firestore’s Offline Mode and React Native 🪤</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Sat, 12 Jun 2021 17:28:43 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/a-few-gotchas-to-consider-when-working-with-firestore-s-offline-mode-and-react-native-42al</link>
      <guid>https://dev.to/blarzhernandez/a-few-gotchas-to-consider-when-working-with-firestore-s-offline-mode-and-react-native-42al</guid>
      <description>&lt;p&gt;Originally published on my blog &lt;a href="https://www.mullinstack.com/2021/05/05/a-few-gotchas-to-consider-when-working-with-firestores-offline-mode-and-react-native/"&gt;MullinStack&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does Firestore’s offline persistence work? 🔥
&lt;/h2&gt;

&lt;p&gt;One of the recent React Native projects I worked on uses the power of &lt;a href="https://firebase.google.com/docs/firestore"&gt;Cloud Firestore&lt;/a&gt;. The core idea of the app is to allow the user to perform online and offline tasks and to have a transparent sync process for the user.&lt;/p&gt;

&lt;p&gt;That is the exact power that Cloud Firestore provides, yet there are a few gotchas and findings I would like to mention about working with the offline mode. They might save you time and headaches.&lt;/p&gt;

&lt;p&gt;Let’s suppose that Blarz (the user) is using &lt;code&gt;MyFavouritesOfflineApp&lt;/code&gt;, which handles his favorite movies and books. So we have two main Firebase/Firestore collections: books and movies.&lt;/p&gt;

&lt;p&gt;Blarz logs in, and once he is on the home page, the app will start fetching all his favorite books and movies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reading actions
&lt;/h2&gt;

&lt;p&gt;Basically, Blarz is downloading all sorts of documents while he is interacting with the app.&lt;/p&gt;

&lt;p&gt;The download of those documents occurs either through queries or individual document fetches. Once this happens, all those documents stay cached on Blarz’s phone.&lt;/p&gt;

&lt;p&gt;&lt;em&gt; Note: Bear in mind that if you haven’t programmatically set to retrieve those collections or if the user has not interacted with any query or document, the data won’t still be available in offline mode either.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing actions
&lt;/h2&gt;

&lt;p&gt;Let’s continue with the prior scenario to have a better understanding.&lt;/p&gt;

&lt;p&gt;Suppose that Blarz wants to update one of his favorite movies. This is a request to make a change to the movie collection and the document associated with the movie that Blarz wants to update.&lt;/p&gt;

&lt;p&gt;Remember that the data stays on the cache, so you will see the change immediately even when the data hasn’t gone to the server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gotchas When Working in Offline Mode
&lt;/h2&gt;

&lt;p&gt;I have to admit it: I only discovered these gotchas after debugging for a while after starting to work on a reported bug on Jira. Certainly, there wasn’t enough offline testing, so I didn’t realize all of that.&lt;/p&gt;

&lt;p&gt;While using Firestore’s offline mode, we need to avoid the usage of await on certain things such as creating or updating things on the Firebase.&lt;/p&gt;

&lt;p&gt;The promise generated by the &lt;code&gt;await&lt;/code&gt; expression will not be complete until the document write has been successful on the server. This will block your UI even when the changes are made in the cache.&lt;/p&gt;

&lt;p&gt;There are two ways to handle this.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Avoid await and use callbacks or promises instead (recommended)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you want to make sure that a writing server has happened, it is fine to use either callbacks or promises. But you don’t need to block the thread by using the await expression.&lt;/p&gt;

&lt;p&gt;So instead of this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const user = {
  id:1,
  name:blarz
};
const userResponse = await FirebaseService.Collection.User().add(user);

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

&lt;/div&gt;



&lt;p&gt;Change it for the usage of promises. Something like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const user = {
  id:1,
  name:blarz
};
const userRef = FirebaseService.Collection.User().add(user)
.then(docRef =&amp;gt; {
  console.log(`The user with id ${docRef.id} was added succcesfully`);
}).catch(error=&amp;gt;console.log('There was an error adding a user', error))

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

&lt;/div&gt;



&lt;p&gt;By doing that, you will unlock your UI and the app will work just fine in offline mode.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check connection status&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This might not be a fancy solution, but if you still want to have the sugar syntax of the await expression, you can just check the connection status and depend on it to decide what to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get IDs Before They Were Added
&lt;/h2&gt;

&lt;p&gt;This was another battle. I needed to return the user document.&lt;/p&gt;

&lt;p&gt;Due to the issue with the await expression, I needed to find a way to return a document with its ID before it was added.&lt;/p&gt;

&lt;p&gt;I had something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async addUser(user: User):Promise&amp;lt;User&amp;gt; {
const { id, ...data } = user;
const result = await FirebaseService.Collection.User().add(data);
user.id = result.id;
return user;
}

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

&lt;/div&gt;



&lt;p&gt;After I removed the &lt;code&gt;await&lt;/code&gt; expression, the code looks like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async addUser(user: User):Promise&amp;lt;User&amp;gt; {
const { id, ...data } = user;
const userRef = FirebaseService.Collection.User().doc();
user.id = userRef.id;
userRef
.set(data)
.then(() =&amp;gt; console.log(`The user was created successfully`))
.catch((error) =&amp;gt;
console.log('There was an error adding the user', error)
);
return user;
}

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

&lt;/div&gt;



&lt;p&gt;This code snippet is basically creating a user reference — a document reference. Then you can get the user’s ID without even creating it on Cloud Firestore. Remember that we are still working in offline mode.&lt;/p&gt;

&lt;p&gt;The last code lines add the user using a promise. We are not waiting for the server’s response, so we return the new user we have just created.&lt;/p&gt;

&lt;p&gt;That’s all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Cloud Firestore provides us with the power of working both online and offline in a fancy way. We don’t need to worry about anything when it comes to working in offline mode because for iOS and Android, offline persistence is enabled by default.&lt;/p&gt;

&lt;p&gt;With that said, there a few gotchas you need to keep in mind while working offline. One of the most important is avoiding the use of await expressions.&lt;/p&gt;

&lt;p&gt;This is important because if you don’t, the UI will be locked since you will be awaiting the response even when those changes are done and on the cache already.&lt;/p&gt;

&lt;p&gt;The solution for that is to use callbacks or promises. 🔥&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If this post turned out helpful share it to reach more devs. Also feel free to reach me on &lt;a href="//www.mullinstack.com"&gt;my blog&lt;/a&gt; and &lt;a href="https://medium.com/@blarz"&gt;Medium&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>An Effective Strategy To Learn Vue.js In Less Than Seven Days</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Tue, 18 May 2021 18:21:25 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/an-effective-strategy-to-learn-vue-js-in-less-than-seven-days-4dp6</link>
      <guid>https://dev.to/blarzhernandez/an-effective-strategy-to-learn-vue-js-in-less-than-seven-days-4dp6</guid>
      <description>&lt;h2&gt;
  
  
  No BS. Here the action plan and strategy I followed to achieve it
&lt;/h2&gt;

&lt;p&gt;Learning &lt;a href="https://vuejs.org/" rel="noopener noreferrer"&gt;Vue.js&lt;/a&gt; in less than seven days was one of my recent challenges. At first, I was skeptical about if I was going to able to achieve it.&lt;br&gt;
Before following the next pragmatic methodology to learn Vue.js that we are going to reveal throughout this post I have I wrong believe.&lt;/p&gt;

&lt;p&gt;I thought that those who are knowledgeable in different areas were born with a special power. I was completely wrong.&lt;/p&gt;

&lt;p&gt;As someone said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Everything is difficult until you know how to do it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After I finished university and obtained a master's degree in Computer Science, I dug into the self-taught journey.&lt;/p&gt;

&lt;p&gt;Over this journey, I realized that the difference between super learners and others is basically the way both learn.&lt;/p&gt;

&lt;p&gt;I knew nothing about building a learning map based on your personal needs and even less about how to identify what drives me (if it is an internal or external force).&lt;/p&gt;

&lt;p&gt;As cliche as it sounds, setting the right mindset plays a big role in achieving your goal in less time and effort.&lt;br&gt;
If we are now jumping on the technical and explicit things related to Vue.js, there will be a few crucial things to consider.&lt;/p&gt;

&lt;p&gt;Choosing the official documentation and a video course format will save you a lot of time, so you can get familiar with the main concepts faster.&lt;br&gt;
Anyway, let's jump to the exact action plan I followed to learn Vue.js in less than seven days.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disclaimer:
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt; This is just a guide to give you a list of key factors to succeed while learning Vue.js.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The outcome might vary depending on different factors like your level of experience (in this case, mainly with JavaScript, HTML, and CSS). In my case, I learned the Vue.js fundamentals and got a decent code velocity, but more complex concepts were digested as long I continued developing Vue.js projects.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There two crucial stages you need to focus on if you want to learn anything faster.&lt;/p&gt;

&lt;h1&gt;
  
  
  Planning and Strategy Stage
&lt;/h1&gt;

&lt;p&gt;The plan and the strategy you're going to stick to will play a big role in how fast you can grasp all Vue.js-related concepts and elements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build a learning map
&lt;/h2&gt;

&lt;p&gt;Picking a course and going straight into it is one of the common mistakes we make when learning something new.&lt;/p&gt;

&lt;p&gt;Do you want to fix that? So then start by building a learning map. It will help you to get an understanding of all the things you are trying to learn.&lt;/p&gt;

&lt;p&gt;Simply put, it is a personalized guide based on your own needs.&lt;/p&gt;

&lt;p&gt;OK, all of this sounds good, but how do I really build a learning map? No worries, let's jump to it right now.&lt;/p&gt;

&lt;p&gt;To build a learning map to learn Vue.js, there are three main things you have to consider so you can boost your learning speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. What drives you to learn?
&lt;/h3&gt;

&lt;p&gt;The first thing to do to build a learning map is to be completely honest about what drives you to learn. Is this an internal or external force?&lt;/p&gt;

&lt;p&gt;If this is an internal force, that means you have a genuine passion for the frontend and you are probably fully focused on mastering every detail of the Vue.js framework.&lt;/p&gt;

&lt;p&gt;An external motivation means you are learning it because the company needs you to learn it for an incoming project or because it is a trending and on-demand framework and you want to get on that train.&lt;/p&gt;

&lt;p&gt;Yet you are not interested enough in learning it.&lt;/p&gt;

&lt;p&gt;Why is it so crucial to know the type of motivation?&lt;br&gt;
That's simple. Because there might be a few sections or things that are irrelevant for the type of motivation, so you can skip them for later.&lt;/p&gt;

&lt;p&gt;With a clear idea of what drives you to learn, you can now devote your time and energy to it.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Build a learning structure
&lt;/h3&gt;

&lt;p&gt;The idea behind building a learning structure is to find the fastest route to grasp a topic. By doing this, you will speed up your understanding of how Vue.js works and all concepts involved in it.&lt;/p&gt;

&lt;p&gt;There are two things you need to consider when building a learning structure: concepts and facts.&lt;/p&gt;

&lt;p&gt;Concepts are all the fundamentals and principles about Vue.js you need to understand, whereas a fact is all the truthful things you must remember about it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Concepts and facts to learn about Vue.js
&lt;/h3&gt;

&lt;p&gt;What is the right version to learn (as of this writing)? Vue 2 or 3?&lt;/p&gt;

&lt;p&gt;What is a common/popular tech stack of an app based on Vue.js?&lt;br&gt;
Get familiar with the most common and used Vue.js concepts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Facts and dilemmas
&lt;/h3&gt;

&lt;p&gt;Let's start out by talking about a few things you will probably stumble upon just after you start learning the Vue.js ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the right Vue version to learn?
&lt;/h3&gt;

&lt;p&gt;When I was starting out learning Vue.js, this was a question that quickly came ups so you might have the same dilemma too.&lt;/p&gt;

&lt;p&gt;Research and dive into it a little bit without worrying too much. The idea is to be clear why you're choosing either version 2 or 3.&lt;/p&gt;

&lt;p&gt;I suggest you just make a comparison at a high level. For instance, the following Reddit threads will give you insight into the difference between both versions:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/vuejs/comments/g1v72x/start_with_vue_3_or_learn_vue_2_first/" rel="noopener noreferrer"&gt;Learn Vue 2 or 3?&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.reddit.com/r/vuejs/comments/hx0bh1/im_currently_learning_vue_2_and_ive_heard_vue_3/" rel="noopener noreferrer"&gt;Should I learn Vue 2 or 3&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a common/popular tech stack of an app based on Vue.js?
&lt;/h3&gt;

&lt;p&gt;Knowing what to learn is crucial to boost your learning speed.&lt;br&gt;
You need to have an idea of what is a common tech stack when building Vue.js apps so you can devote time and energy to those specific elements.&lt;/p&gt;

&lt;p&gt;Here is a common Vue.js stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Framework: Vue 2/3&lt;/li&gt;
&lt;li&gt;Routing: vue-router&lt;/li&gt;
&lt;li&gt;Bundler: WebPack&lt;/li&gt;
&lt;li&gt;UI kit/framework: Element UI, Vuetify.&lt;/li&gt;
&lt;li&gt;State management: VueX&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Common concepts
&lt;/h3&gt;

&lt;p&gt;Now that you have a better understanding of the right Vue.js version and the stack you want to focus on, it is time to jump to the fundamentals, concepts, and unique things that belong to Vue.js.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Vue instance: Every Vue.js app starts by creating a new &lt;code&gt;Vue&lt;/code&gt; instance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data and methods: When a &lt;code&gt;Vue&lt;/code&gt; instance is created, it adds all properties found in its &lt;code&gt;data object to&lt;/code&gt;Vue's reactivity` system.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Instance Lifecycle Hooks (different than lifecycle Hooks): This is a series of steps that run whenever the Vue instance is created ( &lt;code&gt;init, beforeCreate, created&lt;/code&gt;, etc.).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lifecycle hooks: Functions that give users the ability to add their own code at a specific stage ( &lt;code&gt;mounted, updated, destroyed&lt;/code&gt;, etc. ).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Template syntax: Vue.js uses an HTML-based template syntax that allows you to declaratively bind the rendered DOM to the underlying Vue instance's data. The template syntax includes interpolations, directives, and shorthand (e.g. &lt;code&gt;v-bind, v-on&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Computed properties: Allow you to handle complex logic and operations. They are calculations that will be cached based on their dependencies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Watchers: Allow you to perform asynchronous or expensive operations in response to changing data. They allow you to track any property and react to any change on it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Class and style binding: Allow you to manipulate classes and inline style. You can pass data to apply specific classes or styles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conditional rendering: Vue.js allows you to condition whether or not to show a block, component, or element using different directives such as &lt;code&gt;v-if, v-else, v-show, and v-for&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Event handling: Listening to events from the DOM, event handlers, inline handlers, event modifiers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Form input binding: Use the v-model directive to create two-way data binding on form input.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Components Basics: Components are reusable Vue instances with a name like &lt;code&gt;&amp;lt;button-counter&amp;gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Passing data to child components with props: Props are custom attributes you can register on a component. Props passed down to a child component become properties on that child component.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These concepts are the most common or useful when starting with Vue.js.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Choose the right resources
&lt;/h2&gt;

&lt;p&gt;By building a learning structure, you figured out the fastest route to learn Vue.js. Now it is time to research the right resources and methods other effective learners are using. As Scott Young, the author of the &lt;a href="https://www.scotthyoung.com/blog/ultralearning/" rel="noopener noreferrer"&gt;Ultralearning book&lt;/a&gt;, says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Spending one or two hours figuring out the right resources and 'how do people get good at this,' is a very useful investment."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Vue.js official guide (~3–6 hours)
&lt;/h3&gt;

&lt;p&gt;I suggest you start off by reading the &lt;a href="https://vuejs.org/v2/guide/" rel="noopener noreferrer"&gt;Vue.js official documentation&lt;/a&gt;. Since it is your first time with Vue.js, you probably will not be able to grasp and digest all the information. No worries. That's fine.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choose a highly rated video course (~10–15 hours)
&lt;/h3&gt;

&lt;p&gt;Again, at this point in your learning journey, you shouldn't worry about all the items in the course.&lt;/p&gt;

&lt;p&gt;A video course will help you to speed the learning process up. It will help you to bridge the understanding gap you had after you read the Vue.js official guide.&lt;/p&gt;

&lt;p&gt;The goal of the course is to understand the Vue.js fundamentals. It should take roughly 10–15 effective hours. While doing this, try to use the Pomodoro technique in order to avoid burnout.&lt;/p&gt;

&lt;p&gt;I suggest taking the following Vue.js courses. A few of them are free and others are quite cheap, so there are no excuses.&lt;/p&gt;

&lt;p&gt;Courses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udemy.com/course/vuejs-2-the-complete-guide/" rel="noopener noreferrer"&gt;Develop with VueJS 2 (Complete Vue.js Router and Vuex Course)&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.vuemastery.com/" rel="noopener noreferrer"&gt;Vue Mastery&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.pluralsight.com/courses/vuejs-fundamentals" rel="noopener noreferrer"&gt;Vue.js Fundamentals&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Execution Stage
&lt;/h1&gt;

&lt;p&gt;At this point, you have the right mindset, a learning map, and the right resources to crush the Vue.js roadmap.&lt;/p&gt;

&lt;p&gt;In order to grasp as much of Vue's world as possible, you need to follow a series of steps. The time to execute the plan has arrived.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Keep in mind that all the following steps are required from day 0 to day 7.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Teach it to yourself or to a child (part of the &lt;a href="https://medium.com/taking-note/learning-from-the-feynman-technique-5373014ad230" rel="noopener noreferrer"&gt;Feynman technique&lt;/a&gt;)
&lt;/h3&gt;

&lt;p&gt;If you can explain what you have learned in plain English, there is no doubt you have achieved two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You are clear about the topic and its elements. You can't explain what you don't understand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You stored that knowledge in your long-term memory rather than in your working memory.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For any confusing or unclear concepts, try to explain them to yourself or to a child without using jargon or dense vocabulary. I usually practice this with my &lt;a href="https://medium.com/better-code-and-life/how-to-explain-to-a-2-half-years-old-kid-what-is-a-promise-in-javascript-1c3c931ac23" rel="noopener noreferrer"&gt;four-year-old son&lt;/a&gt;. It is not easy at all. But when he is able to get an idea of what I am talking about, I understand that I grasped it too.&lt;/p&gt;

&lt;h3&gt;
  
  
  Go live on YouTube
&lt;/h3&gt;

&lt;p&gt;Really? No worries. You don't need to expose yourself - at least for now.&lt;/p&gt;

&lt;p&gt;Again, this is a matter of measuring how much you understand the topic you are learning. You don't need to go live on YouTube but live on private mode.&lt;/p&gt;

&lt;p&gt;Confused? Let me explain.&lt;/p&gt;

&lt;p&gt;Whenever I am learning something new, one effective thing I do is to record myself. I try to explain a confusing or complex topic and then see how well I did.&lt;/p&gt;

&lt;p&gt;I use YouTube for simplicity and quick access, but you can record yourself using your laptop's tools if you want or use whatever method you feel comfortable with. Check the screenshot below. I was recording how to know when to use a computed property and a watcher.&lt;/p&gt;

&lt;p&gt;I went live on YouTube but using private visibility. If you consider your explanation good enough, you can even publish it or just have it there for future access.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2A66E5bBqIK3rDvIK4rpUjjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F800%2F1%2A66E5bBqIK3rDvIK4rpUjjw.png" alt="Trying to explain when to use Vue.js computed properties and watchers. Screenshot by the author."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Write down what you have learned
&lt;/h3&gt;

&lt;p&gt;You might not be a writer, but that doesn't mean you can't put your learning process on record and most importantly create the neural connections in your brain to store that knowledge in your long-term memory.&lt;/p&gt;

&lt;p&gt;Indeed, this article was the result of learning Vue.js. I documented the most important lessons, concepts, and elements of the process.&lt;/p&gt;

&lt;p&gt;That helped me to remember things easily.&lt;br&gt;
Blogging what you are learning will help in different areas, and it might end up becoming something meaningful to you at some point. That's what I went through - I am now a writer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Practice, practice, practice
&lt;/h3&gt;

&lt;p&gt;This is so obvious. Once you have a better understanding of Vue's ecosystem, you should implement a project. I recommend starting from a basic one to a mid-level project.&lt;/p&gt;

&lt;p&gt;There's no silver bullet. You will need to practice over and over. That is part of our dev journey. We will never be prepared enough. We will need to re-learn and come back several times.&lt;/p&gt;

&lt;h1&gt;
  
  
  Closing Thoughts
&lt;/h1&gt;

&lt;p&gt;Learning Vue.js in less than seven days was an amazing experience. As I outlined throughout this article, that doesn't mean I am the boss of Vue.js now.&lt;/p&gt;

&lt;p&gt;It means I grasped the relevant concepts and elements because I built a learning map that sped up my learning process.&lt;/p&gt;

&lt;p&gt;Determining if your motivation to learn is internal or external is a key factor to decide what resources to include and what you have to leave out.&lt;/p&gt;

&lt;p&gt;All the prior points are about the plan and strategy to follow. They will boost your learning process with Vue.js or any JS framework or topic you are learning.&lt;/p&gt;

&lt;p&gt;Yet the execution stage is what will help you to crush your learning process.&lt;/p&gt;

&lt;p&gt;When learning Vue.js, try to explain to yourself or to a child confusing or complex concepts without using dense vocabulary or jargon.&lt;/p&gt;

&lt;p&gt;Also, try to record yourself or write down what you have learned in plain English. When you force your brain to explain a concept in your own words, you create neural connections that help you to store it in your long-term memory.&lt;/p&gt;

&lt;p&gt;** Happy coding! **&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If this post turned out helpful share it to reach more devs. Also feel free to reach me on &lt;a href="//www.mullinstack.com"&gt;my blog&lt;/a&gt; and &lt;a href="https://medium.com/@blarz" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>The Top 6 Frontend Trends and Predictions for 2021 and Resources to Master Them</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Fri, 15 Jan 2021 00:22:02 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/the-top-6-frontend-trends-and-predictions-for-2021-and-resources-to-master-them-3lgj</link>
      <guid>https://dev.to/blarzhernandez/the-top-6-frontend-trends-and-predictions-for-2021-and-resources-to-master-them-3lgj</guid>
      <description>&lt;p&gt;&lt;strong&gt;Originally published on my frontend blog &lt;a href="https://www.mullinstack.com/2021/01/14/the-top-6-frontend-trends-and-predictions-for-2021/" rel="noopener noreferrer"&gt;MullinStack&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Happy New Year, dear reader! I love frontend tech. So at the end or the beginning of every single year, it has become a tradition to bring up the top frontend trends and predictions for the incoming year.&lt;/p&gt;

&lt;p&gt;2021’s turn has come!&lt;/p&gt;

&lt;p&gt;The real intention of this is to make you aware of trends and help you understand how they will play in the frontend landscape as well as the impact they will have on your development journey and career.&lt;br&gt;
Without further ado, let's dive in!&lt;/p&gt;

&lt;h1&gt;
  
  
  Where Do These Predictions and Trends Come From?
&lt;/h1&gt;

&lt;p&gt;I am not a wizard, my friend. All the trends and predictions that we are going to talk about and highlight here come from reliable sources such as the &lt;a href="https://insights.stackoverflow.com/survey/2020" rel="noopener noreferrer"&gt;Stack Overflow Survey&lt;/a&gt;, &lt;a href="https://2019.stateofjs.com/" rel="noopener noreferrer"&gt;State of JS&lt;/a&gt;, &lt;a href="https://tsh.io/state-of-frontend/#developers" rel="noopener noreferrer"&gt;State of Frontend&lt;/a&gt;, my own experience, and frontend experts’ opinions.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. JavaScript Will Continue Its Reign
&lt;/h1&gt;

&lt;p&gt;Every single year, JavaScript becomes stronger. According to the &lt;a href="https://insights.stackoverflow.com/survey/2020#most-popular-technologies" rel="noopener noreferrer"&gt;2020 Stack Overflow Developer Survey&lt;/a&gt;, JavaScript has been the most known and studied programming language in the world for eight consecutive years.&lt;/p&gt;

&lt;p&gt;Based on that, I think JavaScript will remain at its peak in 2021 and continue its reign for many more years.&lt;/p&gt;

&lt;p&gt;That is really good because every single day, there are more and more development services that require JavaScript skills. This means more and more job opportunities.&lt;/p&gt;

&lt;p&gt;As a result, it has increased its usage, so more and more people are either just starting out with it or going deeper into it.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to learn it the right way
&lt;/h2&gt;

&lt;p&gt;Here is a list of valuable resources to learn it. Even though most of them are for those who are just starting out, it can’t hurt for more seasoned developers to take a look at them too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Books and GitHub repositories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/getify/You-Dont-Know-JS" rel="noopener noreferrer"&gt;You don't know JS Yet 2nd Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742" rel="noopener noreferrer"&gt;JavaScript: The Good Parts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eloquentjavascript.net/" rel="noopener noreferrer"&gt;Eloquent Javascript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ryanmcdermott/clean-code-javascript" rel="noopener noreferrer"&gt;Clean Code JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Free JavaScript courses
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codecademy.com/learn/introduction-to-javascript" rel="noopener noreferrer"&gt;Learn Javascript — Codecademy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/javascript-essentials/" rel="noopener noreferrer"&gt;Javascript Essentials — Udemy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  2. Server-Side Rendering (SSR) and Static Site Generators (SSG)
&lt;/h1&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%2Fmiro.medium.com%2Fmax%2F700%2F1%2Abn3z83UxGDg3o9nLJZl7OQ.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%2Fmiro.medium.com%2Fmax%2F700%2F1%2Abn3z83UxGDg3o9nLJZl7OQ.png" alt="Gatsby stats from npmtrends.com.&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Web development changed forever with the emergence of Single Page Applications (SPAs). We have been witness to how they made the web more dynamic and powerful.&lt;/p&gt;

&lt;p&gt;However, SPAs have one big limitation. They are not friends with Search Engine Optimization (SEO). They weren't thought to work well with search engines.&lt;/p&gt;

&lt;p&gt;That is a killer — especially when it comes down to SEO. This really matters if you want to have a strong online presence nowadays.&lt;/p&gt;

&lt;p&gt;SEO is crucial for all online businesses. In recent years, we have noticed how important it is for bloggers, writers, content creators, etc. They are hungry to leverage SEO.&lt;/p&gt;

&lt;p&gt;The creators of solutions like Next.js and Gatsby saw this problem and took steps to solve it. Here is where the server-side rendering (Next.js) and static site rendering (Gatsby) came up.&lt;/p&gt;

&lt;p&gt;In 2021, both Gatsby and Next.js will continue growing in both usage and popularity.&lt;/p&gt;

&lt;p&gt;Having said that, I bet that Gatsby will continue its domination in the static site rendering space.&lt;/p&gt;

&lt;p&gt;This is mainly because it offers a great developer experience. According to &lt;a href="https://w3techs.com/technologies/report/cm-gatsby" rel="noopener noreferrer"&gt;the W3 Techs Technology Market Report (May 2020)&lt;/a&gt;, Gatsby is the single fastest-growing framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to learn GatsbyJS
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.gatsbyjs.com/docs/tutorial/" rel="noopener noreferrer"&gt;GatsbyJS official documentation — Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/gatsby-tutorial-and-projects-course/" rel="noopener noreferrer"&gt;Gatsby Tutorial and Projects Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Gatsby JS &amp;amp; Shopify: Gatsby e-commerce sites &lt;a href="https://www.udemy.com/course/gatsby-ecommerce-shopify/" rel="noopener noreferrer"&gt;2020&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to learn Next.js
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/learn/basics/create-nextjs-app" rel="noopener noreferrer"&gt;Official Documentation&lt;/a&gt;
-&lt;a href="https://www.udemy.com/course/awesome-nextjs-with-react-and-node-amazing-portfolio-app/" rel="noopener noreferrer"&gt;Complete Next.js with React &amp;amp; Node — Beautiful Portfolio App&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  3. TypeScript Will Be Adopted More and More
&lt;/h1&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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AIaONj0dgUun3B68A10z9Cw.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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AIaONj0dgUun3B68A10z9Cw.png" alt="Credit: GitHub 2020 State of the Octoverse report&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;br&gt;
Credit: GitHub 2020 State of the Octoverse report&lt;/p&gt;

&lt;p&gt;If you want to write more readable, cleaner, and maintainable code, you definitely will have to use TypeScript.&lt;/p&gt;

&lt;p&gt;TypeScript brings all power of the object-oriented paradigm: interfaces, classes, enums, and generics as well as support for static typing and modules.&lt;/p&gt;

&lt;p&gt;Those have been the main reasons people have found TypeScript so powerful in recent years. As a result, it brought a huge growth in popularity and usage.&lt;/p&gt;

&lt;p&gt;According to the latest &lt;a href="https://insights.stackoverflow.com/survey/2020#most-loved-dreaded-and-wanted" rel="noopener noreferrer"&gt;Stack Overflow survey&lt;/a&gt;, 61.7% of respondents named TypeScript the most loved programming language. In fact, it is in second place on the list.&lt;/p&gt;

&lt;p&gt;That means that those people are strongly interested in continuing to use it.&lt;/p&gt;

&lt;p&gt;In addition, in &lt;a href="https://octoverse.github.com/" rel="noopener noreferrer"&gt;GitHub’s 2020 State of the Octoverse report&lt;/a&gt;, you can clearly see the exponential growth of TypeScript over the last four years.&lt;/p&gt;

&lt;p&gt;With Microsoft being the boss behind TypeScript, we can expect that it will continue enhancing all its capabilities in 2021.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to learn it the right way
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.typescriptlang.org/docs/handbook/intro.html" rel="noopener noreferrer"&gt;The TypeScript handbook (official doc)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/understanding-typescript/" rel="noopener noreferrer"&gt;Understanding TypeScript: 2021 Edition by the sensei Maximilian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/typescript-the-complete-developers-guide/" rel="noopener noreferrer"&gt;Typescript: The Complete Developer’s Guide [2020]&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontendmasters.com/courses/typescript-v2/" rel="noopener noreferrer"&gt;TypeScript 3 Fundamentals, v2 — FrontendMaster.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://frontendmasters.com/courses/intermediate-react-v2/" rel="noopener noreferrer"&gt;Intermediate React, v2 by Brian Holt — (if you are a React dev or you just want to combine React + TypeScript)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  4. React Will Continue Its Hegemony
&lt;/h1&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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AuNqfoDYLs36LWHWQjeFCXA.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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AuNqfoDYLs36LWHWQjeFCXA.png" alt="Credit: Stack Overflow survey&amp;lt;br&amp;gt;
"&gt;&lt;/a&gt;&lt;br&gt;
Credit: &lt;a href="https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-web-frameworks-loved2" rel="noopener noreferrer"&gt;Stack Overflow survey&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There’s no doubt that React will continue its dominance among JavaScript frameworks and libraries in 2021.&lt;/p&gt;

&lt;p&gt;That hegemony will continue despite the fast growth and popularity of the next-generation reactive frameworks like Vue.js, Svelte, and Stencil.&lt;/p&gt;

&lt;p&gt;For sure, there is a significant rise in the usage of those reactive frameworks. But if we rely on the data, &lt;a href="https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-web-frameworks-loved2" rel="noopener noreferrer"&gt;the latest Stack Overflow survey&lt;/a&gt; indicates that React was the most loved web framework, with 68.9% of respondents using it or having an interest in using it in the near future.&lt;/p&gt;

&lt;h2&gt;
  
  
  NPM frontend framework trends
&lt;/h2&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%2Fmiro.medium.com%2Fmax%2F2400%2F1%2ACzxYP3TYqZwiL-xEumNAZQ.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%2Fmiro.medium.com%2Fmax%2F2400%2F1%2ACzxYP3TYqZwiL-xEumNAZQ.png"&gt;&lt;/a&gt;&lt;br&gt;
Credit: &lt;a href="https://www.npmtrends.com/react-vs-vue-vs-@angular/core" rel="noopener noreferrer"&gt;NPM trends&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see in this NPM graph, React has grown over the rest of the frameworks in a considerable way. The data is basically the number of downloads of each framework over the last five years.&lt;/p&gt;

&lt;h2&gt;
  
  
  The growth of Vue.JS is overwhelming too
&lt;/h2&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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AiE-_lMclhHamhessEfDeaQ.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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AiE-_lMclhHamhessEfDeaQ.png"&gt;&lt;/a&gt;&lt;br&gt;
Credit: &lt;a href="https://www.npmtrends.com/react-vs-vue-vs-@angular/core" rel="noopener noreferrer"&gt;NPM trends&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Despite the fact that the number of Vue.js downloads is lower than that of React, one thing we must not overlook is the number of GitHub stars that Vue owned at the time of writing. So keep an eye on it too.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Jamstack
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;“Build websites and apps that deliver better performance.” — &lt;a href="https://jamstack.org/" rel="noopener noreferrer"&gt;Jamstack&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Jamstack stands for Javascript, APIs, and Markup.&lt;/p&gt;

&lt;p&gt;It is a software architecture that leverages the previous elements to build secure, scalable, cheaper, and performant websites and apps.&lt;/p&gt;

&lt;p&gt;It is the new kid in the web development field. Every day, more and more devs and companies are using this modern and efficient approach to build their websites and apps.&lt;/p&gt;

&lt;p&gt;According to the &lt;a href="https://tsh.io/state-of-frontend/#jamstack" rel="noopener noreferrer"&gt;State of Frontend 2020&lt;/a&gt;, almost one-third of the respondents have built a Jamstack website or app lately.&lt;/p&gt;

&lt;p&gt;Based on that, I am sure of the imminent huge adoption of the Jamstack architecture in the coming months.&lt;/p&gt;

&lt;p&gt;In addition, the graph below displays the trends regarding static site generator usage:&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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AhKYDkntXYRNKxliuAO1BBg.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%2Fmiro.medium.com%2Fmax%2F700%2F1%2AhKYDkntXYRNKxliuAO1BBg.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Credit: &lt;a href="https://tsh.io/state-of-frontend/#jamstack" rel="noopener noreferrer"&gt;State of Frontend&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to learn it the right way
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jamstack.org/resources/" rel="noopener noreferrer"&gt;Learning Jamstack — Official resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.freecodecamp.org/news/what-is-the-jamstack-and-how-do-i-host-my-website-on-it/" rel="noopener noreferrer"&gt;What is the JAMstack and how do I get started?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://buttercms.com/blog/what-is-jamstack" rel="noopener noreferrer"&gt;https://buttercms.com/blog/what-is-jamstack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  6. Micro Frontends
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;What the hell is a micro frontend?&lt;/p&gt;

&lt;p&gt;“An architectural style where independently deliverable frontend applications are composed into a greater whole.” — &lt;a href="https://martinfowler.com/articles/micro-frontends.html" rel="noopener noreferrer"&gt;Martin Fowler&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In other words, think about a website or web app as a combination of features that are owned by independent teams so they can work isolated from each other.&lt;/p&gt;

&lt;p&gt;It’s incredible how more and more organizations have been using this architectural style in recent years.&lt;/p&gt;

&lt;p&gt;That is the case with American Express, IKEA, Spotify, and Starbucks, just to name a few.&lt;/p&gt;

&lt;h3&gt;
  
  
  A few benefits of micro frontends
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Smaller, more cohesive, and maintainable code bases.&lt;/li&gt;
&lt;li&gt;More scalable organizations with decoupled, autonomous teams.&lt;/li&gt;
&lt;li&gt;Resilient site. Your feature should be useful even if JavaScript fails or hasn't executed yet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In 2021, its usage and adoption will surely explode in more organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to learn it the right way
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.amazon.com/Micro-Frontends-Architecture-Introduction-Techniques/dp/1097927989" rel="noopener noreferrer"&gt;Micro Frontends Architecture: Introduction, Design, Techniques &amp;amp; Technology&lt;/a&gt;
&lt;a href="https://martinfowler.com/articles/micro-frontends.html" rel="noopener noreferrer"&gt;Martin Fowler — The evangelist of this architecture&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;I really love front-end things even though I know they’re constantly changing. More and more libraries and frameworks are coming up in the blink of an eye.&lt;/p&gt;

&lt;p&gt;However, we shouldn't be overwhelmed by those changes. We should embrace and study them and prepare ourselves as best we can.&lt;/p&gt;

&lt;p&gt;We don’t need to digest all of them either. It is a matter of reading and practicing what matters the most to us.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If this post turned out helpful share it to reach more devs. Also feel free to reach me on &lt;a href="//www.mullinstack.com"&gt;my blog&lt;/a&gt; and &lt;a href="https://medium.com/@blarz" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>javascript</category>
      <category>web</category>
      <category>beginners</category>
    </item>
    <item>
      <title>One of the Most Common Web Accessibility Mistakes</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Sun, 16 Aug 2020 21:38:36 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/one-of-the-most-common-web-accessibility-mistakes-1hj8</link>
      <guid>https://dev.to/blarzhernandez/one-of-the-most-common-web-accessibility-mistakes-1hj8</guid>
      <description>&lt;p&gt;Web accessibility really matters not only because you are going to drive more traffic to your web or for the moral dilemma but also because according to this &lt;a href="https://www.deque.com/blog/research-shows-internet-is-unavailable-to-blind-users/"&gt;recent research&lt;/a&gt; which has revealed that “two-thirds of the Internet transactions initiated by people with vision impairments end in abandonment because the websites they visit aren’t accessible enough.”&lt;/p&gt;

&lt;p&gt;Having said that, I have to be honest: Over my seven years working in web development I did not care enough about web accessibility. I was coding without accessibility in mind until one day working on a project a Jira ticket knocked on my door.&lt;/p&gt;

&lt;p&gt;That project was based on the Magento core but it also had huge custom features — modules, plugins, and a custom UI. Due to that, or because we were in a rush, we forgot to add basic web accessibility standards to the components we created. We left out the alternative text (ALT) property to the IMG tags, form labels, page title, aria-label, or other web accessibility standards.&lt;/p&gt;

&lt;p&gt;To fix that, the requirement was to add &lt;code&gt;ALT&lt;/code&gt; attributes to all IMG tags, aria-label, title, and role property among the all of the store's e-commerce platform elements that needed them. I knew a little about web accessibility standards so I started to fix that first.&lt;/p&gt;

&lt;h1&gt;
  
  
  Add Alternative Text (ALT) to all IMG tags.
&lt;/h1&gt;

&lt;p&gt;Except where otherwise specified, the &lt;code&gt;alt&lt;/code&gt; attribute must be specified and its value must not be empty.&lt;br&gt;
This was pretty easy. I just needed to find all occurrences of the IMG tags and then set the alternative text given by the client accordingly. That’s it!&lt;br&gt;
However, the client then asked “What about the icons? Should we set an ALT text for them too?” I have to confess I was hit by this particular scenario. The next question came into my head:&lt;/p&gt;
&lt;h1&gt;
  
  
  Should I Add ALT or Title Attributes to the  Tag?
&lt;/h1&gt;

&lt;p&gt;The snippet of code I was trying to modify didn't have any IMG tag anywhere, but a SPAN tag as a wrapper and inside of it a  tag set as a font-awesome icon. As you might know, that’s the way to do it according to the official FontAwesome documentation — as known and used by millions of websites.&lt;/p&gt;
&lt;h1&gt;
  
  
  Code Before fixing
&lt;/h1&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;span class="pro-install-box"&amp;gt;
    &amp;lt;div class="tooltip-container"&amp;gt;
      &amp;lt;div class="tooltip-container__text"&amp;gt;Requires Professional          Installation&amp;lt;/div&amp;gt;
     &amp;lt;div class="tooltip-container__arrow"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;/div&amp;gt;
   &amp;lt;i class="fas fa-user"&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The red arrow is pointing to the icon that we need to describe:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HlLkA-rX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1072/1%2ANGI8T6s7YSTZ_Kxom1J6yg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HlLkA-rX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://miro.medium.com/max/1072/1%2ANGI8T6s7YSTZ_Kxom1J6yg.png" alt="" width="536" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the time, I didn't know exactly if a &lt;code&gt;&amp;lt;i&amp;gt;&lt;/code&gt; tag supported the &lt;code&gt;ALT&lt;/code&gt; attribute or whether to set to it was a good practice. What if I knew is that a &lt;code&gt;&amp;lt;i&amp;gt;&lt;/code&gt; tag is for making text up? Common sense told me it wasn't a good idea to set an &lt;code&gt;ALT&lt;/code&gt; attribute to it.&lt;/p&gt;

&lt;p&gt;Undoubtedly I needed to lean on my closest friend, Google. After spending a few time doing research, this is what I found out.&lt;/p&gt;
&lt;h1&gt;
  
  
  What Does the Web Accessibility Initiative Recommend about ALT?
&lt;/h1&gt;

&lt;p&gt;Based on the &lt;a href="https://www.w3.org/WAI/fundamentals/accessibility-principles/#alternatives"&gt;Web Accessibility Initiative (WAI)&lt;/a&gt; we should add ALT text to non-content such as short equivalents for images, including icons, buttons, and graphics, descriptions of data represented on charts, diagrams, and illustrations.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;ALT&lt;/code&gt; attribute’s value should never contain text that could be considered the image’s caption, title, or legend. It’s supposed to contain replacement text that could be used by users instead of the image.&lt;/p&gt;

&lt;p&gt;— &lt;a href="https://www.w3.org/TR/html401/struct/objects.html"&gt;HTML 4.01 Spec, 13.2&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Appropriate &lt;code&gt;ALT&lt;/code&gt; Attributes Based on the Purpose of the Images.
&lt;/h1&gt;

&lt;p&gt;In order to complete our understanding of this, let's discuss how to provide appropriate ALT attributes based on the purpose of the images.&lt;/p&gt;
&lt;h2&gt;
  
  
  Informative images
&lt;/h2&gt;

&lt;p&gt;Images that graphically represent concepts and information, typically pictures, photos, and illustrations. The text alternative should be at least a short description conveying the essential information presented by the image.&lt;/p&gt;
&lt;h2&gt;
  
  
  Decorative images
&lt;/h2&gt;

&lt;p&gt;Provide a null text alternative (&lt;code&gt;alt=” ”&lt;/code&gt;) when the only purpose of an image is to add visual decoration to the page, rather than convey information that’s important to understand the page.&lt;/p&gt;
&lt;h2&gt;
  
  
  Functional images
&lt;/h2&gt;

&lt;p&gt;The text alternative of an image used as a link or as a button should describe the functionality of the link or button, rather than the visual image. For example, the close button which has a closed icon to represent the sign-out action.&lt;/p&gt;
&lt;h2&gt;
  
  
  Images of text
&lt;/h2&gt;

&lt;p&gt;Readable text is sometimes presented within an image. If the image is not a logo, avoid text in images. However, if images of text are used, the text alternative should contain the same words as the image.&lt;/p&gt;
&lt;h2&gt;
  
  
  Complex images
&lt;/h2&gt;

&lt;p&gt;Such as graphs and diagrams. To convey data or detailed information, provide a full-text equivalent of the data or information provided in the image as the text alternative. Read more about this &lt;a href="https://www.w3.org/WAI/tutorials/images/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you’re interested to learn more about the ALT attribute and the situations you should use it in, &lt;a href="https://www.w3.org/WAI/tutorials/images/decision-tree/"&gt;this is an ALT decision tree&lt;/a&gt; tutorial is a good benchmark.&lt;/p&gt;

&lt;p&gt;Now we know more about ALT and image concepts we are ready to implement our solution.&lt;/p&gt;
&lt;h1&gt;
  
  
  Accessible Rich Internet Applications (ARIA)
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Approach 1
&lt;/h2&gt;

&lt;p&gt;Let’s take advantage of the new &lt;a href="https://www.w3.org/WAI/standards-guidelines/aria/"&gt;WAI-ARIA&lt;/a&gt; specs, especially when we’re using Font Awesome icons. So let’s improve accessibility by leaning on the &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;aria-label&lt;/code&gt; and &lt;code&gt;aria-hidden&lt;/code&gt; attributes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;span class="pro-install-box"&amp;gt;    
    &amp;lt;div class="tooltip-container"&amp;gt;
      &amp;lt;div class="pro-tooltip-text"&amp;gt;Requires Professional            Installation&amp;lt;/div&amp;gt;
     &amp;lt;div class="product-tooltip-arrow"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;/div&amp;gt;
   &amp;lt;i aria-label="Requires Professional Installation" role="presentation" class="fas fa-user"&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We use the &lt;code&gt;role="presentation"&lt;/code&gt; to remove implicit native role semantics of the element. In this case, we’re removing the native semantic role to use icons while using the &lt;code&gt;&amp;lt;i&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://www.w3.org/WAI/PF/aria-1.1/states_and_properties#aria-label"&gt;&lt;code&gt;aria-label&lt;/code&gt;&lt;/a&gt; provides a string value that labels the element. By doing this we provide the user of assistive technology, like a screenreader, with a recognizable name of the object they are mousing over.&lt;/p&gt;

&lt;p&gt;In other words, the &lt;code&gt;aria-label&lt;/code&gt; attribute defines an invisible label where a visible label cannot be used. Use it in cases where the text label is not visible on the screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  Approach 2
&lt;/h2&gt;

&lt;p&gt;Making our icons act as an image by using the &lt;code&gt;role="img"&lt;/code&gt; is the second solution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;span class="pro-install-box"&amp;gt;    
    &amp;lt;div class="tooltip-container"&amp;gt;
      &amp;lt;div class="pro-tooltip-text"&amp;gt;Requires Professional            Installation&amp;lt;/div&amp;gt;
     &amp;lt;div class="product-tooltip-arrow"&amp;gt;&amp;lt;/div&amp;gt;
   &amp;lt;/div&amp;gt;
   &amp;lt;i aria-label="Requires Professional Installation" role="img" class="fas fa-user"&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Closing Thoughts
&lt;/h1&gt;

&lt;p&gt;Web accessibility matters. Our mission is to give every single user, regardless of circumstances, the same user experience.&lt;/p&gt;

&lt;p&gt;Not providing text alternatives (ALT) based on the image purpose and for non-content is one of the most most common Web Accessibility mistakes. Therefore, we need to stick to the standards and make sure our web app is accessible enough.&lt;/p&gt;

&lt;p&gt;Furthermore, using the aria- attribute we’re improving and describing our content much more effectively when the user is using assistive technology.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;p&gt;If this post turned to be out helpful, share it with your friends.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Feel free to reach me on &lt;a href="//www.mullinstack.com"&gt;my blog&lt;/a&gt; and &lt;a href="https://medium.com/@blarz"&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>a11y</category>
      <category>webdev</category>
      <category>mistakes</category>
    </item>
    <item>
      <title>A Complete Guide to the Composition Process of a React Native App</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Fri, 10 Jul 2020 15:37:09 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/a-complete-guide-to-the-composition-process-of-a-react-native-app-450i</link>
      <guid>https://dev.to/blarzhernandez/a-complete-guide-to-the-composition-process-of-a-react-native-app-450i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Originally published on &lt;a href="https://medium.com/javascript-in-plain-english/a-complete-guide-of-the-composition-process-of-a-react-native-app-dd9f89542c46"&gt;Medium&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are plenty of tutorials on the internet advising you to spend enough time on the analysis and design stages. The React development process it is not the exception. Part of the analysis and design cycle includes the thought process of building your apps through a composition process.&lt;/p&gt;

&lt;p&gt;But despite that, sometimes we still continue spending less time on this thought process and going in a rush to start to code. We can do it, but I bet that later you will realize that you are spending more time than you thought and probably also building apps with poor architecture design, so they may be not scalable enough.&lt;/p&gt;

&lt;p&gt;We believe that process isn't necessary or because our app is simple. However, what I've realized is the fact of the huge amount of time I've wasted while I am coding because I didn't spend enough time on it.&lt;/p&gt;

&lt;p&gt;Without further ado, let's jump to this thought process we should follow every single time we start to develop our React Apps.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: For the sake of the learning process, let's break the composition process only for the Global screen. The same process should be done for each module, screen, or view of your React apps.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  1. Mocking up your component
&lt;/h1&gt;

&lt;p&gt;No matter if the project is small or large, easy, or complex. Before anything else and before starting to code the first thing you have to do is mock up how your RN should look like. However, if you work with a designer, he is going to provide you the Figma URL, the Adobe Photoshop files, images, or whichever be is the way to share the mockups.&lt;/p&gt;

&lt;p&gt;We are going to dive into the composition process to build something that looks like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XI4xj3HQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1000/1%2A1XuLbcMq77LwmhU5Gcg8gg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XI4xj3HQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1000/1%2A1XuLbcMq77LwmhU5Gcg8gg.png" alt="mockup" width="880" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Breaking up your UI into small chunks using the Single Responsibility Principle
&lt;/h1&gt;

&lt;p&gt;Stick to rule that a component should ideally only do one only - one thing. If it ends up growing, it should be decomposed into smaller subcomponents.&lt;/p&gt;

&lt;p&gt;Don't worry! Just right now let's break down into reusable and one-concern components, that's the reason for the React existence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shared Components
&lt;/h3&gt;

&lt;p&gt;This the list of the common components. Basically, they are reusable components among the different modules and app's screens.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;VerticalLine: The idea of this component is to render a vertical line between two Views.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Divider: A separator between two components&lt;br&gt;
PieChartComponent: Render a pie chart either global or specific data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SectionContainer: It's just a box to organize our content. It will be used across our app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SwitchSelector: A component to render Global or your country data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Worldwide Screen
&lt;/h3&gt;

&lt;p&gt;Let's list down components on the Global(Worldwide) screen.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Global (index.js): It's our parent. It contains all the elements on the Global Screen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SectionContainer: It's just a box to organize our content. It will be used across our app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LastUpdate: An styled component to render the headline and the span in a time-ago format.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PieChartComponent: Render a pie chart for global data or by country.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VerticalLine: Display a vertical line between two views/divs&lt;br&gt;
CovidNumberCasesBox: Displays the number of cases for Recovered, Confirmed, or Deaths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SwitchSelector: a switch selector, a filter to render global or country data&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Arranging components into a hierarchy
&lt;/h2&gt;

&lt;p&gt;Once we have broken down our UI into components, it's time to arrange them into a hierarchy based on the mockup.&lt;/p&gt;

&lt;p&gt;This hierarchy will help us to identify the common owner component or higher which should own the state.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;-Global (parent)
---|LastUpdate
---|SwitchSelector
---|PieChartComponent
---|SectionContainer
-----|CovidNumberCasesBox
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  3. Use &lt;a href="https://medium.com/r/?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDon%2527t_repeat_yourself"&gt;the DRY principle&lt;/a&gt; to define your UI state.
&lt;/h1&gt;

&lt;p&gt;The DRY principle stands for don't repeat yourself. In the React world, its mission is to avoid redundancy of state at all costs.&lt;/p&gt;

&lt;p&gt;Let's go to use it thinking of all of the pieces of data we have on every component in the list components we identified above.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1 Rules to take into account for an efficient state management.
&lt;/h3&gt;

&lt;p&gt;Use the &lt;a href="https://en.wikipedia.org/wiki/Single-responsibility_principle"&gt;Single Responsibility Principle&lt;/a&gt; (SRP) - Make a state variable responsible for one concern.&lt;/p&gt;

&lt;p&gt;If you know that a state variable is violating the Single Responsibility Principle so then you should extract that complex state logic somewhere. Let's say a custom Hook, for instance.&lt;/p&gt;

&lt;p&gt;Having into account the rules of the React state, on the Global Screen we have the next data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The value of switch selector (filter)&lt;/li&gt;
&lt;li&gt;The DateTime of the last update of data&lt;/li&gt;
&lt;li&gt;The global data of COVID number cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ok, we already now know all data to use on the Global screen let's go through each one and figure out which of them is STATE and doesn't.&lt;/p&gt;

&lt;p&gt;According to theReact Documentation, it is a good practice is we ask these next questions about each piece of data to figure out if it is or not State.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Is it passed in from a parent via props? If so, it probably isn't stated.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Does it remain unchanged over time? If so, it probably isn't state.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can you compute it based on any other state or props in your component? If so, it isn't state.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  3.2 Figuring out the state
&lt;/h3&gt;

&lt;p&gt;It's time to figure out the minimal set of mutable state our component needs our the entire app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The value of the switch selector (SwitchSelector) changes over time and cant' be computed from anything. This state will help to not make a new request network while you are clicking the same SwitchSelector item. We got State.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The DateTime of the last update of data will change when the user clicks on the refresh button (This is a future feature). So this is State.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The COVID number cases object will be passed as a prop on the component hierarchy, so in that case, it is not State. However, on Global Screen (index.js) we set that data as State and it's going to change based on the state (SwitchSelector).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have followed me until here, we have identified the minimal set of app state. The next step is to identify which component mutate or should own, this state.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Figuring out the best place where State should live in
&lt;/h1&gt;

&lt;p&gt;This might be a little tricky. However, to achieve easier, let's go dive into a few key points that will help us with that struggle.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.1 Identify every component that renders something based on that state
&lt;/h3&gt;

&lt;p&gt;On the Global screen, we have these next components.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The LastUpdate, PieChartComponent, CovidNumberCaseBox need to render data based on State. For instance, LastUpdate will render the last update of data and the PieChart component based on the filter value, and also the CovidNumberCasebox component.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4.2 Find a common owner component.
&lt;/h3&gt;

&lt;p&gt;This aims to figure out the single component above all components that need the state in the hierarchy.&lt;/p&gt;

&lt;p&gt;If you scroll up to just to the section we created the components hierarchy you'll realize that the single-component above all the previous components is the Global (index.js) therefore the state should live in.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final thoughts
&lt;/h1&gt;

&lt;p&gt;The thought process of building a React app should be something similar we walked through this tutorial.&lt;/p&gt;

&lt;p&gt;My advice is before jumping into code, you should spend enough time doing this process. It looks long and overwhelming, however, in the end, when you have doubts, this will help you clarify those out.&lt;/p&gt;

&lt;p&gt;In addition, this will allow you to build more scalable and efficient web apps as well as cross-platform apps with the power of React.&lt;/p&gt;

&lt;p&gt;Thanks for reading! I hope this post turned out helpful and interesting. See you in the next reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Feel free to reach me on &lt;a href="//www.mullinstack.com"&gt;my blog&lt;/a&gt; and &lt;a href="https://medium.com/@blarz"&gt;Medium&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How many dads here? How do you find time to work on your side projects?</title>
      <dc:creator>Roberto Hernandez</dc:creator>
      <pubDate>Wed, 01 Jul 2020 22:18:42 +0000</pubDate>
      <link>https://dev.to/blarzhernandez/how-many-dads-here-how-do-you-find-time-to-work-on-your-side-projects-147b</link>
      <guid>https://dev.to/blarzhernandez/how-many-dads-here-how-do-you-find-time-to-work-on-your-side-projects-147b</guid>
      <description>&lt;p&gt;Sometimes it's hard for me to find enough time and make notable progress. &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>dreams</category>
      <category>path</category>
    </item>
  </channel>
</rss>
