<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tammy Alemu</title>
    <description>The latest articles on DEV Community by Tammy Alemu (@tammy11).</description>
    <link>https://dev.to/tammy11</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1121673%2F0961f11a-de05-4f36-841f-2fa435ede248.jpg</url>
      <title>DEV Community: Tammy Alemu</title>
      <link>https://dev.to/tammy11</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tammy11"/>
    <language>en</language>
    <item>
      <title>Do You Control Copilot, or Does Copilot Control You? (A VS Code Fix)</title>
      <dc:creator>Tammy Alemu</dc:creator>
      <pubDate>Sat, 27 Sep 2025 15:53:42 +0000</pubDate>
      <link>https://dev.to/tammy11/do-you-control-copilot-or-does-copilot-control-you-a-vs-code-fix-1m29</link>
      <guid>https://dev.to/tammy11/do-you-control-copilot-or-does-copilot-control-you-a-vs-code-fix-1m29</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Finding Focus in the Age of AI Coding&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AI-assisted coding has quickly become the norm. Tools like GitHub Copilot are changing how developers write code, helping us move faster, automate repetitive tasks, and even debug tricky logic. For many, it feels like magic. You type a few keystrokes and Copilot offers up whole functions, tests, or even scaffolding for your project.&lt;br&gt;
But as powerful as it is, Copilot has its downsides—especially when it comes to how we think about coding.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Benefits of Copilot
&lt;/h3&gt;

&lt;p&gt;Let’s start with the good stuff. Copilot can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Save you time writing boilerplate code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generate quick snippets you’d otherwise Google for.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Help you explore unfamiliar languages or frameworks.&lt;br&gt;
Speed up debugging and testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For experienced developers, this means more time spent on solving problems rather than re-typing the same syntax over and over again.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hidden Downsides
&lt;/h3&gt;

&lt;p&gt;The challenge is that Copilot doesn’t just speed up code writing, it can also hijack the process of coding itself.&lt;br&gt;
For learners, this can be especially harmful. Instead of figuring out what to build and why, you end up blindly accepting suggestions. The syntax may look right, but the thinking behind it, the real skill of development gets skipped.&lt;/p&gt;

&lt;p&gt;Here’s the truth:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Writing code is necessary, but understanding systems, problem-solving, and logic design are the real craft.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you can’t code well without AI, you’ll struggle to build scalable, maintainable projects with AI.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copilot sometimes bloats solutions or suggests suboptimal patterns, which can create more debugging work.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, if you don’t know how to code, Copilot won’t save you. It’ll just speed you along into bad habits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Thinking vs. Typing
&lt;/h3&gt;

&lt;p&gt;Software development has never been about who types the fastest. Syntax is the easy part. The hard part is thinking clearly about systems, designing, architecting, and understanding how pieces fit together.&lt;br&gt;
That’s why many “vibe coding” projects those where developers let AI lead the way often end in abandoned repos. Without strong fundamentals, AI just amplifies confusion.&lt;br&gt;
Still, I don’t think AI should be ignored. Used correctly, it’s a powerful assistant. It can debug with you, take care of the repetitive stuff, and free you up for higher-level thinking. The key is balance.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Where Copilot Gets in the Way&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;For me, the biggest problem was inline autocompletions.&lt;br&gt;
These suggestions pop up constantly while you’re typing, filling the editor with half-finished logic or entire chunks of code you didn’t ask for. Instead of helping, they often interrupt the flow of thought pushing me toward solutions I might not actually want.&lt;br&gt;
I realized that while Copilot is great for certain tasks, I needed a way to choose when to use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Building My Own Fix: Copilot Toggle
&lt;/h3&gt;

