<?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"><channel><title><![CDATA[Thinking Code]]></title><description><![CDATA[Blog about Coding Tips & Tricks, Efficient Coding, Coding Standards. Burning topics, Next JS, TypeScript, Tailwind CSS, Node JS, Laravel, Vue JS, Vite and more. Coding guidance for beginners.]]></description><link>https://blog.tzskr.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 10 May 2026 06:57:26 GMT</lastBuildDate><atom:link href="https://blog.tzskr.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[🚀 Understanding Web Apps with a Real-World Analogy]]></title><description><![CDATA[In this discussion, I would like to draw some real-world parallels with a Web Application. I hope you've read my previous article where I talked about how to get into Coding. In this segment, I am assuming you've completed learning the basics of C or...]]></description><link>https://blog.tzskr.com/understanding-web-apps-with-a-real-world-analogy</link><guid isPermaLink="true">https://blog.tzskr.com/understanding-web-apps-with-a-real-world-analogy</guid><category><![CDATA[Web Development]]></category><category><![CDATA[HTML]]></category><category><![CDATA[CSS]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[coding]]></category><dc:creator><![CDATA[Kazi Ahmed]]></dc:creator><pubDate>Sat, 05 Feb 2022 16:17:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/hLvQ4-QEBAE/upload/v1643476652262/hiB6iZrwu.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this discussion, I would like to draw some real-world parallels with a Web Application. I hope you've read my previous article where I talked about how to get into Coding. In this segment, I am assuming you've completed learning the basics of C or an introductory programming language of your choice.</p>
<p>If you need a quick refresher, here is the link to my <a target="_blank" href="https://blog.tzskr.com/wanna-start-coding-find-the-right-path-for-you">previous post</a></p>
<h2 id="heading-building-blocks">🧱 Building Blocks</h2>
<p>Now you want to jump into developing web apps or perhaps even started with PHP. But you feel a bit confused about the different parts that make up a Web App. It's not easy to wrap your head around everything from HTML, CSS, JavaScript, PHP, MySQL, and what they are used for. These are legitimate questions that may come to your mind. Let's demystify them together.</p>
<p>So, what are those high-level parts that make up a Web App?</p>
<ul>
<li>The Backend</li>
<li>The Frontend</li>
</ul>
<p>Well, that's anti-climactic. We all know that much... Let's go one step deeper.</p>
<ul>
<li>Backend<ul>
<li>PHP</li>
<li>MySQL</li>
</ul>
</li>
<li>Frontend<ul>
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
</li>
</ul>
<p>If you notice now it is a bit more complex to understand what they do and how they work, especially when you are starting out.</p>
<h2 id="heading-the-analogy">🧐 The Analogy</h2>
<p>I'm going to take an analogy here; it will help you understand these technologies with real-world examples.</p>
<blockquote>
<p>"The web app is like an Apartment."</p>
</blockquote>
<p>Let me explain them one by one from the user's perspective for you to understand.</p>
<h3 id="heading-html">HTML</h3>
<p>It is the structure of the apartment when it is being built. It defines where your doors are, the balcony, the living room, the kitchen, the bedrooms, and even the bathrooms.</p>
<p>It is the specification of that apartment. When we say 2 Bedroom Apartment, what comes to our mind?</p>
<p>That there is a living room, a kitchen space, a master bedroom, a guest bedroom, and 2 bathrooms.</p>
<p>At this point, the apartment is not finished. So, you have a basic layout of the space and in terms of decoration, you only have bricks. You technically can live there but it wouldn't be fun.</p>
<h3 id="heading-css">CSS</h3>
<p>Think of it as the decoration you do. Like the color of different walls, floor material, the type of Taps &amp; Sinks, even type of switches, and so on.</p>
<h3 id="heading-javascript">JavaScript</h3>
<p>It is the functionalities that come with the apartment. Like the electricity, the water supply, or maybe even a fireplace. Think of it as everything that serves a function within the apartment.</p>
<p>You can also consider the doors and windows as JavaScript if the mechanism they operate is different than traditional ones.</p>
<h3 id="heading-mysql-database">MySQL Database</h3>
<p>It is simply a piece of furniture that stores something. Like the cupboard, wardrobe, fridge among other things.
And the data is the utilities, cosmetics, clothing, groceries that you use every day.</p>
<h3 id="heading-php">PHP</h3>
<p>It is actually you, the people living there operating these things. You work with the parts every day depending on what needs to be done. You need to go out and buy groceries and store them in the fridge. This is a task that you do to keep the apartment functioning.</p>
<h2 id="heading-ambiguity">😕 Ambiguity</h2>
<p>I've just used this example to help you contextualize various parts of a Web App. There are things that travel the lines of multiple things. Like a Fridge, it is both a database and functionality. So, you might think it is JavaScript and also a DB, and be confused.</p>
<p>For that, I will just say it is a JavaScript State Manager. What I mean by that is JavaScript can also store some data in the browser like Cookies, they help maintain the state when you visit a site.</p>
<p>In this context, the job of a fridge is to store and keep something cool.</p>
<p>Some things can come in both CSS &amp; JavaScript. Like the lights or the AC or the TV. In that case, JavaScript is the functionality of that equipment and CSS is the design, color, and shape of that piece of equipment.</p>
<h2 id="heading-combined-view">😇 Combined View</h2>
<ul>
<li>So now if you want to change the decoration of the place. You know exactly which part needs work, it's the CSS. </li>
<li>If you want to make a new window in the wall, you know that it would not only take the HTML but also CSS and even some JavaScript.</li>
<li>If you need to change the apartment, you can, but your utilities, food, clothing, and furniture you take with you. That means your backend and database and the data stored in it can stay the same but the frontend will change.</li>
<li>You can stay in the same apartment but modernize all the furniture and clothing. You organize them in a different way. That means you will have to perform altered steps to get a job done that you previously used to do differently. Maybe now the wardrobe has 5 racks instead of 2 that were there previously. So, it's the Backend and the Database that needs to change.</li>
</ul>
<p>You might ask the question at this point who is the User? In this case, it is the visitors or guests. Considering you are only the maintainer of the property.</p>
<p>There are a few ways your friends can communicate,</p>
<ul>
<li>They can visit your place.</li>
<li>Or they can call you.</li>
</ul>
<p>When they visit your place, they are interacting with the place. That means they are using your address, which is the URL, to come to your place, they use different things which means they interact with the HTML &amp; CSS and yes also the Backend is there to serve them.</p>
<p>But when they call, they are only just communicating with you, and you are the Backend Language. So, they are calling an API and asking for information or a response. Your phone number in this case is the address.</p>
<h2 id="heading-value-andamp-benefit">✊ Value &amp; Benefit</h2>
<p>The question that might come to your mind that why do you need all this mental model. </p>
<p>If you are an entry-level developer, it might help you to better understand the requirements or scope of the product that you are building. It might also help you to ask the right question about the product before you estimate the effort.</p>
<p>For the product engineers, it might help set up expectations and acceptance criteria. Because you are not only thinking about the visual aspect but also about the internal mechanism as well.</p>
<h2 id="heading-next-steps">🥳 Next Steps</h2>
<p>If you want to go even deeper into the concept of Microservice. It is just breaking the entire apartment into smaller pieces, conceptually.</p>
<p>Like, Kitchen is a Microservice. Its only job is related to cooking and storing things related to cooking.</p>
<p>The workplace is only used for work-related things. You store pens and notebooks there.</p>
<p>Then you have the authentication &amp; authorization. You only let the trusted visitors get into the apartment, you don't want to get robbed.</p>
<h2 id="heading-wrapping-up">✌️ Wrapping Up</h2>
<p>I hope this helps you understand different pieces of a Web App and what purpose they serve with a real-world example. If you still have some confusion about some things in the apartment about what they fall under, feel free to post a comment down below.</p>
<p>There are many different analogies for this concept out there. By no means this is the only one. One popular one I can think of is "<strong>A Web App is like a Super Market or a Restaurant</strong>".</p>
<p>I would really like you to take this as an exercise and try to fit different parts of the web in the Super Market or Restaurant analogy and tell me in the comments below which parts relate to what things in your analogy.</p>
]]></content:encoded></item><item><title><![CDATA[How to Start Coding? Find the right path for YOU! in the ocean of Programming Stacks.]]></title><description><![CDATA[Introduction
So, you are young and fresh out of college. You are overwhelmed with all the hype around Programming and you are unsure about how to get started.
Well, you are certainly not the only one...
I have a distant brother who's also fresh out o...]]></description><link>https://blog.tzskr.com/wanna-start-coding-find-the-right-path-for-you</link><guid isPermaLink="true">https://blog.tzskr.com/wanna-start-coding-find-the-right-path-for-you</guid><category><![CDATA[#beginners #learningtocode #100daysofcode]]></category><category><![CDATA[Beginner Developers]]></category><category><![CDATA[#codenewbies]]></category><category><![CDATA[learn coding]]></category><category><![CDATA[full stack]]></category><dc:creator><![CDATA[Kazi Ahmed]]></dc:creator><pubDate>Sat, 29 Jan 2022 08:51:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/1K9T5YiZ2WU/upload/v1643445640224/iWuTP2xrG.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>So, you are young and fresh out of college. You are overwhelmed with all the hype around Programming and you are unsure about how to get started.</p>
<p>Well, you are certainly not the only one...</p>
<p>I have a distant brother who's also fresh out of college and wants to Code. While training him I thought why not share the experience with the community.</p>
<p>If you want to pursue a career in Programming as well, you will have to do one simple thing. Keep your mind straight and not get intimidated by all the Big Programming Jargon that is going around on Social media just yet. There will be plenty of time when you'd be able to do that. The first thing that you will need to do is find a Path you are passionate about. Start simple.</p>
<h3 id="heading-the-big-question">The Big Question</h3>
<p>Now the question is how do you find out what excites you. Many experienced trainers often overlook this important aspect.</p>
<p>It is certainly not an easy task to figure out by yourself. You should not rely on the trainers to tell you what is right for you. It is a path you make on your own. There is no easy way out when you are starting out. There is no single absolute right way either.</p>
<p>I've seen many trainees in my Career of over 8+ years, especially for the past several years when I became an Architect, they are a bit lost in the buzz of things. Keeping up-to-date with the buzz is really a good thing. When you are just starting out, this could really confuse you or plant doubts about your ability. That's not a good sign, that could lead to dissatisfaction and really hurt your morale.</p>
<p>Coming back to the topic of what path you should choose. If I try to get into your shoes,  from your perspective, you simply don't know. You only know that you want to do Programming and are very curious about the apps and sites that you visit about how they are made. So you are not sure what makes you tick, "<strong>YET</strong>". Cause you've never tried them before.</p>
<p>Enough with the philosophy, that stuff is boring. So the question remains, how do you find out?</p>
<p>Here is my take on it.</p>
<h3 id="heading-fundamentals">Fundamentals</h3>
<p>You are fresh out of college, so you know a little bit about how to do Logic. It's time you apply that logical analytic ability in your life. Everything that you do think of them as some collection of actions.</p>
<p>For example, let's assume you are about to go to bed to get some sleep. What steps do you take to complete the task?</p>
<ul>
<li>Make your bed.</li>
<li>If it is the summertime then turn on the AC.</li>
<li>Get inside the blanket.</li>
<li>Finally, lie down.</li>
<li>Sleep.</li>
</ul>
<p>So what we've done here is called the <strong>Flow-Chart</strong>, in programming terms. If you start thinking of the real world like this, half of your job is done.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1643443292358/DDMH3HdeA.png" alt="Sleeping Steps Chart" /></p>
<p>Now that you are in the flow you are ready to start taking on the courses.</p>
<h3 id="heading-start-small">Start Small</h3>
<p>But there is still one glaring question, what path do I take? For that, I have only one piece of advice. Learn only one Programming Language. In my case, it was C, same for my distant brother as well.</p>
<p>But in your case, it might be something different. If you don't know any I would suggest you take the Basic C course at this point, you don't have to be a wizard in C. Many would say C is very hard and a horrible language to get started.</p>
<p>My argument, in this case, is it will help you understand the fundamental way a computer works and operates on the code that we give it to run. Later when you start on a High-Level language you would be surprised how much stuff you can do without writing pages and pages of Code. That feeling would motivate you to go even further.</p>
<p>I'm taking my example for the explanation of the discovery of your path.</p>
<h3 id="heading-the-trial">The Trial</h3>
<p>Many will disagree but, I will say learn basic PHP. Let me explain why.</p>
<p>It is a C-based language, so it has curly braces and semi-colons, etc. Coming from basic C, you will feel right at home. It is one of the only languages that allows you to work both in Frontend as well as Backend.</p>
<p>You can write PHP code sprinkled around your HTML. So it forces you to learn HTML which is the backbone of Frontend. In a few days, you will be familiarized with how to store data in a MySQL database and show it on a page. At this point don't go too deep into the database part.</p>
<p>In some time you will get frustrated by the design of the app that you are making while learning PHP. Take cues from other websites and you will see that they have this great design and colors and all that.</p>
<p>That feeling will motivate you to get your hands dirty in the CSS business. Maybe even Bootstrap. Once you do that, you will yarn for some interactivity on your page. Wish these images would slide or wish I could open a dialog box among other things.</p>
<p>At this point introduce yourself to Javascript. Only the basics at this point. There is nothing wrong with learning JQuery. Don't listen to all the noise in the Community. Go ahead play with all those cool things of JQuery and its vast ocean of plugins. Let your imagination run wild at this stage. Try making a Facebook-like social media yourself, anything you dream of.</p>
<p>See where I'm going with this? You killed 5 birds with one stone. Leaned a PHP, MySQL, HTML, CSS, Bootstrap, and JQuery.</p>
<p>That's a decent Developer Level skill-set right there. I say decent only because you haven't gone deep into any of those technologies. And you've only spent a month or two.</p>
<p>And at this point, you are well equipped to apply for an entry-level job if that's what you want. But I would say, don't let the fire die even if you start working. Explore other things.</p>
<h3 id="heading-the-finale">The Finale</h3>
<p>Now you are ready to ask yourself "What excites me? What I'm passionate about? What path fulfills that excitement?"</p>
<p>I'm sure you will get the answer, and it will be the right one for you too. The answer could be frontend or backend or perhaps both.</p>
<p>Now that you have figured it out, you can pick your language of choice on that Path you've chosen for yourself.</p>
<p>Well, if you have chosen frontend there is not much new technology to learn for you. It is only perfecting the HTML, CSS &amp; Javascript with various Frameworks in the Market. Try <strong>SCSS, TailwindCSS, React, Vue or Angular</strong>. Eventually, you can choose to expand your horizon with Cross-platform Mobile Technologies.</p>
<p>If you have chosen the backend then there is actually a lot of different things you can go with. You can stick with <strong>PHP</strong> or go with <strong>Node JS, Python, Java, Ruby</strong>, etc, and their respective Frameworks like,</p>
<ul>
<li>Laravel for PHP</li>
<li>Express / Nest for Node JS</li>
<li>Django / Flask for Python</li>
<li>Spring Boot for Java</li>
<li>Rails for Ruby</li>
</ul>
<p>If you're a Full-stack person, specialize in one frontend framework and one backend technology with a Framework of choice.</p>
<p>In both ways, it is paramount to learn Git along the way. Start learning git when you become comfortable with writing a small Portfolio Website or a Simple auth Backend Service.</p>
<h3 id="heading-conclusion">Conclusion</h3>
<p>No matter what you choose I'm sure you will be great at it. Don't be afraid to try something from the other path or even switch paths. It's never too late.</p>
<p>Now, where do I come in? While I'm in the process of training my brother I thought I would be able to help a lot more people like my brother. What I can do is share my knowledge and keep you excited about Programming.</p>
<p>I'm not gonna do traditional Tutorials, there is a lot of it already out there. What I am thinking of doing is discussing various topics and concepts of Coding at different stages. Let me know what you are interested in.</p>
<p>Happy Coding!</p>
]]></content:encoded></item></channel></rss>