<?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[Hack United Blog]]></title><description><![CDATA[HackUnited Blog covers coding, software engineering, AI, technology, hackathons, and student innovation. Discover tutorials, insights, project ideas, and tech news.]]></description><link>https://blog.hackunited.org</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1687396793830/7L4gziy_N.png</url><title>Hack United Blog</title><link>https://blog.hackunited.org</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 09:03:56 GMT</lastBuildDate><atom:link href="https://blog.hackunited.org/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Why Accuracy Isn't Enough: Evaluating Machine Learning Models the Right Way]]></title><description><![CDATA[When building a machine learning model, accuracy is usually the first number people look at. If a model is 95% accurate, it sounds impressive. But accuracy doesn't always tell the full story.
Imagine ]]></description><link>https://blog.hackunited.org/why-accuracy-isn-t-enough-evaluating-machine-learning-models-the-right-way</link><guid isPermaLink="true">https://blog.hackunited.org/why-accuracy-isn-t-enough-evaluating-machine-learning-models-the-right-way</guid><category><![CDATA[encryption]]></category><category><![CDATA[coding]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sun, 23 Aug 2026 22:39:46 GMT</pubDate><content:encoded><![CDATA[<p>When building a machine learning model, accuracy is usually the first number people look at. If a model is 95% accurate, it sounds impressive. But accuracy doesn't always tell the full story.</p>
<p>Imagine you're building a model to detect a rare disease. Out of 1,000 patients, only 10 actually have it. If your model predicts that <strong>no one</strong> has the disease, it will still be <strong>99% accurate</strong> but it completely fails its real purpose.</p>
<p>That's why data scientists use more than just accuracy to evaluate a model.</p>
<p><strong>Precision</strong> tells you how many of the positive predictions were actually correct. This is important in situations where false alarms are costly, such as spam detection or fraud detection.</p>
<p><strong>Recall</strong> measures how many of the actual positive cases the model successfully found. In healthcare, for example, missing a patient with a serious disease can be much more dangerous than mistakenly flagging a healthy one.</p>
<p>To balance both, we use the <strong>F1-score</strong>, which combines precision and recall into a single metric. It's especially useful when working with imbalanced datasets where one class is much more common than the other.</p>
<p>Another useful tool is the <strong>confusion matrix</strong>, which breaks predictions into four categories: true positives, true negatives, false positives, and false negatives. Instead of giving you just one number, it shows exactly where your model is making mistakes.</p>
<p>The truth is, there's no single "best" metric. The right one depends on the problem you're trying to solve. A model for diagnosing cancer should focus on catching as many real cases as possible, while a spam filter might prioritize avoiding false positives.</p>
<p>The next time you see a machine learning model with 99% accuracy, don't assume it's perfect. Ask a better question: <strong>What kinds of mistakes is it making?</strong> Often, that answer tells you far more than accuracy ever could.</p>
]]></content:encoded></item><item><title><![CDATA[What is a Package Manager?]]></title><description><![CDATA[Let's say you are building your own app for some project and need a calendar feature. Writing hundreds of lines of code to calculate leap years and track days of the week is extremely annoying/tedious]]></description><link>https://blog.hackunited.org/what-is-a-package-manager</link><guid isPermaLink="true">https://blog.hackunited.org/what-is-a-package-manager</guid><category><![CDATA[Computer Science]]></category><category><![CDATA[package]]></category><category><![CDATA[coding]]></category><category><![CDATA[app]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sun, 16 Aug 2026 02:16:19 GMT</pubDate><content:encoded><![CDATA[<p>Let's say you are building your own app for some project and need a calendar feature. Writing hundreds of lines of code to calculate leap years and track days of the week is extremely annoying/tedious.</p>
<p>Thankfully, someone else has already perfectly solved that problem and put their code on the internet for free. A package manager is the tool that lets you easily grab that code. Think of it like an App Store specifically for developers. When programmers write useful code, they bundle it up into "packages" (or libraries). A package manager is a command-line tool that finds, downloads, and installs these pre-written chunks of code directly into your workspace.</p>
<p>If you write Python, you usually use a tool called pip. If you want to make a game, you can literally just type “pip install pygame” into your terminal, and boom, a ton of files/tools are added to your project to make building a game much easier. If you write JavaScript, you use npm (Node Package Manager). Typing npm install react pulls in everything you need to start building React pages.</p>
<p>The best part is the "manager" aspect. Often, the package you want to use actually relies on three other packages to work. And those three might rely on like ten more. Tracking down all those connected files by hand would be an absolute nightmare. Your package manager handles that messy part automatically. It figures out every single dependency your requested package needs, downloads the correct versions of all of them, and organizes them perfectly. Ultimately, it takes care of all the background file management so you never have to reinvent the wheel when starting a new project.</p>
]]></content:encoded></item><item><title><![CDATA[Taking the Initiative: The Power of Cold Outreach]]></title><description><![CDATA[Understanding the value of a strong network is only the first step; actively building it requires stepping out of your comfort zone. Often, the bridge between where you are and the opportunity you wan]]></description><link>https://blog.hackunited.org/taking-the-initiative-the-power-of-cold-outreach</link><guid isPermaLink="true">https://blog.hackunited.org/taking-the-initiative-the-power-of-cold-outreach</guid><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sun, 09 Aug 2026 17:06:05 GMT</pubDate><content:encoded><![CDATA[<p>Understanding the value of a strong network is only the first step; actively building it requires stepping out of your comfort zone. Often, the bridge between where you are and the opportunity you want—whether it is a mentorship, an internship, or a role organizing a major tech event—is a single, well-crafted cold email.</p>
<p>Reaching out to a stranger can feel intimidating. The fear of being ignored is entirely normal, but in the professional world, initiative is highly respected. A cold email is your digital handshake. It is a proactive declaration that you know what you want and are willing to put yourself out there to make a connection.</p>
<p>The secret to successful cold outreach lies in its execution. It should never be a generic template blasted to dozens of inboxes. Instead, it needs to be highly specific and deeply respectful of the recipient's time. Start by doing your homework. If you are reaching out to a manager, a founder, or a community organizer, reference a specific project they worked on or a recent initiative their team launched. This proves your genuine interest goes beyond just looking for a favor.</p>
<p>Keep the message concise. Introduce who you are, highlight your shared interests or current projects, and articulate a clear, low-friction ask. Do not ask for a job outright. Instead, ask for a brief 15-minute chat to learn about their workflow, or inquire about how they tackled a specific technical or organizational challenge.</p>
<p>Every major opportunity starts with a conversation, and someone has to initiate it. Sending that initial message might feel like a leap of faith, but it is a calculated move. Even if only a fraction of people respond, a single reply can fundamentally alter your trajectory, turning a distant possibility into a tangible reality.</p>
]]></content:encoded></item><item><title><![CDATA[How WhatsApp Delivers Billions of Messages Every Day]]></title><description><![CDATA[Sending a message on WhatsApp feels almost instant. You type a message, tap Send, and within seconds it appears on someone else's phone sometimes on the other side of the world.
But what actually happ]]></description><link>https://blog.hackunited.org/how-whatsapp-delivers-billions-of-messages-every-day</link><guid isPermaLink="true">https://blog.hackunited.org/how-whatsapp-delivers-billions-of-messages-every-day</guid><category><![CDATA[Computer Science]]></category><category><![CDATA[whatsapp]]></category><category><![CDATA[hackathon]]></category><category><![CDATA[coding]]></category><category><![CDATA[Web Development]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Mon, 03 Aug 2026 19:01:45 GMT</pubDate><content:encoded><![CDATA[<p>Sending a message on WhatsApp feels almost instant. You type a message, tap <strong>Send</strong>, and within seconds it appears on someone else's phone sometimes on the other side of the world.</p>
<p>But what actually happens behind the scenes?</p>
<p>When you send a message, it doesn't go straight to your friend's phone. It first travels to a WhatsApp server over an encrypted connection. Thanks to <strong>end-to-end encryption</strong>, only you and the recipient can read the message not even WhatsApp.</p>
<p>The server checks if the recipient is online. If they are, the message is delivered immediately. If they're offline, the encrypted message is stored temporarily and sent as soon as they reconnect.</p>
<p>Those familiar check marks tell you what's happening:</p>
<ul>
<li><p>✓ Sent to WhatsApp's server</p>
</li>
<li><p>✓✓ Delivered to the recipient's device</p>
</li>
<li><p>Blue ✓✓ Read by the recipient (if read receipts are enabled)</p>
</li>
</ul>
<p>To handle billions of messages every day, WhatsApp uses thousands of servers around the world. Instead of relying on one server, it spreads traffic across many of them using load balancing, allowing millions of people to chat at the same time without noticeable delays.</p>
<p>One of the most impressive parts is that all of this happens in just a fraction of a second. Behind every message are technologies like encryption, cloud computing, networking, and distributed systems—all working together to make communication feel effortless.</p>
<p>The next time you send a simple "Hello," remember that it's traveling through a massive global infrastructure before reaching the person on the other end.</p>
]]></content:encoded></item><item><title><![CDATA[The Infrastructure of Success: Why Networking Matters]]></title><description><![CDATA[Networking often gets a bad rap. For many, the word means images of awkward corporate mixers, forced handshakes, and superficial small talk. But when you strip away the clichés, networking is fundamen]]></description><link>https://blog.hackunited.org/the-infrastructure-of-success-why-networking-matters</link><guid isPermaLink="true">https://blog.hackunited.org/the-infrastructure-of-success-why-networking-matters</guid><category><![CDATA[hackathon]]></category><category><![CDATA[networking]]></category><category><![CDATA[Computer Science]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sat, 25 Jul 2026 21:20:26 GMT</pubDate><content:encoded><![CDATA[<p>Networking often gets a bad rap. For many, the word means images of awkward corporate mixers, forced handshakes, and superficial small talk. But when you strip away the clichés, networking is fundamentally about building a community of people who share your drive. Whether you are collaborating on a complex software project, strategizing for an upcoming hackathon, or trying to navigate early career decisions, the connections you make form the infrastructure of your future success.</p>
<p>At its core, networking is resource sharing. It is the active exchange of ideas, feedback, and support. When you are stuck on a difficult problem, like trying to debug a stubborn block of code or optimizing a system architecture, having a network means you do not have to solve it in isolation. You have a web of peers and mentors to lean on, allowing you to bypass common pitfalls and accelerate your own learning curve.</p>
<p>Furthermore, networking opens doors to unseen opportunities. Many roles, internships, and collaborative projects are never posted on a public job board. Instead, they circulate through word of mouth within trusted circles. By establishing yourself as someone who is curious, reliable, and eager to learn, you position yourself right in the flow of these hidden opportunities. You stop waiting for things to happen and start actively participating in the ecosystem where decisions are made.</p>
<p>Building this foundation doesn't require a naturally extroverted personality; it requires genuine interest. It is about asking questions, listening to how others approach their work, and offering your own insights when relevant. It is a long-term investment. The connections you build today through shared interests and mutual respect will become the professional framework that supports your biggest goals tomorrow.</p>
]]></content:encoded></item><item><title><![CDATA[Monolith vs. Microservices: Which Architecture Should You Choose?]]></title><description><![CDATA[One of the biggest decisions when building software is choosing the right architecture. It affects how easily your application can be developed, deployed, maintained, and scaled.
Microservices are oft]]></description><link>https://blog.hackunited.org/monolith-vs-microservices-which-architecture-should-you-choose</link><guid isPermaLink="true">https://blog.hackunited.org/monolith-vs-microservices-which-architecture-should-you-choose</guid><category><![CDATA[hackathon]]></category><category><![CDATA[architecture]]></category><category><![CDATA[Microservices]]></category><category><![CDATA[monolith]]></category><category><![CDATA[Computer Science]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Mon, 13 Jul 2026 19:41:11 GMT</pubDate><content:encoded><![CDATA[<p>One of the biggest decisions when building software is choosing the right architecture. It affects how easily your application can be developed, deployed, maintained, and scaled.</p>
<p>Microservices are often seen as the "modern" approach because companies like Netflix and Amazon use them. But that doesn't mean they're the best choice for every project. In reality, the right architecture depends on your application's size, your team's experience, and your goals.</p>
<h2><strong>What Is a Monolith?</strong></h2>
<p>A monolithic application is built as a <strong>single codebase</strong> where all features, including authentication, payments, products, and user management, are part of one application.</p>
<h3><strong>Advantages</strong></h3>
<ul>
<li><p>Simple to build and deploy</p>
</li>
<li><p>Easier to debug and test</p>
</li>
<li><p>Lower infrastructure costs</p>
</li>
<li><p>Great for startups and small teams</p>
</li>
</ul>
<h3><strong>Disadvantages</strong></h3>
<ul>
<li><p>Becomes harder to maintain as it grows</p>
</li>
<li><p>Scaling requires deploying the entire application</p>
</li>
<li><p>Large teams may struggle to work in the same codebase</p>
</li>
</ul>
<hr />
<h2><strong>What Are Microservices?</strong></h2>
<p>Microservices split an application into <strong>small, independent services</strong>. Each service handles one responsibility, such as payments or notifications, and communicates with other services through APIs.</p>
<h3><strong>Advantages</strong></h3>
<ul>
<li><p>Services can be deployed independently</p>
</li>
<li><p>Scale only the parts that need more resources</p>
</li>
<li><p>Better fault isolation</p>
</li>
<li><p>Large teams can work independently</p>
</li>
</ul>
<h3><strong>Disadvantages</strong></h3>
<ul>
<li><p>More complex infrastructure</p>
</li>
<li><p>Harder debugging due to network communication</p>
</li>
<li><p>Requires monitoring, logging, and service management</p>
</li>
<li><p>Higher operational costs</p>
</li>
</ul>
<hr />
<h2><strong>Monolith vs. Microservices</strong></h2>
<table style="min-width:392px"><colgroup><col style="min-width:25px"></col><col style="width:129px"></col><col style="width:238px"></col></colgroup><tbody><tr><td><p><strong>Feature</strong></p></td><td><p><strong>Monolith</strong></p></td><td><p><strong>Microservices</strong></p></td></tr><tr><td><p>Development</p></td><td><p>Simple</p></td><td><p>More complex</p></td></tr><tr><td><p>Deployment</p></td><td><p>Easy</p></td><td><p>Independent but more complicated</p></td></tr><tr><td><p>Scalability</p></td><td><p>Entire application</p></td><td><p>Individual services</p></td></tr><tr><td><p>Debugging</p></td><td><p>Easier</p></td><td><p>More difficult</p></td></tr><tr><td><p>Infrastructure</p></td><td><p>Minimal</p></td><td><p>Advanced</p></td></tr><tr><td><p>Best For</p></td><td><p>Small teams</p></td><td><p>Large organizations</p></td></tr></tbody></table>