&lt;p&gt;So, I built a small extension for Visual Studio Code: &lt;a href="https://marketplace.visualstudio.com/items?itemName=tammyalemu.copilot-toggle" rel="noopener noreferrer"&gt;Copilot Toggle&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It adds a simple toggle button to the status bar that lets you turn Copilot’s inline autocompletions on or off instantly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Need focus to solve a problem on your own? Switch it off.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Want quick help with syntax or scaffolding? Switch it back on.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s a lightweight tool, but for me, it makes all the difference. Instead of Copilot controlling my coding experience, I control Copilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Final Thoughts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;AI coding tools are here to stay—and they’re incredibly useful when used intentionally. But the real skill of a developer has never been typing syntax; it’s in thinking clearly, solving problems, and building systems.&lt;br&gt;
By toggling Copilot on and off when I need it, I’ve found the right balance between human creativity and AI assistance. And that’s what keeps me growing as a developer.&lt;br&gt;
You can try the Copilot Toggle extension yourself on the &lt;a href="https://marketplace.visualstudio.com/manage/publishers/tammyalemu/extensions/copilot-toggle/hub" rel="noopener noreferrer"&gt;Visual Studio Marketplace&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fux8lsuweguxb6fv3wli8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fux8lsuweguxb6fv3wli8.png" alt="screenshot of copilot toggle extension on vs code editor" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubcopilot</category>
      <category>vscode</category>
      <category>productivity</category>
      <category>aicoding</category>
    </item>
    <item>
      <title>My Journey as a Laravel Intern</title>
      <dc:creator>Tammy Alemu</dc:creator>
      <pubDate>Tue, 06 Aug 2024 05:55:26 +0000</pubDate>
      <link>https://dev.to/tammy11/my-journey-as-a-laravel-intern-3bg8</link>
      <guid>https://dev.to/tammy11/my-journey-as-a-laravel-intern-3bg8</guid>
      <description>&lt;h4&gt;
  
  
  By Tammy Alemu
&lt;/h4&gt;

&lt;p&gt;Hi, I’m Tammy Alemu. Let me take you through my exciting journey as a Laravel intern. I aimed to gain industry experience, write readable code, and understand the framework deeply. Here’s how it all went down, with the challenges I faced and the solutions I found along the way.&lt;/p&gt;

&lt;p&gt;During my internship, I had three primary goals:&lt;/p&gt;

&lt;p&gt;Industry Experience: Gain practical experience in a professional environment.&lt;/p&gt;

&lt;p&gt;Readable Code: Write clean, maintainable, and readable code.&lt;/p&gt;

&lt;p&gt;Framework Understanding: Develop a deep understanding of the Laravel framework.&lt;/p&gt;

&lt;h4&gt;
  
  
  Development Environment
&lt;/h4&gt;

&lt;p&gt;My journey began with setting up the development environment. Before this internship, I interacted with the backend using a frontend architecture, either through Blade views or JavaScript bundled with Vite. So, I didn’t really see the necessity to set up CORS and all that. Then, I got introduced to Postman — wow, what a game-changer!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Postman&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Postman helped me set and edit HTTP requests, pass parameters and values, and manage authentication and bearer tokens. This broadened my understanding of the backend’s structure and how it works. Seeing data in its raw form and manipulating it directly was eye-opening. I realized that the seemingly complex backend operations were more straightforward than I initially thought.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Composer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Composer was another essential tool. I used it to install packages and adhered strictly to PHP PSR-4 formatting standards. When I say strictly, I mean it! Haha. I ran into errors when I didn’t follow the standards, like generating documentation and realizing I had errors in namespaces due to extra spaces or incorrect naming conventions for models and tables.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Project Setup&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Setting up the project involved several key steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository Management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cloning repositories and setting up my environment was quite overwhelming at first — haha, what a ride! I was introduced to scribe:generate, a package that generates documentation. Initially, I was like, “What?!” Running specific class seeders was another challenge. I didn’t understand their purpose compared to normal seeders until I realized &lt;code&gt;php artisan db:seed --class=...Seeder&lt;/code&gt; runs a specific seeder class directly, useful for seeding specific tables or data sets individually.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model and Data Handling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I highlighted the parameters needed when adding new attributes to models and specified data types. Familiarizing myself with data serialization and transformation to format responses was crucial. I also learned to use includes and default includes for formatting specific data and parsed includes to add data to responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Eager Loading&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eager loading was one of the beautiful things I learned. Instead of lazy loading, where a new SQL query executes within a loop, eager loading performs a single query to load all necessary data. The with helper became vital for efficient database querying, this made me look into beautiful helpers available in Laravel, what a difference it made!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Query Scopes and Builders&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I used query scopes available to the controller to fetch data before transforming them. Query builders also became my go-to for streamlined data retrieval.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controllers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Controllers handle basic logic for various request types (GET, POST, UPDATE). I learned to write endpoints and clearly comment for Scribe documentation. Using actions to extract reusable code into different controllers ensured a clean code structure. Implementing try-catch methods when working with the database was another valuable lesson.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Views&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Although not used extensively, views were mainly used to format mail responses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I learned to design and implement APIs following RESTful principles and tested them using Laravel’s built-in logging tools and Postman.&lt;/p&gt;

