<?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: Bernadette Akinyi</title>
    <description>The latest articles on DEV Community by Bernadette Akinyi (@bernadetteakinyi).</description>
    <link>https://dev.to/bernadetteakinyi</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4027622%2F22bb9cb9-6061-402a-aad2-4f7503b5e572.jpg</url>
      <title>DEV Community: Bernadette Akinyi</title>
      <link>https://dev.to/bernadetteakinyi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bernadetteakinyi"/>
    <language>en</language>
    <item>
      <title>How Software Actually Talks to Software</title>
      <dc:creator>Bernadette Akinyi</dc:creator>
      <pubDate>Wed, 16 Sep 2026 18:40:31 +0000</pubDate>
      <link>https://dev.to/bernadetteakinyi/how-software-actually-talks-to-software-249i</link>
      <guid>https://dev.to/bernadetteakinyi/how-software-actually-talks-to-software-249i</guid>
      <description>&lt;p&gt;If you've built anything beyond a script that only talks to itself, you've probably used an API — even if you didn't fully know why it worked. I want to break down what's actually happens, because once it clicks, a huge chunk of modern software development starts making sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually is an API??
&lt;/h2&gt;

&lt;p&gt;Well, it stands for &lt;em&gt;Application Programming Interface&lt;/em&gt; for starters.&lt;br&gt;
Simply it lets software talk to each other without needing to know how they work internally.&lt;/p&gt;

&lt;p&gt;This isn't limited to "frontend talking to backend." Frontend-to-backend is just the most familiar. This basically means APIs can talk to other APIs and other backends and totally different software. For instance, using a banking app to make a purchase on an online store. &lt;/p&gt;

&lt;p&gt;Most web APIs today are REST APIs; they use standard HTTP methods to represent actions on resources:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GET&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Retrieve data&lt;/td&gt;
&lt;td&gt;Get a user's profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;POST&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create new data&lt;/td&gt;
&lt;td&gt;Register a new user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PUT&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Replace existing data&lt;/td&gt;
&lt;td&gt;Update a full profile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PATCH&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Partially update data&lt;/td&gt;
&lt;td&gt;Update just an email&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DELETE&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove data&lt;/td&gt;
&lt;td&gt;Delete a user account&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Data is usually exchanged as JSON; a lightweight human readable text format.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"city"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Kisumu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;24.5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Partly cloudy"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;The API does not store the JSON; it is just the format in which data travels in for one request or response&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let's call a public API and map the response into a clean data structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;dataclasses&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;dataclass&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;# Step 1: Define the shape of the data we expect back.
# This is our data model — think of it as a blueprint for one "weather record."
&lt;/span&gt;&lt;span class="nd"&gt;@dataclass&lt;/span&gt;
&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WeatherData&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;
    &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;float&lt;/span&gt;
    &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;

&lt;span class="c1"&gt;# Step 2: Write a function that makes the actual API call.
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;WeatherData&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

    &lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.example.com/weather?city=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;          &lt;span class="c1"&gt;# the actual HTTP request
&lt;/span&gt;    &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;raise_for_status&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;           &lt;span class="c1"&gt;# raise an error if the request failed
&lt;/span&gt;    &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;                &lt;span class="c1"&gt;# parse the JSON body into a Python dict
&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;WeatherData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;city&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temp_c&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;condition&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Step 3: Use it.
&lt;/span&gt;&lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Kisumu&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;weather&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;city&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;weather&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;°C, &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;weather&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;WeatherData&lt;/code&gt; does not know or care how it was fetched as you can see from the snippet. It just describes the shape of the data.&lt;br&gt;
&lt;code&gt;response.json()&lt;/code&gt; translates the JSON text into a Python dictionary you can use.&lt;br&gt;
&lt;code&gt;raise_for_status()&lt;/code&gt; matters because APIs fail, rate limits, bad request and downtime can occur. Always handle that instead of assuming success.&lt;/p&gt;

&lt;p&gt;Once you understand APIs as contracts for communication, not as data containers, a lot of architecture decisions become intuitive: why we version APIs, why rate limiting exists, why error handling isn't optional, and why good API design makes or breaks a developer's experience using your system.&lt;/p&gt;

</description>
      <category>python</category>
      <category>api</category>
      <category>discuss</category>
      <category>performance</category>
    </item>
    <item>
      <title>All software engineers are authors, but not all authors are software engineers.</title>
      <dc:creator>Bernadette Akinyi</dc:creator>
      <pubDate>Mon, 07 Sep 2026 17:37:39 +0000</pubDate>
      <link>https://dev.to/bernadetteakinyi/all-software-engineers-are-authors-but-not-all-authors-are-software-engineers-3hhh</link>
      <guid>https://dev.to/bernadetteakinyi/all-software-engineers-are-authors-but-not-all-authors-are-software-engineers-3hhh</guid>
      <description>&lt;p&gt;Before there is a website, there is nothing.&lt;/p&gt;