<hr />
<h2><strong>Which One Should You Choose?</strong></h2>
<h3><strong>Choose a Monolith if:</strong></h3>
<ul>
<li><p>You're building a startup or personal project.</p>
</li>
<li><p>Your team is small.</p>
</li>
<li><p>You want to develop quickly.</p>
</li>
<li><p>Your application doesn't need massive scale.</p>
</li>
</ul>
<h3><strong>Choose Microservices if:</strong></h3>
<ul>
<li><p>Your application serves millions of users.</p>
</li>
<li><p>Different services need to scale independently.</p>
</li>
<li><p>Multiple teams work on the same product.</p>
</li>
<li><p>You have experience managing distributed systems.</p>
</li>
</ul>
<hr />
<h2><strong>Real-World Examples</strong></h2>
<p>Many successful companies started with a monolith because it allowed them to build and iterate quickly. As they grew, some, including Netflix and Amazon, gradually adopted microservices to support larger teams and increasing traffic.</p>
<p>This highlights an important lesson: <strong>microservices are usually an evolution, not a starting point.</strong></p>
<hr />
<h2><strong>Final Thoughts</strong></h2>
<p>There is no "best" software architecture. A monolith offers simplicity and speed, making it ideal for most new projects. Microservices provide flexibility and scalability but introduce significant complexity.</p>
<p>Instead of choosing an architecture because it's popular, choose the one that solves your current problems. As your application grows, your architecture can evolve with it.</p>
<p>The best architecture isn't the most complex, it's the one that helps your team build reliable software efficiently.</p>
]]></content:encoded></item><item><title><![CDATA[Sync vs. Async Code: It’s like making coffee… But without coffee]]></title><description><![CDATA[If you’ve ever been on a super slow website waiting for it to load, you’ve probably experienced the problem with synchronous code.
By default, most code runs synchronously. This means it executes line]]></description><link>https://blog.hackunited.org/sync-vs-async-code-it-s-like-making-coffee-but-without-coffee</link><guid isPermaLink="true">https://blog.hackunited.org/sync-vs-async-code-it-s-like-making-coffee-but-without-coffee</guid><category><![CDATA[Computer Science]]></category><category><![CDATA[CS]]></category><category><![CDATA[code]]></category><category><![CDATA[coding]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sat, 04 Jul 2026 16:48:06 GMT</pubDate><content:encoded><![CDATA[<p>If you’ve ever been on a super slow website waiting for it to load, you’ve probably experienced the problem with synchronous code.</p>
<p>By default, most code runs synchronously. This means it executes line by line, from top to bottom. The computer won’t move to line two until line one is completely finished.</p>
<p>Imagine a coffee shop running synchronously. You walk up, order a venti ice cappuccino latte with dragon fruit or whatever, and stand right at the register. The cashier turns around, steams the milk, does all the barista-ey stuff, and then finally asks the next person in line what they want. Obviously, the line would be extremely long, and everyone would hate you for ordering that complex drink.</p>
<p>In programming, if your app needs to download a big file or fetch data from an API, a synchronous program just stops and is just kinda chilling there until that task is done. The whole app freezes because it’s waiting for some slow code to finally finish.</p>
<p>Then, there’s asynchronous code. Async code lets your program start a slow task, put it on the back burner, and keep doing other things while it waits.</p>
<p>Let's go back to the coffee shop: You order your latte. The cashier takes your money and hands you a receipt with an order number. In JavaScript, this receipt is called a <strong>Promise</strong>. It's exactly what it sounds like. It’s literally a promise that eventually, you will get a result (either your finished coffee or an error saying the espresso machine broke).</p>
<p>You then proceed to awkwardly stand on your phone to the side while waiting. The cashier immediately takes the next person's order. The coffee shop (your program) keeps running smoothly.</p>
<p>When your coffee is finally ready, the barista calls your number. Typically, in code, we use keywords like <strong>async</strong> and <strong>await</strong> to handle this. You’re basically telling your program, "Start this heavy task, and I'll await the result whenever it finishes, but keep the rest of the app running in the meantime."</p>
<p>By making slow tasks async, your apps stay fast, buttons stay clickable, and nobody has to wait for 10 hours to get their blue moon venti ice cappuccino latte with oat milk.</p>
]]></content:encoded></item><item><title><![CDATA[The Difference Between Good Code and Clean Code.]]></title><description><![CDATA[In programming, coders usually focus on writing code that doesn’t have errors and produces the correct output more than writing clean code, so what is the difference between writing code that works an]]></description><link>https://blog.hackunited.org/the-difference-between-good-code-and-clean-code</link><guid isPermaLink="true">https://blog.hackunited.org/the-difference-between-good-code-and-clean-code</guid><category><![CDATA[hackathon]]></category><category><![CDATA[coding]]></category><category><![CDATA[Computer Science]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Thu, 25 Jun 2026 23:25:45 GMT</pubDate><content:encoded><![CDATA[<p>In programming, coders usually focus on writing code that doesn’t have errors and produces the correct output more than writing clean code, so what is the difference between writing code that works and writing clean code?</p>
<p>A good code is code that does its job correctly and gives the correct output; from a machine’s perspective, that’s enough; it doesn’t matter if the code is messy or hard to read, it only cares about the output.</p>
<p>However, clean code is also code that does its job correctly, but it’s well-organized and written in a way that if other people read that code, they can understand what it does and can modify it easily.  </p>
<p>So, the key difference between good code and clean code is that good code focuses on machines, and clean code focuses on humans. For example, using short but confusing variable names vs clear names is a small detail but makes a huge difference in understanding the code, and another example is writing one big function vs small, structured functions; both of them will work, but one is easier for teamwork and debugging, while the other just does the job.</p>
<p>Another example:</p>
<p>Bad but good code:</p>
<p>int s(int a[], int n){</p>
<p>    int i, t=0;</p>
<p>    for(i=0;i&lt;n;i++) t+=a[i];</p>
<p>    return t;</p>
<p>}</p>
<p>Clean version:</p>
<p>int calculateSum(int numbers[], int size){</p>
<p>    int sum = 0;</p>
<p>    for(int i = 0; i &lt; size; i++){</p>
<p>        sum += numbers[i];</p>
<p>    }</p>
<p>    return sum;}</p>
<p>Both work, but one is much easier to understand.</p>
<p>In conclusion, writing code that works is important, but writing code that is clear and easy to understand is just as essential. Good code solves problems, while clean code makes those solutions accessible to others and your future self. A great programmer always aims to achieve both.</p>
]]></content:encoded></item><item><title><![CDATA[The Guide to the Terminal: Command Lines]]></title><description><![CDATA[Have you ever opened that black box on your computer and wondered what it was? The sideways carrot arrow with the underscore just waiting to be opened. The terminal can look mysterious. It feels like ]]></description><link>https://blog.hackunited.org/the-guide-to-the-terminal-command-lines</link><guid isPermaLink="true">https://blog.hackunited.org/the-guide-to-the-terminal-command-lines</guid><category><![CDATA[hackathon]]></category><category><![CDATA[Computer Science]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Wed, 03 Jun 2026 02:38:19 GMT</pubDate><content:encoded><![CDATA[<p>Have you ever opened that black box on your computer and wondered what it was? The sideways carrot arrow with the underscore just waiting to be opened. The terminal can look mysterious. It feels like opening it will open a hacker terminal. The terminal is just another way to talk to your computer. Instead of using your mouse you type certain words to tell the computer what to do. What Actually is the Terminal? Normally, you interact with your computer using a Graphical User Interface. The terminal takes all the graphics away, however. Why would anyone want to do this? It is incredibly fast. Once you learn a few basic commands, you can move files, create folders, and organize your computer much faster than you could by dragging and dropping windows with a mouse. The Big Five You can do thousands of things in the terminal. You only need to know about five of them to get started.</p>
<ol>
<li><p>Where am I right now? (pwd) When you open the terminal, you are placed inside a specific folder on your computer. To find out which folder you are currently sitting in, type this command and press Enter: pwd This stands for "Print Working Directory." A directory is just the technical word for a folder. Your computer will spit out a line of text showing your current location, like /Users/YourName.</p>
</li>
<li><p>What is inside this folder? (ls) Now that you know where you are, you probably want to see what is around you. Type this and hit Enter: ls This stands for "list." It will list out all the files and folders inside your current directory. It is the exact same thing as opening a folder on your desktop and looking at all the icons inside.</p>
</li>
<li><p>How do I move to another folder? (cd) You will not want to stay in one folder forever. To move around, you use the change directory command. Type cd followed by a space, and then the name of the folder you want to go into. For example, if you see a folder named "Documents" when you type ls, you can move into it by typing: cd Documents Press Enter. It will look like nothing happened, but you have moved. Type pwd again to prove it to yourself. Your location will now show that you are inside the Documents folder. What if you want to go backward? You just type this: cd .. Those two little dots tell the computer to step back out into the previous folder.</p>
</li>
<li><p>How do I make a new folder? (mkdir) Let us say you want to organize your files. You need a new folder. Instead of right-clicking your mouse and selecting "New Folder", you type: mkdir VacationPhotos This stands for "make directory." The computer will instantly create a folder called VacationPhotos in your current location. If you type ls right after, you will see your brand new folder sitting there.</p>
</li>
<li><p>How do I create an empty file? (touch) Sometimes you just need a blank text file to start writing notes or code. On Mac and Linux, you use a command called touch. touch notes.txt Hit Enter, and a blank file named notes.txt will appear. If you are on Windows using the standard Command Prompt, this specific command might not work, but you can usually type type nul &gt; notes.txt to do the same thing. Putting It All Together Let us walk through a quick practice run. Try reading this sequence and imagine what is happening on the computer. pwd (Checking where we are starting.) mkdir SecretProject (Creating a new folder for our work.) cd SecretProject (Going inside that new folder.) touch ideas.txt (Making a blank text file to hold our thoughts.) ls (Looking around to make sure the file was created.) In five short lines of text, you just created a workspace and a file to work in. Doing that with a mouse would take a lot of clicking, dragging, and navigating through menus. A Quick Warning About Deleting Things There is a command to delete files called rm (remove). You need to be very careful with it. When you delete a file using your mouse, it usually goes into a Trash or Recycle Bin. You can get it back if you made a mistake. When you delete a file using the terminal command rm, it does not go to the trash. It is instantly and permanently gone. Because of this, it is highly recommended to stick to creating files and moving around until you are completely comfortable with the command line. Wrapping Up That is the big secret of the terminal. It is not magic. It is just a very direct way of giving your computer instructions. Do not worry about memorizing every single command in the world. Even professional programmers have to look things up online every single day. Start by just opening the terminal, checking where you are with pwd, and looking around with ls. Once you get used to the text interface, you will realize it is just another tool in your toolbelt.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[AI Agents]]></title><description><![CDATA[Artificial Intelligence, AI, is a big part of everyday life. Whether it’s used to solve a simple issue query, such as “how to cook a 5-Cheese Ziti Pasta” to more complex requests such as “code me a we]]></description><link>https://blog.hackunited.org/ai-agents</link><guid isPermaLink="true">https://blog.hackunited.org/ai-agents</guid><category><![CDATA[AI]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Tue, 28 Apr 2026 03:41:02 GMT</pubDate><content:encoded><![CDATA[<p>Artificial Intelligence, AI, is a big part of everyday life. Whether it’s used to solve a simple issue query, such as “how to cook a 5-Cheese Ziti Pasta” to more complex requests such as “code me a website”, AI models are being used everywhere. One of the most interesting types of AI is called an AI agent, which became more prominent as time passed and more developments were made. An AI agent is a computer program that can make decisions and take actions to reach a goal. It works kind of like a helper that can think, learn, and respond to situations. </p>
<p>The difference between an AI model with Agents and without Agents includes the use of real-time information. AI models are trained using Large Data Sets, which are limited to a certain point in time. Agents allow real-time queries to be resolved as well. Recently, I was looking for plane tickets for Spring Break, and instead of scouring the internet for the perfect flight, I asked an AI model to find real-time prices in my budget and a span of 4 days in which the weather is sunny. A wait of a few seconds saved hours of my time. </p>
<p>To understand how AI agents work, let’s dive into the ticket scenario. First, we look at what is happening around us. Then we look at what is available to us. After that, we come up with a plan, and finally, we take action. AI agents follow a similar process. They observe, plan, decide, and act. The first step is observation. An AI agent collects information from its environment. This could be data from a website, sensors in a robot, or user input like typing a question. For example, a chatbot reads the message you send it. Next comes looking at available tools. The Agent looks at the tools and resources available for it to use to best solve the query. An example of this ranges from an API for the weather to a live updating API for stocks. Next comes decision-making. The AI agent uses rules, patterns, or learned knowledge to figure out what to do. Some agents follow simple instructions written by programmers. Others use machine learning, which means they improve over time by learning from data. This helps them make better choices in the future. After deciding, the agent takes action. This could be sending a reply, moving a robot, or recommending a product. The action is meant to help achieve a goal, such as answering a question or completing a task.</p>
<p>In our case, the AI understood what was going on/what was asked of it. The AI then asked the Agent to execute the task, and the agent looked at the tools available to it; the agent should have had weather APIs and Flight Price Tracking information to give the most up-to-date information. The Agent then looks for the required flight in the time frame with the correct weather and returns the best choice. The result is then printed for me, and then I go get my wallet. </p>
<p>Many AI agents also have a feedback loop. This means they learn from the results of their actions. If something works well, they remember it. If something fails, they adjust. Over time, this makes them smarter and more useful.</p>
<p>Today, AI agents are used in many areas, including customer service, healthcare, gaming, and transportation. They help save time, reduce errors, and make systems more efficient.</p>
<p>In the future, AI agents will likely become even more powerful. They may handle more complex jobs and work more closely with humans. Understanding how they work helps us use them wisely and prepare for the changes they bring.</p>
]]></content:encoded></item><item><title><![CDATA[Why Being “Good at Math” is Overrated in Programming]]></title><description><![CDATA[If you’re a student thinking about getting into programming, you must have heard that you should be good at math. This statement has stopped a lot of people from getting into tech, and it’s honestly m]]></description><link>https://blog.hackunited.org/why-being-good-at-math-is-overrated-in-programming</link><guid isPermaLink="true">https://blog.hackunited.org/why-being-good-at-math-is-overrated-in-programming</guid><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Fri, 17 Apr 2026 00:18:08 GMT</pubDate><content:encoded><![CDATA[<p>If you’re a student thinking about getting into programming, you must have heard that you should be good at math. This statement has stopped a lot of people from getting into tech, and it’s honestly misleading.</p>
<p>So let’s clear this up…</p>
<p>Many people imagine programming as solving complex problems all day, like some kind of mathematician behind a screen. That might be true in some specific fields like machine learning, cryptography, etc.</p>
<p>But for most developers, that’s not the reality. In fact, most programming tasks involve writing logic, structuring data, and debugging problems. not solving integrals or doing advanced calculus.</p>
<p>Programming is more about thinking clearly rather than just math, and what a really good programmer should be good at is problem-solving skills, persistence, and learning by doing. So, believing that being good at math makes you directly good at programming is not true; programming is a skill that you learn, not a talent you are born with, and like any skill, you improve by practicing.</p>
<p>A better way to think about it is instead of asking “am I good at math?” ask, “am I willing to struggle, learn, and keep going?”</p>
<p>Being good at math might help, but it’s not the key to being a good programmer.</p>
]]></content:encoded></item><item><title><![CDATA[How the “Log in with Google” Actually Works]]></title><description><![CDATA[I know for a fact you’ve gone to some website, and you were too lazy to make and remember a username and password, so you just hit that “Log in with Google” or “Sign up with Google” button, and boom, ]]></description><link>https://blog.hackunited.org/how-the-log-in-with-google-actually-works</link><guid isPermaLink="true">https://blog.hackunited.org/how-the-log-in-with-google-actually-works</guid><category><![CDATA[learning]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Mon, 13 Apr 2026 02:43:56 GMT</pubDate><content:encoded><![CDATA[<p>I know for a fact you’ve gone to some website, and you were too lazy to make and remember a username and password, so you just hit that “Log in with Google” or “Sign up with Google” button, and boom, you’re already logged in/created an account.</p>
<p>But what’s actually happening behind the scenes? How does the app know it's you without you just handing over your Google password?</p>
<p>The system running the show is called OAuth (It stands for Open Authorization).</p>
<p>Think of OAuth like a valet key for your car (I’ve never really seen these outside of movies, but the analogy still stands). A valet key lets the driver park your car, but it doesn't let them open the locked glovebox or the trunk. You’re giving limited access to someone without handing over the actual main keys.</p>
<p>Here is the quick play-by-play of what happens when you click that button:</p>
<p><strong>Who This?:</strong> You click "Log in with Google." The app basically says, "I don't know who this guy is, let's ask Google." It then takes you to a secure Google login screen.</p>
<p><strong>This Good?:</strong> Google asks you, "Hey, this new app wants to see your email address and basic profile info. Is that okay?"</p>
<p><strong>Haha You Can’t Hack Me:</strong> When you click "Allow," Google doesn't give the app your password. Instead, it creates a secure, temporary digital ticket called an Access Token (there are different access tokens with different levels of permissions, all of which you can set up when building your auth flow).</p>
<p><strong>You’re Free to Go, Sir:</strong> Google sends you back to the app, handing the app this token. The app shows the token to Google's servers to prove you actually gave permission, and Google hands over just your name and email (or access to other permissions if you give them).</p>
<p>That’s pretty much it. The app gets exactly what it needs to create your account, and your password stays (relatively) safely locked away at Google.</p>
<p>The best part is that if you ever decide you don't trust the app anymore, you can go into your Google settings and revoke its access. That digital ticket/token immediately becomes useless, and they can't see or access your data anymore.</p>
<p>So next time you skip creating a new password, you can thank OAuth.</p>
]]></content:encoded></item><item><title><![CDATA[A Basic Guide to Coding Pt. 2: Loops]]></title><description><![CDATA[Loops are essential to programming. Without loops, coding would be very inefficient and time-consuming (e.g., printing “Hello World” 100 times). Loops also allow for flexibility, meaning that you can ]]></description><link>https://blog.hackunited.org/a-basic-guide-to-coding-pt-2-loops</link><guid isPermaLink="true">https://blog.hackunited.org/a-basic-guide-to-coding-pt-2-loops</guid><category><![CDATA[coding]]></category><category><![CDATA[learning]]></category><category><![CDATA[hackathon]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Tue, 07 Apr 2026 02:51:26 GMT</pubDate><content:encoded><![CDATA[<p>Loops are essential to programming. Without loops, coding would be very inefficient and time-consuming (e.g., printing “Hello World” 100 times). Loops also allow for flexibility, meaning that you can repeat a certain number of times based on user input and so on. In general, there are three different types of loops in most programming languages: while, for, and do-while loops.</p>
<p><strong>Three Components of a Loop</strong></p>
<p>Before you can even care for picking a while, do-while, or for loop, you must first understand the three components of a loop: initialization, condition, and iteration.</p>
<p><strong>Initialization:</strong> There is a counter variable per loop to keep track of how many times it can run. Initialization is setting that counter variable for any value, 0, 100, or even 1000.</p>
<p><strong>Condition:</strong> This is usually a boolean expression to see if it continues (if true for most programming languages), and if false will immediately terminate the loop. This allows for the loop to end (to avoid infinite loops and errors).</p>
<p><strong>Iteration:</strong> How many times the loop will run, and is done so by modifying the counter variable set during initialization.</p>
<p><strong>While Loops</strong></p>
<p>While loops are the most flexible. The syntax is essentially like this:</p>
<table style="min-width:25px"><colgroup><col style="min-width:25px"></col></colgroup><tbody><tr><td><p><strong>int counter = 5; // initialization<br />while (counter &gt; 0) { // condition<br />System.out.println("Hello World!");<br />counter++; // iteration<br />}</strong></p></td></tr></tbody></table>