&lt;p&gt;This knowledge further spawns me to building and working with Laravel socialite, integrating google auth for sign in and the use of Laravel sanctum, live on my GitHub profile.&lt;/p&gt;

&lt;h4&gt;
  
  
  Challenges and Solutions
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Challenges&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Understanding the codebase was initially tough, especially since there were no collection routes available in Postman. I had to build them and understand the structure, which sometimes required extra parameters and slowed my development process.&lt;/p&gt;

&lt;p&gt;My shallow fundamental knowledge of PHP also affected my progress, leading to extra time spent on tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solutions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To overcome these challenges, I focused on learning the fundamentals and practiced by working on a separate branch aside from my assigned tasks. I took a deep dive into understanding PHP, sourcing resources like “Programming with GIO,” “PHP the Right Way,” and Laracasts — highly recommend them!&lt;/p&gt;

&lt;p&gt;It’s okay not to have the syntax memorized. Haha, for cases like this, I always referred to documentation. Reading docs broadens your understanding of a particular topic.&lt;/p&gt;

&lt;p&gt;Overall, my experience working with the team has been superb. Besides being a paid position, they offered help with understanding and building apps. The team I work with explains the tasks intended to achieve and gives swift responses when attending to challenges I face.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>softwaredevelopment</category>
      <category>internship</category>
    </item>
    <item>
      <title>What do Hiring Managers have to say?</title>
      <dc:creator>Tammy Alemu</dc:creator>
      <pubDate>Fri, 15 Sep 2023 00:47:38 +0000</pubDate>
      <link>https://dev.to/tammy11/what-do-hiring-managers-have-to-say-32l9</link>
      <guid>https://dev.to/tammy11/what-do-hiring-managers-have-to-say-32l9</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Getting hired can be a challenging process, for every open role there are a quite number of applicants and a streamlined process is in place, how do you stand out? Hiring a prospective candidate is easy but getting that candidate sometimes could be hectic for Hiring managers and often these issues are on the candidates' end. Have you ever wondered what HR managers are looking for?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Importance of Hiring Managers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hiring managers play a crucial role in organizations. They define job roles, strategize recruitment, assess candidates, consider cultural fit, negotiate offers, and oversee onboarding, ensuring the right talent is onboarded for company success.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problems in the Hiring Process:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The hiring process involves an initial filter to remove irrelevant applications, identifying the best profiles, assessing cultural fit, technical interviews, and final offer evaluation. In any open role on the internet comes over 100 applicants, the sad part is that most CVs are not read or didn't pass the ATS bots. 
