<?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: Ajnash-ibn-umer</title>
    <description>The latest articles on DEV Community by Ajnash-ibn-umer (@ajnashibnumer).</description>
    <link>https://dev.to/ajnashibnumer</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%2F849038%2F167a56d7-b43a-4c82-9b67-9301dc02d97b.png</url>
      <title>DEV Community: Ajnash-ibn-umer</title>
      <link>https://dev.to/ajnashibnumer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ajnashibnumer"/>
    <language>en</language>
    <item>
      <title>My 2023 📅 Tech Toolbox 📦 : What i learned in 2023</title>
      <dc:creator>Ajnash-ibn-umer</dc:creator>
      <pubDate>Sat, 23 Dec 2023 10:00:47 +0000</pubDate>
      <link>https://dev.to/ajnashibnumer/my-2023-tech-toolbox-what-i-learned-in-2023-3kk9</link>
      <guid>https://dev.to/ajnashibnumer/my-2023-tech-toolbox-what-i-learned-in-2023-3kk9</guid>
      <description>&lt;p&gt;2023 has been a big year for me😃, especially at work. It's my second year as a Full Stack and Node.js developer, and I've learned a bunch of new things👨🏻‍🎨.&lt;/p&gt;

&lt;p&gt;In this article, I want to share the cool technologies I learned in 2023 🎤 . Some are not so new, but they've become super important for my job.&lt;/p&gt;

&lt;h2&gt;
  
  
  GraphQL📈
&lt;/h2&gt;

&lt;p&gt;GraphQL, developed by Facebook in 2012 and shared as an open-source tool in 2015, stands out as one of my favorite technologies learned this year. It's been a game-changer in reducing my backend workload for creating APIs.&lt;/p&gt;

&lt;p&gt;Before GraphQL, building APIs for various platforms like web, Android, and iOS meant dealing with different API requirements for each—quite a headache. But with GraphQL, things got simpler. It acts like a language that helps client-side developers easily pick and choose the data they need from APIs. This means we can avoid sending too much or too little data, solving issues like over-fetching and under-fetching.&lt;/p&gt;

&lt;p&gt;However, as much as I love GraphQL, it's still evolving and has its limitations. For instance, it doesn't support file uploads yet, which has been a significant challenge. Also, learning GraphQL can be a bit tough, and there are some limits to the support it provides for additional software. Despite these challenges, its advantages make it an incredible tool for developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MhgmCfqB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rp0c08onvep9pxuz51t3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MhgmCfqB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rp0c08onvep9pxuz51t3.png" alt="Image description" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Nest.js 🪹
&lt;/h3&gt;

&lt;p&gt;Nest.js is a newer framework built on top of the widely-used Express.js for Node.js development. As a backend developer, I used to rely heavily on Express.js, but it has its limitations. Switching to Nest.js offered a solution.&lt;/p&gt;

&lt;p&gt;What's great about Nest.js is that it retains all the functionality of Express.js while adding more features. Its documentation is thorough, making it developer-friendly. Plus, it seamlessly integrates with databases like MongoDB, MySQL, and more. Its ecosystem is vast, allowing easy integration with various other technologies.&lt;/p&gt;

&lt;p&gt;However, there are a couple of challenges. Nest.js has a steeper learning curve compared to other Node.js frameworks. Additionally, it primarily operates in TypeScript, which might require some adjustment for developers more familiar with JavaScript. These factors stand as the main drawbacks I encountered with Nest.js&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5Dp-HFZg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0z4l0l2rvw5d4bvhh3ft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5Dp-HFZg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0z4l0l2rvw5d4bvhh3ft.png" alt="Image description" width="600" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS ☁️
&lt;/h3&gt;

&lt;p&gt;AWS, also known as Amazon Web Services, is a widely recognized cloud computing platform. It's been around since 2006, offering over 200 services. Learning all these services in a year is quite a task. So, in 2023, I started my journey with AWS by focusing on essential services like Elastic Cloud Compute, S3 Bucket, Lightsail, and Elastic Beanstalk. I've been continuously learning more about AWS services.&lt;/p&gt;

&lt;p&gt;Cloud computing is a big deal, and AWS is a significant player. I strongly recommend learning AWS or its alternatives like GCP, Microsoft Azure, or DigitalOcean for developers. The future of technology is leaning heavily on the capabilities of the cloud, making these skills essential for any developer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2u6e2XEL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8ofocraf2iga1ia7n77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2u6e2XEL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8ofocraf2iga1ia7n77.png" alt="Image description" width="300" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Next.js 🕸️
&lt;/h3&gt;

&lt;p&gt;Next.js is a framework built for React, helping create full-stack web apps. You use React Components for building interfaces and leverage Next.js for extra features and improvements.&lt;/p&gt;