<p>The example above allows for this while loop to run 5 times. You can place the counter variable and iteration anywhere, but it depends on where it is.</p>
]]></content:encoded></item><item><title><![CDATA[Pretty Placeholder Data and Why You Need It]]></title><description><![CDATA[Nothing makes a new UI look more awful than blank/empty sections. The problem is that when you initially start a project, waiting for actual users to sign up just to see if your layout works is a wast]]></description><link>https://blog.hackunited.org/pretty-placeholder-data-and-why-you-need-it</link><guid isPermaLink="true">https://blog.hackunited.org/pretty-placeholder-data-and-why-you-need-it</guid><category><![CDATA[hackathon]]></category><category><![CDATA[learning]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sat, 04 Apr 2026 19:26:20 GMT</pubDate><content:encoded><![CDATA[<p>Nothing makes a new UI look more awful than blank/empty sections. The problem is that when you initially start a project, waiting for actual users to sign up just to see if your layout works is a waste of time. This is why you need GOOD placeholder data.</p>
<p>Usually called "mock data" by developers, this is basically just fake information used to fill up your database. Populating your app with fake names, emails, and profile pictures gives you a realistic look at how the final product actually functions.</p>
<p>It's also essential for testing. Empty databases cause errors. If your code expects a username and gets an empty record, the page might crash. Pumping your app full of mock data prevents this and lets you test edge cases. For example, you can throw in a 50-character name just to see if it breaks your layout. Also, since the data is stored locally, you can keep testing everything even if you’re not connected with the internet.</p>
<p>Most of the time, developers format this data using JSON (JavaScript Object Notation). It organizes information into key-value pairs. You set "firstName" as the key and "Obama" as the value, and group them with curly braces. It’s the standard/typical format because it’s incredibly readable for both humans and computers.</p>
<p>In addition, nobody wants to manually type out a hundred fake test emails. Online tools like Mockaroo can let you specify the exact columns you need and download thousands of rows of data without really spending that much time. If you instead want to keep it inside your codebase, libraries like Faker can create random names and phone numbers directly inside your code. Overall, placeholder data is really important and can save time when initially starting on a project, and you shouldn’t just rely on 2 entries and pray your script works with an entire database.</p>
]]></content:encoded></item><item><title><![CDATA[Markov Chains and Weighted Graphs: Modeling How the World Moves]]></title><description><![CDATA[Things like the weather are unpredictable. Predicting the next websites/webpages users enter is unpredictable. There is so much unknown when it comes to some aspects of real life. Yesterday in my AP P]]></description><link>https://blog.hackunited.org/markov-chains-and-weighted-graphs-modeling-how-the-world-moves</link><guid isPermaLink="true">https://blog.hackunited.org/markov-chains-and-weighted-graphs-modeling-how-the-world-moves</guid><category><![CDATA[modeling]]></category><category><![CDATA[markov]]></category><category><![CDATA[coding]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[CSS]]></category><category><![CDATA[learning]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sun, 29 Mar 2026 18:59:45 GMT</pubDate><content:encoded><![CDATA[<p>Things like the weather are unpredictable. Predicting the next websites/webpages users enter is unpredictable. There is so much unknown when it comes to some aspects of real life. Yesterday in my AP Physics class, we were learning about Gravitational Attraction, and there was so much unknown, but we found the known in the unknown. It’s the same concept applied here! To understand the unknown, models and systems are used to make the unknown less unknown. Two popular systems that are used are the weighted graphs and Markov chains. Together, they help us represent and analyze systems where outcomes depend on probability rather than certainty.</p>
<p>In computer science, a graph is a data structure made up of nodes, which are often called vertices, and edges that connect them. Nodes can represent cities, web pages, or game states, while edges represent the relationship or connection between them. The Java class my class made to program a graph had a node that held a List that contained the neighbors of that node. </p>
<p>A weighted graph is similar to a graph, but now each edge has a numerical value attached to it. This value represents some kind of cost, distance, repetition, or probability. For example, in a navigation system, the weight on an edge might represent the distance between two cities. Algorithms can then analyze this graph to find the shortest route between locations. That’s how navigation systems know how long the drivers need to stay on a certain road or tell them when to merge!</p>
<p>Using the idea of graphs, Markov Chains use graphs and Nodes that store values, Strings in particular, to formulate sentences (like an AI)! A Markov chain is a mathematical model used to describe systems based on probabilities. The key idea behind a Markov chain is the Markov property. The Markov Property states that the next state depends on the current state and not on the sequence of states that came before it. Simply said, the system has no memory of what is to come.</p>
<p>Markov chains can be represented visually using weighted directed graphs. Each node represents a possible state, and each edge represents the probability of moving from one state to another. The weights on the edges represent these probabilities, and the outgoing probabilities from a node typically add up to 1.</p>
<p>An example of this is with the weather. There could be three states: sunny, cloudy, and rainy. If one day is sunny, then the chance of it being sunny the next day could be 70%, making it a 20% of it being cloudy, and 10% chance of rain. Each of these probabilities can be represented as weighted edges between nodes.</p>
<p>Another application is text generation. Some AI text models in their early stages used Markov chains to predict the next word in a sentence based on the current word. While modern AI models are far more advanced, the basic concept of predicting future states from probabilities is still a vital part of machine learning.</p>
<p>Markov chains are an interesting intersection between graphs, graph theory, probability, and algorithm design. By representing systems as weighted graphs and analyzing transitions between states, we can model processes from weather forecasts to user behavior online.</p>
<p>In a world full of uncertainty, we found the known in the unknown.</p>
]]></content:encoded></item><item><title><![CDATA[The role of Cloud Computing in Modern Technology.]]></title><description><![CDATA[In the last few years, technology has changed so much, and one of the most important developments behind this transformation is cloud computing. Although many people use cloud services every day, most]]></description><link>https://blog.hackunited.org/the-role-of-cloud-computing-in-modern-technology</link><guid isPermaLink="true">https://blog.hackunited.org/the-role-of-cloud-computing-in-modern-technology</guid><category><![CDATA[Web Development]]></category><category><![CDATA[CSS]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[learning]]></category><category><![CDATA[hacking]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sat, 28 Mar 2026 03:44:24 GMT</pubDate><content:encoded><![CDATA[<p>In the last few years, technology has changed so much, and one of the most important developments behind this transformation is cloud computing. Although many people use cloud services every day, most don’t realize how central this technology has become. From streaming movies to storing photos online, cloud computing quietly powers much of the digital world.</p>
<p>So what is cloud computing? It’s the delivery of computing services over the internet instead of relying on local computers or physical servers. In other words, it’s like an easier way to handle your tasks, so rather than storing data or running programs directly on a personal device, these tasks are handled by remote servers located in data centers around the world. Users can access these resources through the internet whenever they need them. </p>
<p>One of the main reasons why cloud computing has become so important is its remarkable flexibility. In the past, companies had to buy and maintain expensive hardware to run their software, and it required significant investment and technical expertise, but with cloud computing, businesses can rent the computing resources they need, which allows them to scale their systems up or down depending on their needs, making it much more efficient and cost-effective.</p>
<p>Despite its many benefits, cloud computing also has certain challenges, such as security and data privacy, since sensitive information is stored on remote servers. Organizations must rely on cloud providers to protect their data from cyber attackers or unauthorized access. Also, the fact that cloud services depend heavily on stable internet connections means that a slight internet problem can cause a few issues.  </p>
<p>In conclusion, cloud computing has become a fundamental component of modern technology. It enables many of the digital services people rely on every day while providing organizations with flexible and scalable computing resources.</p>
]]></content:encoded></item><item><title><![CDATA[How Automation Is Reshaping the Job Market]]></title><description><![CDATA[A few decades ago, automation meant large robotic arms assembling cars in factories. Today, it’s different and a lot closer to us. It’s in the algorithm that recommends what we watch, the software tha]]></description><link>https://blog.hackunited.org/how-automation-is-reshaping-the-job-market</link><guid isPermaLink="true">https://blog.hackunited.org/how-automation-is-reshaping-the-job-market</guid><category><![CDATA[Computer Science]]></category><category><![CDATA[CSS]]></category><category><![CDATA[learning]]></category><category><![CDATA[hackathon]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[AI]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sat, 21 Mar 2026 03:18:41 GMT</pubDate><content:encoded><![CDATA[<p>A few decades ago, automation meant large robotic arms assembling cars in factories. Today, it’s different and a lot closer to us. It’s in the algorithm that recommends what we watch, the software that scans legal documents in seconds, and the self-checkout machine at the grocery store.</p>
<p>Automation is no longer just about machines replacing physical labor,now it’s more about software making decisions that one day were humans’ responsibility.</p>
<p>Companies such as Amazon use automated systems to manage warehouses and predict demand. Meanwhile, other manufacturers like Tesla rely on robotics to optimize production lines. But the real transformation isn’t just happening in factories, it’s happening in offices.</p>
<p>The biggest impact of automation isn’t that entire jobs disappear overnight. Instead, specific tasks within jobs are being automated. For example, an accountant may no longer spend hours manually organizing spreadsheets, and a journalist might use AI tools to analyze data quickly. The role remains but the nature of the work changes.</p>
<p>This shift creates both anxiety and opportunity. Routine tasks are increasingly handled by machines, but roles requiring creativity, emotional intelligence, and complex decision-making are growing in importance. The job market is not shrinking; it’s changing shape.</p>
<p>The real question is no longer “Will automation take jobs?” but rather “Which skills will remain valuable in an automated world?”</p>
]]></content:encoded></item><item><title><![CDATA[A Basic Guide to Coding Pt. 1: Variables & Conditionals]]></title><description><![CDATA[If you have just started on your coding journey or if you are an advanced coder all the way, you should be familiar with variables, conditionals, and loops, which are essential parts of basic programm]]></description><link>https://blog.hackunited.org/a-basic-guide-to-coding-pt-1-variables-conditionals</link><guid isPermaLink="true">https://blog.hackunited.org/a-basic-guide-to-coding-pt-1-variables-conditionals</guid><category><![CDATA[Basics of Python]]></category><category><![CDATA[AI]]></category><category><![CDATA[hackathon]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[learning]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[coding]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sat, 14 Mar 2026 18:54:40 GMT</pubDate><content:encoded><![CDATA[<p>       If you have just started on your coding journey or if you are an advanced coder all the way, you should be familiar with variables, conditionals, and loops, which are essential parts of basic programming. So, what are they and why are they important?</p>
<p><strong>Variables</strong></p>
<p>              Variables are reserved spaces of memory, usually RAM, in order to store any type of data. For example, if you want to store the word “data” in Python, you would type:</p>
<table style="min-width:50px"><colgroup><col style="min-width:25px"></col><col style="min-width:25px"></col></colgroup><tbody><tr><td><p># In Python…</p></td><td><p>word = "data"</p></td></tr></tbody></table>