(An ATS bot, or Applicant Tracking System bot, is a type of software application used by employers and recruiters to streamline and automate various aspects of the hiring process.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your application goes through 5 stages&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recruitment filter 1. Getting rid of obvious nonsense.&lt;/li&gt;
&lt;li&gt;Developer filter 1. Finding the best profiles. &lt;/li&gt;
&lt;li&gt;Recruiter filter 2. Cultural fit(non-technical interview)&lt;/li&gt;
&lt;li&gt;Developer filter 2. Interview (technical).&lt;/li&gt;
&lt;li&gt;Offer filter. &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;What do hiring Managers have to Say and why aren't you hired is a question every applicant would want to ask.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I asked a few hiring managers and here's what they have to say and issues regarding candidates in an open role, and their common flaws include: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The lack of relevant experience: &lt;br&gt;
Most prospective candidates lack relevant experience as stipulated in their resume but couldn't answer basic programming questions. companies are looking to hire people or engineers that solve real problems, anyone can make a simple box card component or to-do list, and there are tons of libraries that a developer could easily pick from for these, but they don't show you solving real problems, they just show you can follow a tutorial, they want to see you solve the problem, how you approached them and how you made the decisions to resolve it. Irrespective of the tools, can you solve an issue or do you know how to use the tools. &lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Having a bulky resume:&lt;br&gt;
Candidates having a bulky resumé have less chance of being regarded recruiters skimp through your resumé /CV for relevant experience. &lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;cloned portfolios, and a focus on generic projects rather than unique ones.&lt;br&gt;
Cloned portfolios, with so many W3Cc validated errors, no basic understanding o fundamentals. &lt;br&gt;
Your projects can be completely fake, but they are  subject of conversation during interviews and most times candidates couldn't answer the basic questions about coding fundamentals. A lot of people build out projects that are generic and basic, like a to-do app, sure technically there's nothing wrong with that, but the truth is you're going to have other resumes with similar projects. It's just boring and doesn't make you stand out. &lt;br&gt;
 Instead, focus on unique projects that are interesting to you. Interviewers care a little about your projects, but if you do have one, questions would arise from it. It gives you a better edge if the project is interesting to you. They look at you and how interested you are in the field.&lt;br&gt;
You can also build a to-do app and make it interesting to ignite the curiosity of the user. &lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Soft skills: communication, ability to learn, interest.  Tech skills can be taught,"a monkey can be trained to code" , they're mostly looking at your soft skills, it takes one person to ruin a team, regardless of what they know and what they can do, skills can be developed and cultivated but who a person is, is what these companies are investing in, Talking on a point of contact, can learn,  how you communicate with your recruiters is important.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Problem-solving approach: problem-solving approaches are highly valued, even more than knowing every syntax. Problems can be solved in several ways, but knowing how to approach and solve things is what gets you noticed. In development an important factor is the details, the differentiator isn't in the problem set, but the execution because in engineering a lot of innovation is actually within the execution. They show your thought process.&lt;br&gt;
Your thought process of achieving a task and not being mundane is of topmost importance, they don't expect you to know every syntax, because they are not hiring encyclopedias.&lt;br&gt;
&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Recommendations and Advice:&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A portfolio is of little concern to Hiring managers, It's best you Build a clean and fundamental portfolio, as it's important to get the basics right. Don't bother with a portfolio, or else you can make it perfect,  because in learning anything new, it's important to get the fundamentals right.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A computer science degree is not mandatory to excel in coding; don't fear interviews, and admit when you don't know something.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developing a strong personality and interpersonal skills can boost your hiring prospects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you don't get hired, consider creating your job by showcasing your programming skills, This is software development. Once you have the basics down, you can create anything. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Your self-doubt is perceived by only you, you have skills and those skills are valuable when used. &lt;/p&gt;

</description>
      <category>programming</category>
      <category>hiring</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>GitHub for babies</title>
      <dc:creator>Tammy Alemu</dc:creator>
      <pubDate>Tue, 18 Jul 2023 02:10:00 +0000</pubDate>
      <link>https://dev.to/tammy11/github-for-babies-17mc</link>
      <guid>https://dev.to/tammy11/github-for-babies-17mc</guid>
      <description>&lt;h2&gt;
  
  
  A Walk Around GitHub
&lt;/h2&gt;

&lt;h2&gt;
  
  
  What is GitHub?
&lt;/h2&gt;

&lt;p&gt;GitHub is a web platform where people can store and share their computer code. It's like a big online library where programmers can upload their code and collaborate with others. It provides a place for developers to work together on projects, make changes to code, and keep track of those changes. GitHub makes it easier for people to work on code together, even if they are in different parts of the world.&lt;br&gt;
Take, for instance, you and your friend had a startup, but you both need jobs for funding, so you were actively applying. Finally, that email came, and you got the job. It's remote. You celebrated with your friend and encouraged him to apply more. Down the line, he got one. Great news, but it's onsite, which means your friend has to relocate. It's great, right? You don't want to jeopardize his chances, but what happens to your startup?&lt;br&gt;
Okay, cool. We can share codes on WhatsApp... WhatsApp? Not reliable. It's different time zones. How do you merge conflicts? (I'd explain that). How do you test? Definitely, it's going to impact user input. &lt;br&gt;
That's where GitHub comes in. Not only can you edit codes, but it also keeps track of changes. Isn't that super cool? 😎&lt;/p&gt;




