<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Nitin Sharma - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Nitin Sharma - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 24 May 2026 22:24:01 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/author/nitinfab/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Simple Tips to Help You Write Clean Code ]]>
                </title>
                <description>
                    <![CDATA[ Being a developer isn’t as straightforward as many people think. It’s not just about learning a programming language and typing out code to build software. There’s a lot more to it. And one of the most confusing (and often frustrating) topics for dev... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/tips-for-writing-clean-code/</link>
                <guid isPermaLink="false">67a2380b9af7e36332fde944</guid>
                
                    <category>
                        <![CDATA[ programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ clean code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Productivity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ software development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Nitin Sharma ]]>
                </dc:creator>
                <pubDate>Tue, 04 Feb 2025 15:53:47 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1738684292390/6e844cd5-28f8-42e9-b9e3-cc6ded9ec72f.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Being a developer isn’t as straightforward as many people think.</p>
<p>It’s not just about learning a programming language and typing out code to build software. There’s a lot more to it. And one of the most confusing (and often frustrating) topics for developers is clean code.</p>
<p>So, what is clean code?</p>
<p>Simply put, it’s about writing code that’s so clear and well-organized that neither you nor anyone else will get frustrated trying to understand it six months later.</p>
<p>Think of clean code as the programming equivalent of great design — it’s functional, beautiful, and easy to work with.</p>
<p>And today, I won’t spend a lot of time explaining why clean code is important — you probably already know that. Instead, I’ll get straight to the point and share seven powerful hacks to help you write cleaner, better code.</p>
<h2 id="heading-table-of-contents"><strong>Table of Contents</strong></h2>
<ul>
<li><p><a class="post-section-overview" href="#heading-1-write-code-like-youre-explaining-it-to-a-5-year-old">1. Write Code Like You’re Explaining it to a 5-Year Old</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-2-use-ai-tools-or-an-ai-code-reviewer">2. Use AI Tools (or an AI Code Reviewer)</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-3-get-rid-of-unnecessary-comments">3. Get Rid of Unnecessary Comments</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-4-follow-the-dry-principle">4. Follow the DRY Principle</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-5-fix-your-code-formatting-amp-follow-a-consistent-style">5. Fix Your Code Formatting &amp; Follow a Consistent Style</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-6-dont-let-your-functions-do-too-much">6. Don’t Let Your Functions Do Too Much</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-7-organize-your-files-and-folders-properly">7. Organize Your Files and Folders Properly</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-wrapping-up">Wrapping Up</a></p>
</li>
</ul>
<h2 id="heading-1-write-code-like-youre-explaining-it-to-a-5-year-old"><strong>1. Write Code Like You’re Explaining it to a 5-Year Old</strong></h2>
<p>Let me be honest — if you are writing exceedingly clever code that your teammates or someone else can’t easily read, it won’t be helpful to anyone.</p>
<p>You need to write code so simple that anyone, including someone who just opened the file for the first time, can easily go through it.</p>
<p>For example, if your variable names look like this:</p>
<pre><code class="lang-plaintext">let x = y + z;
</code></pre>
<p>This isn’t helpful. No one will know what x, y, and z mean — not even you, three weeks later.</p>
<p>Variables should describe what they hold. Think of them as self-documenting comments. Here’s a better example:</p>
<pre><code class="lang-plaintext">let totalPrice = productPrice + shippingCost;
</code></pre>
<p>This simple best practice can be applied even when writing functions, comments, and more.</p>
<p>Here’s an example of hard to understand code:</p>
<pre><code class="lang-plaintext">function calc(itm) {
 let t = 0;
 for (let i = 0; i &lt; itm.length; i++) {
 t += itm[i].p;
 }
 return t;
}
</code></pre>
<p>You see, it doesn’t give you a proper idea about the function other than the logic.</p>
<p>Instead, try to write it like this:</p>
<pre><code class="lang-plaintext">function calculateTotalPrice(cartItems) {
    let totalPrice = 0;
    for (let i = 0; i &lt; cartItems.length; i++) {
        totalPrice += cartItems[i].price;
    }
    return totalPrice;
}
</code></pre>
<p>Now it’s clear just from looking at the code what’s going on.</p>
<h2 id="heading-2-use-ai-tools-or-an-ai-code-reviewer">2. Use AI Tools (or an AI Code Reviewer)</h2>
<p>AI is evolving quickly and is being used in almost every industry.</p>
<p>Well, as a developer, you can use AI to help you write clean and readable code — all thanks to AI tools like <a target="_blank" href="https://chatgpt.com/">ChatGPT</a>, <a target="_blank" href="https://claude.ai/">Claude</a>, and <a target="_blank" href="https://github.com/features/copilot">GitHub Copilot</a>.</p>
<p>For starters, you can copy and paste your code into an LLM and ask it to review your code. </p>
<p>Here’s an example of a request I made to ChatGPT:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738673389541/558c64b6-f92e-4ede-bd00-8fe9c98623c0.png" alt="558c64b6-f92e-4ede-bd00-8fe9c98623c0" class="image--center mx-auto" width="600" height="400" loading="lazy"></p>
<p>And here’s what ChatGPT recommended:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738673434670/badadf50-2e1f-46f9-9f3b-c9b189dfaeeb.png" alt="badadf50-2e1f-46f9-9f3b-c9b189dfaeeb" class="image--center mx-auto" width="600" height="400" loading="lazy"></p>
<p>It even provided me with an improved version of the code. Here it is as follows:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738673489244/3cf70568-a418-460b-9aa6-768a544965c2.png" alt="3cf70568-a418-460b-9aa6-768a544965c2" class="image--center mx-auto" width="600" height="400" loading="lazy"></p>
<p>Along with that, you can also use AI-powered code reviewers like <a target="_blank" href="https://www.coderabbit.ai/">CodeRabbit AI</a>, which integrates with your pull requests to offer automated code reviews, walkthroughs, and more.</p>
<p>In simple terms, when you install CodeRabbit AI, add it to your pull request, and then create a pull request, CodeRabbit AI provides you with summaries, code reviews, walkthroughs, and more.</p>
<p>Here’s an example from an open-source repository “<a target="_blank" href="https://github.com/bitbomdev/minefield/pull/158">minefield</a>” of a summary generated by CodeRabbit AI:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1738675580325/ef823a77-6969-4e8a-a141-640468d0169d.png" alt="ef823a77-6969-4e8a-a141-640468d0169d" class="image--center mx-auto" width="600" height="400" loading="lazy"></p>
<p>In the above examples, CodeRabbit AI simply goes through the code and provides a great summary highlighting the new features, bug fixes, and unit tests added via a pull request.</p>
<p>If you want to learn more, <a target="_blank" href="https://docs.coderabbit.ai/getting-started/quickstart/">here’s</a> a quickstart guide that provides more info on how to get started and use CodeRabbit AI.</p>
<p>Note that, AI tools can be a great help in improving your code, but they should never replace your own thinking.</p>
<p>When AI suggests changes, always ask yourself: Does this actually make sense?</p>
<p>After all, AI isn’t perfect—it can generate incorrect code. It might also miss important details that only a human can fully understand.</p>
<p>So instead of blindly accepting AI’s suggestions, take a moment to understand why they were made.</p>
<p>Remember, the goal is to use AI to speed up your workflow, catch errors, and more—while keeping full control over your code.</p>
<h2 id="heading-3-get-rid-of-unnecessary-comments">3. Get Rid of Unnecessary Comments</h2>
<p>Writing good code comments can help others understand why your code is doing what it’s doing.</p>
<p>But I see developers writing too many comments, even where there is no need.</p>
<p>I believe that, whenever possible, good code should document itself.</p>
<p>Here’s an example of a not so helpful comment:</p>
<pre><code class="lang-plaintext">// Adding 10 to the result 
total = total + 10;
</code></pre>
<p>You see, here the comment doesn’t make sense, and it doesn’t really add anything to the code (or our understanding of it).</p>
<p>It’s a better practice to write comments only if they’re important in helping a reviewer understand why you did something in particular or if there’s some ambiguity that needs explaining.</p>
<p>Here’s an example:</p>
<pre><code class="lang-plaintext">// Adding 10 because the client requires a 10% buffer for calculations 
total = total + 10;
</code></pre>
<p>Now you can see that here the comment gives a clear idea about why the programmer added 10 to the total.</p>
<h2 id="heading-4-follow-the-dry-principle">4. Follow the DRY Principle</h2>
<p>I’ve seen a lot of programmers repeating the same logic or adding the same functionality in different files.</p>
<p>Well, you don’t need to repeat the same code everywhere because it makes the process much more complex. Keep your code DRY (Don’t Repeat Yourself).</p>
<p>Instead, abstract that logic into a single reusable function.</p>
<p>For example, instead of writing the same logic in different files:</p>
<pre><code class="lang-plaintext">if (user.age &gt; 18 &amp;&amp; user.age &lt; 65) { 
 // Do something 
}

if (user.age &gt; 18 &amp;&amp; user.age &lt; 65) { 
 // Do something else 
}
</code></pre>
<p>You can create a reusable function so that you can use the logic everywhere, as shown below:</p>
<pre><code class="lang-plaintext">function isWorkingAge(age) { 
 return age &gt; 18 &amp;&amp; age &lt; 65; 
}

if (isWorkingAge(user.age)) { 
 // Do something 
}
</code></pre>
<p>In short — write once, and use everywhere.</p>
<h2 id="heading-5-fix-your-code-formatting-amp-follow-a-consistent-style">5. Fix Your Code Formatting &amp; Follow a Consistent Style</h2>
<p>This is another simple hack, but many devs don’t even think about it.</p>
<p>First of all, you need to format your code with proper indentation.</p>
<p>You can just install a VS Code extension/linters like <a target="_blank" href="https://prettier.io/">Prettier</a>, <a target="_blank" href="https://eslint.org/">ESLint</a>, or <a target="_blank" href="https://pypi.org/project/flake8/">Flake8</a>, depending on the programming language you use. Configure a few settings, and you’re good to go.</p>
<p>These linters can help you write better code by finding mistakes, helping you follow coding rules, and keeping your code consistent. They can also catch errors, make your code easier to read, and save time on fixing bugs and reviews.</p>
<p>But fixing your formatting doesn’t just mean it’s clean code – it’s way more than that.</p>
<p>Beyond formatting, you should stick to a consistent style guide for things like function names or variable names.</p>
<p>For example, here’s some code that has an inconsistent style:</p>
<pre><code class="lang-plaintext">let total_price;  
let UserData;  
function getuser() {}
</code></pre>
<p>But some of you may ask, why is the code inconsistent?</p>
<p>Well, it uses several different naming conventions – like <code>total_price</code> uses snake_case, <code>UserData</code> uses PascalCase, and <code>getuser()</code> is in lowercase instead of camelCase.</p>
<p>This makes your code harder to read and more confusing. Instead, you can follow a consistent style. Here’s how:</p>
<pre><code class="lang-plaintext">let userData; 
let totalPrice; 
function getUser() {}
</code></pre>
<p>And just to let you know, JavaScript typically follows camelCase for variables and functions, so names like <code>getUser(), userData, and totalPrice</code> would be more consistent.</p>
<p>No matter whether you’re working in a team or solo, sticking to one style is a good idea. It makes the code clean, and the reviewer can easily go through it.</p>
<h2 id="heading-6-dont-let-your-functions-do-too-much">6. Don’t Let Your Functions Do Too Much</h2>
<p>As a programmer, I know that sometimes you need to write complex logic inside a function.</p>
<p>But most often, programmers include too much logic in a single function, causing it to do more than one thing at a time. These functions become too complex, making them hard to read or understand.</p>
<p>It’s better to create multiple smaller functions, with each function handling a single responsibility.</p>
<p>Here’s an example of a slightly too complex function:</p>
<pre><code class="lang-plaintext">function calculateCart(items) {
 let total = 0;
 for (let i = 0; i &lt; items.length; i++) {
 total += items[i].price * items[i].quantity;
 }
 return total &gt; 100 ? total * 0.9 : total;
}
</code></pre>
<p>You see, this single function does too much—it applies discounts if applicable, and calculates the total price based on quantity, making it hard to reuse for specific use cases.</p>
<p>A better way is to split it into three functions:</p>
<ul>
<li><p>One to apply the discount (if applicable).</p>
</li>
<li><p>One to calculate the total price based on quantity.</p>
</li>
<li><p>One to get the total and apply the discount if needed.</p>
</li>
</ul>
<p>This makes the code cleaner and easier to manage. Here’s an improved version:</p>
<pre><code class="lang-plaintext">function calculateCart(items) {
 const total = getCartTotal(items);
 return applyDiscount(total);
}

function getCartTotal(items) {
 return items.reduce((sum, item) =&gt; sum + item.price * item.quantity, 0);
}

function applyDiscount(total) {
 return total &gt; 100 ? total * 0.9 : total;
}
</code></pre>
<p>You see, instead of writing everything in one long block, the logic is broken into smaller, clearer functions.</p>
<p>And that’s what makes it easier for you (and everyone else) to understand.</p>
<h2 id="heading-7-organize-your-files-and-folders-properly">7. Organize Your Files and Folders Properly</h2>
<p>Now comes the most important part.</p>
<p>When you’re working on a big project, it makes no sense to dump all your code into one single folder with a bunch of random files. It’s become a nightmare for anyone trying to review the code or find a specific file.</p>
<p>Think about it — going through 50 files just to fix a bug. Nobody wants that.</p>
<p>Instead, try organizing your project into multiple folders based on pages or features.</p>
<p>And don’t stop there — break large files into smaller, specific modules based on functionality. This way, everything is neat, easy to find, and makes sense at first glance.</p>
<p>Here’s a bad example of a project structure: </p>
<pre><code class="lang-plaintext">project-folder/  
│  
├── index.html  
├── app.js  
├── helpers.js  
├── data.js  
├── user.js  
├── product.js
</code></pre>
<p>It’s messy, right? Now, here’s how you can improve it:</p>
<pre><code class="lang-plaintext">project-folder/  
│  
├── pages/  
│   ├── home/  
│   │   ├── HomePage.js  
│   │   ├── HomePage.css  
│   │   └── HomePage.test.js  
│   ├── user/  
│   │   ├── UserPage.js  
│   │   ├── UserPage.css  
│   │   └── UserPage.test.js  
│   └── product/  
│       ├── ProductPage.js  
│       ├── ProductPage.css  
│       └── ProductPage.test.js  
├── components/  
│   ├── Header.js  
│   ├── Footer.js  
│   └── Button.js  
├── utils/  
│   └── api.js  
└── index.js
</code></pre>
<p>See how simple this is?</p>
<p>You have separate folders for pages, components, and utilities. Inside each folder, files are organized by purpose and given clear names.</p>
<p>For example, if you need something for the product page, you’ll know exactly where to find it.</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>In this article, you learned the basics you need to get started writing clean, efficient, and maintainable code.</p>
<p>We discussed how to write clean code, use AI tools, apply proper code formatting techniques, structure functions effectively, and follow other best practices.</p>
<p>If you apply these tips consistently, you’ll significantly improve your coding skills and write cleaner code.</p>
<p>I hope you liked it.</p>
<p>You can connect with me on <a target="_blank" href="https://substack.com/@nitinfab">Substack</a>, and <a target="_blank" href="https://x.com/Nitinfab">Twitter</a>.</p>
<p>Also, if you're interested in learning more about AI, you can subscribe to my newsletter, <a target="_blank" href="https://aimadesimple0.substack.com/">AI Made Simple</a>, where I dive deeper into practical AI strategies for everyday people.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Learn Web Development Using Free Resources ]]>
                </title>
                <description>
                    <![CDATA[ In this article, I will help you learn Web Development by following the shortest path possible. To get this most out of this guide, I urge you to leave all your distractions behind for 10 minutes and focus. To help anyone and everyone get started, I'... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-web-development-for-free/</link>
                <guid isPermaLink="false">66d46040ffe6b1f641b5fa30</guid>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ self-improvement  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Nitin Sharma ]]>
                </dc:creator>
                <pubDate>Fri, 26 Feb 2021 16:34:46 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/02/Learn-web--1-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this article, I will help you learn Web Development by following the shortest path possible. To get this most out of this guide, I urge you to leave all your distractions behind for 10 minutes and focus.</p>
<p>To help anyone and everyone get started, I'll provide you with a collection of excellent free resources to learn Web development.</p>
<p>So let’s get started.</p>
<h2 id="heading-how-i-started-learning-web-development">How I Started Learning Web Development</h2>
<p>I was in my first year of Engineering, studying Electronics and Telecommunication Engineering. I wasn't at all interested in coding and all that tech stuff.</p>
<p>Until one day.</p>
<p>Accidentally, one of my friends recommended a Udemy Course to me on Web Development. Before that, I didn't even know about Web Development since I didn't have a technical background, and I wasn't trying to learn new skills.</p>
<p>So I didn't know what HTML, CSS, and all that techy stuff was about. My friend let me watch the course on his own Udemy account.</p>
<p>Well, I ended up watching the course two hours a day because I liked it. But at that time I wasn't practicing coding on my laptop like many of you.</p>
<p>Within days, I learned the basics of HTML and CSS. After that, I started up my laptop and tried to create websites based off what was taught in the course.</p>
<p>And in this way I started to learn about Web Development.</p>
<h2 id="heading-how-to-get-started-as-a-front-end-web-developer">How to Get Started as a Front End Web Developer</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/frontend.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Source:</em> <a target="_blank" href="https://github.com/kamranahmedse/developer-roadmap"><em>GitHub</em></a></p>
<p>Here you can see a broad roadmap for front end Web Developers. If you haven't seen it before, read through it to get a sense of the overall path.</p>
<p>There's a lot to take in – but in this article, I am going to help you create a shorter path to learn Web Development.</p>
<p>Before we dive into the skills you need to learn to become a web developer, you should know that web development isn't a single concept or subject. It has numerous subfields in it.</p>
<p>You can focus on front end development, back end development, graphic design, and so on. We'll start with the front end now.</p>
<p>For Front-end development, you need to learn HTML, CSS, JavaScript, and a library or framework like React, Angular, or Vue.js.</p>
<p>So now let's talk in more detail about what front end development is and what you need to learn.</p>
<h3 id="heading-what-is-front-end-development">What is Front End Development?</h3>
<blockquote>
<p>The front end of an application typically refers to the layer that represents the UI (user interface). This can include anything from a static site with HTML and CSS to a full <a target="_blank" href="https://reactjs.org/">React</a> app that powers the UI. - <a target="_blank" href="https://www.freecodecamp.org/news/front-end-developer-vs-back-end-developer-definition-and-meaning-in-practice/">Colby Fayock</a></p>
</blockquote>
<p>There are some <a target="_blank" href="https://www.freecodecamp.org/learn/responsive-web-design/">basics you'll need to know</a> for Front-end Web Development. They are:</p>
<ol>
<li><p>HTML</p>
</li>
<li><p>CSS</p>
</li>
<li><p>JavaScript</p>
</li>
</ol>
<p>HTML and CSS use to create static websites.</p>
<h3 id="heading-what-is-html">What is HTML?</h3>
<p>HTML stands for Hypertext Markup Language. It is used to add content to a website. The information which you see on a particular website is only visible because of HTML. You can run HTML code in an IDE like Visual Studio, Sublime Text, Atom, and many more.</p>
<p>HTML consists of tags like <code>&lt;h1&gt;</code> (for heading) and <code>&lt;p&gt;</code> (for paragraph).</p>
<p>For instance:</p>
<pre><code class="lang-html"><span class="hljs-meta">&lt;!DOCTYPE <span class="hljs-meta-keyword">html</span>&gt;</span> 
<span class="hljs-tag">&lt;<span class="hljs-name">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>Hello, Readers<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>You are good to go.<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span> 
<span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>This is some basic syntax for HTML. We have to write code inside body tags to display on Web pages. Here we're displaying an h1 tag with a paragraph tag.</p>
<p>The output of this code will look like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/ht.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<h3 id="heading-what-is-css">What is CSS?</h3>
<p>CSS is an acronym for Cascading Style Sheets. You use it to create styling for a Website so that it looks attractive.</p>
<p>Once again, inspect the above HTML code. It doesn't display background color or shadow. This is because we haven't applied CSS to it yet.</p>
<p>So, CSS enhances HTML and tells elements how to display on Web pages.</p>
<p>CSS consists mainly of 3 types:</p>
<ol>
<li><p>Inline CSS.</p>
</li>
<li><p>Internal CSS.</p>
</li>
<li><p>External CSS.</p>
</li>
</ol>
<p>To help you to understand a bit better, we will use Inline CSS. Inline CSS is a type of CSS where you can add style properties inside HTML tags.</p>
<p>For example, here we have added a style property to the body tag. We just changed the body's background-color to pink:</p>
<pre><code class="lang-python">&lt;!DOCTYPE html&gt; 
&lt;html&gt;
&lt;body style=<span class="hljs-string">"background-color:pink;"</span>&gt;
  &lt;h1&gt;Hello, Readers&lt;/h1&gt;
  &lt;p&gt;You are good to go.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>And here is the output:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/css.PNG" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Isn't it cool?</p>
<h3 id="heading-what-is-javascript">What is JavaScript?</h3>
<p>So what about dynamic websites? That all happens thanks to JavaScript.</p>
<p>Even Google has mentioned JavaScript as the most popular programming language out there these days.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/java.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Source: Google</em></p>
<p>JavaScript is a programming language used mainly on the client-side to help web pages be more interactive.</p>
<p>While HTML and CSS are languages that give structure and style to web pages, JavaScript provides web pages with interactive elements that engage a user.</p>
<p>Let's explain how it works with an example.</p>
<p>Think about your house. Building the foundation and framework of your home with bricks and cement is all a part of HTML. Painting and decorating your house is CSS's job. And integrating technology – like IoT – is part of JavaScript.</p>
<p>That’s it. Front-end Web Development consists of HTML, CSS, and JavaScript.</p>
<p>Once you know the basics, you can add frameworks and libraries like React, Angular, or Vue.js to your skillset.</p>
<p><strong>These are the basic skills you need to start as a Front-end Web Developer.</strong></p>
<h2 id="heading-how-to-learn-back-end-development">How to Learn Back-end Development</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/backend.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Source:</em> <a target="_blank" href="https://github.com/kamranahmedse/developer-roadmap"><em>GitHub</em></a></p>
<p>Now let's talk about Back-end Development.</p>
<p>For Back-end Development, you'll need to learn Node.js, Express, MongoDB, and Mongoose.</p>
<h3 id="heading-but-what-is-back-end-development">But What is Back-end Development?</h3>
<blockquote>
<p>Back-end development is also known as server-side development. It is the practice of communicating between the database and the browser.</p>
</blockquote>
<p>Back-end Development languages and tools include:</p>
<ol>
<li><p>Node.js</p>
</li>
<li><p>Express</p>
</li>
<li><p>MongoDB (Including Mongoose)</p>
</li>
</ol>
<p>These three skills are important to learn if you want to become a Back-end Developer.</p>
<h3 id="heading-what-is-nodejs">What is Node.js?</h3>
<p>According to <a target="_blank" href="https://nodejs.dev/learn">Node's documentation</a>, Node.js is an open-source and cross-platform JavaScript Runtime Environment. It is a popular tool that you can use for basically any type of project.</p>
<p>Node.js runs the V8 JavaScript engine, the core of Google Chrome, outside of the browser. This helps Node.js be very performant.</p>
<h3 id="heading-now-what-is-express">Now, What is Express?</h3>
<blockquote>
<p>Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. - <a target="_blank" href="https://expressjs.com/">Express Docs</a></p>
</blockquote>
<p>You can think of Express as an NPM package that helps Node.js applications.</p>
<p>Let me explain how it works through some code. The below code is the basic syntax for Express.</p>
<pre><code class="lang-python">const express = require(<span class="hljs-string">'express'</span>);
const app = express();
const port = <span class="hljs-number">5000</span>;

app.get(<span class="hljs-string">'/'</span>, (req, res) =&gt; {
  res.send(<span class="hljs-string">"Hello, World"</span>)
})

app.listen(port, () =&gt; {
  console.log(<span class="hljs-string">"App is running on port 5000"</span>);
})
</code></pre>
<p>Here we are installing and then requiring Express. You just initialize the app as <code>express()</code> and the port as <code>5000</code>.</p>
<p>Then we request the <code>'/'</code> route to respond with Hello, World.</p>
<p>When our app is running, we log that it is running on port 5000.</p>
<h3 id="heading-lastly-what-is-mongodb">Lastly, What is MongoDB?</h3>
<p>Before proceeding further, I have to explain a crucial concept: databases.</p>
<p>To create websites, you need a Database. We know that websites require databases to store information. The database helps us store user information, show information based on user requests, and much more.</p>
<p>Databases come in two types: SQL and NoSQL.</p>
<p>What is the difference between SQL and NoSQL?</p>
<ol>
<li><p>SQL is a relational database, while NoSQL is a non-relational database.</p>
</li>
<li><p>SQL is represented in tables, while NoSQL is in key-value pairs or JSON format.</p>
</li>
<li><p>The most popular SQL databases are MySQL and PostgreSQL while the most popular NoSQL database is MongoDB.</p>
</li>
</ol>
<p>Now let’s talk about MongoDB. According to <a target="_blank" href="https://www.mongodb.com/">mongodb.com</a>,</p>
<blockquote>
<p>MongoDB is a general-purpose, document-based, distributed database built for modern application developers and the cloud era.</p>
</blockquote>
<p>When you need to work on a database, MongoDB is a great NoSQL option.</p>
<h3 id="heading-you-also-have-to-learn-mongoose">You also have to learn Mongoose.</h3>
<p>Mongoose helps you work more easily with MongoDB.</p>
<blockquote>
<p><a target="_blank" href="https://mongoosejs.com/">Mongoose</a> provides a straight-forward, schema-based solution to model your application data. It includes built-in type casting, validation, query building, business logic hooks, and more, out of the box.</p>
</blockquote>
<p>Those are the basic technologies you need to learn to become a back-end developer.</p>
<p>Once you've learned all these skills, you can call yourself a Full Stack Web Developer.</p>
<p>By the way, you might have heard people referring to certain tech stacks, like "MERN" or "MEAN".</p>
<p>Well, if you choose to learn React.js, you will be a MERN (MongoDB, Express, React, Node) Stack Web Developer.</p>
<p>With Angular.js, you will be a MEAN (MongoDB, Express, Angular, Node) Stack Web Developer.</p>
<h2 id="heading-free-resources-to-learn-web-development">Free Resources to Learn Web Development</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/04/image-309.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Photo by [Unsplash](https://unsplash.com/@brookecagle?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit"&gt;Brooke Cagle / &lt;a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit)</em></p>
<p>If you want to learn to code, this is the best time to dig into it.</p>
<p><strong>And to motivate you, here are some facts:</strong></p>
<ol>
<li><p>According to Glassdoor, the average Web Developer salary in the US is $68,524/yr. Much more than we expect to earn during the pandemic.</p>
</li>
<li><p>There are a ton of great and high-quality free resources out there. Yes, you can learn everything related to Web Development for free.</p>
</li>
<li><p>You can start a Web Development Startup without a single cent. I have started something similar.</p>
</li>
<li><p>You can earn money in numerous different tech-related fields.</p>
</li>
</ol>
<p>And the list could go on.</p>
<p>Before we get into these resources, I want to let you know that I use or have used all these languages, tools, and resources professionally. There are no affiliate links in the article, so there are no resources here that will help me earn money.</p>
<p>I have also spent about 10 days researching more about these resources. I've consulted more than 50 top web developers so I can provide free access to my readers.</p>
<p>Do note, though, that some of these resources are free up to a point. So you can check those out and see if you want to invest more.</p>
<p>I know many of you are beginners and don’t know the best resources to try. So I will keep it simple.</p>
<p>You can check all these websites and even bookmark your favorites to come back to again and again. Alright – let's check 'em out.</p>
<h2 id="heading-freecodecamp">freeCodeCamp</h2>
<p>The most crucial website I've ever visited in my life is <a target="_blank" href="https://www.freecodecamp.org/learn/">freeCodeCamp</a>. They have a full 3000-hour web development curriculum, and they've recently added certificates for scientific computing, data analysis, and machine learning with Python as well.</p>
<p>In addition to the curriculum, <a target="_blank" href="https://www.freecodecamp.org/news/">freeCodeCamp has a publication</a> (where you're reading this article), a <a target="_blank" href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ">YouTube channel</a>, and a <a target="_blank" href="https://forum.freecodecamp.org/">Forum</a> where you can get help with your programming problems.</p>
<p>You can also sign up as a subscriber, and Quincy (freeCodeCamp's founder) will email you some of the latest tech-related articles from freeCodeCamp's publication every week.</p>
<p><strong>Want to know why Quincy founded freeCodeCamp?</strong></p>
<p>Quincy Larson summarises in a podcast interview as follows:</p>
<blockquote>
<p>freeCodeCamp is my effort to correct the extremely inefficient and circuitous way I learned to code. I’m committing my career and the rest of my life towards making this process as efficient and painless as possible. […] All those things that made learning to code a nightmare to me are things that we are trying to fix with freeCodeCamp.</p>
</blockquote>
<h2 id="heading-udemy">Udemy</h2>
<p>Yes, you can still get <a target="_blank" href="https://www.udemy.com/">free courses from Udemy</a>. Just search for Free Web Development Course, and it'll filter out your options. You'll see both paid and free course, but you can just choose the free ones and enjoy.</p>
<p>If you remember, my first programming course was from Udemy – the one my friend signed me up for. So it helped me get my start.</p>
<h2 id="heading-documentation-to-reference">Documentation to Reference</h2>
<p>When I want to learn about or implement a new concept, I visit Google. And Google often recommends the <a target="_blank" href="https://developer.mozilla.org/en-US/">MDN</a> or a tool or language's official documentation.</p>
<p>This is also helpful when I forget how the details of a specific topic (like Flexbox, for example) work.</p>
<p>W3Schools provides tons of short reference tutorials for many topics including Java, Python, JavaScript, jQuery, React, Angular, AJAX, SQL, Node.js, Raspberry Pi, Artificial Intelligence, Machine Learning, Data Science, NumPy, SciPy, Matplotlib, and MongoDB.</p>
<p>When I was studying engineering, I had to learn Java. And I didn't want to read a 500 page book for that. So I jumped onto w3schools to learn the language. Since I knew C, the logic was the same and there were just some syntax changes and new concepts like encapsulation, inheritance, polymorphism, and so on.</p>
<p>Believe it or not, I learned Java basics in about two days.</p>
<h2 id="heading-youtube-channels-to-learn-web-development">YouTube Channels to learn Web Development.</h2>
<p>I have personally used every one of these channels for years and have learned a lot from them. I've also consulted a bunch of working web devs to help provide you with the best resources out there.</p>
<h3 id="heading-1-freecodecamp">1. freeCodeCamp</h3>
<p><a target="_blank" href="https://www.youtube.com/c/Freecodecamp/featured">freeCodeCamp's YouTube channel</a> was the first one I tried out to learn Web Development after Udemy.</p>
<p>They publish courses on a wide range of topics from Python and Data Science to Game Development, JavaScript, Design, and more.</p>
<p>It's one of the largest programming-related channels on YouTube and they release new full video courses a couple times a week.</p>
<h3 id="heading-2-clever-programmer">2. Clever Programmer</h3>
<p>Rafeh Qazi, a tech expert, was a freelancer and then shifted his path to begin directly teaching students.</p>
<p>He started <a target="_blank" href="https://www.youtube.com/channel/UCqrILQNl5Ed9Dz6CGMyvMTQ">his YouTube Channel</a> with Sonny Sangha and a few others to teach programmers through creating clones of popular websites.</p>
<p>I have used those tutorials to build clones of Amazon, Instagram, and more.</p>
<p>My YouTube history has tons of Web Development and App Development videos. And YouTube recommends similar topics to me. So one day, I got a recommendation to try building an Instagram clone with React.js, so I checked it out.</p>
<h3 id="heading-3-traversy-media">3. Traversy Media</h3>
<p>Brad Traversy is the creator of <a target="_blank" href="https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA">Traversy Media</a>. He is a freelancer, works for companies, and runs his own business.</p>
<p>Along with that, he runs a YouTube channel to teach Web Development.</p>
<p>I have been following him for a long time. Throughout his career, he's worked very hard and let his health suffer. So what did he do - quit? No – he invited other YouTubers to teach his students with him.</p>
<p>What great passion. Hats off to Brad Traversy.</p>
<p>Through Brad's channel, I have learned Chart.js, Pusher, Full Stack React, and Django.</p>
<h3 id="heading-4-academind">4. Academind</h3>
<p>I wanted to learn more about the MERN Stack when I was a beginner. So I went to Udemy and took a course.</p>
<p>I didn't know about <a target="_blank" href="https://www.youtube.com/channel/UCSJbGtTlrDami-tDGPUV9-w">Academind</a> at that point but I learned about it from the course I took. So I went to check out his YouTube channel and really enjoyed it – so I subscribed.</p>
<h3 id="heading-5-stefan-mischook">5. Stefan Mischook</h3>
<p>We all get stuck at some point. We might start thinking, how can I possibly become a web developer? How can I ramp up my learning? Are there any jobs out there for me, and how do I apply?</p>
<p>All these questions knock at our mind's door, and we need to answer. To help you tackle these questions, <a target="_blank" href="https://www.youtube.com/channel/UCyUBW72KU30dfAYWLVNZO8Q">Stefan Mischook's</a> is the best channel for you.</p>
<p>He answers many general questions that programmers and developers might while they're learning to code or gaining new skills.</p>
<h3 id="heading-6-london-app-brewery">6. London App Brewery</h3>
<p>Angela Yu and her team <a target="_blank" href="https://www.youtube.com/channel/UCVD5Vh9LhLBxp3o1vRNyf_w">run this YouTube Channel</a>. And indeed, I am her biggest fan.</p>
<p>Why? Because <a target="_blank" href="https://medium.com/code-blog/getting-started-and-earning-105-813-yr-as-a-web-developer-for-beginners-19b2cd26fcc2">my Web Development journey</a> began thanks to her.</p>
<p>Other than Web Development, she teaches Flutter, iOS Development, and many more topics.</p>
<h3 id="heading-7-the-net-ninja">7. The Net Ninja</h3>
<p>When I was learning the MERN Stack, I discovered that that <a target="_blank" href="https://medium.com/javascript-in-plain-english/getting-started-with-react-native-for-beginners-958d39fee16a">React Native is simple enough</a>. When I wanted to start learning about it, <a target="_blank" href="https://www.youtube.com/channel/UCW5YeuERMmlnqo4oq8vwUpg">The Net Ninja</a> helped me out.</p>
<p>There are tons of tutorials here that explain Vue.js, Angular, React, React Native, Flutter, PHP, Firebase, CSS, JavaScript, GraphQL, and more topics.</p>
<h2 id="heading-code-editors-for-web-developers">Code Editors for Web Developers</h2>
<p>As a web developer, you'll need a good code editor to help you in your work. Let's look at a few of the most popular editors now.</p>
<h3 id="heading-visual-studio-code">Visual Studio Code</h3>
<p>Personally, I use <a target="_blank" href="https://code.visualstudio.com/">Visual Studio Code</a> (or VS Code) for all of my projects. I really like its many features like live share, the built-in terminal, dark mode, and tons of extensions.</p>
<p>Extensions such as Prettier, ES7 React/Redux/GraphQL/React-Native snippets, and Live Server are a regular part of my life.</p>
<p>I am also learning Java for my placement. Many of you may have heard about NetBeans and all, but I am using VS Code for that.</p>
<p>In Visual Studio Code, you can run every programming language, as well as frameworks like React Native and Flutter.‌</p>
<h3 id="heading-sublime-text">Sublime Text</h3>
<p><a target="_blank" href="https://www.sublimetext.com/">Sublime Text</a> is another popular editor. I have not used it so far, but many of my friends do.</p>
<p>It has more than enough features for a beginner to use while learning Web Development.</p>
<h3 id="heading-want-more">Want more?</h3>
<p>Want a full list of resources I recommend?</p>
<p>Here is a list of 80+ resources for Web Development.</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="https://js.plainenglish.io/80-free-resources-for-web-designers-and-web-developers-in-2021-f400be2875ea">https://js.plainenglish.io/80-free-resources-for-web-designers-and-web-developers-in-2021-f400be2875ea</a></div>
<p> </p>
<h2 id="heading-why-should-you-be-a-full-stack-web-developer">Why Should You Be a Full Stack Web Developer?</h2>
<p>I know some of you might be a bit overwhelmed after learning about Web Development and all the different skills you need to learn.</p>
<p>Knowledge is everywhere and it's vast.</p>
<p>But it's totally worth it to learn these skills. Let's talk about some of the benefits that come with being a web developer.</p>
<h3 id="heading-benefits-of-being-a-web-developer">Benefits of being a Web Developer</h3>
<ol>
<li><p>Compensation (it's quite good)</p>
</li>
<li><p>The industry is not going anywhere any time soon</p>
</li>
<li><p>The work is fun and interesting</p>
</li>
<li><p>You can work as a freelancer or for a company</p>
</li>
<li><p>You can work from home or anywhere else</p>
</li>
</ol>
<p><strong>So...how much can you earn?</strong></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/02/glass.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><em>Source: Glassdoor</em></p>
<p>According to Glassdoor, the average salary for a Full Stack Web Developer in the US is $105,813/year.</p>
<h3 id="heading-what-about-app-development">What about app development?</h3>
<p>Want to be an App Developer? You can dive right in.</p>
<p>Suppose you learn React.js to become a MERN Stack Web Developer. The same concepts apply in app development.</p>
<p>For example, React Native, a mobile app framework, uses the same concepts as React.js to create mobile applications.</p>
<p>To get started, you don't need to learn any other languages or major concepts. Focus on React.js and you'll be able to create your applications.</p>
<p><a target="_blank" href="https://js.plainenglish.io/getting-started-with-react-native-for-beginners-958d39fee16a">Embedded content</a></p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>Congratulations on working your way through this long post.</p>
<p>It was just a brief guide for Web Developers, to help you get started in the field. You can bookmark this article for further use or even share it with your friends who want to start their careers as a Web Developers, too.</p>
<p>Good luck :)</p>
<p>Thanks for reading!</p>
<p>This article is a combination of 3 stories I wrote on <a target="_blank" href="https://medium.com/@nitinfab">Medium</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
