<?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" version="2.0" xmlns:hashnode="https://hashnode.com/rss"><channel><title><![CDATA[The Happy Developer]]></title><description><![CDATA[Full Stack Web Developer skilled in React and Next.js, mentoring aspiring developers to bridge opportunity gaps and promote tech accessibility globally.]]></description><link>https://happydev.blog</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1715939695480/4d5Yf2uKZ.png</url><title>The Happy Developer</title><link>https://happydev.blog</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Oct 2024 10:21:30 GMT</lastBuildDate><atom:link href="https://happydev.blog/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><atom:link rel="next" href="https://happydev.blog/rss.xml?page=2"/><atom:link rel="previous" href="https://happydev.blog/rss.xml"/><item><title><![CDATA[Mastering Back-End Development - Stage 4: More On JS]]></title><description><![CDATA[After learning the basics of computer science and the JavaScript ecosystem, and generally exploring, it's finally time to invest heavily in JavaScript. This investment will be rewarding in terms of the skills you will gain and the value it will add t...]]></description><link>https://happydev.blog/mastering-back-end-development-stage-4-more-on-js</link><guid isPermaLink="true">https://happydev.blog/mastering-back-end-development-stage-4-more-on-js</guid><category><![CDATA[oop]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[backend]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Mon, 30 Sep 2024 19:44:35 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;After learning the basics of computer science and the JavaScript ecosystem, and generally exploring, it&apos;s finally time to invest heavily in JavaScript. This investment will be rewarding in terms of the skills you will gain and the value it will add to you as a web developer and to your resume as a job seeker.&lt;/p&gt;&lt;p&gt;We are going to build a solid knowledge in JavaScript so that in the future you won&apos;t have skill issues. This will help you learn the technology and frameworks faster and more deeply.&lt;/p&gt;&lt;h2 id=&quot;heading-object-oriented-programming-in-javascript&quot;&gt;Object oriented programming in JavaScript&lt;/h2&gt;&lt;p&gt;Before we dive into implementing object-oriented principles in JavaScript, we need to understand what it is. To do so, please watch the following videos:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=pTB0EiLXUC8&quot;&gt;Object-oriented Programming in 7 minutes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=SiBw7os-_zI&quot;&gt;Intro to Object Oriented Programming&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Since OOP is widely used in the industry and can be a bit complicated, feel free to explore more about it and ask question. &lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/results?search_query=what+is+object+oriented+programming&quot;&gt;here is a list of useful videos&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After you did your researches get back to the track and start learning from the following resource.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/&quot;&gt;&lt;strong&gt;The Modern JavaScript Tutorial&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  Previously, we learned some basics about JavaScript using the same source &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-1-javascript-basics#heading-the-modern-javascript-tutorialhttpsjavascriptinfo-by-javascriptinfo&quot;&gt;here&lt;/a&gt;. Its time to continue reading through this source again.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/advanced-functions&quot;&gt;Advanced working with functions&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  We left this subject previously. It&apos;s now time to learn more about functions.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/object-properties&quot;&gt;Object properties configuration&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  This subject is a little bit advanced and may be confusing, but you will learn enough for now. We will dive deeper into this topic at the appropriate time. Feel free to research more about the subjects introduced in this section.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/prototypes&quot;&gt;Prototypes, inheritance&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/classes&quot;&gt;Classes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After you read through these resources, please consider watching the following videos as well. They are great for learning and practicing the harder and more complicated parts of OOP:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=PFmuCDHHpwk&amp;amp;t=4s&quot;&gt;Object-oriented Programming in JavaScript: Made Super Simple&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=hS_WqkyUah8&quot;&gt;Prototypes in JavaScript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;OOP programming is a broad and extensive subject. Keep in mind that we will return for more in-depth learning about this topic. For now, what we have learned here is more than enough for the foreseeable future.&lt;/p&gt;&lt;h2 id=&quot;heading-debugging-and-error-handling&quot;&gt;Debugging and error handling&lt;/h2&gt;&lt;p&gt;Well, shit happens, prod environment will break, database tables will drop. and there is always a developer who needs to fix the issue and save the day. Besides that, we need to be prepared for unexpected errors and bugs. We have to anticipate potential issues and put safeguards in place so that, in case of an emergency, we don&apos;t overwhelm the system and break it.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/error-handling&quot;&gt;Error handling&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://nodejs.org/en/learn/getting-started/debugging#debugging-nodejs&quot;&gt;Debugging Node.js&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-promises-event-loops-modules&quot;&gt;Promises, Event Loops, Modules&lt;/h2&gt;&lt;p&gt;These concepts are fundamental to asynchronous programming in JavaScript, which is essential for building responsive and efficient back-end applications. You&apos;ll learn how to work with promises, understand the event loop, and organize your code using modules.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/async&quot;&gt;Promises, async/await&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/playlist?list=PL4cUxeGkcC9jx2TTZk3IGWKSbtugYdrlu&quot;&gt;Asynchronous JavaScript (2020 version)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous&quot;&gt;Asynchronous JavaScript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/event-loop&quot;&gt;Event loop: microtasks and macrotasks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=8aGhZQkoFbQ&quot;&gt;What the heck is the event loop anyway?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=eiC58R16hb8&quot;&gt;&lt;strong&gt;JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=Xs1EMmBLpn4&quot;&gt;JavaScript Visualized - Promise Execution&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/modules&quot;&gt;Modules&lt;/a&gt;&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;&lt;strong&gt;Asynchronicity&lt;/strong&gt; is a very important topic in web development. Please give it more attention because what you learn now will determine how far you can go. Please dont move on to the next steps without a deep understanding of asynchronous programming.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-typescript&quot;&gt;Typescript&lt;/h2&gt;&lt;p&gt;TypeScript is a superset of JavaScript that adds static typing. You&apos;ll learn the benefits of using TypeScript, its syntax, and how it can improve your code quality and maintainability. For now, we won&apos;t spend a lot of time learning TypeScript, but we will definitely return to this topic later to explore it further.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=d56mG7DezGs&quot;&gt;TypeScript Tutorial for Beginners&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.typescriptlang.org/docs/handbook/2/basic-types.html&quot;&gt;The Basics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.typescriptlang.org/docs/handbook/2/everyday-types.html&quot;&gt;Everyday Types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-javascript-run-times&quot;&gt;JavaScript Run Times&lt;/h2&gt;&lt;p&gt;Understanding how JavaScript actually runs is key to writing efficient code.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://nodejs.org/en/learn/getting-started/the-v8-javascript-engine#the-v8-javascript-engine&quot;&gt;The V8 JavaScript Engine&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;After learning the basics of computer science and the JavaScript ecosystem, and generally exploring, it&apos;s finally time to invest heavily in JavaScript. This investment will be rewarding in terms of the skills you will gain and the value it will add to you as a web developer and to your resume as a job seeker.&lt;/p&gt;&lt;p&gt;We are going to build a solid knowledge in JavaScript so that in the future you won&apos;t have skill issues. This will help you learn the technology and frameworks faster and more deeply.&lt;/p&gt;&lt;h2 id=&quot;heading-object-oriented-programming-in-javascript&quot;&gt;Object oriented programming in JavaScript&lt;/h2&gt;&lt;p&gt;Before we dive into implementing object-oriented principles in JavaScript, we need to understand what it is. To do so, please watch the following videos:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=pTB0EiLXUC8&quot;&gt;Object-oriented Programming in 7 minutes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=SiBw7os-_zI&quot;&gt;Intro to Object Oriented Programming&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Since OOP is widely used in the industry and can be a bit complicated, feel free to explore more about it and ask question. &lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/results?search_query=what+is+object+oriented+programming&quot;&gt;here is a list of useful videos&lt;/a&gt;&lt;/p&gt;&lt;p&gt;After you did your researches get back to the track and start learning from the following resource.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/&quot;&gt;&lt;strong&gt;The Modern JavaScript Tutorial&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  Previously, we learned some basics about JavaScript using the same source &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-1-javascript-basics#heading-the-modern-javascript-tutorialhttpsjavascriptinfo-by-javascriptinfo&quot;&gt;here&lt;/a&gt;. Its time to continue reading through this source again.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/advanced-functions&quot;&gt;Advanced working with functions&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  We left this subject previously. It&apos;s now time to learn more about functions.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/object-properties&quot;&gt;Object properties configuration&lt;/a&gt;&lt;/p&gt;&lt;p&gt;  This subject is a little bit advanced and may be confusing, but you will learn enough for now. We will dive deeper into this topic at the appropriate time. Feel free to research more about the subjects introduced in this section.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/prototypes&quot;&gt;Prototypes, inheritance&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/classes&quot;&gt;Classes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After you read through these resources, please consider watching the following videos as well. They are great for learning and practicing the harder and more complicated parts of OOP:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=PFmuCDHHpwk&amp;amp;t=4s&quot;&gt;Object-oriented Programming in JavaScript: Made Super Simple&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=hS_WqkyUah8&quot;&gt;Prototypes in JavaScript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;OOP programming is a broad and extensive subject. Keep in mind that we will return for more in-depth learning about this topic. For now, what we have learned here is more than enough for the foreseeable future.&lt;/p&gt;&lt;h2 id=&quot;heading-debugging-and-error-handling&quot;&gt;Debugging and error handling&lt;/h2&gt;&lt;p&gt;Well, shit happens, prod environment will break, database tables will drop. and there is always a developer who needs to fix the issue and save the day. Besides that, we need to be prepared for unexpected errors and bugs. We have to anticipate potential issues and put safeguards in place so that, in case of an emergency, we don&apos;t overwhelm the system and break it.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/error-handling&quot;&gt;Error handling&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://nodejs.org/en/learn/getting-started/debugging#debugging-nodejs&quot;&gt;Debugging Node.js&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-promises-event-loops-modules&quot;&gt;Promises, Event Loops, Modules&lt;/h2&gt;&lt;p&gt;These concepts are fundamental to asynchronous programming in JavaScript, which is essential for building responsive and efficient back-end applications. You&apos;ll learn how to work with promises, understand the event loop, and organize your code using modules.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/async&quot;&gt;Promises, async/await&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/playlist?list=PL4cUxeGkcC9jx2TTZk3IGWKSbtugYdrlu&quot;&gt;Asynchronous JavaScript (2020 version)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous&quot;&gt;Asynchronous JavaScript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/event-loop&quot;&gt;Event loop: microtasks and macrotasks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=8aGhZQkoFbQ&quot;&gt;What the heck is the event loop anyway?&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=eiC58R16hb8&quot;&gt;&lt;strong&gt;JavaScript Visualized - Event Loop, Web APIs, (Micro)task Queue&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=Xs1EMmBLpn4&quot;&gt;JavaScript Visualized - Promise Execution&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/modules&quot;&gt;Modules&lt;/a&gt;&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;&lt;strong&gt;Asynchronicity&lt;/strong&gt; is a very important topic in web development. Please give it more attention because what you learn now will determine how far you can go. Please dont move on to the next steps without a deep understanding of asynchronous programming.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-typescript&quot;&gt;Typescript&lt;/h2&gt;&lt;p&gt;TypeScript is a superset of JavaScript that adds static typing. You&apos;ll learn the benefits of using TypeScript, its syntax, and how it can improve your code quality and maintainability. For now, we won&apos;t spend a lot of time learning TypeScript, but we will definitely return to this topic later to explore it further.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=d56mG7DezGs&quot;&gt;TypeScript Tutorial for Beginners&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.typescriptlang.org/docs/handbook/2/basic-types.html&quot;&gt;The Basics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.typescriptlang.org/docs/handbook/2/everyday-types.html&quot;&gt;Everyday Types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-javascript-run-times&quot;&gt;JavaScript Run Times&lt;/h2&gt;&lt;p&gt;Understanding how JavaScript actually runs is key to writing efficient code.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://nodejs.org/en/learn/getting-started/the-v8-javascript-engine#the-v8-javascript-engine&quot;&gt;The V8 JavaScript Engine&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/cckf4TsHAuw/upload/258bc17a1cd94f16e1e0d8a243da46be.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Front-End Development - Stage 3: JavaScript Basics - Adding Interactivity]]></title><description><![CDATA[Learn JavaScript basics and DOM API to add interactivity and enhance the user experience in web development]]></description><link>https://happydev.blog/mastering-front-end-development-stage-3-javascript-basics-adding-interactivity</link><guid isPermaLink="true">https://happydev.blog/mastering-front-end-development-stage-3-javascript-basics-adding-interactivity</guid><category><![CDATA[DOM]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[React]]></category><category><![CDATA[Frontend Development]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Wed, 21 Aug 2024 14:07:35 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;Now that we have learned the fundamentals of HTML and basic CSS, we will move on to the next crucial step in web development: learning JavaScript. JavaScript is a programming language that allows us to create dynamic and interactive web pages. It enables us to add functionality such as form validation, interactive sliders, animated graphics, and much more. By learning JavaScript, we can enhance the user experience and make our websites more engaging and responsive.&lt;/p&gt;&lt;p&gt;For front-end developers, there are two aspects of JavaScript they should learn. The first part is JavaScript itself, and the other part is the DOM API.&lt;/p&gt;&lt;h1 id=&quot;heading-javascript-the-basic-parts&quot;&gt;JavaScript - The Basic Parts&lt;/h1&gt;&lt;p&gt;In the first part, we will cover the basics of JavaScript, including its syntax and general programming concepts.&lt;/p&gt;&lt;h2 id=&quot;heading-javascript-syntax-and-structure&quot;&gt;JavaScript syntax and structure&lt;/h2&gt;&lt;p&gt;Since we are not covering a wide range of topics, this guide will use just two sources for learning. One is MDN, and the other is javascript.info.&lt;/p&gt;&lt;h3 id=&quot;heading-javascript-tutorialhttpsdevelopermozillaorgen-usdocslearnjavascript-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript&quot;&gt;JavaScript Tutorial&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;If you open this tutorial, you will see that HTML and CSS are listed as Prerequisites. We will ignore them for now since we are focusing on learning JavaScript for back-end development.&lt;/p&gt;&lt;p&gt;Reading these two modules is necessary for us.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps&quot;&gt;JavaScript first steps&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks&quot;&gt;JavaScript building blocks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;pay attention that each module has its own sub modules which you should read and learn from.&lt;/p&gt;&lt;h3 id=&quot;heading-the-modern-javascript-tutorialhttpsjavascriptinfo-by-javascriptinfo&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/&quot;&gt;The Modern JavaScript Tutorial&lt;/a&gt; by javascript.info 🆓&lt;/h3&gt;&lt;p&gt;Don&apos;t panic yet. This website&apos;s resources are extensive, but for now, you only need to focus on five modules. Read them thoroughly and understand what you are learning. Don&apos;t forget to practice everything you learn.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/getting-started&quot;&gt;An introduction&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/first-steps&quot;&gt;JavaScript Fundamentals&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/code-quality&quot;&gt;Code quality&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/object-basics&quot;&gt;Objects: the basics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/data-types&quot;&gt;Data types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Learning about objects is necessary to understand other data types. For now, we will just scratch the surface of object-oriented programming (focusing on getting familiar with the syntax).&lt;/div&gt;&lt;/div&gt;&lt;h1 id=&quot;heading-dom-and-javascript-dom-api&quot;&gt;DOM And JavaScript DOM Api&lt;/h1&gt;&lt;p&gt;After learning the basics of JavaScript, we need to learn about the DOM. DOM is the data structure that represents the web page you are viewing. It is an interface that allows you to view, change, or listen to events that happen there. Before we go deeper, let&apos;s read more about the DOM.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction&quot;&gt;Introduction to the DOM&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Using_the_Document_Object_Model&quot;&gt;Using the Document Object Model&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Locating_DOM_elements_using_selectors&quot;&gt;Locating DOM elements using selectors&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Traversing_an_HTML_table_with_JavaScript_and_DOM_Interfaces&quot;&gt;Traversing an HTML table with JavaScript and DOM Interfaces&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events&quot;&gt;Introduction to events&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After reading through this list, continue with these resources, which are more detailed and in-depth.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/document&quot;&gt;Document&lt;/a&gt; by javascript.info 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/events&quot;&gt;Introduction to Events&lt;/a&gt; by javascript.info 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/event-details&quot;&gt;UI Events&lt;/a&gt; by javascript.info 🆓&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=&quot;heading-where-to-practice&quot;&gt;Where to practice&lt;/h3&gt;&lt;p&gt;You can open up your browser console and start writing code there (see &lt;a target=&quot;_blank&quot; href=&quot;https://balsamiq.com/support/faqs/browserconsole/&quot;&gt;this guide&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://www.codecademy.com/article/running-javascript-in-the-browser-console&quot;&gt;this one&lt;/a&gt;) or you can simply run your codes in this &lt;a target=&quot;_blank&quot; href=&quot;http://www.jsplayground.dev&quot;&gt;JavaScript playground&lt;/a&gt;.&lt;/p&gt;&lt;h3 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;In this post, we covered the fundamentals about JavaScript. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;Now that we have learned the fundamentals of HTML and basic CSS, we will move on to the next crucial step in web development: learning JavaScript. JavaScript is a programming language that allows us to create dynamic and interactive web pages. It enables us to add functionality such as form validation, interactive sliders, animated graphics, and much more. By learning JavaScript, we can enhance the user experience and make our websites more engaging and responsive.&lt;/p&gt;&lt;p&gt;For front-end developers, there are two aspects of JavaScript they should learn. The first part is JavaScript itself, and the other part is the DOM API.&lt;/p&gt;&lt;h1 id=&quot;heading-javascript-the-basic-parts&quot;&gt;JavaScript - The Basic Parts&lt;/h1&gt;&lt;p&gt;In the first part, we will cover the basics of JavaScript, including its syntax and general programming concepts.&lt;/p&gt;&lt;h2 id=&quot;heading-javascript-syntax-and-structure&quot;&gt;JavaScript syntax and structure&lt;/h2&gt;&lt;p&gt;Since we are not covering a wide range of topics, this guide will use just two sources for learning. One is MDN, and the other is javascript.info.&lt;/p&gt;&lt;h3 id=&quot;heading-javascript-tutorialhttpsdevelopermozillaorgen-usdocslearnjavascript-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript&quot;&gt;JavaScript Tutorial&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;If you open this tutorial, you will see that HTML and CSS are listed as Prerequisites. We will ignore them for now since we are focusing on learning JavaScript for back-end development.&lt;/p&gt;&lt;p&gt;Reading these two modules is necessary for us.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps&quot;&gt;JavaScript first steps&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks&quot;&gt;JavaScript building blocks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;pay attention that each module has its own sub modules which you should read and learn from.&lt;/p&gt;&lt;h3 id=&quot;heading-the-modern-javascript-tutorialhttpsjavascriptinfo-by-javascriptinfo&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/&quot;&gt;The Modern JavaScript Tutorial&lt;/a&gt; by javascript.info 🆓&lt;/h3&gt;&lt;p&gt;Don&apos;t panic yet. This website&apos;s resources are extensive, but for now, you only need to focus on five modules. Read them thoroughly and understand what you are learning. Don&apos;t forget to practice everything you learn.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/getting-started&quot;&gt;An introduction&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/first-steps&quot;&gt;JavaScript Fundamentals&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/code-quality&quot;&gt;Code quality&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/object-basics&quot;&gt;Objects: the basics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/data-types&quot;&gt;Data types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Learning about objects is necessary to understand other data types. For now, we will just scratch the surface of object-oriented programming (focusing on getting familiar with the syntax).&lt;/div&gt;&lt;/div&gt;&lt;h1 id=&quot;heading-dom-and-javascript-dom-api&quot;&gt;DOM And JavaScript DOM Api&lt;/h1&gt;&lt;p&gt;After learning the basics of JavaScript, we need to learn about the DOM. DOM is the data structure that represents the web page you are viewing. It is an interface that allows you to view, change, or listen to events that happen there. Before we go deeper, let&apos;s read more about the DOM.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction&quot;&gt;Introduction to the DOM&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Using_the_Document_Object_Model&quot;&gt;Using the Document Object Model&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Locating_DOM_elements_using_selectors&quot;&gt;Locating DOM elements using selectors&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Traversing_an_HTML_table_with_JavaScript_and_DOM_Interfaces&quot;&gt;Traversing an HTML table with JavaScript and DOM Interfaces&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events&quot;&gt;Introduction to events&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;After reading through this list, continue with these resources, which are more detailed and in-depth.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/document&quot;&gt;Document&lt;/a&gt; by javascript.info 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/events&quot;&gt;Introduction to Events&lt;/a&gt; by javascript.info 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/event-details&quot;&gt;UI Events&lt;/a&gt; by javascript.info 🆓&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=&quot;heading-where-to-practice&quot;&gt;Where to practice&lt;/h3&gt;&lt;p&gt;You can open up your browser console and start writing code there (see &lt;a target=&quot;_blank&quot; href=&quot;https://balsamiq.com/support/faqs/browserconsole/&quot;&gt;this guide&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://www.codecademy.com/article/running-javascript-in-the-browser-console&quot;&gt;this one&lt;/a&gt;) or you can simply run your codes in this &lt;a target=&quot;_blank&quot; href=&quot;http://www.jsplayground.dev&quot;&gt;JavaScript playground&lt;/a&gt;.&lt;/p&gt;&lt;h3 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;In this post, we covered the fundamentals about JavaScript. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Du41jIaI5Ww/upload/76e1f3f91bac05619f648d036db9b36d.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Back-End Development - Stage 3: JS World Essentials]]></title><description><![CDATA[Before we dive deeper into the world of JavaScript and Node.js, we will first focus on learning some essential skills that will be crucial for our journey. These skills include package management, where we will explore tools like npm and Yarn to hand...]]></description><link>https://happydev.blog/mastering-back-end-development-stage-3-js-world-essentials</link><guid isPermaLink="true">https://happydev.blog/mastering-back-end-development-stage-3-js-world-essentials</guid><category><![CDATA[Git]]></category><category><![CDATA[backend]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[npm]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Thu, 18 Jul 2024 09:48:01 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;Before we dive deeper into the world of JavaScript and Node.js, we will first focus on learning some essential skills that will be crucial for our journey. These skills include package management, where we will explore tools like npm and Yarn to handle project dependencies efficiently. We will also dive into script runners, understanding how they can automate repetitive tasks and improve our workflow. Additionally, we will cover Git, the version control system that allows us to track changes, collaborate with others, and manage our codebase effectively. Lastly, we will get familiar with Integrated Development Environments (IDEs), exploring their features and how they can enhance our coding experience. By mastering these foundational skills, we will be well-prepared to tackle more advanced topics in JavaScript and Node.js.&lt;/p&gt;&lt;h2 id=&quot;heading-package-managers-and-scripts&quot;&gt;Package Managers And Scripts&lt;/h2&gt;&lt;p&gt;There are several package managers (also known as dependency managers) like NPM, Yarn, and PNPM. These tools help you pack your dependencies in a single file, making it easy to run in other environments. They also help you run scripts to automate repetitive tasks. they all perform similar functions but use different approaches.Follow the links in the list below to read and watch the recommended resources.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/&quot;&gt;An Absolute Beginner&apos;s Guide to Using npm&lt;/a&gt; By Nodesource&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=2V1UUhBJ62Y&quot;&gt;npm Tutorial for Beginners&lt;/a&gt; By Freecodecamp&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=P3aKRdUyr0s&quot;&gt;What is NPM, and why do we need it?&lt;/a&gt; By Coder Coder&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.mend.io/free-developer-tools/a/community/software-dependencies/what-is-the-role-of-package-lock-json-in-npm/&quot;&gt;What is the role of &quot;package-lock.json&quot; in npm?&lt;/a&gt; By mend.io&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.dhiwise.com/post/pnpm-vs-npm-vs-yarn-which-javascript-package-manager&quot;&gt;PNPM Vs. NPM Vs. Yarn&lt;/a&gt; By Dhiwise&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.knowledgehut.com/blog/web-development/package-json-scripts-node-js&quot;&gt;An Introduction to Package JSON Scripts in Node.js&lt;/a&gt; By Knowledgehut&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-git-and-version-controlling&quot;&gt;Git And Version Controlling&lt;/h2&gt;&lt;p&gt;Git is a distributed version control system that helps developers manage and track changes in their codebase. It allows multiple developers to work on a project simultaneously. Version control systems like Git are essential for collaboration, enabling developers to revert to previous versions, compare changes, and merge contributions from different team members efficiently. developers can achieve this Key features by branching and merging.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://about.gitlab.com/topics/version-control/&quot;&gt;What is version control?&lt;/a&gt; By Gitlab&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use/&quot;&gt;A Fun article about other version control systems!&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=8JJ101D3knE&quot;&gt;Git Tutorial for Beginners&lt;/a&gt; By Mosh&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-vs-code-and-its-ecosystem&quot;&gt;VS Code And Its Ecosystem&lt;/h2&gt;&lt;p&gt;VS Code is an amazing IDE with many features and great extensibility. You can customize its appearance to your liking and add extensions and language servers to get syntax highlighting, auto-completion, linting, and many other features. these two videos are just a starting point for you. Feel free to explore more about your chosen code editor.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=RDP8rlqtiP0&quot;&gt;VS Code Editor Customization Guide&lt;/a&gt; By QiroLab&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=QjvvqR9KyVo&quot;&gt;Code Customization 101&lt;/a&gt; By Visual Studio Code&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts about Package mangers, git and VS code customization. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;Before we dive deeper into the world of JavaScript and Node.js, we will first focus on learning some essential skills that will be crucial for our journey. These skills include package management, where we will explore tools like npm and Yarn to handle project dependencies efficiently. We will also dive into script runners, understanding how they can automate repetitive tasks and improve our workflow. Additionally, we will cover Git, the version control system that allows us to track changes, collaborate with others, and manage our codebase effectively. Lastly, we will get familiar with Integrated Development Environments (IDEs), exploring their features and how they can enhance our coding experience. By mastering these foundational skills, we will be well-prepared to tackle more advanced topics in JavaScript and Node.js.&lt;/p&gt;&lt;h2 id=&quot;heading-package-managers-and-scripts&quot;&gt;Package Managers And Scripts&lt;/h2&gt;&lt;p&gt;There are several package managers (also known as dependency managers) like NPM, Yarn, and PNPM. These tools help you pack your dependencies in a single file, making it easy to run in other environments. They also help you run scripts to automate repetitive tasks. they all perform similar functions but use different approaches.Follow the links in the list below to read and watch the recommended resources.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://nodesource.com/blog/an-absolute-beginners-guide-to-using-npm/&quot;&gt;An Absolute Beginner&apos;s Guide to Using npm&lt;/a&gt; By Nodesource&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=2V1UUhBJ62Y&quot;&gt;npm Tutorial for Beginners&lt;/a&gt; By Freecodecamp&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=P3aKRdUyr0s&quot;&gt;What is NPM, and why do we need it?&lt;/a&gt; By Coder Coder&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.mend.io/free-developer-tools/a/community/software-dependencies/what-is-the-role-of-package-lock-json-in-npm/&quot;&gt;What is the role of &quot;package-lock.json&quot; in npm?&lt;/a&gt; By mend.io&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.dhiwise.com/post/pnpm-vs-npm-vs-yarn-which-javascript-package-manager&quot;&gt;PNPM Vs. NPM Vs. Yarn&lt;/a&gt; By Dhiwise&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.knowledgehut.com/blog/web-development/package-json-scripts-node-js&quot;&gt;An Introduction to Package JSON Scripts in Node.js&lt;/a&gt; By Knowledgehut&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-git-and-version-controlling&quot;&gt;Git And Version Controlling&lt;/h2&gt;&lt;p&gt;Git is a distributed version control system that helps developers manage and track changes in their codebase. It allows multiple developers to work on a project simultaneously. Version control systems like Git are essential for collaboration, enabling developers to revert to previous versions, compare changes, and merge contributions from different team members efficiently. developers can achieve this Key features by branching and merging.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://about.gitlab.com/topics/version-control/&quot;&gt;What is version control?&lt;/a&gt; By Gitlab&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use/&quot;&gt;A Fun article about other version control systems!&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=8JJ101D3knE&quot;&gt;Git Tutorial for Beginners&lt;/a&gt; By Mosh&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-vs-code-and-its-ecosystem&quot;&gt;VS Code And Its Ecosystem&lt;/h2&gt;&lt;p&gt;VS Code is an amazing IDE with many features and great extensibility. You can customize its appearance to your liking and add extensions and language servers to get syntax highlighting, auto-completion, linting, and many other features. these two videos are just a starting point for you. Feel free to explore more about your chosen code editor.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=RDP8rlqtiP0&quot;&gt;VS Code Editor Customization Guide&lt;/a&gt; By QiroLab&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=QjvvqR9KyVo&quot;&gt;Code Customization 101&lt;/a&gt; By Visual Studio Code&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts about Package mangers, git and VS code customization. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/2JIvboGLeho/upload/43fab1bb6bc5e282a6b23377fb39720a.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Front-End Development - Stage 2: CSS - Bringing Life to Web Pages]]></title><description><![CDATA[Learn to style HTML pages with CSS tutorials from w3schools, MDN, and freeCodeCamp. Explore fundamentals and advance your skills. Stay tuned for more!]]></description><link>https://happydev.blog/mastering-front-end-development-stage-2-css-bringing-life-to-web-pages</link><guid isPermaLink="true">https://happydev.blog/mastering-front-end-development-stage-2-css-bringing-life-to-web-pages</guid><category><![CDATA[Frontend Development]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[CSS]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Tue, 16 Jul 2024 09:37:56 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;After learning about HTML and scratching the surface of front-end development, we are going to take a step deeper and learn how to style or beautify our HTML pages by using css.&lt;/p&gt;&lt;h2 id=&quot;heading-css-tutorialhttpswwww3schoolscomcss-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/css/&quot;&gt;&lt;strong&gt;CSS Tutorial&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;By w3schools&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Start learning css by reading through this two lists: &lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/css/default.asp&quot;&gt;CSS Tutorial&lt;/a&gt; &amp;amp; &lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/css/css3_borders.asp&quot;&gt;CSS Advanced&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Notice that each list contains many items that you should read and practice.&lt;/p&gt;&lt;p&gt;Don&apos;t forget there is a button that says &quot;Try it Yourself &quot;. Don&apos;t hesitate to click on it and practice what you are reading.&lt;/p&gt;&lt;h2 id=&quot;heading-css-styling-the-webhttpsdevelopermozillaorgen-usdocslearncss-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS&quot;&gt;&lt;strong&gt;CSS  Styling the web&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;By MDN&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;This tutorial has 4 sections. For now, we are going to learn the first three parts. &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps&quot;&gt;CSS first steps&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks&quot;&gt;CSS building blocks&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_text&quot;&gt;CSS styling text&lt;/a&gt;. notice that each list contains many items that you should read and practice.&lt;/p&gt;&lt;h1 id=&quot;heading-css-tutorialhttpswwwyoutubecomwatchvoxgznpkzsa-by-freecodecamp&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=OXGznpKZ_sA&quot;&gt;&lt;strong&gt;CSS Tutorial&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;By&lt;/strong&gt; freecodecamp&lt;/h1&gt;&lt;p&gt;If you are a video tutorial person then you can also try by watching this amazing and detailed tutorial by freecodecamp&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamentals about CSS and Styling. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;After learning about HTML and scratching the surface of front-end development, we are going to take a step deeper and learn how to style or beautify our HTML pages by using css.&lt;/p&gt;&lt;h2 id=&quot;heading-css-tutorialhttpswwww3schoolscomcss-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/css/&quot;&gt;&lt;strong&gt;CSS Tutorial&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;By w3schools&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;Start learning css by reading through this two lists: &lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/css/default.asp&quot;&gt;CSS Tutorial&lt;/a&gt; &amp;amp; &lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/css/css3_borders.asp&quot;&gt;CSS Advanced&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Notice that each list contains many items that you should read and practice.&lt;/p&gt;&lt;p&gt;Don&apos;t forget there is a button that says &quot;Try it Yourself &quot;. Don&apos;t hesitate to click on it and practice what you are reading.&lt;/p&gt;&lt;h2 id=&quot;heading-css-styling-the-webhttpsdevelopermozillaorgen-usdocslearncss-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS&quot;&gt;&lt;strong&gt;CSS  Styling the web&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;By MDN&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;This tutorial has 4 sections. For now, we are going to learn the first three parts. &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS/First_steps&quot;&gt;CSS first steps&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS/Building_blocks&quot;&gt;CSS building blocks&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/CSS/Styling_text&quot;&gt;CSS styling text&lt;/a&gt;. notice that each list contains many items that you should read and practice.&lt;/p&gt;&lt;h1 id=&quot;heading-css-tutorialhttpswwwyoutubecomwatchvoxgznpkzsa-by-freecodecamp&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=OXGznpKZ_sA&quot;&gt;&lt;strong&gt;CSS Tutorial&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;By&lt;/strong&gt; freecodecamp&lt;/h1&gt;&lt;p&gt;If you are a video tutorial person then you can also try by watching this amazing and detailed tutorial by freecodecamp&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamentals about CSS and Styling. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/MzSqFPLo8CE/upload/c02637f4756f9720db8c02edfeb2ca67.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Back-End Development - stage 2: Computers Basics]]></title><description><![CDATA[Before we dig deeper into the specifics, it is essential to establish a solid foundation for our general computer knowledge. By grasping these fundamental principles, we will be better equipped to tackle more complex topics and understand the intrica...]]></description><link>https://happydev.blog/mastering-back-end-development-stage-2-computers-basics</link><guid isPermaLink="true">https://happydev.blog/mastering-back-end-development-stage-2-computers-basics</guid><category><![CDATA[mentorship]]></category><category><![CDATA[backend]]></category><category><![CDATA[algorithms]]></category><category><![CDATA[data structures]]></category><category><![CDATA[Node.js]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Tue, 16 Jul 2024 09:08:45 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;Before we dig deeper into the specifics, it is essential to establish a solid foundation for our general computer knowledge. By grasping these fundamental principles, we will be better equipped to tackle more complex topics and understand the intricate workings of modern computing systems. This groundwork will serve as a stepping stone, enabling us to explore advanced subjects with confidence and clarity.&lt;/p&gt;&lt;h2 id=&quot;heading-basics-of-computershttpswwwtopprcomguidescomputer-aptitude-and-knowledgebasics-of-computers-by-toppr&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.toppr.com/guides/computer-aptitude-and-knowledge/basics-of-computers/&quot;&gt;&lt;strong&gt;Basics of Computers&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by&lt;/strong&gt; toppr &lt;strong&gt;🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;This guide provides plenty of resources to learn the basics about the hardware and software of your computer. Feel free to explore it and don&apos;t hesitate to open the links on that page and the following pages.&lt;/p&gt;&lt;h2 id=&quot;heading-cs50xhttpswwwyoutubecomwatchv3lpjfikxwwcamplistplhqjrbd2t381wahyx1pq-sbfykqmbi7v4ampindex1-by-harvard-university&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=3LPJfIKxwWc&amp;amp;list=PLhQjrBD2T381WAHyx1pq-sBfykqMBI7V4&amp;amp;index=1&quot;&gt;CS50x&lt;/a&gt; by Harvard university &lt;strong&gt;🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;This course is one of the best for those who want to enter programming-related jobs. It covers many subjects and provides a solid starting point for your career. It&apos;s a long course with more than 20 hours of well-taught material.&lt;/p&gt;&lt;p&gt;Although it is important to watch and learn from this course, I recommend starting it alongside your other activities. I encourage you to watch one or preferably two lectures each week until you finished all lectures.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;If you prefer to complete it quickly, please go ahead and watch lectures 0 to 8 (the first nine lectures).&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-javascript-algorithmshttpswwwyoutubecomwatchvcoqqwbdezuaamplistplc3y8-rfhvwiryb4-hhkhblh3bqnjtmaampindex1-by-codevolution&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=coqQwbDezUA&amp;amp;list=PLC3y8-rFHvwiRYB4-HHKHblh3_bQNJTMa&amp;amp;index=1&quot;&gt;&lt;strong&gt;JavaScript Algorithms&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Codevolution 🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;What are we developers without algorithms? bunch of illiterate savages how can click on a keyboard and mouse.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWl5a2Z1dTBhcmFsaWRqcDMybGFmOGpteHk4aWxsN2x2bXZoY3FiNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/Xm8I6hqslAK2s/giphy.webp&quot; alt class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;The path to learning algorithms is long and challenging, but it is achievable through time and practice. for now, we are going to learn some basic algorithms and solve some challenging questions.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;We will return to algorithms later since it is a big and critical subject that every developer should learn to a minimum extent.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-javascript-data-structureshttpswwwyoutubecomplaylistlistplc3y8-rfhvwg6nsaofc5is18kb2drvojy-by-codevolution&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/playlist?list=PLC3y8-rFHvwg6nsAOfC5Is18KB2DrVOJy&quot;&gt;&lt;strong&gt;JavaScript Data Structures&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Codevolution 🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;A data structure is a specialized format for organizing and managing data efficiently. It helps with operations like accessing, modifying, and deleting data. Common data structures include arrays, linked lists, stacks, queues, trees, graphs, and hash tables. Each has its own strengths and weaknesses, making them suitable for different applications. Understanding data structures is key to designing efficient algorithms and writing optimized code.&lt;/p&gt;&lt;p&gt;This path is also long and challenging, and we will learn it over time. For now, we are going to learn some basic data structures. We need to watch and practice the first 11 videos (from the beginning to circular queues). We will return to this topic to dive deeper later.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts about computers, algorithms and data structures. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;Before we dig deeper into the specifics, it is essential to establish a solid foundation for our general computer knowledge. By grasping these fundamental principles, we will be better equipped to tackle more complex topics and understand the intricate workings of modern computing systems. This groundwork will serve as a stepping stone, enabling us to explore advanced subjects with confidence and clarity.&lt;/p&gt;&lt;h2 id=&quot;heading-basics-of-computershttpswwwtopprcomguidescomputer-aptitude-and-knowledgebasics-of-computers-by-toppr&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.toppr.com/guides/computer-aptitude-and-knowledge/basics-of-computers/&quot;&gt;&lt;strong&gt;Basics of Computers&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by&lt;/strong&gt; toppr &lt;strong&gt;🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;This guide provides plenty of resources to learn the basics about the hardware and software of your computer. Feel free to explore it and don&apos;t hesitate to open the links on that page and the following pages.&lt;/p&gt;&lt;h2 id=&quot;heading-cs50xhttpswwwyoutubecomwatchv3lpjfikxwwcamplistplhqjrbd2t381wahyx1pq-sbfykqmbi7v4ampindex1-by-harvard-university&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=3LPJfIKxwWc&amp;amp;list=PLhQjrBD2T381WAHyx1pq-sBfykqMBI7V4&amp;amp;index=1&quot;&gt;CS50x&lt;/a&gt; by Harvard university &lt;strong&gt;🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;This course is one of the best for those who want to enter programming-related jobs. It covers many subjects and provides a solid starting point for your career. It&apos;s a long course with more than 20 hours of well-taught material.&lt;/p&gt;&lt;p&gt;Although it is important to watch and learn from this course, I recommend starting it alongside your other activities. I encourage you to watch one or preferably two lectures each week until you finished all lectures.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;If you prefer to complete it quickly, please go ahead and watch lectures 0 to 8 (the first nine lectures).&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-javascript-algorithmshttpswwwyoutubecomwatchvcoqqwbdezuaamplistplc3y8-rfhvwiryb4-hhkhblh3bqnjtmaampindex1-by-codevolution&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=coqQwbDezUA&amp;amp;list=PLC3y8-rFHvwiRYB4-HHKHblh3_bQNJTMa&amp;amp;index=1&quot;&gt;&lt;strong&gt;JavaScript Algorithms&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Codevolution 🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;What are we developers without algorithms? bunch of illiterate savages how can click on a keyboard and mouse.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExMWl5a2Z1dTBhcmFsaWRqcDMybGFmOGpteHk4aWxsN2x2bXZoY3FiNyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/Xm8I6hqslAK2s/giphy.webp&quot; alt class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;The path to learning algorithms is long and challenging, but it is achievable through time and practice. for now, we are going to learn some basic algorithms and solve some challenging questions.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;We will return to algorithms later since it is a big and critical subject that every developer should learn to a minimum extent.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-javascript-data-structureshttpswwwyoutubecomplaylistlistplc3y8-rfhvwg6nsaofc5is18kb2drvojy-by-codevolution&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/playlist?list=PLC3y8-rFHvwg6nsAOfC5Is18KB2DrVOJy&quot;&gt;&lt;strong&gt;JavaScript Data Structures&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Codevolution 🆓&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;A data structure is a specialized format for organizing and managing data efficiently. It helps with operations like accessing, modifying, and deleting data. Common data structures include arrays, linked lists, stacks, queues, trees, graphs, and hash tables. Each has its own strengths and weaknesses, making them suitable for different applications. Understanding data structures is key to designing efficient algorithms and writing optimized code.&lt;/p&gt;&lt;p&gt;This path is also long and challenging, and we will learn it over time. For now, we are going to learn some basic data structures. We need to watch and practice the first 11 videos (from the beginning to circular queues). We will return to this topic to dive deeper later.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts about computers, algorithms and data structures. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/xG8IQMqMITM/upload/2c9d1a4a2c18e28b2d9675f0622d8a79.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Back-End Development - stage 1: JavaScript Basics]]></title><description><![CDATA[Master JavaScript basics: variables, conditions, loops, functions. Practice to prepare for advanced topics in back-end development]]></description><link>https://happydev.blog/mastering-back-end-development-stage-1-javascript-basics</link><guid isPermaLink="true">https://happydev.blog/mastering-back-end-development-stage-1-javascript-basics</guid><category><![CDATA[backend]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Sat, 22 Jun 2024 12:45:49 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;After gaining an understanding of web technologies, web infrastructure, and the basics of what happens behind the scenes, we are ready to move on to the next step.&lt;/p&gt;&lt;p&gt;We are going to learn JavaScript, the first step in becoming a back-end developer. We will cover the basics of JavaScript, including variables, conditions, loops, functions, and more. Pay attention to these topics and learn them well, as a good understanding of them is crucial for the next steps we will take.&lt;/p&gt;&lt;h2 id=&quot;heading-javascript-syntax-and-structure&quot;&gt;JavaScript syntax and structure&lt;/h2&gt;&lt;p&gt;Since we are not covering a wide range of topics, this guide will use just two sources for learning. One is MDN, and the other is javascript.info.&lt;/p&gt;&lt;h3 id=&quot;heading-javascript-tutorialhttpsdevelopermozillaorgen-usdocslearnjavascript-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript&quot;&gt;JavaScript Tutorial&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;If you open this tutorial, you will see that HTML and CSS are listed as Prerequisites. We will ignore them for now since we are focusing on learning JavaScript for back-end development.&lt;/p&gt;&lt;p&gt;Reading these two modules is necessary for us.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps&quot;&gt;JavaScript first steps&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks&quot;&gt;JavaScript building blocks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;pay attention that each module has its own sub modules which you should read and learn from.&lt;/p&gt;&lt;h3 id=&quot;heading-the-modern-javascript-tutorialhttpsjavascriptinfo-by-javascriptinfo&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/&quot;&gt;The Modern JavaScript Tutorial&lt;/a&gt; by javascript.info 🆓&lt;/h3&gt;&lt;p&gt;Don&apos;t panic yet. This website&apos;s resources are extensive, but for now, you only need to focus on five modules. Read them thoroughly and understand what you are learning. Don&apos;t forget to practice everything you learn.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/getting-started&quot;&gt;An introduction&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/first-steps&quot;&gt;JavaScript Fundamentals&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/code-quality&quot;&gt;Code quality&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/object-basics&quot;&gt;Objects: the basics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/data-types&quot;&gt;Data types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Learning about objects is necessary to understand other data types. For now, we will just scratch the surface of object-oriented programming (focusing on getting familiar with the syntax).&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-where-to-practice&quot;&gt;Where to practice&lt;/h2&gt;&lt;p&gt;You can open up your browser console and start writing code there (see &lt;a target=&quot;_blank&quot; href=&quot;https://balsamiq.com/support/faqs/browserconsole/&quot;&gt;this guide&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://www.codecademy.com/article/running-javascript-in-the-browser-console&quot;&gt;this one&lt;/a&gt;) or you can simply run your codes in this &lt;a target=&quot;_blank&quot; href=&quot;http://www.jsplayground.dev&quot;&gt;JavaScript playground&lt;/a&gt;.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamentals about JavaScript. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;After gaining an understanding of web technologies, web infrastructure, and the basics of what happens behind the scenes, we are ready to move on to the next step.&lt;/p&gt;&lt;p&gt;We are going to learn JavaScript, the first step in becoming a back-end developer. We will cover the basics of JavaScript, including variables, conditions, loops, functions, and more. Pay attention to these topics and learn them well, as a good understanding of them is crucial for the next steps we will take.&lt;/p&gt;&lt;h2 id=&quot;heading-javascript-syntax-and-structure&quot;&gt;JavaScript syntax and structure&lt;/h2&gt;&lt;p&gt;Since we are not covering a wide range of topics, this guide will use just two sources for learning. One is MDN, and the other is javascript.info.&lt;/p&gt;&lt;h3 id=&quot;heading-javascript-tutorialhttpsdevelopermozillaorgen-usdocslearnjavascript-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript&quot;&gt;JavaScript Tutorial&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h3&gt;&lt;p&gt;If you open this tutorial, you will see that HTML and CSS are listed as Prerequisites. We will ignore them for now since we are focusing on learning JavaScript for back-end development.&lt;/p&gt;&lt;p&gt;Reading these two modules is necessary for us.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps&quot;&gt;JavaScript first steps&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks&quot;&gt;JavaScript building blocks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;pay attention that each module has its own sub modules which you should read and learn from.&lt;/p&gt;&lt;h3 id=&quot;heading-the-modern-javascript-tutorialhttpsjavascriptinfo-by-javascriptinfo&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/&quot;&gt;The Modern JavaScript Tutorial&lt;/a&gt; by javascript.info 🆓&lt;/h3&gt;&lt;p&gt;Don&apos;t panic yet. This website&apos;s resources are extensive, but for now, you only need to focus on five modules. Read them thoroughly and understand what you are learning. Don&apos;t forget to practice everything you learn.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/getting-started&quot;&gt;An introduction&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/first-steps&quot;&gt;JavaScript Fundamentals&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/code-quality&quot;&gt;Code quality&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/object-basics&quot;&gt;Objects: the basics&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://javascript.info/data-types&quot;&gt;Data types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Learning about objects is necessary to understand other data types. For now, we will just scratch the surface of object-oriented programming (focusing on getting familiar with the syntax).&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-where-to-practice&quot;&gt;Where to practice&lt;/h2&gt;&lt;p&gt;You can open up your browser console and start writing code there (see &lt;a target=&quot;_blank&quot; href=&quot;https://balsamiq.com/support/faqs/browserconsole/&quot;&gt;this guide&lt;/a&gt; and &lt;a target=&quot;_blank&quot; href=&quot;https://www.codecademy.com/article/running-javascript-in-the-browser-console&quot;&gt;this one&lt;/a&gt;) or you can simply run your codes in this &lt;a target=&quot;_blank&quot; href=&quot;http://www.jsplayground.dev&quot;&gt;JavaScript playground&lt;/a&gt;.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;&lt;strong&gt;To be continued&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamentals about JavaScript. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/2JIvboGLeho/upload/dc3ad6632c28bd9184c00dd2dbaad6e5.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Back-End Development - Stage 0: Foundations of Web Development]]></title><description><![CDATA[Here we are at the beginning of our journey, where we will dive into the fundamental aspects of the web and the internet itself. In this first part, we will cover the basics, laying a solid foundation for more advanced topics later on. We will explor...]]></description><link>https://happydev.blog/mastering-back-end-development-stage-0-1-foundations-of-web-development</link><guid isPermaLink="true">https://happydev.blog/mastering-back-end-development-stage-0-1-foundations-of-web-development</guid><category><![CDATA[backend]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[Node.js]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Mon, 10 Jun 2024 19:01:04 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;Here we are at the beginning of &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-a-complete-guide&quot;&gt;our journey&lt;/a&gt;, where we will dive into the fundamental aspects of the web and the internet itself. In this first part, we will cover the basics, laying a solid foundation for more advanced topics later on. We will explore how the internet works, the role of web servers and browsers, and the protocols that enable communication between them. I hope you find this introduction helpful.&lt;/p&gt;&lt;p&gt;This post won&apos;t be very long or detailed since the subject isn&apos;t that extensive. However, pay attention to the keywords in the resources I&apos;ve provided. If you&apos;re interested and want to learn more, feel free to do additional research. (If you&apos;re a nerd, you&apos;ll definitely find some interesting stuff here!)&lt;/p&gt;&lt;h2 id=&quot;heading-1-how-the-web-workshttpsdevelopermozillaorgen-usdocslearngettingstartedwiththewebhowthewebworks-and-web-mechanicshttpsdevelopermozillaorgen-usdocslearncommonquestionswebmechanics-by-mdn&quot;&gt;1) &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;&lt;strong&gt;How the web works&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;&lt;strong&gt;Web mechanics&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;Start with the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;How the web works&lt;/a&gt;&quot; guide. This article gives a basic overview of the web&apos;s functionality. After understanding the basics, read the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;Web mechanics&lt;/a&gt;&quot; guide. This guide dive deeper into web mechanics, providing detailed explanations on more topics.&lt;/p&gt;&lt;h2 id=&quot;heading-2-how-does-the-internet-workhttpswebstanfordeduclassmsande91siwww-spr04readingsweek1internetwhitepaperhtm-and-how-internet-infrastructure-workshttpswebstanfordeduclassmsande91siwww-spr04readingsweek1howstuffworkshtm-by-stanford&quot;&gt;2) &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;&lt;strong&gt;How Does the Internet Work?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;&lt;strong&gt;How Internet Infrastructure Works?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Stanford&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;These two guides are also about the basic aspects of the web and internet infrastructure. &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;How Does the Internet Work?&lt;/a&gt;&quot; explains the underlying principles of internet communication, including IP addresses, data packets, and the role of Internet Service Providers (ISPs). &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;How Internet Infrastructure Works?&lt;/a&gt;&quot; goes further into the physical and technical components that make up the internet.&lt;/p&gt;&lt;p&gt;Also feel free to wonder around the links provide in Related &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm#:~:text=Related%20HowStuffWorks%20Articles&quot;&gt;How Stuff Works Articles&lt;/a&gt;&quot; links. they contain valuable information.&lt;/p&gt;&lt;h2 id=&quot;heading-3-introduction-to-dnshttpswwwdigitaloceancomcommunitytutorialsan-introduction-to-dns-terminology-components-and-concepts-and-comparison-of-dns-server-typeshttpswwwdigitaloceancomcommunitytutorialsa-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration-by-digitalocean&quot;&gt;3) &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;&lt;strong&gt;Introduction to DNS&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;&lt;strong&gt;Comparison of DNS Server Types&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by D&lt;/strong&gt;igitalOcean 🆓&lt;/h2&gt;&lt;p&gt;these two articles will give you enough understanding on what a dns is, how it work and so on.&lt;/p&gt;&lt;p&gt;These two articles will provide you a good understanding of what DNS is and how it functions. The first article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;Introduction to DNS&lt;/a&gt;&quot;, covers the basics of the Domain Name System, explaining its purpose, how it translates domain names into IP addresses, and its role in internet navigation. The second article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;Comparison of DNS Server Types&lt;/a&gt;&quot;, dives deeper into the different types of DNS servers.&lt;/p&gt;&lt;p&gt;Additionally, if you prefer learning through videos, you might find this video (&lt;strong&gt;DNS Explained&lt;/strong&gt;) to be an excellent resource.&lt;/p&gt;&lt;div class=&quot;embed-wrapper&quot;&gt;&lt;div class=&quot;embed-loading&quot;&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;a class=&quot;embed-card&quot; href=&quot;https://www.youtube.com/watch?v=72snZctFFtA&quot;&gt;https://www.youtube.com/watch?v=72snZctFFtA&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;h1 id=&quot;heading-4-what-is-a-content-delivery-network-cdnhttpswwwcloudflarecomlearningcdnwhat-is-a-cdn-by-cloudflare&quot;&gt;&lt;strong&gt;4)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-a-cdn/&quot;&gt;&lt;strong&gt;What is a content delivery network (CDN)?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by&lt;/strong&gt; Cloudflare 🆓&lt;/h1&gt;&lt;p&gt;These article is written by Cloudflare, one of the biggest DNS service providers. Read this article and feel free to click on the keywords you see on the page. It contains a lot of information on topics like &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-caching/&quot;&gt;caching&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/cdn-ssl-tls-security/&quot;&gt;security&lt;/a&gt;, and &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/serverless/glossary/what-is-edge-computing/&quot;&gt;edge computing&lt;/a&gt;.&lt;/p&gt;&lt;h1 id=&quot;heading-5-how-browsers-workhttpsdevelopermozillaorgen-usdocswebperformancehowbrowserswork-by-mdn&quot;&gt;&lt;strong&gt;5)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;&lt;strong&gt;how browsers work&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h1&gt;&lt;p&gt;After understanding DNS and CDNs, we&apos;ll dive into &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;how browsers work&lt;/a&gt;&quot;. Browsers are essential tools for accessing and navigating the web, and understanding their functionality can greatly enhance your web development skills.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;To be continued&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts necessary to begin our learning journey. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;Here we are at the beginning of &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-a-complete-guide&quot;&gt;our journey&lt;/a&gt;, where we will dive into the fundamental aspects of the web and the internet itself. In this first part, we will cover the basics, laying a solid foundation for more advanced topics later on. We will explore how the internet works, the role of web servers and browsers, and the protocols that enable communication between them. I hope you find this introduction helpful.&lt;/p&gt;&lt;p&gt;This post won&apos;t be very long or detailed since the subject isn&apos;t that extensive. However, pay attention to the keywords in the resources I&apos;ve provided. If you&apos;re interested and want to learn more, feel free to do additional research. (If you&apos;re a nerd, you&apos;ll definitely find some interesting stuff here!)&lt;/p&gt;&lt;h2 id=&quot;heading-1-how-the-web-workshttpsdevelopermozillaorgen-usdocslearngettingstartedwiththewebhowthewebworks-and-web-mechanicshttpsdevelopermozillaorgen-usdocslearncommonquestionswebmechanics-by-mdn&quot;&gt;1) &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;&lt;strong&gt;How the web works&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;&lt;strong&gt;Web mechanics&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;Start with the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;How the web works&lt;/a&gt;&quot; guide. This article gives a basic overview of the web&apos;s functionality. After understanding the basics, read the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;Web mechanics&lt;/a&gt;&quot; guide. This guide dive deeper into web mechanics, providing detailed explanations on more topics.&lt;/p&gt;&lt;h2 id=&quot;heading-2-how-does-the-internet-workhttpswebstanfordeduclassmsande91siwww-spr04readingsweek1internetwhitepaperhtm-and-how-internet-infrastructure-workshttpswebstanfordeduclassmsande91siwww-spr04readingsweek1howstuffworkshtm-by-stanford&quot;&gt;2) &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;&lt;strong&gt;How Does the Internet Work?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;&lt;strong&gt;How Internet Infrastructure Works?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Stanford&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;These two guides are also about the basic aspects of the web and internet infrastructure. &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;How Does the Internet Work?&lt;/a&gt;&quot; explains the underlying principles of internet communication, including IP addresses, data packets, and the role of Internet Service Providers (ISPs). &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;How Internet Infrastructure Works?&lt;/a&gt;&quot; goes further into the physical and technical components that make up the internet.&lt;/p&gt;&lt;p&gt;Also feel free to wonder around the links provide in Related &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm#:~:text=Related%20HowStuffWorks%20Articles&quot;&gt;How Stuff Works Articles&lt;/a&gt;&quot; links. they contain valuable information.&lt;/p&gt;&lt;h2 id=&quot;heading-3-introduction-to-dnshttpswwwdigitaloceancomcommunitytutorialsan-introduction-to-dns-terminology-components-and-concepts-and-comparison-of-dns-server-typeshttpswwwdigitaloceancomcommunitytutorialsa-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration-by-digitalocean&quot;&gt;3) &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;&lt;strong&gt;Introduction to DNS&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;&lt;strong&gt;Comparison of DNS Server Types&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by D&lt;/strong&gt;igitalOcean 🆓&lt;/h2&gt;&lt;p&gt;these two articles will give you enough understanding on what a dns is, how it work and so on.&lt;/p&gt;&lt;p&gt;These two articles will provide you a good understanding of what DNS is and how it functions. The first article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;Introduction to DNS&lt;/a&gt;&quot;, covers the basics of the Domain Name System, explaining its purpose, how it translates domain names into IP addresses, and its role in internet navigation. The second article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;Comparison of DNS Server Types&lt;/a&gt;&quot;, dives deeper into the different types of DNS servers.&lt;/p&gt;&lt;p&gt;Additionally, if you prefer learning through videos, you might find this video (&lt;strong&gt;DNS Explained&lt;/strong&gt;) to be an excellent resource.&lt;/p&gt;&lt;div class=&quot;embed-wrapper&quot;&gt;&lt;div class=&quot;embed-loading&quot;&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;a class=&quot;embed-card&quot; href=&quot;https://www.youtube.com/watch?v=72snZctFFtA&quot;&gt;https://www.youtube.com/watch?v=72snZctFFtA&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;h1 id=&quot;heading-4-what-is-a-content-delivery-network-cdnhttpswwwcloudflarecomlearningcdnwhat-is-a-cdn-by-cloudflare&quot;&gt;&lt;strong&gt;4)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-a-cdn/&quot;&gt;&lt;strong&gt;What is a content delivery network (CDN)?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by&lt;/strong&gt; Cloudflare 🆓&lt;/h1&gt;&lt;p&gt;These article is written by Cloudflare, one of the biggest DNS service providers. Read this article and feel free to click on the keywords you see on the page. It contains a lot of information on topics like &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-caching/&quot;&gt;caching&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/cdn-ssl-tls-security/&quot;&gt;security&lt;/a&gt;, and &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/serverless/glossary/what-is-edge-computing/&quot;&gt;edge computing&lt;/a&gt;.&lt;/p&gt;&lt;h1 id=&quot;heading-5-how-browsers-workhttpsdevelopermozillaorgen-usdocswebperformancehowbrowserswork-by-mdn&quot;&gt;&lt;strong&gt;5)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;&lt;strong&gt;how browsers work&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h1&gt;&lt;p&gt;After understanding DNS and CDNs, we&apos;ll dive into &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;how browsers work&lt;/a&gt;&quot;. Browsers are essential tools for accessing and navigating the web, and understanding their functionality can greatly enhance your web development skills.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;To be continued&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts necessary to begin our learning journey. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/QvU0LNnr26U/upload/16e5b5902dbdc7576beda462c39ea312.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Back-End Development: A Complete Guide]]></title><description><![CDATA[Start your path to back-end development expertise with this detailed guide.]]></description><link>https://happydev.blog/mastering-back-end-development-a-complete-guide</link><guid isPermaLink="true">https://happydev.blog/mastering-back-end-development-a-complete-guide</guid><category><![CDATA[backend]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[Express]]></category><category><![CDATA[nestjs]]></category><category><![CDATA[mentorship]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Fri, 07 Jun 2024 14:56:34 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;h2 id=&quot;heading-your-back-end-development-journey-begins-here&quot;&gt;Your Back-End Development Journey Begins Here&lt;/h2&gt;&lt;p&gt;Welcome to the start of an exciting journey in back-end development! I&apos;m thrilled guiding you step-by-step from the very basics to advanced concepts and frameworks. In this blog series, I will break down complex topics into manageable, easy-to-understand posts published weekly. (&lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/from-passion-to-profession-my-journey-in-mentoring-future-developers&quot;&gt;For more Context please read this post&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Each post is designed to build on the previous one, ensuring you develop a solid foundation before moving on to more advanced topics. Together, we&apos;ll explore the essential skills and knowledge needed to become a proficient back-end developer.&lt;/p&gt;&lt;p&gt;There are numerous programming languages available for back-end development, such as Python, PHP, Go, and many others. Each of these languages has its own strengths and capabilities for building robust back-end systems. However, in this series, I will focus on the JavaScript stack, which I am most proficient in. JavaScript&apos;s popularity in the back-end development world has been steadily increasing, especially with the rise of powerful frameworks like Express, NestJS and Next.js.&lt;/p&gt;&lt;p&gt;Get ready to dive deep, ask questions, and apply what you learn. By the end of this series, you&apos;ll not only have a comprehensive understanding of back-end development but also the confidence to create your own web projects. Let&apos;s embark on this learning adventure together!&lt;/p&gt;&lt;h2 id=&quot;heading-stage-0-foundations-of-web-developmenthttpshappydevblogmastering-back-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Stage 0:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Foundations Of Web Development&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we start learning Express or PostgreSQL and before we dive into meta frameworks, we need to build a foundation for our journey. How can you be a good back-end developer if you don&apos;t know what HTTP is? How will you handle caching if you&apos;ve never heard of a CDN? Hypothetically, if you build a website, how will the world find a route to your servers? These foundational topics are essential for becoming a skilled back-end developer, yet they are often overlooked in favor of popular choices.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExN25jZ211cmIwMDB4Zzdscng5d2c5bzcydHVubWlsZ3lvYmVnOXVtbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT1R9ZnkR6ewpgAUTe/giphy.gif&quot; alt=&quot;Kids this days!&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;This might seem a bit tedious at times, but this is where the distinction between a good and a bad back-end developer is made. I assure you, this line becomes more bold and significant as you progress in your journey. As you get deeper into back-end development, the importance of these basics will become increasingly clear.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;How does the internet work? - (web pages, networking and web servers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;How we talk to each other? - (ip, dns, tcp, HTTP, browsers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Who are you? - (protocol, domain, tld, url)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Where are you? - (vps/v ds hosting, edge computing)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-1-javascript-basicshttpshappydevblogmastering-back-end-development-stage-1-javascript-basics&quot;&gt;&lt;strong&gt;Stage 1:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-1-javascript-basics&quot;&gt;&lt;strong&gt;JavaScript Basics&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Alright, now that we have a basic understanding of how the web works, we can move on to learning a programming language. In our case, that language is JavaScript.&lt;/p&gt;&lt;p&gt;To get started, we will:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basics of JavaScript syntax and structure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Reading &amp;amp; writing to files&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Event handling&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-2-lets-give-computer-science-a-chancehttpshappydevblogmastering-back-end-development-stage-2-computers-basics&quot;&gt;&lt;strong&gt;Stage 2:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-2-computers-basics&quot;&gt;&lt;strong&gt;Let&apos;s give Computer Science a chance&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;While there are many back-end developers who lack basic knowledge about computers, such as algorithms, databases, and the general workings of computers, we are not going to skip these crucial topics. Understanding these fundamentals is essential for becoming a proficient back-end developer. We will dive into the basics of computer science to ensure you have a solid foundation.&lt;/p&gt;&lt;p&gt;We will learn the basics about the following subjects in this part:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;General computer knowledge (cpus, storage, memory, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Algorithms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data structures&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;SQL &amp;amp; NO-SQL Data bases&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By the end of this stage, you will have a comprehensive understanding of these core computer science concepts. And you will thank me later when its time to decide between different technologies in your use cases.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-3-essentials-before-we-dive-deeperhttpshappydevblogmastering-back-end-development-stage-3-js-world-essentials&quot;&gt;&lt;strong&gt;Stage 3:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-3-js-world-essentials&quot;&gt;&lt;strong&gt;Essentials Before We Dive Deeper&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we start learning more about JavaScript and especially Node.js, we need a basic understanding of tools widely used in the industry, such as coding environments, dependency management, and code automation.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Package managers (npm, yarn, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Scripts&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;GIT&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VS code and its ecosystem&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-4-more-on-jshttpshappydevblogmastering-back-end-development-stage-4-more-on-js&quot;&gt;&lt;strong&gt;Stage 4:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-4-more-on-js&quot;&gt;&lt;strong&gt;More On JS&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As we progress we need to go deeper on javascript and its ecosystem. we will learn about typescript, Object-Oriented programming, asynchronous programming and many more!&lt;/p&gt;&lt;p&gt;In this step we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;OOP&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Error handling &amp;amp; Debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Promises, Event loops, Modules, ...&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;TypeScript&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;JavaScript run times&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-5-js-run-times&quot;&gt;Stage 5: JS Run Times&lt;/h2&gt;&lt;p&gt;JavaScript was initially created as a scripting language meant to run on web pages, allowing developers to add interactive elements and enhance user experience. However, its potential expanded significantly when web developers could run JavaScript on servers by leveraging Googles V8 engine and Node.js. after that JS community saw an explosion of ideas and possibilities.&lt;/p&gt;&lt;p&gt;In this part we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;V8 Engine&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Node.js&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Call stack and heap&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Basics of edge computing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Web servers&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-6-nodejs-frameworks&quot;&gt;Stage 6: NodeJS Frameworks&lt;/h2&gt;&lt;p&gt;While there are many frameworks for Node.js, the concepts behind them are quite similar (While there are many similarities, there are some differences in concepts and features among them). by learning one of them, you can expect to know a lot about other frameworks discussed.&lt;/p&gt;&lt;p&gt;While building everything is possible without these frameworks, learning and using them is highly recommended since they make you more efficient and your job much simpler.&lt;/p&gt;&lt;p&gt;We will mainly focus on Express.js and its stack since it is more widely adopted and used.&lt;/p&gt;&lt;p&gt;In this part we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Express.js/Fastify/adonisjs&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Routing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Middlewares&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Security &amp;amp; Authentication&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Error handling&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-7-nestjs-basics&quot;&gt;Stage 7: Nestjs Basics&lt;/h2&gt;&lt;p&gt;NestJS is a Node.js framework designed for building efficient, reliable, and scalable server-side applications. It leverages TypeScript and incorporates elements from Object-Oriented Programming (OOP) and use a framework like Express.js under the hood. With its modular architecture, NestJS allows developers to create well-structured and maintainable codebases. The framework also provides built-in support for a wide range of tools and libraries, making it easier to integrate various features into your applications.&lt;/p&gt;&lt;p&gt;in this stage we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;NestJS Cli&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Modules, Controllers, Providers&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Middlewares&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Dependency Injection&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Life cycles&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Guards&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-8-more-on-databases&quot;&gt;Stage 8: More On Databases&lt;/h2&gt;&lt;p&gt;Databases are the backbone of any back-end system, storing and organizing data in a way that allows for efficient retrieval and manipulation. There are several types of databases, each suited to different use cases.&lt;/p&gt;&lt;p&gt;Learning about different types of databases is crucial for any aspiring back-end developer. Understanding the strengths and limitations of each type enables you to make informed decisions based on the specific needs of your application.&lt;/p&gt;&lt;p&gt;We will also learn about ORMs, which make working with databases significantly better and easier. They provide a more developer-friendly experience when working with databases.&lt;/p&gt;&lt;p&gt;in this stage we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;SQL data bases&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;NO-SQL data bases&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;ORMs and modern DB tools (typeorm, prisma, drizzle, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Migrations&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-9-advanced-frameworks-concepts&quot;&gt;Stage 9: Advanced Frameworks Concepts&lt;/h2&gt;&lt;p&gt;After we have learned enough about NestJS and databases, we will dive into deeper subjects listed below. Keep in mind that these subjects are not tied to a specific framework or programming language, so learning them will give us a significant advantage over time.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Security, Authentication, ...&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Serialization&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Logging &amp;amp; debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Websocket &amp;amp; Streaming&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Events &amp;amp; Queues (Kafka/RabitmQ/NATS)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;caching (Redis)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-10-design-patterns&quot;&gt;Stage 10: Design patterns&lt;/h2&gt;&lt;p&gt;In this step, we will learn about common solutions to common problems that have been around since programming began. we will learn to use these solutions elegantly in appropriate places.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Creational patterns&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Structural patterns&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Behavioral patterns&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Learning this techniques requires lots of reading and practicing over time.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-11-deployment&quot;&gt;Stage 11: Deployment&lt;/h2&gt;&lt;p&gt;In this section, we will dive into the concepts of Deployment, Docker, and Nginx. We will start by understanding the fundamentals of CI/CD, Deploying to servers and platforms, exploring how these practices help automate the integration and deployment of code, ensuring that software can be released reliably at any time. we will learn about Docker, a platform that enables us to create, deploy, and run applications in isolated containers.&lt;/p&gt;&lt;p&gt;What we will learn in this stage:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basics of Linux&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Docker&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;CI/CD (tools &amp;amp; platforms)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Nginx&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Deploying and maintenance&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The learning materials in this section are not strictly necessary for securing a job but significantly enhance your chances of getting hired.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-12-architectures&quot;&gt;Stage 12: Architectures&lt;/h2&gt;&lt;p&gt;What do we know about answering questions regarding the big picture of the project or solution we are going to work on? Is it suitable? Is it scalable? These are some of the questions you will face soon in your job as a back-end developer, and we are going to be prepared.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Model-View-Controller (MVC)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Service Oriented Architecture (SOA)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Command and Query Responsibility Segregation (CQRS)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Microservices&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Domain-Driven Design Approach(DDD)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-continuous-learning-and-future-steps&quot;&gt;Continuous Learning and Future Steps&lt;/h2&gt;&lt;p&gt;Learning JavaScript, Nodejs, and other back-end topics is an ongoing journey. This guide is a comprehensive starting point, but web development is vast and always changing.&lt;/p&gt;&lt;p&gt;In the near future, I will dive deeper into each topic, providing more detailed tutorials and insights. As we progress, I may add or remove subjects based on the latest industry trends and best practices.&lt;/p&gt;&lt;p&gt;We will explore specific libraries and tools that I believe are beneficial for your development journey. Stay tuned for more in-depth content, and remember, the key to becoming a proficient developer is continuous learning and adaptation. Together, we will navigate the complexities of modern web development and enhance our skills, one step at a time.&lt;/p&gt;&lt;p&gt;At the end, please consider subscribing to my newsletter. In this weekly newsletter, I will share everything you need to learn about web development. You can expect detailed articles, tutorials, and tips on a wide range of topics.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;h2 id=&quot;heading-your-back-end-development-journey-begins-here&quot;&gt;Your Back-End Development Journey Begins Here&lt;/h2&gt;&lt;p&gt;Welcome to the start of an exciting journey in back-end development! I&apos;m thrilled guiding you step-by-step from the very basics to advanced concepts and frameworks. In this blog series, I will break down complex topics into manageable, easy-to-understand posts published weekly. (&lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/from-passion-to-profession-my-journey-in-mentoring-future-developers&quot;&gt;For more Context please read this post&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Each post is designed to build on the previous one, ensuring you develop a solid foundation before moving on to more advanced topics. Together, we&apos;ll explore the essential skills and knowledge needed to become a proficient back-end developer.&lt;/p&gt;&lt;p&gt;There are numerous programming languages available for back-end development, such as Python, PHP, Go, and many others. Each of these languages has its own strengths and capabilities for building robust back-end systems. However, in this series, I will focus on the JavaScript stack, which I am most proficient in. JavaScript&apos;s popularity in the back-end development world has been steadily increasing, especially with the rise of powerful frameworks like Express, NestJS and Next.js.&lt;/p&gt;&lt;p&gt;Get ready to dive deep, ask questions, and apply what you learn. By the end of this series, you&apos;ll not only have a comprehensive understanding of back-end development but also the confidence to create your own web projects. Let&apos;s embark on this learning adventure together!&lt;/p&gt;&lt;h2 id=&quot;heading-stage-0-foundations-of-web-developmenthttpshappydevblogmastering-back-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Stage 0:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Foundations Of Web Development&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we start learning Express or PostgreSQL and before we dive into meta frameworks, we need to build a foundation for our journey. How can you be a good back-end developer if you don&apos;t know what HTTP is? How will you handle caching if you&apos;ve never heard of a CDN? Hypothetically, if you build a website, how will the world find a route to your servers? These foundational topics are essential for becoming a skilled back-end developer, yet they are often overlooked in favor of popular choices.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExN25jZ211cmIwMDB4Zzdscng5d2c5bzcydHVubWlsZ3lvYmVnOXVtbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT1R9ZnkR6ewpgAUTe/giphy.gif&quot; alt=&quot;Kids this days!&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;This might seem a bit tedious at times, but this is where the distinction between a good and a bad back-end developer is made. I assure you, this line becomes more bold and significant as you progress in your journey. As you get deeper into back-end development, the importance of these basics will become increasingly clear.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;How does the internet work? - (web pages, networking and web servers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;How we talk to each other? - (ip, dns, tcp, HTTP, browsers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Who are you? - (protocol, domain, tld, url)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Where are you? - (vps/v ds hosting, edge computing)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-1-javascript-basicshttpshappydevblogmastering-back-end-development-stage-1-javascript-basics&quot;&gt;&lt;strong&gt;Stage 1:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-1-javascript-basics&quot;&gt;&lt;strong&gt;JavaScript Basics&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Alright, now that we have a basic understanding of how the web works, we can move on to learning a programming language. In our case, that language is JavaScript.&lt;/p&gt;&lt;p&gt;To get started, we will:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basics of JavaScript syntax and structure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Reading &amp;amp; writing to files&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Event handling&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-2-lets-give-computer-science-a-chancehttpshappydevblogmastering-back-end-development-stage-2-computers-basics&quot;&gt;&lt;strong&gt;Stage 2:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-2-computers-basics&quot;&gt;&lt;strong&gt;Let&apos;s give Computer Science a chance&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;While there are many back-end developers who lack basic knowledge about computers, such as algorithms, databases, and the general workings of computers, we are not going to skip these crucial topics. Understanding these fundamentals is essential for becoming a proficient back-end developer. We will dive into the basics of computer science to ensure you have a solid foundation.&lt;/p&gt;&lt;p&gt;We will learn the basics about the following subjects in this part:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;General computer knowledge (cpus, storage, memory, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Algorithms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data structures&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;SQL &amp;amp; NO-SQL Data bases&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By the end of this stage, you will have a comprehensive understanding of these core computer science concepts. And you will thank me later when its time to decide between different technologies in your use cases.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-3-essentials-before-we-dive-deeperhttpshappydevblogmastering-back-end-development-stage-3-js-world-essentials&quot;&gt;&lt;strong&gt;Stage 3:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-3-js-world-essentials&quot;&gt;&lt;strong&gt;Essentials Before We Dive Deeper&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we start learning more about JavaScript and especially Node.js, we need a basic understanding of tools widely used in the industry, such as coding environments, dependency management, and code automation.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Package managers (npm, yarn, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Scripts&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;GIT&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VS code and its ecosystem&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-4-more-on-jshttpshappydevblogmastering-back-end-development-stage-4-more-on-js&quot;&gt;&lt;strong&gt;Stage 4:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-stage-4-more-on-js&quot;&gt;&lt;strong&gt;More On JS&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;As we progress we need to go deeper on javascript and its ecosystem. we will learn about typescript, Object-Oriented programming, asynchronous programming and many more!&lt;/p&gt;&lt;p&gt;In this step we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;OOP&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Error handling &amp;amp; Debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Promises, Event loops, Modules, ...&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;TypeScript&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;JavaScript run times&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-5-js-run-times&quot;&gt;Stage 5: JS Run Times&lt;/h2&gt;&lt;p&gt;JavaScript was initially created as a scripting language meant to run on web pages, allowing developers to add interactive elements and enhance user experience. However, its potential expanded significantly when web developers could run JavaScript on servers by leveraging Googles V8 engine and Node.js. after that JS community saw an explosion of ideas and possibilities.&lt;/p&gt;&lt;p&gt;In this part we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;V8 Engine&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Node.js&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Call stack and heap&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Basics of edge computing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Web servers&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-6-nodejs-frameworks&quot;&gt;Stage 6: NodeJS Frameworks&lt;/h2&gt;&lt;p&gt;While there are many frameworks for Node.js, the concepts behind them are quite similar (While there are many similarities, there are some differences in concepts and features among them). by learning one of them, you can expect to know a lot about other frameworks discussed.&lt;/p&gt;&lt;p&gt;While building everything is possible without these frameworks, learning and using them is highly recommended since they make you more efficient and your job much simpler.&lt;/p&gt;&lt;p&gt;We will mainly focus on Express.js and its stack since it is more widely adopted and used.&lt;/p&gt;&lt;p&gt;In this part we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Express.js/Fastify/adonisjs&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Routing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Middlewares&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Security &amp;amp; Authentication&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Error handling&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-7-nestjs-basics&quot;&gt;Stage 7: Nestjs Basics&lt;/h2&gt;&lt;p&gt;NestJS is a Node.js framework designed for building efficient, reliable, and scalable server-side applications. It leverages TypeScript and incorporates elements from Object-Oriented Programming (OOP) and use a framework like Express.js under the hood. With its modular architecture, NestJS allows developers to create well-structured and maintainable codebases. The framework also provides built-in support for a wide range of tools and libraries, making it easier to integrate various features into your applications.&lt;/p&gt;&lt;p&gt;in this stage we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;NestJS Cli&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Modules, Controllers, Providers&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Middlewares&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Dependency Injection&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Life cycles&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Guards&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-8-more-on-databases&quot;&gt;Stage 8: More On Databases&lt;/h2&gt;&lt;p&gt;Databases are the backbone of any back-end system, storing and organizing data in a way that allows for efficient retrieval and manipulation. There are several types of databases, each suited to different use cases.&lt;/p&gt;&lt;p&gt;Learning about different types of databases is crucial for any aspiring back-end developer. Understanding the strengths and limitations of each type enables you to make informed decisions based on the specific needs of your application.&lt;/p&gt;&lt;p&gt;We will also learn about ORMs, which make working with databases significantly better and easier. They provide a more developer-friendly experience when working with databases.&lt;/p&gt;&lt;p&gt;in this stage we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;SQL data bases&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;NO-SQL data bases&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;ORMs and modern DB tools (typeorm, prisma, drizzle, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Migrations&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-9-advanced-frameworks-concepts&quot;&gt;Stage 9: Advanced Frameworks Concepts&lt;/h2&gt;&lt;p&gt;After we have learned enough about NestJS and databases, we will dive into deeper subjects listed below. Keep in mind that these subjects are not tied to a specific framework or programming language, so learning them will give us a significant advantage over time.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Security, Authentication, ...&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Serialization&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Logging &amp;amp; debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Websocket &amp;amp; Streaming&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Events &amp;amp; Queues (Kafka/RabitmQ/NATS)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;caching (Redis)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-10-design-patterns&quot;&gt;Stage 10: Design patterns&lt;/h2&gt;&lt;p&gt;In this step, we will learn about common solutions to common problems that have been around since programming began. we will learn to use these solutions elegantly in appropriate places.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Creational patterns&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Structural patterns&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Behavioral patterns&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Learning this techniques requires lots of reading and practicing over time.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-11-deployment&quot;&gt;Stage 11: Deployment&lt;/h2&gt;&lt;p&gt;In this section, we will dive into the concepts of Deployment, Docker, and Nginx. We will start by understanding the fundamentals of CI/CD, Deploying to servers and platforms, exploring how these practices help automate the integration and deployment of code, ensuring that software can be released reliably at any time. we will learn about Docker, a platform that enables us to create, deploy, and run applications in isolated containers.&lt;/p&gt;&lt;p&gt;What we will learn in this stage:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basics of Linux&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Docker&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;CI/CD (tools &amp;amp; platforms)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Nginx&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Deploying and maintenance&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The learning materials in this section are not strictly necessary for securing a job but significantly enhance your chances of getting hired.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-12-architectures&quot;&gt;Stage 12: Architectures&lt;/h2&gt;&lt;p&gt;What do we know about answering questions regarding the big picture of the project or solution we are going to work on? Is it suitable? Is it scalable? These are some of the questions you will face soon in your job as a back-end developer, and we are going to be prepared.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Model-View-Controller (MVC)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Service Oriented Architecture (SOA)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Command and Query Responsibility Segregation (CQRS)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Microservices&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Domain-Driven Design Approach(DDD)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-continuous-learning-and-future-steps&quot;&gt;Continuous Learning and Future Steps&lt;/h2&gt;&lt;p&gt;Learning JavaScript, Nodejs, and other back-end topics is an ongoing journey. This guide is a comprehensive starting point, but web development is vast and always changing.&lt;/p&gt;&lt;p&gt;In the near future, I will dive deeper into each topic, providing more detailed tutorials and insights. As we progress, I may add or remove subjects based on the latest industry trends and best practices.&lt;/p&gt;&lt;p&gt;We will explore specific libraries and tools that I believe are beneficial for your development journey. Stay tuned for more in-depth content, and remember, the key to becoming a proficient developer is continuous learning and adaptation. Together, we will navigate the complexities of modern web development and enhance our skills, one step at a time.&lt;/p&gt;&lt;p&gt;At the end, please consider subscribing to my newsletter. In this weekly newsletter, I will share everything you need to learn about web development. You can expect detailed articles, tutorials, and tips on a wide range of topics.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/zS4lUqLEiNA/upload/ae9af687cce06df686fc90598e96e0a7.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Front-End Development - Stage 1: The Backbone of Web Pages (Html and accessibility)]]></title><description><![CDATA[Learn the basics of HTML, forms, and accessibility to build a solid foundation for front-end web development]]></description><link>https://happydev.blog/mastering-front-end-development-stage-1-the-backbone-of-web-pages-html-and-accessibility</link><guid isPermaLink="true">https://happydev.blog/mastering-front-end-development-stage-1-the-backbone-of-web-pages-html-and-accessibility</guid><category><![CDATA[Frontend Development]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[React]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[HTML]]></category><category><![CDATA[Accessibility]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Tue, 04 Jun 2024 16:38:40 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;After gaining an understanding of web technologies in &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;our journey&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-0-1-foundations-of-web-development&quot;&gt;web infrastructure&lt;/a&gt;, and the basics of what happens behind the scenes, we are ready to move on to the next step.&lt;/p&gt;&lt;p&gt;This step is one of the easier ones, but we should not neglect its importance since it will create a solid foundation for building web pages and learning a bit about accessibility in web development. in this part we will learn about HTML, forms and accessibility.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Bear in mind, each section usually has several links that you should read through. If there is no link in the body of the sections, then the heading is the link to the resource you should learn.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-basics-of-html&quot;&gt;Basics of HTML&lt;/h2&gt;&lt;h3 id=&quot;heading-html-tutorialhttpswwww3schoolscomhtmldefaultasp-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/html/default.asp&quot;&gt;HTML Tutorial&lt;/a&gt; by w3schools 🆓&lt;/h3&gt;&lt;p&gt;w3schools is a solid resource that every web developer should read through at least once. Its articles are easy to understand and filled with various examples. It doesn&apos;t go very deep, but it&apos;s a good starting point.&lt;/p&gt;&lt;p&gt;This page has many sections, but for now, reading the HTML Tutorial section is enough. After you opened the link (), take a look at the left sidebar and read all the parts in the &lt;code&gt;HTML Tutorial&lt;/code&gt; section (From &lt;code&gt;HTML Home&lt;/code&gt; To &lt;code&gt;HTML Vs. XHTML&lt;/code&gt;).&lt;/p&gt;&lt;h3 id=&quot;heading-structuring-the-web-with-htmlhttpsdevelopermozillaorgen-usdocslearnhtml-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML&quot;&gt;Structuring the web with HTML&lt;/a&gt; by MDN 🆓&lt;/h3&gt;&lt;p&gt;MDN is one of the best resources on the web, and when you find something from MDN, you should read and learn it thoroughly.This tutorial consists of three modules, and each one has sub-modules.&lt;/p&gt;&lt;p&gt;These are the three modules. Please read each module and its sub-modules carefully.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML&quot;&gt;Introduction to HTML&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding&quot;&gt;Multimedia and embedding&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables&quot;&gt;HTML tables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=&quot;heading-semantic-htmlhttpswebdesigntutspluscomsemantic-html-how-to-structure-web-pages-crs-200231c-by-tutsplus&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://webdesign.tutsplus.com/semantic-html-how-to-structure-web-pages--CRS-200231c&quot;&gt;Semantic HTML&lt;/a&gt; by tutsplus 🆓&lt;/h3&gt;&lt;p&gt;After you learn the basics of HTML, it&apos;s important to use elements in their appropriate and meaningful places. Now, it&apos;s time to learn about HTML semantics. Go ahead and watch this tutorial, which is short (around 40 minutes).&lt;/p&gt;&lt;h2 id=&quot;heading-forms&quot;&gt;Forms&lt;/h2&gt;&lt;h3 id=&quot;heading-html-formshttpswwww3schoolscomhtmlhtmlformsasp-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/html/html_forms.asp&quot;&gt;HTML Forms&lt;/a&gt; by w3schools 🆓&lt;/h3&gt;&lt;p&gt;In this section we will learn about forms and different form inputs. This tutorial consists of 6 parts, and you should read them all.&lt;/p&gt;&lt;h3 id=&quot;heading-web-formhttpsdevelopermozillaorgen-usdocslearnforms-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms&quot;&gt;Web form&lt;/a&gt; by MDN 🆓&lt;/h3&gt;&lt;p&gt;Here we are again with another amazing tutorial from MDN. Just read the following links, as we only need these ones for now.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms&quot;&gt;Web form building blocks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Your_first_form&quot;&gt;Your first form&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/How_to_structure_a_web_form&quot;&gt;How to structure a web form&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Basic_native_form_controls&quot;&gt;Basic native form controls&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/HTML5_input_types&quot;&gt;The HTML5 input types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Other_form_controls&quot;&gt;Other form controls&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation&quot;&gt;Client-side form validation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data&quot;&gt;Sending form data&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-accessibility-in-html&quot;&gt;Accessibility in html&lt;/h2&gt;&lt;p&gt;It&apos;s important to use these technologies responsibly to ensure accessibility for all users. so we are going to scratch the surface of accessibility by learning accessibility in HTML.&lt;/p&gt;&lt;h3 id=&quot;heading-accessibility-guidelineshttpswwww3schoolscomaccessibilityindexphp-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/accessibility/index.php&quot;&gt;Accessibility Guidelines&lt;/a&gt; by w3schools 🆓&lt;/h3&gt;&lt;p&gt;This tutorial is excellent for building a solid understanding and foundation of accessibility and what it is.&lt;/p&gt;&lt;h3 id=&quot;heading-accessibilityhttpsdevelopermozillaorgen-usdocslearnaccessibility-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Accessibility&quot;&gt;Accessibility&lt;/a&gt; by MDN 🆓&lt;/h3&gt;&lt;p&gt;This is a more in depth and practical tutorial about accessibility by MDN. (Skip the CSS and JavaScript sections for now)&lt;/p&gt;&lt;h2 id=&quot;heading-references-for-what-you-learned&quot;&gt;References for what you learned&lt;/h2&gt;&lt;p&gt;HTML is a language with numerous elements and attributes that can be easy to forget over time. To help you keep track of these, here are some valuable references, feel free to give them a visit every now and then.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot;&gt;HTML elements reference&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://htmlreference.io/&quot;&gt;HTML Reference&lt;/a&gt; by htmlreference.io 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/TAGS/default.asp&quot;&gt;HTML References&lt;/a&gt; by w3schools 🆓&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;To be continued&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamentals about HTML, Forms and Accessibility. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;After gaining an understanding of web technologies in &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;our journey&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-0-1-foundations-of-web-development&quot;&gt;web infrastructure&lt;/a&gt;, and the basics of what happens behind the scenes, we are ready to move on to the next step.&lt;/p&gt;&lt;p&gt;This step is one of the easier ones, but we should not neglect its importance since it will create a solid foundation for building web pages and learning a bit about accessibility in web development. in this part we will learn about HTML, forms and accessibility.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Bear in mind, each section usually has several links that you should read through. If there is no link in the body of the sections, then the heading is the link to the resource you should learn.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-basics-of-html&quot;&gt;Basics of HTML&lt;/h2&gt;&lt;h3 id=&quot;heading-html-tutorialhttpswwww3schoolscomhtmldefaultasp-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/html/default.asp&quot;&gt;HTML Tutorial&lt;/a&gt; by w3schools 🆓&lt;/h3&gt;&lt;p&gt;w3schools is a solid resource that every web developer should read through at least once. Its articles are easy to understand and filled with various examples. It doesn&apos;t go very deep, but it&apos;s a good starting point.&lt;/p&gt;&lt;p&gt;This page has many sections, but for now, reading the HTML Tutorial section is enough. After you opened the link (), take a look at the left sidebar and read all the parts in the &lt;code&gt;HTML Tutorial&lt;/code&gt; section (From &lt;code&gt;HTML Home&lt;/code&gt; To &lt;code&gt;HTML Vs. XHTML&lt;/code&gt;).&lt;/p&gt;&lt;h3 id=&quot;heading-structuring-the-web-with-htmlhttpsdevelopermozillaorgen-usdocslearnhtml-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML&quot;&gt;Structuring the web with HTML&lt;/a&gt; by MDN 🆓&lt;/h3&gt;&lt;p&gt;MDN is one of the best resources on the web, and when you find something from MDN, you should read and learn it thoroughly.This tutorial consists of three modules, and each one has sub-modules.&lt;/p&gt;&lt;p&gt;These are the three modules. Please read each module and its sub-modules carefully.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Introduction_to_HTML&quot;&gt;Introduction to HTML&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding&quot;&gt;Multimedia and embedding&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables&quot;&gt;HTML tables&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 id=&quot;heading-semantic-htmlhttpswebdesigntutspluscomsemantic-html-how-to-structure-web-pages-crs-200231c-by-tutsplus&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://webdesign.tutsplus.com/semantic-html-how-to-structure-web-pages--CRS-200231c&quot;&gt;Semantic HTML&lt;/a&gt; by tutsplus 🆓&lt;/h3&gt;&lt;p&gt;After you learn the basics of HTML, it&apos;s important to use elements in their appropriate and meaningful places. Now, it&apos;s time to learn about HTML semantics. Go ahead and watch this tutorial, which is short (around 40 minutes).&lt;/p&gt;&lt;h2 id=&quot;heading-forms&quot;&gt;Forms&lt;/h2&gt;&lt;h3 id=&quot;heading-html-formshttpswwww3schoolscomhtmlhtmlformsasp-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/html/html_forms.asp&quot;&gt;HTML Forms&lt;/a&gt; by w3schools 🆓&lt;/h3&gt;&lt;p&gt;In this section we will learn about forms and different form inputs. This tutorial consists of 6 parts, and you should read them all.&lt;/p&gt;&lt;h3 id=&quot;heading-web-formhttpsdevelopermozillaorgen-usdocslearnforms-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms&quot;&gt;Web form&lt;/a&gt; by MDN 🆓&lt;/h3&gt;&lt;p&gt;Here we are again with another amazing tutorial from MDN. Just read the following links, as we only need these ones for now.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms&quot;&gt;Web form building blocks&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Your_first_form&quot;&gt;Your first form&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/How_to_structure_a_web_form&quot;&gt;How to structure a web form&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Basic_native_form_controls&quot;&gt;Basic native form controls&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/HTML5_input_types&quot;&gt;The HTML5 input types&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Other_form_controls&quot;&gt;Other form controls&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation&quot;&gt;Client-side form validation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Forms/Sending_and_retrieving_form_data&quot;&gt;Sending form data&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-accessibility-in-html&quot;&gt;Accessibility in html&lt;/h2&gt;&lt;p&gt;It&apos;s important to use these technologies responsibly to ensure accessibility for all users. so we are going to scratch the surface of accessibility by learning accessibility in HTML.&lt;/p&gt;&lt;h3 id=&quot;heading-accessibility-guidelineshttpswwww3schoolscomaccessibilityindexphp-by-w3schools&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/accessibility/index.php&quot;&gt;Accessibility Guidelines&lt;/a&gt; by w3schools 🆓&lt;/h3&gt;&lt;p&gt;This tutorial is excellent for building a solid understanding and foundation of accessibility and what it is.&lt;/p&gt;&lt;h3 id=&quot;heading-accessibilityhttpsdevelopermozillaorgen-usdocslearnaccessibility-by-mdn&quot;&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Accessibility&quot;&gt;Accessibility&lt;/a&gt; by MDN 🆓&lt;/h3&gt;&lt;p&gt;This is a more in depth and practical tutorial about accessibility by MDN. (Skip the CSS and JavaScript sections for now)&lt;/p&gt;&lt;h2 id=&quot;heading-references-for-what-you-learned&quot;&gt;References for what you learned&lt;/h2&gt;&lt;p&gt;HTML is a language with numerous elements and attributes that can be easy to forget over time. To help you keep track of these, here are some valuable references, feel free to give them a visit every now and then.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot;&gt;HTML elements reference&lt;/a&gt; by MDN 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://htmlreference.io/&quot;&gt;HTML Reference&lt;/a&gt; by htmlreference.io 🆓&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.w3schools.com/TAGS/default.asp&quot;&gt;HTML References&lt;/a&gt; by w3schools 🆓&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;To be continued&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamentals about HTML, Forms and Accessibility. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/npxXWgQ33ZQ/upload/3dc0aba703f6294cd7bfafa1f6107bd2.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Web Development: Join My Free Mentorship Program and Transform Your Career]]></title><description><![CDATA[Join a free web development mentorship program to transform your career with expert guidance, practical tips, and detailed roadmaps]]></description><link>https://happydev.blog/master-web-development-free-mentorship-program</link><guid isPermaLink="true">https://happydev.blog/master-web-development-free-mentorship-program</guid><category><![CDATA[web development mentorship]]></category><category><![CDATA[learn web development online]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[backend developments]]></category><category><![CDATA[React]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[nestjs]]></category><category><![CDATA[Self-taught ]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Wed, 29 May 2024 17:00:15 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;Hi everyone! Last week I launched an online &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/from-passion-to-profession-my-journey-in-mentoring-future-developers&quot;&gt;mentoring program&lt;/a&gt;. I shared my website on platforms like Reddit and Hacker News, which may have caused some confusion about my intentions. So, I&apos;m here to clarify what I&apos;m doing and why you should consider following and joining my program, which is free of charge.&lt;/p&gt;&lt;p&gt;This program is designed for individuals who want to become web developers, whether they are interested in front-end, back-end, or full-stack development. It covers various pathways to achieve this goal, including fast-track methods for those who want to quickly enter the field and more detailed, in-depth approaches for those who prefer a comprehensive understanding or want to deepen their knowledge.&lt;/p&gt;&lt;p&gt;So, if you are interested in building a career in web development or want to gain more skills and knowledge, keep reading. I will guide you through this challenging and exciting journey, providing you with valuable insights and practical tips.&lt;/p&gt;&lt;h2 id=&quot;heading-who-i-am&quot;&gt;Who I Am?&lt;/h2&gt;&lt;p&gt;I&apos;m Rami. I studied computer science in university and have been building web applications for the last 7 years. I&apos;ve been a programmer at heart for the past 15 years. I have worked with back-end frameworks such as Node.js, Express, and NestJS. In front-end development, I have experience with jQuery, Angular, React, Backbone, and many others. I have also worked with databases like SQLite, PostgreSQL, MongoDB, Redis, and so on.&lt;/p&gt;&lt;p&gt;I self-studied my entire life because I had no other options. I was living in a less developed region in a chaotic country. I found my way through web development and life, which is why I&apos;m a happy developer, sometimes even an ultra-happy developer. I learned a lot about becoming a web developer on my own and have helped and inspired many others to find their path. To date, I have mentored over 20 people and consulted countless others to become better developers.&lt;/p&gt;&lt;p&gt;20 is not a big number, but I mentor them in my own way. My program usually takes a full year to complete. During this time, I try to teach them everything they need, deepen their knowledge, help them network in the tech industry, and finally assist them in finding their dream job.&lt;/p&gt;&lt;h2 id=&quot;heading-why-im-launching-this-now&quot;&gt;Why Im Launching This Now?&lt;/h2&gt;&lt;p&gt;Well, I had plans to write about web development for ages. I started mentoring people around 3 years ago. Right now, I have started a new program where I will mentor 6 people (they are already chosen, so this is not an offer for you guys at the moment). I wanted to document the whole process to make it easier for the next round of mentoring. The stars lined up and I felt confident enough to begin this blog and program.&lt;/p&gt;&lt;p&gt;In the meantime, I expanded my network and knowledge on essential topics, accessed more learning materials, worked hard, gained a lot of experience, and discovered my methods for mentoring others to become web developers.&lt;/p&gt;&lt;p&gt;Now, I&apos;m ready to pass this knowledge on to the next generation of web developers and to those who can&apos;t access a mentor or afford premium courses. This includes people living in difficult conditions, whom I empathize with deeply.&lt;/p&gt;&lt;p&gt;So for now I have nothing to sell. It&apos;s all free, including everything you need to learn to become a programmer.&lt;/p&gt;&lt;h2 id=&quot;heading-why-you-should-try-what-im-cooking&quot;&gt;Why You Should Try What I&apos;m Cooking ?&lt;/h2&gt;&lt;p&gt;As I said, I&apos;m an experienced self-taught developer who has worked with developers and companies from Germany, the Netherlands, Switzerland, Canada, Australia, and many more. I have seen the evolution of web development firsthand, witnessing the rise and fall of numerous web frameworks. This experience has given me a unique perspective on the industry and a deep understanding of what works and what doesn&apos;t. I have navigated through the ever-changing landscape of web technologies, adapting to new trends and best practices as they emerged.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/JQMRbRkXuABUAUCH3A.webp&quot; alt=&quot;i&apos;ve seen things&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;Since I was passionate about programming and didn&apos;t have much of an actual life, I usually dedicated at least 80+ hours a month to reading posts and documents, watching courses, and following web development industry bloggers on various platforms like Twitter, YouTube, LinkedIn and many other platforms.&lt;/p&gt;&lt;p&gt;So, I get what you&apos;re aiming for, and I&apos;m confident I can help you reach your goals. I&apos;ve got the knowledge and skills to offer valuable guidance. Plus, you can check out my work by following my updates or subscribing to my newsletter. This way, you can see the impact of my work firsthand and decide if it meets your needs. I&apos;m dedicated to sharing my expertise and helping you succeed in your web development journey.&lt;/p&gt;&lt;h2 id=&quot;heading-unlock-your-potential-with-me&quot;&gt;Unlock Your Potential with Me&lt;/h2&gt;&lt;p&gt;As I mentioned before, I will document the entire process of mentoring someone with little experience and prior knowledge until they become skilled enough to find a job or pursue other opportunities.&lt;/p&gt;&lt;p&gt;I will provide detailed roadmaps with all the necessary resources you need to read, watch or practice. Each section of this journey will include one or more detailed posts (documents) where I will carefully organize the resources into different levels (These resources will be updated to fit today&apos;s trends and requirements.). These levels will progressively dive deeper into each subject, ensuring that you gain enough knowledge and insight to confidently move on to the next topic.&lt;/p&gt;&lt;p&gt;By following this structured approach, you will be able to build a solid understanding of each topic, step by step. This methodical progression will not only help you master the necessary skills but also ensure that you are well-prepared to tackle real-world challenges. My goal is to provide you with a clear and effective learning path that will guide you from a beginner to a proficient professional.&lt;/p&gt;&lt;p&gt;For now, I am planning to create two detailed roadmaps (aka slow-paced): one for front-end development and another for back-end development. Each roadmap will be carefully crafted to cover all the essential topics and skills you need in these areas.&lt;/p&gt;&lt;p&gt;I will extend these roadmaps in the near future based on your feedback and the evolving trends in the industry. By continuously updating the content, I aim to provide you with the most relevant and up-to-date information, ensuring that you stay ahead in your web development journey.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;&lt;strong&gt;A note about this roadmaps:&lt;/strong&gt; The big picture in my mind is to create roadmaps tailored to the needs of different groups of people. For example, one of you might want to become a front-end developer quickly. I will create a faster roadmap that skips some of the less necessary details to help you get ready for the market sooner. Later, you can return to deepen your knowledge, giving you the opportunity to advance faster.&lt;/div&gt;&lt;/div&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Currently, the Front-End program has been &lt;strong&gt;launched&lt;/strong&gt;, and you can explore it here: &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;&lt;strong&gt;Mastering Front-End Development: A Complete Guide&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-how-to-get-started-and-stay-updated&quot;&gt;How to Get Started and Stay Updated&lt;/h2&gt;&lt;p&gt;To get started, follow me or subscribe to my newsletter. For now, I will post updates at the necessary times to provide a learning list with specific objectives for a given period. You will study these materials, and by the time you finish learning and practicing, I will have prepared the next step for you. This way, you can continue learning without interruptions.&lt;/p&gt;&lt;p&gt;Alternatively, you can provide your email in the form below the post, and I will notify you when the next guide is released to help you avoid procrastination.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/3o7TKTiQWuZ0cOmAkE.webp&quot; alt=&quot;you can run but can&apos;t hide&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;I know, the last thing you want is another blamer in your life, I will provide motivation and encouragement. My goal is to inspire you to take action and make progress. I want to be a positive force that helps you stay focused and driven, even when challenges arise.&lt;/p&gt;&lt;p&gt;And who knows, someday you might join me in helping others navigate the same path you have traveled. By sharing your experiences, insights and success story, you can inspire others who are just starting out.&lt;/p&gt;&lt;h3 id=&quot;heading-one-more-thing&quot;&gt;One more thing&lt;/h3&gt;&lt;p&gt;Let me know about your specific needs in the comments section below. Your feedback will help me tailor the content to better meet your learning needs.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;Hi everyone! Last week I launched an online &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/from-passion-to-profession-my-journey-in-mentoring-future-developers&quot;&gt;mentoring program&lt;/a&gt;. I shared my website on platforms like Reddit and Hacker News, which may have caused some confusion about my intentions. So, I&apos;m here to clarify what I&apos;m doing and why you should consider following and joining my program, which is free of charge.&lt;/p&gt;&lt;p&gt;This program is designed for individuals who want to become web developers, whether they are interested in front-end, back-end, or full-stack development. It covers various pathways to achieve this goal, including fast-track methods for those who want to quickly enter the field and more detailed, in-depth approaches for those who prefer a comprehensive understanding or want to deepen their knowledge.&lt;/p&gt;&lt;p&gt;So, if you are interested in building a career in web development or want to gain more skills and knowledge, keep reading. I will guide you through this challenging and exciting journey, providing you with valuable insights and practical tips.&lt;/p&gt;&lt;h2 id=&quot;heading-who-i-am&quot;&gt;Who I Am?&lt;/h2&gt;&lt;p&gt;I&apos;m Rami. I studied computer science in university and have been building web applications for the last 7 years. I&apos;ve been a programmer at heart for the past 15 years. I have worked with back-end frameworks such as Node.js, Express, and NestJS. In front-end development, I have experience with jQuery, Angular, React, Backbone, and many others. I have also worked with databases like SQLite, PostgreSQL, MongoDB, Redis, and so on.&lt;/p&gt;&lt;p&gt;I self-studied my entire life because I had no other options. I was living in a less developed region in a chaotic country. I found my way through web development and life, which is why I&apos;m a happy developer, sometimes even an ultra-happy developer. I learned a lot about becoming a web developer on my own and have helped and inspired many others to find their path. To date, I have mentored over 20 people and consulted countless others to become better developers.&lt;/p&gt;&lt;p&gt;20 is not a big number, but I mentor them in my own way. My program usually takes a full year to complete. During this time, I try to teach them everything they need, deepen their knowledge, help them network in the tech industry, and finally assist them in finding their dream job.&lt;/p&gt;&lt;h2 id=&quot;heading-why-im-launching-this-now&quot;&gt;Why Im Launching This Now?&lt;/h2&gt;&lt;p&gt;Well, I had plans to write about web development for ages. I started mentoring people around 3 years ago. Right now, I have started a new program where I will mentor 6 people (they are already chosen, so this is not an offer for you guys at the moment). I wanted to document the whole process to make it easier for the next round of mentoring. The stars lined up and I felt confident enough to begin this blog and program.&lt;/p&gt;&lt;p&gt;In the meantime, I expanded my network and knowledge on essential topics, accessed more learning materials, worked hard, gained a lot of experience, and discovered my methods for mentoring others to become web developers.&lt;/p&gt;&lt;p&gt;Now, I&apos;m ready to pass this knowledge on to the next generation of web developers and to those who can&apos;t access a mentor or afford premium courses. This includes people living in difficult conditions, whom I empathize with deeply.&lt;/p&gt;&lt;p&gt;So for now I have nothing to sell. It&apos;s all free, including everything you need to learn to become a programmer.&lt;/p&gt;&lt;h2 id=&quot;heading-why-you-should-try-what-im-cooking&quot;&gt;Why You Should Try What I&apos;m Cooking ?&lt;/h2&gt;&lt;p&gt;As I said, I&apos;m an experienced self-taught developer who has worked with developers and companies from Germany, the Netherlands, Switzerland, Canada, Australia, and many more. I have seen the evolution of web development firsthand, witnessing the rise and fall of numerous web frameworks. This experience has given me a unique perspective on the industry and a deep understanding of what works and what doesn&apos;t. I have navigated through the ever-changing landscape of web technologies, adapting to new trends and best practices as they emerged.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/JQMRbRkXuABUAUCH3A.webp&quot; alt=&quot;i&apos;ve seen things&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;Since I was passionate about programming and didn&apos;t have much of an actual life, I usually dedicated at least 80+ hours a month to reading posts and documents, watching courses, and following web development industry bloggers on various platforms like Twitter, YouTube, LinkedIn and many other platforms.&lt;/p&gt;&lt;p&gt;So, I get what you&apos;re aiming for, and I&apos;m confident I can help you reach your goals. I&apos;ve got the knowledge and skills to offer valuable guidance. Plus, you can check out my work by following my updates or subscribing to my newsletter. This way, you can see the impact of my work firsthand and decide if it meets your needs. I&apos;m dedicated to sharing my expertise and helping you succeed in your web development journey.&lt;/p&gt;&lt;h2 id=&quot;heading-unlock-your-potential-with-me&quot;&gt;Unlock Your Potential with Me&lt;/h2&gt;&lt;p&gt;As I mentioned before, I will document the entire process of mentoring someone with little experience and prior knowledge until they become skilled enough to find a job or pursue other opportunities.&lt;/p&gt;&lt;p&gt;I will provide detailed roadmaps with all the necessary resources you need to read, watch or practice. Each section of this journey will include one or more detailed posts (documents) where I will carefully organize the resources into different levels (These resources will be updated to fit today&apos;s trends and requirements.). These levels will progressively dive deeper into each subject, ensuring that you gain enough knowledge and insight to confidently move on to the next topic.&lt;/p&gt;&lt;p&gt;By following this structured approach, you will be able to build a solid understanding of each topic, step by step. This methodical progression will not only help you master the necessary skills but also ensure that you are well-prepared to tackle real-world challenges. My goal is to provide you with a clear and effective learning path that will guide you from a beginner to a proficient professional.&lt;/p&gt;&lt;p&gt;For now, I am planning to create two detailed roadmaps (aka slow-paced): one for front-end development and another for back-end development. Each roadmap will be carefully crafted to cover all the essential topics and skills you need in these areas.&lt;/p&gt;&lt;p&gt;I will extend these roadmaps in the near future based on your feedback and the evolving trends in the industry. By continuously updating the content, I aim to provide you with the most relevant and up-to-date information, ensuring that you stay ahead in your web development journey.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;&lt;strong&gt;A note about this roadmaps:&lt;/strong&gt; The big picture in my mind is to create roadmaps tailored to the needs of different groups of people. For example, one of you might want to become a front-end developer quickly. I will create a faster roadmap that skips some of the less necessary details to help you get ready for the market sooner. Later, you can return to deepen your knowledge, giving you the opportunity to advance faster.&lt;/div&gt;&lt;/div&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Currently, the Front-End program has been &lt;strong&gt;launched&lt;/strong&gt;, and you can explore it here: &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;&lt;strong&gt;Mastering Front-End Development: A Complete Guide&lt;/strong&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-how-to-get-started-and-stay-updated&quot;&gt;How to Get Started and Stay Updated&lt;/h2&gt;&lt;p&gt;To get started, follow me or subscribe to my newsletter. For now, I will post updates at the necessary times to provide a learning list with specific objectives for a given period. You will study these materials, and by the time you finish learning and practicing, I will have prepared the next step for you. This way, you can continue learning without interruptions.&lt;/p&gt;&lt;p&gt;Alternatively, you can provide your email in the form below the post, and I will notify you when the next guide is released to help you avoid procrastination.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://i.giphy.com/3o7TKTiQWuZ0cOmAkE.webp&quot; alt=&quot;you can run but can&apos;t hide&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;I know, the last thing you want is another blamer in your life, I will provide motivation and encouragement. My goal is to inspire you to take action and make progress. I want to be a positive force that helps you stay focused and driven, even when challenges arise.&lt;/p&gt;&lt;p&gt;And who knows, someday you might join me in helping others navigate the same path you have traveled. By sharing your experiences, insights and success story, you can inspire others who are just starting out.&lt;/p&gt;&lt;h3 id=&quot;heading-one-more-thing&quot;&gt;One more thing&lt;/h3&gt;&lt;p&gt;Let me know about your specific needs in the comments section below. Your feedback will help me tailor the content to better meet your learning needs.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/upload/v1716938231956/d9111ea1-7e0d-4fa2-a55c-bb14b69d6c08.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Front-End Development - Stage 0-1: Foundations of Web Development]]></title><description><![CDATA[Here we are at the beginning of our journey, where we will dive into the fundamental aspects of the web and the internet itself. In this first part, we will cover the basics, laying a solid foundation for more advanced topics later on. We will explor...]]></description><link>https://happydev.blog/mastering-front-end-development-stage-0-1-foundations-of-web-development</link><guid isPermaLink="true">https://happydev.blog/mastering-front-end-development-stage-0-1-foundations-of-web-development</guid><category><![CDATA[Frontend Development]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[dns]]></category><category><![CDATA[CDN]]></category><category><![CDATA[networking]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Fri, 24 May 2024 10:52:36 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;p&gt;Here we are at the beginning of &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;our journey&lt;/a&gt;, where we will dive into the fundamental aspects of the web and the internet itself. In this first part, we will cover the basics, laying a solid foundation for more advanced topics later on. We will explore how the internet works, the role of web servers and browsers, and the protocols that enable communication between them. I hope you find this introduction helpful.&lt;/p&gt;&lt;p&gt;This post won&apos;t be very long or detailed since the subject isn&apos;t that extensive. However, pay attention to the keywords in the resources I&apos;ve provided. If you&apos;re interested and want to learn more, feel free to do additional research. (If you&apos;re a nerd, you&apos;ll definitely find some interesting stuff here!)&lt;/p&gt;&lt;h2 id=&quot;heading-1-how-the-web-workshttpsdevelopermozillaorgen-usdocslearngettingstartedwiththewebhowthewebworks-and-web-mechanicshttpsdevelopermozillaorgen-usdocslearncommonquestionswebmechanics-by-mdn&quot;&gt;1) &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;&lt;strong&gt;How the web works&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;&lt;strong&gt;Web mechanics&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;Start with the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;How the web works&lt;/a&gt;&quot; guide. This article gives a basic overview of the web&apos;s functionality. After understanding the basics, read the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;Web mechanics&lt;/a&gt;&quot; guide. This guide dive deeper into web mechanics, providing detailed explanations on more topics.&lt;/p&gt;&lt;h2 id=&quot;heading-2-how-does-the-internet-workhttpswebstanfordeduclassmsande91siwww-spr04readingsweek1internetwhitepaperhtm-and-how-internet-infrastructure-workshttpswebstanfordeduclassmsande91siwww-spr04readingsweek1howstuffworkshtm-by-stanford&quot;&gt;2) &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;&lt;strong&gt;How Does the Internet Work?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;&lt;strong&gt;How Internet Infrastructure Works?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Stanford&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;These two guides are also about the basic aspects of the web and internet infrastructure. &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;How Does the Internet Work?&lt;/a&gt;&quot; explains the underlying principles of internet communication, including IP addresses, data packets, and the role of Internet Service Providers (ISPs). &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;How Internet Infrastructure Works?&lt;/a&gt;&quot; goes further into the physical and technical components that make up the internet.&lt;/p&gt;&lt;p&gt;Also feel free to wonder around the links provide in Related &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm#:~:text=Related%20HowStuffWorks%20Articles&quot;&gt;HowStuffWorks Articles&lt;/a&gt;&quot; links. they contain valuable information.&lt;/p&gt;&lt;h2 id=&quot;heading-3-introduction-to-dnshttpswwwdigitaloceancomcommunitytutorialsan-introduction-to-dns-terminology-components-and-concepts-and-comparison-of-dns-server-typeshttpswwwdigitaloceancomcommunitytutorialsa-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration-by-digitalocean&quot;&gt;3) &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;&lt;strong&gt;Introduction to DNS&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;&lt;strong&gt;Comparison of DNS Server Types&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by D&lt;/strong&gt;igitalOcean 🆓&lt;/h2&gt;&lt;p&gt;these two articles will give you enough understanding on what a dns is, how it work and so on.&lt;/p&gt;&lt;p&gt;These two articles will provide you a good understanding of what DNS is and how it functions. The first article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;Introduction to DNS&lt;/a&gt;&quot;, covers the basics of the Domain Name System, explaining its purpose, how it translates domain names into IP addresses, and its role in internet navigation. The second article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;Comparison of DNS Server Types&lt;/a&gt;&quot;, dives deeper into the different types of DNS servers.&lt;/p&gt;&lt;p&gt;Additionally, if you prefer learning through videos, you might find this video (&lt;strong&gt;DNS Explained&lt;/strong&gt;) to be an excellent resource.&lt;/p&gt;&lt;div class=&quot;embed-wrapper&quot;&gt;&lt;div class=&quot;embed-loading&quot;&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;a class=&quot;embed-card&quot; href=&quot;https://www.youtube.com/watch?v=72snZctFFtA&quot;&gt;https://www.youtube.com/watch?v=72snZctFFtA&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;h1 id=&quot;heading-4-what-is-a-content-delivery-network-cdnhttpswwwcloudflarecomlearningcdnwhat-is-a-cdn-by-cloudflare&quot;&gt;&lt;strong&gt;4)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-a-cdn/&quot;&gt;&lt;strong&gt;What is a content delivery network (CDN)?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by&lt;/strong&gt; Cloudflare 🆓&lt;/h1&gt;&lt;p&gt;These article is written by Cloudflare, one of the biggest DNS service providers. Read this article and feel free to click on the keywords you see on the page. It contains a lot of information on topics like &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-caching/&quot;&gt;caching&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/cdn-ssl-tls-security/&quot;&gt;security&lt;/a&gt;, and &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/serverless/glossary/what-is-edge-computing/&quot;&gt;edge computing&lt;/a&gt;.&lt;/p&gt;&lt;h1 id=&quot;heading-5-how-browsers-workhttpsdevelopermozillaorgen-usdocswebperformancehowbrowserswork-by-mdn&quot;&gt;&lt;strong&gt;5)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;&lt;strong&gt;how browsers work&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h1&gt;&lt;p&gt;After understanding DNS and CDNs, we&apos;ll dive into &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;how browsers work&lt;/a&gt;&quot;. Browsers are essential tools for accessing and navigating the web, and understanding their functionality can greatly enhance your web development skills.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;To be continued&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts necessary to begin our learning journey. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;p&gt;Here we are at the beginning of &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;our journey&lt;/a&gt;, where we will dive into the fundamental aspects of the web and the internet itself. In this first part, we will cover the basics, laying a solid foundation for more advanced topics later on. We will explore how the internet works, the role of web servers and browsers, and the protocols that enable communication between them. I hope you find this introduction helpful.&lt;/p&gt;&lt;p&gt;This post won&apos;t be very long or detailed since the subject isn&apos;t that extensive. However, pay attention to the keywords in the resources I&apos;ve provided. If you&apos;re interested and want to learn more, feel free to do additional research. (If you&apos;re a nerd, you&apos;ll definitely find some interesting stuff here!)&lt;/p&gt;&lt;h2 id=&quot;heading-1-how-the-web-workshttpsdevelopermozillaorgen-usdocslearngettingstartedwiththewebhowthewebworks-and-web-mechanicshttpsdevelopermozillaorgen-usdocslearncommonquestionswebmechanics-by-mdn&quot;&gt;1) &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;&lt;strong&gt;How the web works&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;&lt;strong&gt;Web mechanics&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;Start with the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works&quot;&gt;How the web works&lt;/a&gt;&quot; guide. This article gives a basic overview of the web&apos;s functionality. After understanding the basics, read the &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Learn/Common_questions/Web_mechanics&quot;&gt;Web mechanics&lt;/a&gt;&quot; guide. This guide dive deeper into web mechanics, providing detailed explanations on more topics.&lt;/p&gt;&lt;h2 id=&quot;heading-2-how-does-the-internet-workhttpswebstanfordeduclassmsande91siwww-spr04readingsweek1internetwhitepaperhtm-and-how-internet-infrastructure-workshttpswebstanfordeduclassmsande91siwww-spr04readingsweek1howstuffworkshtm-by-stanford&quot;&gt;2) &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;&lt;strong&gt;How Does the Internet Work?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;&lt;strong&gt;How Internet Infrastructure Works?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by Stanford&lt;/strong&gt; 🆓&lt;/h2&gt;&lt;p&gt;These two guides are also about the basic aspects of the web and internet infrastructure. &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm&quot;&gt;How Does the Internet Work?&lt;/a&gt;&quot; explains the underlying principles of internet communication, including IP addresses, data packets, and the role of Internet Service Providers (ISPs). &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm&quot;&gt;How Internet Infrastructure Works?&lt;/a&gt;&quot; goes further into the physical and technical components that make up the internet.&lt;/p&gt;&lt;p&gt;Also feel free to wonder around the links provide in Related &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/Howstuffworks.htm#:~:text=Related%20HowStuffWorks%20Articles&quot;&gt;HowStuffWorks Articles&lt;/a&gt;&quot; links. they contain valuable information.&lt;/p&gt;&lt;h2 id=&quot;heading-3-introduction-to-dnshttpswwwdigitaloceancomcommunitytutorialsan-introduction-to-dns-terminology-components-and-concepts-and-comparison-of-dns-server-typeshttpswwwdigitaloceancomcommunitytutorialsa-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration-by-digitalocean&quot;&gt;3) &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;&lt;strong&gt;Introduction to DNS&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;&lt;strong&gt;Comparison of DNS Server Types&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by D&lt;/strong&gt;igitalOcean 🆓&lt;/h2&gt;&lt;p&gt;these two articles will give you enough understanding on what a dns is, how it work and so on.&lt;/p&gt;&lt;p&gt;These two articles will provide you a good understanding of what DNS is and how it functions. The first article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts&quot;&gt;Introduction to DNS&lt;/a&gt;&quot;, covers the basics of the Domain Name System, explaining its purpose, how it translates domain names into IP addresses, and its role in internet navigation. The second article, &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://www.digitalocean.com/community/tutorials/a-comparison-of-dns-server-types-how-to-choose-the-right-dns-configuration&quot;&gt;Comparison of DNS Server Types&lt;/a&gt;&quot;, dives deeper into the different types of DNS servers.&lt;/p&gt;&lt;p&gt;Additionally, if you prefer learning through videos, you might find this video (&lt;strong&gt;DNS Explained&lt;/strong&gt;) to be an excellent resource.&lt;/p&gt;&lt;div class=&quot;embed-wrapper&quot;&gt;&lt;div class=&quot;embed-loading&quot;&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;div class=&quot;loadingRow&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;a class=&quot;embed-card&quot; href=&quot;https://www.youtube.com/watch?v=72snZctFFtA&quot;&gt;https://www.youtube.com/watch?v=72snZctFFtA&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;h1 id=&quot;heading-4-what-is-a-content-delivery-network-cdnhttpswwwcloudflarecomlearningcdnwhat-is-a-cdn-by-cloudflare&quot;&gt;&lt;strong&gt;4)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-a-cdn/&quot;&gt;&lt;strong&gt;What is a content delivery network (CDN)?&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by&lt;/strong&gt; Cloudflare 🆓&lt;/h1&gt;&lt;p&gt;These article is written by Cloudflare, one of the biggest DNS service providers. Read this article and feel free to click on the keywords you see on the page. It contains a lot of information on topics like &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/what-is-caching/&quot;&gt;caching&lt;/a&gt;, &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/cdn/cdn-ssl-tls-security/&quot;&gt;security&lt;/a&gt;, and &lt;a target=&quot;_blank&quot; href=&quot;https://www.cloudflare.com/learning/serverless/glossary/what-is-edge-computing/&quot;&gt;edge computing&lt;/a&gt;.&lt;/p&gt;&lt;h1 id=&quot;heading-5-how-browsers-workhttpsdevelopermozillaorgen-usdocswebperformancehowbrowserswork-by-mdn&quot;&gt;&lt;strong&gt;5)&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;&lt;strong&gt;how browsers work&lt;/strong&gt;&lt;/a&gt; &lt;strong&gt;by MDN 🆓&lt;/strong&gt;&lt;/h1&gt;&lt;p&gt;After understanding DNS and CDNs, we&apos;ll dive into &quot;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work&quot;&gt;how browsers work&lt;/a&gt;&quot;. Browsers are essential tools for accessing and navigating the web, and understanding their functionality can greatly enhance your web development skills.&lt;/p&gt;&lt;h2 id=&quot;heading-to-be-continued&quot;&gt;To be continued&lt;/h2&gt;&lt;p&gt;In this post, we covered the fundamental concepts necessary to begin our learning journey. In the upcoming parts, we will dive deeper into more advanced topics. Stay tuned for the next part, where we will continue to expand our knowledge and explore these exciting topics in greater detail.&lt;/p&gt;&lt;p&gt;Don&apos;t miss the next part by subscribing to my newsletter.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/upload/v1716548637771/ac990025-8140-47d4-afc1-d8f586c07562.jpeg</hashnode:coverImage></item><item><title><![CDATA[Mastering Front-End Development: A Complete Guide]]></title><description><![CDATA[Start your path to front-end development expertise with this detailed guide.]]></description><link>https://happydev.blog/mastering-front-end-development-a-comprehensive-guide</link><guid isPermaLink="true">https://happydev.blog/mastering-front-end-development-a-comprehensive-guide</guid><category><![CDATA[React]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[teaching]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Thu, 23 May 2024 15:06:16 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;h2 id=&quot;heading-your-front-end-development-journey-begins-here&quot;&gt;Your Front-End Development Journey Begins Here&lt;/h2&gt;&lt;p&gt;Welcome to the start of an exciting journey in front-end development! I&apos;m thrilled guiding you step-by-step from the very basics to advanced concepts and frameworks. In this blog series, I will break down complex topics into manageable, easy-to-understand posts published weekly. (&lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/master-web-development-free-mentorship-program&quot;&gt;For more Context please read this post&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Each post is designed to build on the previous one, ensuring you develop a solid foundation before moving on to more advanced topics. Together, we&apos;ll explore the essential skills and knowledge needed to become a proficient front-end developer.&lt;/p&gt;&lt;p&gt;Get ready to dive deep, ask questions, and apply what you learn. By the end of this series, you&apos;ll not only have a comprehensive understanding of front-end development but also the confidence to create your own web projects. Let&apos;s embark on this learning adventure together!&lt;/p&gt;&lt;h2 id=&quot;heading-stage-0-foundations-of-web-developmenthttpshappydevblogmastering-front-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Stage 0:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Foundations of Web Development&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we start learning HTML or CSS and before we dive into meta frameworks, we need to build a foundation for our journey. How can you be a good front-end developer if you don&apos;t know what HTTP is? How will you handle caching if you&apos;ve never heard of a CDN? Hypothetically, if you build a website, how will the world find a route to your servers?&lt;/p&gt;&lt;p&gt;Unfortunately, many new front-end developers today jump straight into learning React. They often skip the basic concepts that are crucial for a solid understanding of web development. These foundational topics are essential for becoming a skilled front-end developer, yet they are often overlooked in favor of popular choices.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExN25jZ211cmIwMDB4Zzdscng5d2c5bzcydHVubWlsZ3lvYmVnOXVtbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT1R9ZnkR6ewpgAUTe/giphy.gif&quot; alt=&quot;Kids this days!&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;This might seem a bit tedious at times, but this is where the distinction between a good and a bad front-end developer is made. I assure you, this line becomes more bold and significant as you progress in your journey. As you get deeper into front-end development, the importance of these basics will become increasingly clear.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;How does the internet work? - (web pages, networking and web servers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;How we talk to each other? - (ip, dns, tcp, HTTP, browsers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Who are you? - (protocol, domain, tld, url)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Where are you? - (vps/v ds hosting, edge computing)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-1-html-the-backbone-of-web-pageshttpshappydevblogmastering-front-end-development-stage-1-the-backbone-of-web-pages-html-and-accessibility&quot;&gt;&lt;strong&gt;Stage 1:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-1-the-backbone-of-web-pages-html-and-accessibility&quot;&gt;&lt;strong&gt;HTML - The Backbone of Web Pages&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;We, as front-end developers, are responsible for creating user-friendly and accessible interfaces. Our journey begins with HTML, which serves as the backbone of any web page. HTML provides the fundamental structure, much like the skeleton of a body, upon which everything else is built. It defines the layout and organizes the content, ensuring that the page is both readable and navigable. This initial step is crucial, as it sets the stage for creating well-structured, accessible, and efficient web pages that meet the needs of all users.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Html basics&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Html tags&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Semantic elements (plus a little bit of seo)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Accessibility&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Forms and validation&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Well, it&apos;s not a lot, but it&apos;s crucial, especially accessibility. Later, you will understand what I&apos;m talking about and why I&apos;m emphasizing it so much.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-2-css-bringing-life-to-web-pageshttpshappydevblogmastering-front-end-development-stage-2-css-bringing-life-to-web-pages&quot;&gt;&lt;strong&gt;Stage 2:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-2-css-bringing-life-to-web-pages&quot;&gt;&lt;strong&gt;CSS - Bringing Life to Web Pages&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Without CSS, it is possible to have web pages, but they would look like primitive cave paintings. CSS, or Cascading Style Sheets, brings life and vibrancy to web pages by allowing us to style and layout our HTML content. It enables us to define colors, fonts, spacing, and positioning, transforming a plain HTML structure into a visually appealing and human-friendly interface.&lt;/p&gt;&lt;p&gt;CSS also plays an important role in ensuring that web pages are responsive and adaptable to different screen sizes and devices, providing a consistent experience for all users.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;CSS basics&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Selectors and naming conventions&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Units and variables&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Box sizing and positioning&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;At this point, we won&apos;t worry about the responsiveness of our pages yet. We will practice and create some beautiful web pages.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-3-javascript-basics-adding-interactivityhttpshappydevblogmastering-front-end-development-stage-3-javascript-basics-adding-interactivityshowsharertrue&quot;&gt;&lt;strong&gt;Stage 3:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-3-javascript-basics-adding-interactivity?showSharer=true&quot;&gt;&lt;strong&gt;JavaScript Basics - Adding Interactivity&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Alright, now that we have a basic understanding of how the web works, along with foundational knowledge of HTML and CSS, we can move on to creating our first interactive web page. This is where JavaScript (JS) comes into play. JavaScript is a powerful scripting language that allows us to add interactivity and dynamic behavior to our web pages.&lt;/p&gt;&lt;p&gt;With JavaScript, we can create features like image sliders, interactive maps and much more. It enables us to manipulate the page content (HTML or CSS), respond to user actions, and communicate with servers to fetch or send data.&lt;/p&gt;&lt;p&gt;To get started, we will:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basics of JavaScript syntax and structure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Dom and Dom manipulation&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fetch and Fetch api&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Event handling in respond to user actions&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By the end of this stage, you will be able to build web pages that not only look good but also engage users with interactive features. This will set the foundation for more advanced JavaScript concepts and frameworks that we will explore later.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-4-advanced-css-enhancing-styling-skills&quot;&gt;Stage 4: Advanced CSS - Enhancing Styling Skills&lt;/h2&gt;&lt;p&gt;Now that we have a solid foundation in HTML, CSS, and JavaScript, it&apos;s time to further enhance our skills. In this step, we will focus more on styling. As a front-end developer, being skilled in styling is essential.&lt;/p&gt;&lt;p&gt;We will also cover responsive design, ensuring you can create pages that look good on any screen size or device. This means your web pages will automatically adjust and rearrange their layout to provide an optimal viewing experience, whether they are viewed on a desktop, tablet, or smartphone.&lt;/p&gt;&lt;p&gt;In this stage, we will dive deeper into CSS by learning:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Flex and Grid&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Animations and Transitions:&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Responsive Design&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Advanced Selectors and Pseudo-Classes&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By the end of this stage, you will have a comprehensive understanding of advanced CSS techniques. You will be able to create web pages that are not only aesthetically pleasing but also highly functional and responsive. This will significantly improve your front-end development skills and prepare you for tackling more complex projects in the future.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;For historical context, we might also learn about CSS preprocessors like Sass and Less. They are still widely used in the industry, even though modern tools like Tailwind are more popular.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-stage-5-advanced-javascript-deepening-your-knowledge&quot;&gt;Stage 5: Advanced JavaScript - Deepening Your Knowledge&lt;/h2&gt;&lt;p&gt;Alright, here we are. We have reached the gates of modern front-end development. Learning React or Next.js begins here. In this stage, we will move beyond just templates (HTML &amp;amp; CSS) and dive deep into JavaScript. before we start learning modern frameworks its necessary to learn more about JS.&lt;/p&gt;&lt;p&gt;in this stage we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Asynchronousity&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Class and objects (OOP)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Modules&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Scripts (Npm, Yarn, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;JS runtime environments (like v8)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;DOM diffing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;State and stitching state to DOM&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I should mention that these topics are not all you should learn. There are many other subjects like &lt;strong&gt;TypeScript&lt;/strong&gt;, bundling, and more that we will cover later at the appropriate time.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Learning TypeScript is beneficial for new web developers because it adds static types to JavaScript, helping catch errors early and making code easier to maintain. Its strong typing system and tools improve productivity and code quality, and it&apos;s widely used in the industry, enhancing job opportunities. Mastering TypeScript leads to more robust, scalable, and professional code, setting you apart in web development.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;While I admit that these subjects may seem overwhelming (and let&apos;s be honest, a bit strange and scary), learning them is essential.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExMTh6NzJ4ZDd0ZzVwNHNqMzFxeTBoMzdtcjFmeGJ4cWNiNDNsZW82cyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/aCatQNctAK7PC1H4zh/giphy.gif&quot; alt=&quot;This i the way&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;This is going to be challenging, but you are going to become a fantastic front-end developer.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-6-pre-react-essentials&quot;&gt;Stage 6: Pre-React Essentials&lt;/h2&gt;&lt;p&gt;In this step, we will dive into and practice several important subjects that are crucial before starting to learn React. These subjects include GIT, Tailwind CSS, and a bit of VSCode customization (don&apos;t be worry by the way, i will convert you to that guy who lives in arch and codes in neovim, just give me the required amount of time and you will be the wizard)&lt;/p&gt;&lt;p&gt;In this stage we will learn more about the following subjects&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Tailwind CSS&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;GIT&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VS code and its ecosystem&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-7-mastering-react&quot;&gt;Stage 7: Mastering React&lt;/h2&gt;&lt;p&gt;React is a web development library. For many years it was just a front-end library, but in recent year, with the introduction of many server-side features, it is becoming more and more of a full-stack framework.&lt;/p&gt;&lt;p&gt;If you choose to step in this road, next years of your life would get dedicated to learning and digging deeper in react ecosystem.&lt;/p&gt;&lt;details&gt;&lt;summary&gt;Heads up!&lt;/summary&gt;&lt;div data-type=&quot;detailsContent&quot;&gt;React is a library with over a decade of history. It&apos;s widely used in the industry, and many solutions and use cases have developed around it. Today, React is not just a web framework. By learning React, you can create web apps, mobile apps, and even desktop apps that can run on most operating systems. However, it&apos;s important to note that learning React alone is not enough to develop apps for other platforms. You also need to learn other tools like React Native, Expo, Electron and many more!&lt;/div&gt;&lt;/details&gt;&lt;p&gt;This are going to be the subjects that we will learn:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Components and their life cycle&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;JSX and templates in react&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Hooks and state management&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Different Styling methods&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Rendering&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Routing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Forms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Testing and bundling&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UI libraries (Shadcn, Headless UI, ...)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-8-exploring-meta-frameworks-nextjs&quot;&gt;Stage 8: Exploring Meta Frameworks - Next.js&lt;/h2&gt;&lt;p&gt;After we learned about react we will continue our journey with Next. Next.js is built on top of React, enhancing it with additional features and optimizations. It is often considered the next step for React developers who want to build more robust and scalable applications.&lt;/p&gt;&lt;p&gt;Next.js provides server-side rendering, static site generation, and API routes, making it a powerful tool for creating dynamic and high-performance web applications. It simplifies many of the complexities involved in setting up a React project, offering built-in support for routing, data fetching, and more.&lt;/p&gt;&lt;p&gt;By mastering Next.js, you will be able to build full-fledged applications that are not only efficient but also SEO-friendly and fast. This stage of learning will involve diving deep into the features and capabilities of Next.js, understanding how it extends React, and exploring best practices for building modern web applications.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;There are many other alternatives to Next.js, like Remix.js. I personally prefer Remix because it relies on standard web APIs and has fewer magical elements. However, since Next.js is widely adopted across the industry, you have more access to learning materials and better chances of finding a job.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;in this stage we will learn about the following subjects:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Routing, Navigation and pages (api, layouts, middlewares, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data fetching and catching&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Rendering paradigms (CSR, SSR, SSG, ISR)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Client/Server paradigms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Authentication and security&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Asset optimization (images, fonts, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Streaming, Error handling and debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;SEO&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;internationalization&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Edge runtime&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-continuous-learning-and-future-steps&quot;&gt;Continuous Learning and Future Steps&lt;/h2&gt;&lt;p&gt;Learning React, Next.js, and other front-end topics is an ongoing journey. This guide is a good starting point, but web development is vast and always changing.&lt;/p&gt;&lt;p&gt;In the near future, I will dive deeper into each topic, providing more detailed tutorials and insights. As we progress, I may add or remove subjects based on the latest industry trends and best practices.&lt;/p&gt;&lt;p&gt;We will explore specific libraries and tools that I believe are beneficial for your development journey. Stay tuned for more in-depth content, and remember, the key to becoming a proficient developer is continuous learning and adaptation. Together, we will navigate the complexities of modern web development and enhance our skills, one step at a time.&lt;/p&gt;&lt;p&gt;At the end, please consider subscribing to my newsletter. In this weekly newsletter, I will share everything you need to learn about web development. You can expect detailed articles, tutorials, and tips on a wide range of topics.&lt;/p&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;h2 id=&quot;heading-your-front-end-development-journey-begins-here&quot;&gt;Your Front-End Development Journey Begins Here&lt;/h2&gt;&lt;p&gt;Welcome to the start of an exciting journey in front-end development! I&apos;m thrilled guiding you step-by-step from the very basics to advanced concepts and frameworks. In this blog series, I will break down complex topics into manageable, easy-to-understand posts published weekly. (&lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/master-web-development-free-mentorship-program&quot;&gt;For more Context please read this post&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Each post is designed to build on the previous one, ensuring you develop a solid foundation before moving on to more advanced topics. Together, we&apos;ll explore the essential skills and knowledge needed to become a proficient front-end developer.&lt;/p&gt;&lt;p&gt;Get ready to dive deep, ask questions, and apply what you learn. By the end of this series, you&apos;ll not only have a comprehensive understanding of front-end development but also the confidence to create your own web projects. Let&apos;s embark on this learning adventure together!&lt;/p&gt;&lt;h2 id=&quot;heading-stage-0-foundations-of-web-developmenthttpshappydevblogmastering-front-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Stage 0:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-0-1-foundations-of-web-development&quot;&gt;&lt;strong&gt;Foundations of Web Development&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Before we start learning HTML or CSS and before we dive into meta frameworks, we need to build a foundation for our journey. How can you be a good front-end developer if you don&apos;t know what HTTP is? How will you handle caching if you&apos;ve never heard of a CDN? Hypothetically, if you build a website, how will the world find a route to your servers?&lt;/p&gt;&lt;p&gt;Unfortunately, many new front-end developers today jump straight into learning React. They often skip the basic concepts that are crucial for a solid understanding of web development. These foundational topics are essential for becoming a skilled front-end developer, yet they are often overlooked in favor of popular choices.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExN25jZ211cmIwMDB4Zzdscng5d2c5bzcydHVubWlsZ3lvYmVnOXVtbiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT1R9ZnkR6ewpgAUTe/giphy.gif&quot; alt=&quot;Kids this days!&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;This might seem a bit tedious at times, but this is where the distinction between a good and a bad front-end developer is made. I assure you, this line becomes more bold and significant as you progress in your journey. As you get deeper into front-end development, the importance of these basics will become increasingly clear.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;How does the internet work? - (web pages, networking and web servers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;How we talk to each other? - (ip, dns, tcp, HTTP, browsers)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Who are you? - (protocol, domain, tld, url)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Where are you? - (vps/v ds hosting, edge computing)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-1-html-the-backbone-of-web-pageshttpshappydevblogmastering-front-end-development-stage-1-the-backbone-of-web-pages-html-and-accessibility&quot;&gt;&lt;strong&gt;Stage 1:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-1-the-backbone-of-web-pages-html-and-accessibility&quot;&gt;&lt;strong&gt;HTML - The Backbone of Web Pages&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;We, as front-end developers, are responsible for creating user-friendly and accessible interfaces. Our journey begins with HTML, which serves as the backbone of any web page. HTML provides the fundamental structure, much like the skeleton of a body, upon which everything else is built. It defines the layout and organizes the content, ensuring that the page is both readable and navigable. This initial step is crucial, as it sets the stage for creating well-structured, accessible, and efficient web pages that meet the needs of all users.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Html basics&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Html tags&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Semantic elements (plus a little bit of seo)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Accessibility&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Forms and validation&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Well, it&apos;s not a lot, but it&apos;s crucial, especially accessibility. Later, you will understand what I&apos;m talking about and why I&apos;m emphasizing it so much.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-2-css-bringing-life-to-web-pageshttpshappydevblogmastering-front-end-development-stage-2-css-bringing-life-to-web-pages&quot;&gt;&lt;strong&gt;Stage 2:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-2-css-bringing-life-to-web-pages&quot;&gt;&lt;strong&gt;CSS - Bringing Life to Web Pages&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Without CSS, it is possible to have web pages, but they would look like primitive cave paintings. CSS, or Cascading Style Sheets, brings life and vibrancy to web pages by allowing us to style and layout our HTML content. It enables us to define colors, fonts, spacing, and positioning, transforming a plain HTML structure into a visually appealing and human-friendly interface.&lt;/p&gt;&lt;p&gt;CSS also plays an important role in ensuring that web pages are responsive and adaptable to different screen sizes and devices, providing a consistent experience for all users.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;CSS basics&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Selectors and naming conventions&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Units and variables&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Box sizing and positioning&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;At this point, we won&apos;t worry about the responsiveness of our pages yet. We will practice and create some beautiful web pages.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-3-javascript-basics-adding-interactivityhttpshappydevblogmastering-front-end-development-stage-3-javascript-basics-adding-interactivityshowsharertrue&quot;&gt;&lt;strong&gt;Stage 3:&lt;/strong&gt; &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-stage-3-javascript-basics-adding-interactivity?showSharer=true&quot;&gt;&lt;strong&gt;JavaScript Basics - Adding Interactivity&lt;/strong&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Alright, now that we have a basic understanding of how the web works, along with foundational knowledge of HTML and CSS, we can move on to creating our first interactive web page. This is where JavaScript (JS) comes into play. JavaScript is a powerful scripting language that allows us to add interactivity and dynamic behavior to our web pages.&lt;/p&gt;&lt;p&gt;With JavaScript, we can create features like image sliders, interactive maps and much more. It enables us to manipulate the page content (HTML or CSS), respond to user actions, and communicate with servers to fetch or send data.&lt;/p&gt;&lt;p&gt;To get started, we will:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Basics of JavaScript syntax and structure&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Dom and Dom manipulation&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Fetch and Fetch api&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Event handling in respond to user actions&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By the end of this stage, you will be able to build web pages that not only look good but also engage users with interactive features. This will set the foundation for more advanced JavaScript concepts and frameworks that we will explore later.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-4-advanced-css-enhancing-styling-skills&quot;&gt;Stage 4: Advanced CSS - Enhancing Styling Skills&lt;/h2&gt;&lt;p&gt;Now that we have a solid foundation in HTML, CSS, and JavaScript, it&apos;s time to further enhance our skills. In this step, we will focus more on styling. As a front-end developer, being skilled in styling is essential.&lt;/p&gt;&lt;p&gt;We will also cover responsive design, ensuring you can create pages that look good on any screen size or device. This means your web pages will automatically adjust and rearrange their layout to provide an optimal viewing experience, whether they are viewed on a desktop, tablet, or smartphone.&lt;/p&gt;&lt;p&gt;In this stage, we will dive deeper into CSS by learning:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Flex and Grid&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Animations and Transitions:&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Responsive Design&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Advanced Selectors and Pseudo-Classes&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;By the end of this stage, you will have a comprehensive understanding of advanced CSS techniques. You will be able to create web pages that are not only aesthetically pleasing but also highly functional and responsive. This will significantly improve your front-end development skills and prepare you for tackling more complex projects in the future.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;For historical context, we might also learn about CSS preprocessors like Sass and Less. They are still widely used in the industry, even though modern tools like Tailwind are more popular.&lt;/div&gt;&lt;/div&gt;&lt;h2 id=&quot;heading-stage-5-advanced-javascript-deepening-your-knowledge&quot;&gt;Stage 5: Advanced JavaScript - Deepening Your Knowledge&lt;/h2&gt;&lt;p&gt;Alright, here we are. We have reached the gates of modern front-end development. Learning React or Next.js begins here. In this stage, we will move beyond just templates (HTML &amp;amp; CSS) and dive deep into JavaScript. before we start learning modern frameworks its necessary to learn more about JS.&lt;/p&gt;&lt;p&gt;in this stage we will learn about:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Asynchronousity&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Class and objects (OOP)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Modules&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Scripts (Npm, Yarn, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;JS runtime environments (like v8)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;DOM diffing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;State and stitching state to DOM&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I should mention that these topics are not all you should learn. There are many other subjects like &lt;strong&gt;TypeScript&lt;/strong&gt;, bundling, and more that we will cover later at the appropriate time.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Learning TypeScript is beneficial for new web developers because it adds static types to JavaScript, helping catch errors early and making code easier to maintain. Its strong typing system and tools improve productivity and code quality, and it&apos;s widely used in the industry, enhancing job opportunities. Mastering TypeScript leads to more robust, scalable, and professional code, setting you apart in web development.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;While I admit that these subjects may seem overwhelming (and let&apos;s be honest, a bit strange and scary), learning them is essential.&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://media3.giphy.com/media/v1.Y2lkPTc5MGI3NjExMTh6NzJ4ZDd0ZzVwNHNqMzFxeTBoMzdtcjFmeGJ4cWNiNDNsZW82cyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/aCatQNctAK7PC1H4zh/giphy.gif&quot; alt=&quot;This i the way&quot; class=&quot;image--center mx-auto&quot; /&gt;&lt;/p&gt;&lt;p&gt;This is going to be challenging, but you are going to become a fantastic front-end developer.&lt;/p&gt;&lt;h2 id=&quot;heading-stage-6-pre-react-essentials&quot;&gt;Stage 6: Pre-React Essentials&lt;/h2&gt;&lt;p&gt;In this step, we will dive into and practice several important subjects that are crucial before starting to learn React. These subjects include GIT, Tailwind CSS, and a bit of VSCode customization (don&apos;t be worry by the way, i will convert you to that guy who lives in arch and codes in neovim, just give me the required amount of time and you will be the wizard)&lt;/p&gt;&lt;p&gt;In this stage we will learn more about the following subjects&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Tailwind CSS&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;GIT&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;VS code and its ecosystem&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-7-mastering-react&quot;&gt;Stage 7: Mastering React&lt;/h2&gt;&lt;p&gt;React is a web development library. For many years it was just a front-end library, but in recent year, with the introduction of many server-side features, it is becoming more and more of a full-stack framework.&lt;/p&gt;&lt;p&gt;If you choose to step in this road, next years of your life would get dedicated to learning and digging deeper in react ecosystem.&lt;/p&gt;&lt;details&gt;&lt;summary&gt;Heads up!&lt;/summary&gt;&lt;div data-type=&quot;detailsContent&quot;&gt;React is a library with over a decade of history. It&apos;s widely used in the industry, and many solutions and use cases have developed around it. Today, React is not just a web framework. By learning React, you can create web apps, mobile apps, and even desktop apps that can run on most operating systems. However, it&apos;s important to note that learning React alone is not enough to develop apps for other platforms. You also need to learn other tools like React Native, Expo, Electron and many more!&lt;/div&gt;&lt;/details&gt;&lt;p&gt;This are going to be the subjects that we will learn:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Components and their life cycle&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;JSX and templates in react&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Hooks and state management&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Different Styling methods&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Rendering&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Routing&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Forms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Testing and bundling&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;UI libraries (Shadcn, Headless UI, ...)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-stage-8-exploring-meta-frameworks-nextjs&quot;&gt;Stage 8: Exploring Meta Frameworks - Next.js&lt;/h2&gt;&lt;p&gt;After we learned about react we will continue our journey with Next. Next.js is built on top of React, enhancing it with additional features and optimizations. It is often considered the next step for React developers who want to build more robust and scalable applications.&lt;/p&gt;&lt;p&gt;Next.js provides server-side rendering, static site generation, and API routes, making it a powerful tool for creating dynamic and high-performance web applications. It simplifies many of the complexities involved in setting up a React project, offering built-in support for routing, data fetching, and more.&lt;/p&gt;&lt;p&gt;By mastering Next.js, you will be able to build full-fledged applications that are not only efficient but also SEO-friendly and fast. This stage of learning will involve diving deep into the features and capabilities of Next.js, understanding how it extends React, and exploring best practices for building modern web applications.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;There are many other alternatives to Next.js, like Remix.js. I personally prefer Remix because it relies on standard web APIs and has fewer magical elements. However, since Next.js is widely adopted across the industry, you have more access to learning materials and better chances of finding a job.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;in this stage we will learn about the following subjects:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;Routing, Navigation and pages (api, layouts, middlewares, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Data fetching and catching&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Rendering paradigms (CSR, SSR, SSG, ISR)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Client/Server paradigms&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Authentication and security&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Asset optimization (images, fonts, ...)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Streaming, Error handling and debugging&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;SEO&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;internationalization&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Edge runtime&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=&quot;heading-continuous-learning-and-future-steps&quot;&gt;Continuous Learning and Future Steps&lt;/h2&gt;&lt;p&gt;Learning React, Next.js, and other front-end topics is an ongoing journey. This guide is a good starting point, but web development is vast and always changing.&lt;/p&gt;&lt;p&gt;In the near future, I will dive deeper into each topic, providing more detailed tutorials and insights. As we progress, I may add or remove subjects based on the latest industry trends and best practices.&lt;/p&gt;&lt;p&gt;We will explore specific libraries and tools that I believe are beneficial for your development journey. Stay tuned for more in-depth content, and remember, the key to becoming a proficient developer is continuous learning and adaptation. Together, we will navigate the complexities of modern web development and enhance our skills, one step at a time.&lt;/p&gt;&lt;p&gt;At the end, please consider subscribing to my newsletter. In this weekly newsletter, I will share everything you need to learn about web development. You can expect detailed articles, tutorials, and tips on a wide range of topics.&lt;/p&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/upload/v1716472639976/a0f0bb0f-2ae6-4600-b340-b48d7dfd9635.jpeg</hashnode:coverImage></item><item><title><![CDATA[From Passion to Profession: My Journey in Mentoring Future Developers]]></title><description><![CDATA[Explore how my empowering mentorship journey transformed aspiring individuals into successful web developers. Discover insights, challenges and ...]]></description><link>https://happydev.blog/from-passion-to-profession-my-journey-in-mentoring-future-developers</link><guid isPermaLink="true">https://happydev.blog/from-passion-to-profession-my-journey-in-mentoring-future-developers</guid><category><![CDATA[#programming journey]]></category><category><![CDATA[mentorship]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[Backend Development]]></category><category><![CDATA[mentoring]]></category><dc:creator><![CDATA[Rami Mo]]></dc:creator><pubDate>Sun, 19 May 2024 06:02:50 GMT</pubDate><content:encoded>&lt;![CDATA[&lt;h2 id=&quot;heading-how-it-began&quot;&gt;&lt;strong&gt;How It Began&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;I was born in a remote area where I had no idea what programming was. My first encounter with a computer was love at first sight. From that moment on, I dedicated the following years of my life to becoming a programmer.&lt;/p&gt;&lt;p&gt;I pursued a degree in computer science in college, where I quickly learned about Python, C++, and other programming languages. During this time, I started looking for an internship, marking the beginning of my career.&lt;/p&gt;&lt;p&gt;Years later, I visited my hometown and noticed that many talented people there had the potential to achieve more but weren&apos;t able to. Why was this the case? This topic deserves a detailed article, which I might write later.&lt;/p&gt;&lt;p&gt;This realization inspired me to help others improve their lives and their futures through programming.&lt;/p&gt;&lt;h2 id=&quot;heading-the-first-mentorship-attempt&quot;&gt;&lt;strong&gt;The First Mentorship Attempt&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;After some time, I asked a friend of mine, who was a teacher, to help me find talented individuals to mentor. After a month of searching and preparing, I found my audience. Fifteen young people gathered around. I spoke with each one of them, leveraging my experience to identify their talents and determine where they would fit best. I categorized them into three groups: Front End, Back End, and UI Design.&lt;/p&gt;&lt;p&gt;At that time, I had a designer friend who was ready to assist. We had six front-end students, six back-end students, and three UI design students. Thus, we began our journey. I created a roadmap for the front-end and back-end students. As I lacked sufficient knowledge and experience in UI/UX design to create a roadmap, my friend took care of that.&lt;/p&gt;&lt;p&gt;For a year, I held meetings twice a week for each group, addressing their problems and issues, assigning projects, and forming teams (UI + FE + BE) to collaborate on projects. I taught them industry standards and best practices, helped them build professional resumes, prepared them for interviews, and assisted them in landing their first jobs.&lt;/p&gt;&lt;p&gt;They put in the effort and worked hard, and eventually, some of them found success. Today, out of the original fifteen, two are working as front-end developers, two as back-end developers, and one as a designer (although she didn&apos;t become a UI designer, her job still involves design).&lt;/p&gt;&lt;p&gt;Unfortunately, some of them gave up during the process, but overall, I am satisfied with the results.&lt;/p&gt;&lt;p&gt;Needless to say, this process significantly improved my abilities and taught me many new things, as they asked me all kinds of questions! I learned how to lead, motivate, and guide them. I can&apos;t recall how many times I encouraged them to stick to their plan.&lt;/p&gt;&lt;h2 id=&quot;heading-the-journey-continues&quot;&gt;&lt;strong&gt;The Journey Continues&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;After the first year of mentoring, a lot changed in my personal life. I moved to another city, got married, and experienced many other significant events. Originally, I had planned to continue mentoring, perhaps even multiple times. However, I paused for three years due to these life changes.&lt;/p&gt;&lt;p&gt;Now, I&apos;m excited to restart this rewarding journey. Mentoring has always brought me immense joy and satisfaction, and I&apos;ve had a lot of fun along the way. Many of my previous students have become great friends, and weve stayed in touch over the past three years. I&apos;m now leveraging their help to start another round of mentoring. This time, I have even more support.&lt;/p&gt;&lt;p&gt;With more experience and assistance, I am confident that this new phase will be even more successful. I&apos;m eager to guide a new group of talented individuals, helping them develop their skills and achieve their potential.&lt;/p&gt;&lt;h2 id=&quot;heading-stay-updated-on-our-mentorship-journey&quot;&gt;&lt;strong&gt;Stay Updated on Our Mentorship Journey!&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;I&apos;m excited to share that I will be reporting weekly on the progress of my students, including what they will learn in the upcoming week. This will cover learning materials, exams, projects, and more.&lt;/p&gt;&lt;p&gt;If you&apos;re interested in becoming a front-end or back-end developer, you might find these updates incredibly useful. Follow along to gain insights, tips, and a sneak peek into the curriculum and projects that my students are working on.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Update: Front end roadmap is released here: &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;Mastering Front-End Development: A Complete Guide&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Update: Back end roadmap is released here: &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-a-complete-guide&quot;&gt;Mastering Back-End Development: A Complete Guide&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;]]&gt;</content:encoded><hashnode:content>&lt;![CDATA[&lt;h2 id=&quot;heading-how-it-began&quot;&gt;&lt;strong&gt;How It Began&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;I was born in a remote area where I had no idea what programming was. My first encounter with a computer was love at first sight. From that moment on, I dedicated the following years of my life to becoming a programmer.&lt;/p&gt;&lt;p&gt;I pursued a degree in computer science in college, where I quickly learned about Python, C++, and other programming languages. During this time, I started looking for an internship, marking the beginning of my career.&lt;/p&gt;&lt;p&gt;Years later, I visited my hometown and noticed that many talented people there had the potential to achieve more but weren&apos;t able to. Why was this the case? This topic deserves a detailed article, which I might write later.&lt;/p&gt;&lt;p&gt;This realization inspired me to help others improve their lives and their futures through programming.&lt;/p&gt;&lt;h2 id=&quot;heading-the-first-mentorship-attempt&quot;&gt;&lt;strong&gt;The First Mentorship Attempt&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;After some time, I asked a friend of mine, who was a teacher, to help me find talented individuals to mentor. After a month of searching and preparing, I found my audience. Fifteen young people gathered around. I spoke with each one of them, leveraging my experience to identify their talents and determine where they would fit best. I categorized them into three groups: Front End, Back End, and UI Design.&lt;/p&gt;&lt;p&gt;At that time, I had a designer friend who was ready to assist. We had six front-end students, six back-end students, and three UI design students. Thus, we began our journey. I created a roadmap for the front-end and back-end students. As I lacked sufficient knowledge and experience in UI/UX design to create a roadmap, my friend took care of that.&lt;/p&gt;&lt;p&gt;For a year, I held meetings twice a week for each group, addressing their problems and issues, assigning projects, and forming teams (UI + FE + BE) to collaborate on projects. I taught them industry standards and best practices, helped them build professional resumes, prepared them for interviews, and assisted them in landing their first jobs.&lt;/p&gt;&lt;p&gt;They put in the effort and worked hard, and eventually, some of them found success. Today, out of the original fifteen, two are working as front-end developers, two as back-end developers, and one as a designer (although she didn&apos;t become a UI designer, her job still involves design).&lt;/p&gt;&lt;p&gt;Unfortunately, some of them gave up during the process, but overall, I am satisfied with the results.&lt;/p&gt;&lt;p&gt;Needless to say, this process significantly improved my abilities and taught me many new things, as they asked me all kinds of questions! I learned how to lead, motivate, and guide them. I can&apos;t recall how many times I encouraged them to stick to their plan.&lt;/p&gt;&lt;h2 id=&quot;heading-the-journey-continues&quot;&gt;&lt;strong&gt;The Journey Continues&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;After the first year of mentoring, a lot changed in my personal life. I moved to another city, got married, and experienced many other significant events. Originally, I had planned to continue mentoring, perhaps even multiple times. However, I paused for three years due to these life changes.&lt;/p&gt;&lt;p&gt;Now, I&apos;m excited to restart this rewarding journey. Mentoring has always brought me immense joy and satisfaction, and I&apos;ve had a lot of fun along the way. Many of my previous students have become great friends, and weve stayed in touch over the past three years. I&apos;m now leveraging their help to start another round of mentoring. This time, I have even more support.&lt;/p&gt;&lt;p&gt;With more experience and assistance, I am confident that this new phase will be even more successful. I&apos;m eager to guide a new group of talented individuals, helping them develop their skills and achieve their potential.&lt;/p&gt;&lt;h2 id=&quot;heading-stay-updated-on-our-mentorship-journey&quot;&gt;&lt;strong&gt;Stay Updated on Our Mentorship Journey!&lt;/strong&gt;&lt;/h2&gt;&lt;p&gt;I&apos;m excited to share that I will be reporting weekly on the progress of my students, including what they will learn in the upcoming week. This will cover learning materials, exams, projects, and more.&lt;/p&gt;&lt;p&gt;If you&apos;re interested in becoming a front-end or back-end developer, you might find these updates incredibly useful. Follow along to gain insights, tips, and a sneak peek into the curriculum and projects that my students are working on.&lt;/p&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Update: Front end roadmap is released here: &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-front-end-development-a-comprehensive-guide&quot;&gt;Mastering Front-End Development: A Complete Guide&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-node-type=&quot;callout&quot;&gt;&lt;div data-node-type=&quot;callout-emoji&quot;&gt;💡&lt;/div&gt;&lt;div data-node-type=&quot;callout-text&quot;&gt;Update: Back end roadmap is released here: &lt;a target=&quot;_blank&quot; href=&quot;https://happydev.blog/mastering-back-end-development-a-complete-guide&quot;&gt;Mastering Back-End Development: A Complete Guide&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;]]&gt;</hashnode:content><hashnode:coverImage>https://cdn.hashnode.com/res/hashnode/image/upload/v1716098131000/7af25907-1e19-4b80-8ab9-0d85e08dcca1.jpeg</hashnode:coverImage></item></channel></rss>