&lt;p&gt;Initially launched in 2016, Next.js released version 13 in 2023, packed with new features like the app Directory, React Server Components (RSC), Automatic Static Optimization (ASO), Edge Runtime, Improved Image Component (&lt;strong&gt;&lt;code&gt;next/image&lt;/code&gt;&lt;/strong&gt;), and Font Optimization (&lt;strong&gt;&lt;code&gt;@next/font&lt;/code&gt;&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Personally, Next.js is my top choice among frontend frameworks. It's easier to learn compared to others like Angular or Ember, and it comes with loads of features like SSR (Server-Side Rendering), SSG (Static Site Generation), and more.&lt;/p&gt;

&lt;h3&gt;
  
  
  WebRTC 📟
&lt;/h3&gt;

&lt;p&gt;WebRTC, short for Web Real-Time Communication, is a free project that enables instant audio, video, and data sharing directly through web browsers and mobile apps. It's like giving your web setup direct communication superpowers.&lt;/p&gt;

&lt;p&gt;It's commonly used for direct client-to-client communication, bypassing the need for a server. WebRTC relies on a swift protocol called UDP, making it lightning-fast.&lt;/p&gt;

&lt;p&gt;For a personal project, I delved into WebRTC, especially for crafting a video call app. However, despite its serverless communication between two clients, it still requires a signaling server to facilitate their connection.&lt;/p&gt;

&lt;p&gt;But WebRTC comes with its challenges. It has a steep learning curve, making it a bit tough to grasp. Also, being in a developmental stage, it lacks extensive community support and a mature ecosystem. These drawbacks can make navigating and troubleshooting a bit tricky for developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion 🫂
&lt;/h3&gt;

&lt;p&gt;In 2023, I immersed myself in various technologies, many of which were driven by job requirements. Amidst them, five technologies stood out as my favorites. Alongside these, I explored others like Firebase, Algolia, Bun.js, Fastify, and more.&lt;/p&gt;

&lt;p&gt;Learning isn't a destination; it's an ongoing journey. While I've gained a good grasp of these technologies, I don't consider myself a pro. In the ever-evolving world of technology and science, staying updated is key. Learning should be a routine for all developers, including myself. My goal for the next year is to continue enhancing my skills and staying current.&lt;/p&gt;

&lt;p&gt;I'd love to hear your thoughts on this article! Feel free to share your learnings from 2023. Let's keep the conversation about growth and learning alive&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding Value Types and Reference Types in JavaScript</title>
      <dc:creator>Ajnash-ibn-umer</dc:creator>
      <pubDate>Sun, 19 Mar 2023 10:48:57 +0000</pubDate>
      <link>https://dev.to/ajnashibnumer/understanding-value-types-and-reference-types-in-javascript-4cba</link>
      <guid>https://dev.to/ajnashibnumer/understanding-value-types-and-reference-types-in-javascript-4cba</guid>
      <description>&lt;p&gt;When working with JavaScript, understanding the difference between value types and reference types is essential for writing efficient and effective code. This blog post will provide an overview of these two data types and explain how they differ in terms of &lt;strong&gt;memory allocation&lt;/strong&gt; and &lt;strong&gt;variable assignment&lt;/strong&gt;. By the end of this post, you will have a clear understanding of the benefits and limitations of each data type and be able to make informed decisions about how to use them in your own code. Whether you're a beginner or an experienced JavaScript developer, this post will provide valuable insights into one of the most fundamental aspects of the language.&lt;/p&gt;

&lt;p&gt;In JavaScript, data types can be classified into two categories: value types and reference types. Understanding the difference between these two types is crucial for writing efficient and effective code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Value types&lt;/em&gt;&lt;/strong&gt; are simple data types such as numbers, strings, and booleans. When a value type is assigned to a variable, the variable &lt;strong&gt;stores a copy of the value itself&lt;/strong&gt;. This means that any changes made to the variable do not affect the original value. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let num1 = 5;
let num2 = num1;
num2 = 10;
console.log(num1); // Output: 5
console.log(num2); // Output: 10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, num1 is assigned the value 5. When num2 is assigned the value of num1, it creates a copy of the value stored in num1. Any changes made to num2 do not affect the value of num1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Reference types&lt;/em&gt;&lt;/strong&gt;, on the other hand, are objects such as arrays and functions. When a reference type is assigned to a variable, the variable stores a reference to the object in memory, rather than a copy of the object itself. This means that any changes made to the object through one variable will also affect the object as accessed through other variables. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let obj1 = {
    name: 'John',
    age: 20,

}
let obj2 = obj1;
obj2["position"]="developer"
console.log(obj1); // { name: 'John', age: 20, position: 'developer' }
console.log(obj2); // { name: 'John', age: 20, position: 'developer' }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this example, obj1 is an object with two elements. When obj2 is assigned the value of obj1, it creates a reference to the same  object in memory. When obj2 is modified by adding an element, it also modifies obj1 since both variables reference the same  object in memory.&lt;/p&gt;

&lt;p&gt;In conclusion, understanding the difference between value types and reference types is crucial in writing efficient JavaScript code. By optimizing memory usage and avoiding common pitfalls, developers can write better code and build more effective applications.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