&lt;p&gt;Just an idea.&lt;/p&gt;

&lt;p&gt;Maybe it's scribbled on a piece of paper. Maybe it's sitting in someone's head. Maybe it's just a sentence:&lt;/p&gt;

&lt;p&gt;"I want to build something that helps people."&lt;/p&gt;

&lt;p&gt;Then someone starts writing.&lt;/p&gt;

&lt;p&gt;Not with a pen, but with code.&lt;/p&gt;

&lt;p&gt;A few lines become a page. A page becomes a navigation bar. The navigation bar leads somewhere else. That page leads somewhere else. A button triggers an action. A form collects information. An API connects one thing to another.&lt;/p&gt;

&lt;p&gt;And suddenly, there is a story.&lt;/p&gt;

&lt;p&gt;This is why I've started thinking about software engineers differently.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;All software engineers are authors, but not all authors are software engineers.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;An author writes a story that takes a reader from one point to another.&lt;/p&gt;

&lt;p&gt;A software engineer does something surprisingly similar: they create experiences that take users from one state to another.&lt;/p&gt;

&lt;p&gt;The difference is that a software engineer doesn't always know which chapter the user will read next.&lt;/p&gt;

&lt;p&gt;The user chooses.&lt;/p&gt;

&lt;p&gt;It is an act of creation.&lt;/p&gt;

&lt;p&gt;You start with nothing but an idea, and through thousands of small decisions, you create something that didn't exist before.&lt;/p&gt;

&lt;p&gt;You write the structure.&lt;/p&gt;

&lt;p&gt;You write the rules.&lt;/p&gt;

&lt;p&gt;You write the interactions.&lt;/p&gt;

&lt;p&gt;You write the experience.&lt;/p&gt;

&lt;p&gt;And eventually, someone else comes along and experiences the story you wrote.&lt;br&gt;
They may never see your code.&lt;/p&gt;

&lt;p&gt;They may never know your name.&lt;/p&gt;

&lt;p&gt;They may never realise how many decisions went into the button they just clicked.&lt;/p&gt;

&lt;p&gt;But they experience it.&lt;/p&gt;

&lt;p&gt;And perhaps that's what makes software engineers authors.&lt;br&gt;
We don't just write stories.&lt;br&gt;
We write stories that people can interact with.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>VIBE CODER?</title>
      <dc:creator>Bernadette Akinyi</dc:creator>
      <pubDate>Fri, 31 Jul 2026 18:12:14 +0000</pubDate>
      <link>https://dev.to/bernadetteakinyi/vibe-coder--2ebp</link>
      <guid>https://dev.to/bernadetteakinyi/vibe-coder--2ebp</guid>
      <description>&lt;h2&gt;
  
  
  HEY TECHIE 🌸
&lt;/h2&gt;

&lt;p&gt;I have always believed, for quite a long while, that there was no point in vibe coding. My thought process was, "Why prompt it when I can do it myself ?" The whole idea was that if I built it from scratch, it would be more fulfilling to me because I made it. I mean, there's nothing wrong with that, but I limited myself from exploring this new, not-so-new wave dynamic.&lt;/p&gt;

&lt;p&gt;You might wonder where that got me; funny enough, I've been stuck in tutorial hell and staying a novice. Never really getting to level up as much as I would like. The ideas, innovations- I had them all; the problem was they were limited to just my mind because I kept waiting for when I would be perfect and ready. &lt;/p&gt;

&lt;p&gt;So, yesterday, abruptly, I joined a machine learning group where I basically study, and there was an ongoing hackathon they had been working on and only about ten hours left before the deadline. Did I sign up for the hackathon? I did. Did I regret my decision? At first, I kept thinking about what I had got myself into and that I would make a fool of myself. I stayed up late, whipping my AI to get to work and give me something, and when it generated so much, I realised I was not familiar with the concepts I witnessed at that moment, and I shut down my laptop and went to sleep, giving up on the whole idea.&lt;/p&gt;

&lt;p&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fih2nj1pgqp8u631mri09.jpg" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fih2nj1pgqp8u631mri09.jpg" alt="Animated chatacter that is tired " width="592" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Even if you are not ready for the day, it cannot always be night."&lt;/em&gt; — Gwendolyn Brooks&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And morning came; I absolutely did not want to turn up, but I did anyway. Throughout, I kept thinking of how maybe I should just not do it and decided to get my &lt;em&gt;whipper friends&lt;/em&gt;, if I may. Email after email, credit exhaustion after exhaustion and in less than three hours my Idea had come to life, not perfect, but it came to life. It was so beautiful being able to do something in such a small amount of time, and an idea could be presented.&lt;/p&gt;