<p>              However, with variables, they have data types, and in many languages, such as Java and C++, you must declare them. This is because while some languages, like Python, have memory that is dynamically allocated, sometimes it needs to be given space manually. Common data types include int (integer values), doubles or floats (depending on the language and whether they are decimals), Booleans (values true or false), and strings (words, but must include quotation marks to do so successfully in many languages).</p>
<p>              For example, in C++, this might look different, for example, </p>
<table style="min-width:25px"><colgroup><col style="min-width:25px"></col></colgroup><tbody><tr><td><p>#include &lt;string&gt; // usually have to include this header in C++ to declare variables in C++!<br />...<br />string word = "data";</p></td></tr></tbody></table>

  

<p> Variables are flexible, meaning that with numerical data types, you can change them through addition, subtraction, multiplication, division, and so on, and can be gathered through user input, allowing your program to be interactive.</p>
<p><strong>Conditionals</strong></p>
<p>              What if you have two paths for something? For example, if you want your program to output it’s warm if it’s a warm temperature, while it’s cold in a cold temperature, conditionals are what you need! Conditionals allow users to choose multiple possibilities, allowing for if you win or lose in a game program, turn the music on or off, etc.</p>
<p>For example,</p>
<table style="min-width:25px"><colgroup><col style="min-width:25px"></col></colgroup><tbody><tr><td><p>// Assume all variables have been declared &amp; are in Fahrenheit<br />// In the programming language C++!<br />if (temp &gt;= 70)<br />{<br />              cout &lt;&lt; "It's warm!";<br />}<br />else<br />{<br />              cout &lt;&lt; "It's cold!";<br />}</p></td></tr></tbody></table>