&lt;h2&gt;
  
  
  Why GitHub?
&lt;/h2&gt;

&lt;p&gt;If you're a music lover, I can tell you have your playlist personally curated based on your preferences and taste. You can't wait to share that feeling with your buddy, so you share your editable playlist. But how do you refrain your friend from inputting abstract songs into the playlist? However, he knows your taste in music, but sometimes he can miss the mark, right? You don't want jazz on a blues playlist (I love jazz music, haha). How do you refrain from that? Hmmm.&lt;/p&gt;

&lt;p&gt;That's a conflict right there, but you still want to share your playlist with your buddy, right?&lt;/p&gt;

&lt;p&gt;Take GitHub as a playlist filled with lines of your code. You create the playlist, and he makes a copy of it to add more interesting blues. All you have to do is verify if they suit your taste. So, Git typically merges both playlists, and voila, you've got a better playlist.&lt;/p&gt;

&lt;p&gt;In instances of conflict, what's the best way to resolve them?&lt;/p&gt;

&lt;p&gt;All you have to do is create your own branch and roll your updates... But wait what is a branch? We don't have an HQ yet, its just a startup. Hahaha, in GitHub practices, the main branch is the original project, but you need a repository (repo for short) to do that. Now lets understand what's a repo is.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding GitHub
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; Imagine a repository as a big box or folder where you keep all the important stuff for a project. It's like a central storage space where you can store and organize everything related to your project, such as documents, files, and even different versions of your work. It helps you keep things organized and accessible in one place. Just like you might have a folder on your computer for all your photos or documents, a repository serves as a dedicated place for your project's files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Branch:&lt;/strong&gt; Now, think of a branch as a different path or direction that you can take within that big box or folder. It's like having a separate area where you can work on specific changes or ideas without affecting the main project. Just like you can take a detour while traveling, a branch allows you to explore different ideas or make changes to your project without messing up the original version.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In simpler terms, a repository is like a big box where you keep everything for your project, and a branch is like a separate path or area within that box where you can work on different changes or ideas without affecting the main project, and there's so much fun things you could do with a repository, like cloning and initializing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cloning&lt;/strong&gt; existing repositories refers to making a copy of an already existing Git repository. This allows you to have a local copy of the repository on your own computer, so you can access the files and make changes without affecting the original repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Initializing&lt;/strong&gt; a repository within a project directory means starting a new Git repository within a specific folder that contains your project's files. By doing this, you tell Git to start tracking changes to those files and enable version control for your project.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In these examples, setting up a new Git repository is like creating a dedicated space for your project or hobby. Cloning existing repositories is like making a copy of someone else's work for your own use.&lt;br&gt;
Initializing a repository within a project directory is like setting up a shared space where multiple people can work on different parts of a project and later bring everything together.&lt;/p&gt;




