<?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: Sophie Muchiri</title>
    <description>The latest articles on DEV Community by Sophie Muchiri (@muthoni_muchiri_17933efd2).</description>
    <link>https://dev.to/muthoni_muchiri_17933efd2</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2738385%2F53f2b872-1b10-419a-b551-ada6dfa47985.jpg</url>
      <title>DEV Community: Sophie Muchiri</title>
      <link>https://dev.to/muthoni_muchiri_17933efd2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muthoni_muchiri_17933efd2"/>
    <language>en</language>
    <item>
      <title>JSP 1 : Variables, Data Types, Operators</title>
      <dc:creator>Sophie Muchiri</dc:creator>
      <pubDate>Wed, 05 Mar 2025 17:47:34 +0000</pubDate>
      <link>https://dev.to/muthoni_muchiri_17933efd2/jsp-1-variables-data-types-operators-4o96</link>
      <guid>https://dev.to/muthoni_muchiri_17933efd2/jsp-1-variables-data-types-operators-4o96</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;DATA TYPES &amp;amp; OPERATORS&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;DATA TYPES&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A data type is a classification that specifies the type of data a variable can hold in a programming language&lt;/p&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Common Data types are:&lt;/u&gt;&lt;br&gt;
**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Numbers&lt;/li&gt;
&lt;li&gt;Strings&lt;/li&gt;
&lt;li&gt;Booleans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Primitive Data types&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Primitive data types are data types that represents single values&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They are immutable hence values cannot be changed,however, you can reassign a new value to the variable holding the primitive data type&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-They are stored by value meaning they are stored directly into a variable memory location&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Have a fixed size hence occupy a fixed amount size of memory therefore storage is in stacks&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ol&gt;
&lt;li&gt;Numbers&lt;/li&gt;
&lt;li&gt;strings&lt;/li&gt;
&lt;li&gt;boolean&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Examples&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkkdmsq4eo1yidx2wbkr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkkdmsq4eo1yidx2wbkr.png" alt="Image description" width="347" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Non-Primitive Data types&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Non-primitive data types are more complex and can hold multiple values&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They store multiple values.&lt;/li&gt;
&lt;li&gt;They are modifiable and dynamic.&lt;/li&gt;
&lt;li&gt;They use more memory and are slower than primitive types.&lt;/li&gt;
&lt;li&gt;They often require additional operations (e.g., accessing elements)
They include:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Objects : Collection of keys and value pairs where keys are strings and values can be of any data type&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fun4vqotqb4gjt9n66rs3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fun4vqotqb4gjt9n66rs3.png" alt="Image description" width="347" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Arrays : Ordered collections of elements that can be of any data type&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbji3nkmtlu3ajao4i1db.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbji3nkmtlu3ajao4i1db.png" alt="Image description" width="457" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Functions&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6h0s161eljhmklft0pp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq6h0s161eljhmklft0pp.png" alt="Image description" width="538" height="212"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maps&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxiwtcn42b42zu791fflu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxiwtcn42b42zu791fflu.png" alt="Image description" width="307" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sets&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97kfoilwpk6h5gc7r7mc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F97kfoilwpk6h5gc7r7mc.png" alt="Image description" width="307" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JSP 1 : Variables, Data Types, Operators</title>
      <dc:creator>Sophie Muchiri</dc:creator>
      <pubDate>Tue, 25 Feb 2025 12:35:51 +0000</pubDate>
      <link>https://dev.to/muthoni_muchiri_17933efd2/jsp-1-variables-data-types-operators-1gj9</link>
      <guid>https://dev.to/muthoni_muchiri_17933efd2/jsp-1-variables-data-types-operators-1gj9</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Introduction&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
JavaScript (JS) is a high-level, interpreted programming language mostly used as a client-side scripting language&lt;/p&gt;

&lt;p&gt;It allows Developers to create interactive and dynamic webpages by manipulating the Document Object Model (DOM)&lt;br&gt;
which we shall discuss later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;VARIABLES&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A variable is a container in which we can store values/data.&lt;/p&gt;

&lt;p&gt;Terms:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;1. Variable declaration&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
This is the process of defining a new variable using a keyword (var, let)&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiislecvkr8xgyn9hap3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiislecvkr8xgyn9hap3s.png" alt="Image description" width="602" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;2. Variable Initialization&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the process of assigning an initial value to a variable after it has been declared&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdiwhkpipmjzi2hsdrjf1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdiwhkpipmjzi2hsdrjf1.png" alt="Image description" width="602" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;3. Variable assignment &lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is the act of giving a variable a specific value&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsd4e1cie8zrr9h8x8oim.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsd4e1cie8zrr9h8x8oim.png" alt="Image description" width="752" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;4. Variable look up expression&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
The process of accessing a value of a variable by its name within the code &lt;br&gt;
&lt;code&gt;(eg: using a console.log to print the value of the variable within the console)&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
let greeting = "Hello, World!";
console.log(greeting); 

Hello, World!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;KEY WORDS&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;1. var (Old Way of Declaring Variables)&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
✅ Can be changed (reassigned)&lt;br&gt;
✅ Can be declared again (redeclared)&lt;br&gt;
❌ Works in function scope (not block scope)&lt;br&gt;
❌ Has hoisting issues (explained below)&lt;/p&gt;

&lt;p&gt;&lt;code&gt;NOTE WE'LL COVER SCOPE &amp;amp; HOISTING BETTER LATER ON&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var name = "Alice";
var name = "Bob"; // ✅ No error (but can be confusing)
console.log(name); // Output: Bob

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

&lt;/div&gt;