&lt;p&gt;I did present my idea, obviously not really understanding what went on technically for the most part, but I did learn quite a lot in such a short time frame. Presenting my idea and having people give me insights on feature recommendations I did not consider, the business aspects and technical suggestions really opened my mind and as much as I keep learning, I will venture into vibe coding and whip the hell out of it. &lt;/p&gt;

&lt;p&gt;I'd love to hear about your experiences. Do you think it's worth venturing into, or do you prefer building everything from scratch? Let me know your thoughts! 🌸&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building IRIS: An Adaptive Accessibility Companion</title>
      <dc:creator>Bernadette Akinyi</dc:creator>
      <pubDate>Sun, 26 Jul 2026 09:42:03 +0000</pubDate>
      <link>https://dev.to/bernadetteakinyi/iris-2kp</link>
      <guid>https://dev.to/bernadetteakinyi/iris-2kp</guid>
      <description>&lt;h2&gt;
  
  
  Hey Techie 🌸
&lt;/h2&gt;

&lt;p&gt;Before I continue my go series, I wanted to share a personal project that I'll be working on alongside my learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is IRIS?
&lt;/h3&gt;

&lt;p&gt;IRIS is an adaptive accessibility companion meant to help people with invisible disabilities navigate the media in ways preferable to them.&lt;/p&gt;

&lt;p&gt;Most websites and systems are one-size-fits-all and do not take user preferences into account in depth. The assumption is that every user views technology the same way, and that's not true at all. This is where IRIS shines her glory. &lt;/p&gt;

&lt;p&gt;The goal of creating IRIS is that it adapts to the user's needs rather than the user adapting to it. She will be able to personalise things like text-to-speech, colour themes, layouts, and other accessibility features based on their needs.&lt;/p&gt;

&lt;p&gt;As I continue learning Go and backend development, I'll also be sharing the progress of building IRIS, from designing the database and API to developing the backend and, eventually, the complete application.&lt;/p&gt;

&lt;p&gt;I look forward to sharing my progress and the challenges I will face and having discussions with you, my dear techie friends 🌸&lt;/p&gt;

</description>
      <category>go</category>
      <category>beginners</category>
      <category>discuss</category>
      <category>software</category>
    </item>
    <item>
      <title>Slices Beyond the Basics</title>
      <dc:creator>Bernadette Akinyi</dc:creator>
      <pubDate>Thu, 23 Jul 2026 15:45:59 +0000</pubDate>
      <link>https://dev.to/bernadetteakinyi/slices-beyond-the-basics-4ohd</link>
      <guid>https://dev.to/bernadetteakinyi/slices-beyond-the-basics-4ohd</guid>
      <description>&lt;h3&gt;
  
  
  Hey Techie! 🌸
&lt;/h3&gt;

&lt;p&gt;Welcome to my Go series! I'll be sharing what I'm learning in ways that make sense to me, the mistakes I make and the "aha!" moments that help everything click. Whether you're learning Go too or just curious about it, I hope you'll pick up something along the way.&lt;/p&gt;

&lt;p&gt;Feel free to add any insights or experiences in the comments.&lt;/p&gt;

&lt;p&gt;Today's topic is... &lt;em&gt;drumroll, please!&lt;/em&gt; &lt;strong&gt;Slices&lt;/strong&gt;. Let's dive in!&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what exactly is a slice?
&lt;/h2&gt;

&lt;p&gt;When I first came across slices in Go, I thought they were another name for arrays. Turns out, they're not!&lt;/p&gt;

&lt;p&gt;A slice is a dynamic view into an underlying array. It is internally represented by a small data structure called a &lt;strong&gt;slice header&lt;/strong&gt;. Instead of storing the elements themselves, the slice header stores a &lt;strong&gt;pointer&lt;/strong&gt; to the underlying array, along with its &lt;strong&gt;length&lt;/strong&gt; and &lt;strong&gt;capacity&lt;/strong&gt;. This realization helped me understand why modifying a slice can also modify the original array.&lt;/p&gt;

&lt;p&gt;Another interesting and convenient thing is how flexible slices are compared to arrays which are fixed size. Slices can grow using functions like &lt;strong&gt;append()&lt;/strong&gt; or be resliced to work with a smaller portion of the underlying array. This flexibility is one of the reasons slices are used so frequently in Go.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;A little heads up, I used AI to clean up my grammar and typos. The technical ideas and thoughts in this article are 100% my own.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>go</category>
      <category>discuss</category>
      <category>software</category>
    </item>
  </channel>
</rss>