&lt;h2&gt;
  
  
  Working with GitHub
&lt;/h2&gt;

&lt;p&gt;So back to our playlist we shared with your bud, how do we achieve this?&lt;/p&gt;

&lt;p&gt;Here's how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start with the main branch:&lt;/strong&gt; The main branch is like the original project. It contains the initial files and serves as the foundation for everyone's work (The main playlist).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create your own branch:&lt;/strong&gt; Before making any changes, you create your own branch. It's like having your personal copy of the playlist to work on. This way, you won't affect the main branch or your friends' work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Make your changes:&lt;/strong&gt; You start working on your branch, making edits, adding new features, or fixing issues. You can do whatever you want without interfering with others.(Basically adding or removing tracks).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Commit your changes:&lt;/strong&gt; Once you're done with your changes, you commit them. Think of it as saving your progress. Git records the changes you made, like a snapshot of the project at that moment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Share your branch:&lt;/strong&gt; After committing, you push your branch to GitHub. It's like uploading your changes to a shared space where your friends can see them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Repeat the process:&lt;/strong&gt; The cycle continues as others create their branches, make changes, and collaborate. Git keeps track of all the changes, making it easy to see who did what and when.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following this workflow, Git and GitHub enable smooth collaboration on projects. They allow multiple people to work on the same project simultaneously, track changes, provide feedback, and merge everyone's work into a unified whole. It's like teamwork with an efficient system to manage and integrate everyone's contributions.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;what if conflicts arise while updating the playlist? He took out your favourite track or added an odd one?? Oh dang this doesn't sound good right?&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now you&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resolve conflict&lt;/strong&gt;. In git Sometimes, two people may make conflicting changes to the same file(playlist). Git helps you identify these conflicts and resolve them. It ensures that everyone's work fits together smoothly. After identifying the conflicts and been satisfied with the resolutions(tracks on the playlist) you merge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Review and merge:&lt;/strong&gt; Now your friends can see your changes and provide feedback. They might suggest improvements or ask for modifications. Once everything looks good, your branch can be merged into the main branch, combining your changes with everyone else's work.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sometimes the merge conflicts arises, don't worry let's figure it out.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Merge Conflicts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Merge conflicts occur when Git cannot automatically merge the changes because they affect the same lines or sections of a file.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Git marks the conflicting parts in the file and notifies you about the conflict.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conflict markers (like "&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;", "=======", and "&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;") are inserted to highlight the conflicting sections.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best Practices for Resolving Conflicts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communicate:&lt;/strong&gt; Coordinate with your teammates to understand their changes and ensure everyone is aware of potential conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Update frequently:&lt;/strong&gt; Regularly pull the latest changes from the shared repository to reduce the chances of conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Review changes:&lt;/strong&gt; Before merging branches, review your teammate's changes to catch any potential conflicts early.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resolve conflicts locally:&lt;/strong&gt; Whenever possible, resolve conflicts on your local machine before pushing the changes to the shared repository.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use tools:&lt;/strong&gt; Utilize Git's built-in tools or graphical interfaces that assist in visualizing and resolving conflicts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test after resolving:&lt;/strong&gt; After resolving conflicts, test the merged code to ensure it functions correctly and as intended. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;So does that mean my bud can merge playlist without me reviewing?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No he needs to ask you first..... In etiquette it's called polite request, in Git we call it the &lt;strong&gt;Pull request.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;Pull request&lt;/strong&gt; is like raising your hand and asking someone to review your work before it becomes part of a bigger project.&lt;/p&gt;

&lt;p&gt;When you finish your part, you want others to review it before it gets added to the final project. So, you create a pull request. It's like raising your hand and saying, "Hey, can someone take a look at what I've done? I think it's ready to be added to our project."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;To create a pull request, you upload your branch with the changes to a shared platform like GitHub.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your teammates are then notified about the pull request and can review your code, offer suggestions, ask questions, or request modifications.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally we have an updated playlist. Viola.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