&lt;p&gt;Hoisting issues:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(x); // Output: undefined (NOT an error but still 
                                                  confusing!)
var x = 10;

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

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;2. let (The Better Way)&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Can be changed (reassigned)&lt;br&gt;
✅ Works in block scope (inside {})&lt;br&gt;
✅ Fixes the hoisting issue&lt;br&gt;
❌ Cannot be declared again in the same scope&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let age = 25;
age = 30;  // ✅ Allowed (Reassignment)
console.log(age); // Output: 30
let city = "Nairobi"
let city = "Mombasa" // ❌ ERROR: Cannot redeclare 'city'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;u&gt;3. const (The Best Choice for Fixed Values)&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
✅ Cannot be changed (reassigned)&lt;br&gt;
✅ Cannot be declared again&lt;br&gt;
✅ Works in block scope&lt;br&gt;
❌ Must be initialized when declared&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
const PI = 3.1415
PI = 3.14 // ❌ ERROR: Cannot reassign a 'const' variable
console.log(PI); // Output: 3.1415

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

&lt;/div&gt;



&lt;p&gt;&lt;u&gt;&lt;strong&gt;TABULAR SUMMARY&lt;/strong&gt;&lt;/u&gt;&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96hx9kvcwl2l4yj76v1s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F96hx9kvcwl2l4yj76v1s.png" alt="Image description" width="563" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JS Craftsmanship Series Roadmap</title>
      <dc:creator>Sophie Muchiri</dc:creator>
      <pubDate>Tue, 25 Feb 2025 12:08:19 +0000</pubDate>
      <link>https://dev.to/muthoni_muchiri_17933efd2/js-craftsmanship-series-14gn</link>
      <guid>https://dev.to/muthoni_muchiri_17933efd2/js-craftsmanship-series-14gn</guid>
      <description>&lt;p&gt;JS Phase(JSP) 1&lt;br&gt;
&lt;strong&gt;Beginner (Laying the Foundation)&lt;/strong&gt;&lt;br&gt;
🔵 JavaScript Basics: Variables, Data Types, Operators&lt;br&gt;
🔵 Writing Clean Code: Formatting, Naming Conventions, Readability&lt;br&gt;
🔵 Scope &amp;amp; Hoisting: Understanding Scope, Hoisting Pitfalls&lt;br&gt;
🔵 Objects &amp;amp; Arrays: Creating, Modifying, Iterating,Methods&lt;br&gt;
🔵 Functions &amp;amp; Reusability: Function Expressions, Arrow Functions, Modular Code&lt;/p&gt;

&lt;p&gt;JS Phase(JSP) 2&lt;br&gt;
&lt;strong&gt;Intermediate (Code Maintainability)&lt;/strong&gt;&lt;br&gt;
🟡 Asynchronous JavaScript: Callbacks, Promises, Async/Await&lt;br&gt;
🟡 CRUD Functionalities&lt;br&gt;
🟡 Debugging &amp;amp; Error Handling: Console, Breakpoints, Try-Catch&lt;br&gt;
🟡 Performance Optimization: Memory Management, Event Loop, Best Practices&lt;br&gt;
🟡 Code Organization: Modularization, File Structure, Best Practices&lt;br&gt;
🟡 Git &amp;amp; GitHub: Version Control, Collaboration, Branching Strategies&lt;/p&gt;

&lt;p&gt;JS Phase(JSP) 3&lt;br&gt;
Phase 3: Advanced (Scalability &amp;amp; Best Practices)&lt;br&gt;
🔴 Design Patterns: Singleton, Factory, Observer Patterns&lt;br&gt;
🔴 Data Structures and Algorithm&lt;br&gt;
🔴 Refactoring: Improving Code Without Breaking Functionality&lt;br&gt;
🔴 Testing: Unit, Integration, End-to-End Testing&lt;br&gt;
🔴 Managing Dependencies: NPM, Package Management, Dependency Injection&lt;br&gt;
🔴 Scaling JavaScript: Architecture, Microservices, Large Codebase Management&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JS Craftsmanship Series: The Path to Pro-Level JavaScript</title>
      <dc:creator>Sophie Muchiri</dc:creator>
      <pubDate>Sat, 22 Feb 2025 19:17:16 +0000</pubDate>
      <link>https://dev.to/muthoni_muchiri_17933efd2/js-craftsmanship-series-the-path-to-pro-level-javascript-1bfk</link>
      <guid>https://dev.to/muthoni_muchiri_17933efd2/js-craftsmanship-series-the-path-to-pro-level-javascript-1bfk</guid>
      <description>&lt;p&gt;&lt;strong&gt;My JavaScript Journey  From Confusion to Clarity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If there’s one thing I’ve learned about JavaScript, it’s that it can be hellishly confusing.&lt;/p&gt;

&lt;p&gt;I remember the frustration, staring at error messages that made no sense, refreshing my browser hoping my code would magically fix itself, and wondering if I’d ever truly understand this language. Tutorials made it look easy, but in reality? JavaScript felt unpredictable, chaotic, and sometimes just plain unfair.&lt;/p&gt;

&lt;p&gt;But I refused to quit. Every bug, every broken script, and every long debugging session taught me something. I learned not just to write JavaScript, but to write it in a way that’s clean, scalable, and maintainable the kind of code that future me (or any developer) would actually understand.&lt;/p&gt;

&lt;p&gt;That’s why I’m starting this series. Not as an expert, but as someone who has fought through the confusion and wants to help others do the same. If you've ever felt like JavaScript is out to get you, trust me I get it. But together, we’re going to make sense of it, step by step.&lt;/p&gt;

&lt;p&gt;So, let’s build better JavaScript, one lesson at a time.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