<p>              Now, you might be confused about the “if” and the “else”. The “if” is the first conditional, or true or false statement. If the temp variable is greater than or equal to 70 degrees, then the program would output “It’s warm!”. However, if that “if” is false, it would output the other else statement.</p>
<p>              There are also else-if statements that you can add onto. Essentially, if the first conditional is not true, then it would move to the next else-if statement and so on in chronological order. Therefore, remember that the order matters and evaluate in the context of that to avoid logic errors. For example,</p>
<table style="min-width:25px"><colgroup><col style="min-width:25px"></col></colgroup><tbody><tr><td><p>if (temp &gt;= 20) {<br />              cout &lt;&lt; "It's in the 20's! It's cold!";<br />}<br />else if (temp &gt;= 30) {<br />              cout &lt;&lt; "It's in the 30's! Still very cold!"<br />}<br />... // so on</p></td></tr></tbody></table>

<p>Technically, if you have a temperature of 30 degrees, it would pass the first condition anyway. Keep this in mind when structuring your conditions.</p>
<p>Another thing to note is that the statement is evaluated by Boolean statements, or if that condition is true or false, and if true, it executes the statement, and if false, it does not. That is essentially the entire logic of conditionals!</p>
<p>Hopefully, if you are a beginner self-learner or programmer, you found this article helpful. Variables and conditionals are key to writing good programs and making programs the way they are (e.g., user input, if you win or lose in a game, etc.)</p>
]]></content:encoded></item><item><title><![CDATA[Imposter Syndrome in Tech]]></title><description><![CDATA[For many years, computer science and, in general, the tech field were lucrative and popular fields, considered a “golden ticket” to a job. Now, computer science enrollment in the UC’s and other univer]]></description><link>https://blog.hackunited.org/imposter-syndrome-in-tech</link><guid isPermaLink="true">https://blog.hackunited.org/imposter-syndrome-in-tech</guid><category><![CDATA[Computer Science]]></category><category><![CDATA[technology]]></category><category><![CDATA[jobs]]></category><category><![CDATA[Google]]></category><category><![CDATA[hackathon]]></category><category><![CDATA[coding]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[learning]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Tue, 10 Mar 2026 21:45:35 GMT</pubDate><content:encoded><![CDATA[<p>For many years, computer science and, in general, the tech field were lucrative and popular fields, considered a “golden ticket” to a job. Now, computer science enrollment in the UC’s and other universities has decreased for the first time since the 2000s, due to AI taking over junior-level tasks.</p>
<p>In addition, on social media, many tech influencers often showcase the “glorified” version of tech, with the free food from Google to fancy and beautiful apartments. Many who do succeed are often those who have been exposed to computer science or coding very early on, while those who only started to learn during college feel left behind, which causes imposter syndrome.</p>
<p>Imposter syndrome, where, despite success, an individual has self-doubt about accepting their own accomplishments. For example, someone who just started coding in college might feel strong imposter syndrome compared to someone who mastered it since they were young and can do full-scale hackathon-winning projects. The tech field is extremely lucrative, but it is a very difficult field to get into and stay in, especially in 2026, when AI is essentially erasing entry-level jobs.</p>
<p>However, it is important to understand that due to the difficulties in the tech industry in 2026, everyone has faced imposter syndrome before. From high school prodigies to even well-settled adults, imposter syndrome is real, and you, as an individual, are not alone. It is important for many to address imposter syndrome to continue to go beyond their boundaries and expertise, which can improve their chances of getting a job/a better job as well as giving better experiences.</p>
]]></content:encoded></item><item><title><![CDATA[Understand Environment Variables]]></title><description><![CDATA[When you write code that connects to a database or an external service, you usually need a password or a key. Putting that key directly into your code creates a significant problem. If you share your ]]></description><link>https://blog.hackunited.org/understand-environment-variables</link><guid isPermaLink="true">https://blog.hackunited.org/understand-environment-variables</guid><category><![CDATA[variables]]></category><category><![CDATA[coding]]></category><category><![CDATA[Computer Science]]></category><category><![CDATA[AI]]></category><category><![CDATA[Artificial Intelligence]]></category><category><![CDATA[hackathon]]></category><dc:creator><![CDATA[Danny Zheng]]></dc:creator><pubDate>Sun, 08 Mar 2026 21:19:05 GMT</pubDate><content:encoded><![CDATA[<p>When you write code that connects to a database or an external service, you usually need a password or a key. Putting that key directly into your code creates a significant problem. If you share your code, everyone can literally see/steal your password. If you push your code to a public code repository, automated bots can steal those keys pretty fast. Hackers use stolen keys to rack up massive bills on your account.</p>
<p>Environment variables solve this problem. Environment variables are like secret containers hidden on your computer or your server. Your code looks for that container and reads what’s in it.</p>
<p>Instead of writing this in your file: DATABASE_PASSWORD = "SuperSecretPassword123"</p>
<p>Your code looks like this: DATABASE_PASSWORD = get_environment_variable("DB_PASSWORD")</p>
<p>You define the DB_PASSWORD on your specific machine. Your teammate defines their own DB_PASSWORD on their machine.</p>
<p>Here are a few reasons you need them:</p>
<p>Security: You keep secrets out of your codebase. When you put your project online or share it with others, your passwords stay on your computer.</p>
<p>Different Environments: You often run code on your local laptop to test it and then on a live web server for users. You need a different database on your laptop than you use on the live server. You use environment variables to change settings based on where the code runs.</p>
<p>Easy Updates: If an API key expires, you don’t really need to hunt through dozens of files to find and change it. You can just update the environment variable at one place.</p>
<p>You typically use a .env file to store these variables while developing locally. This file looks like a simple text file:</p>
<p>API_KEY = "abc12345" DB_HOST = "localhost" NUCLEAR_LAUNCH_CODES = 6767</p>
<p>You must add this .env file to your project's ignore list (for example, add the filename to your .gitignore). This ensures you never accidentally upload it to a public repository.</p>
<p>By using environment variables, you separate your configuration from your code. This practice keeps your projects secure and makes collaboration a lot safer. Moral of the story: please use environment variables.</p>
]]></content:encoded></item></channel></rss>