<?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: Stephen (Amedi) Imbira</title>
    <description>The latest articles on DEV Community by Stephen (Amedi) Imbira (@amedi-imbira).</description>
    <link>https://dev.to/amedi-imbira</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%2F1273207%2F71fdd6fa-0d19-439c-8886-9f30a3c4fdaa.jpg</url>
      <title>DEV Community: Stephen (Amedi) Imbira</title>
      <link>https://dev.to/amedi-imbira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amedi-imbira"/>
    <language>en</language>
    <item>
      <title>Build a Blog Application: Step-by-step Integration with Django and Vue 3</title>
      <dc:creator>Stephen (Amedi) Imbira</dc:creator>
      <pubDate>Tue, 14 May 2024 14:31:59 +0000</pubDate>
      <link>https://dev.to/amedi-imbira/build-a-blog-applicationstep-by-step-integration-with-django-and-vue-3-2o12</link>
      <guid>https://dev.to/amedi-imbira/build-a-blog-applicationstep-by-step-integration-with-django-and-vue-3-2o12</guid>
      <description>&lt;p&gt;In the realm of Django development, models, views, URLs, and templates form the cornerstone of every project. These elements converge to sculpt a full-stack Python based web framework, meticulously adhering to the MTV design pattern. However, this project does not employ Django templates for the presentation layer. Instead, it uses Vue 3, a powerful JavaScript framework for building dynamic user interfaces. This innovative solution splits the roles of client and server, revolutionizing the traditional approach to web development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up Django&lt;/strong&gt;&lt;br&gt;
Installing Django with pipenv&lt;br&gt;
Setting up Django involves installing it with pipenv, the preferred package management system for creating a virtual environment. To install Django with pipenv, simply run the following command at the shell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipenv install django
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In addition to installing Django, you’ll also need to install the following packages: djangorestframework and djangocorsheaders. To do so, continue in your terminal or command prompt and execute the following commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipenv install djangorestframework
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipenv install djangocorsheaders
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Activate virtual environment&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pipenv shell
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Creating your first project&lt;/strong&gt;&lt;br&gt;
Django provides a command that allows you to create an initial project file structure. Run the following command in your shell prompt. Remember to add the dot at the end, so that Django can create the server files in the same folder.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;django-admin startproject server .
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To initialize the database migrations for your Django project, execute the following command in your terminal or command prompt: it ensures that your database schema aligns with your project’s models and configurations.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To create a new Django app named "blog," navigate to your project directory in the terminal or command prompt and execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py startapp blog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To create the blog data model in your Django project, you can define  a model named Article in your models.py Here’s how you can do it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.db import models
from django.contrib.auth.models import User

class Article(models.Model):
      title = models.CharField(max_length=200)
      body = models.TextField()

      def __str__(self):
            return self.title

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this model, we’ve defined an Article class that inherits from Django’s models.Model. It includes two fields: title field which is a character field with a maximum length of 200 characters, and body which is a text field to store the content of the article.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Activating the Application&lt;/strong&gt;&lt;br&gt;
To activate the newly created "blog" application, along with the third party apps we installed, navigate to your project's settings file (usually located at settings.py) and add blog to the INSTALLED_APPS list. Ensure that it follows the specified format, including third-party apps such as rest_framework and corsheaders. Here's how your INSTALLED_APPS list should look:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",

    # Third party apps
    'rest_framework',
    'corsheaders',

    # Local apps
    'blog',
]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Creating and Applying Migrations&lt;/strong&gt;&lt;br&gt;
To create and apply migrations for your Django project, execute the following commands in your terminal or command prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py makemigrations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a superuser&lt;br&gt;
To create a superuser for accessing the Django administration site, execute the following command in your terminal or command prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python manage.py createsuperuser
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will prompt you to enter a username, email (optional), and password for the superuser account. Once created, you can use these credentials to log in to the Django administration site and manage your blog application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Django administration site&lt;/strong&gt;&lt;br&gt;
Now that the Blog model is synchronized with the database, we can establish a straightforward administration site to manage blog posts.&lt;br&gt;
As depicted in the diagram, the Article model is prominently displayed within the admin site.&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.amazonaws.com%2Fuploads%2Farticles%2F7z2euxkg6du7rwkt55dx.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%2F7z2euxkg6du7rwkt55dx.png" alt="Image description" width="616" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's proceed by adding two articles using the admin site.&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.amazonaws.com%2Fuploads%2Farticles%2Fxcau987prqkwlhlm2rci.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%2Fxcau987prqkwlhlm2rci.png" alt="Image description" width="603" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building List and Detail Views&lt;/strong&gt;&lt;br&gt;
These views define endpoints for listing all articles and retrieving a specific article. The article_list view fetches all articles from the database and serializes them. The article_detail view retrieves a single article based on its id.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from django.shortcuts import get_object_or_404
from rest_framework.decorators import api_view
from rest_framework.response import Response

from .models import Article
from .serializers import ArticleSerializer

@api_view()
def article_list(request):
      all_posts = Article.objects.all()
      serializer = ArticleSerializer(all_posts, many=True)
      return Response(serializer.data)

@api_view()
def article_detail(request, id):
      post = get_object_or_404(Article, id=id)
      serializer = ArticleSerializer(post)
      return Response(serializer.data)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Making sure the APIs are working&lt;/strong&gt;&lt;br&gt;
To verify that the APIs are functioning correctly, you can utilize django rest framework’s built-in UI.&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.amazonaws.com%2Fuploads%2Farticles%2Feota5zxxtmxr8fcg0k36.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%2Feota5zxxtmxr8fcg0k36.png" alt="Image description" width="603" height="308"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fh03bf1qvsfaqcng1yph3.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%2Fh03bf1qvsfaqcng1yph3.png" alt="Image description" width="602" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setting up the Vue.js&lt;/strong&gt;&lt;br&gt;
Installing Vue 3&lt;br&gt;
To set up Vue.js for your project, begin by installing Vue 3 using npm. Execute the following command in your terminal or command prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm create vue@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;During the installation process, make sure to select 'Yes' when prompted to add Vue Router. This will incorporate Vue Router into your Vue 3 project, enabling client-side routing for seamless navigation within your application.&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.amazonaws.com%2Fuploads%2Farticles%2Fj8g61xnaen7o7ik380bd.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%2Fj8g61xnaen7o7ik380bd.png" alt="Image description" width="603" height="215"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd frontend
npm install
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To install Axios, a popular HTTP client for making requests in Vue.js applications, execute the following command in your terminal or command prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install axios
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this main.js file, Axios is registered as $axios in the global properties of the Vue app. This allows Axios to be easily accessible from within Vue components using this.$axios. The app is then mounted to the DOM element with the ID app, completing the setup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import './assets/main.css'
import './assets/main.scss'

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'

const app = createApp(App)
app.config.globalProperties.$http = axios

app.use(router)

app.mount('#app')

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;*&lt;em&gt;Fetching data and displaying API data with Vue.js&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;div class="container-fluid"&amp;gt;
    &amp;lt;div class="container mt-6"&amp;gt;
          &amp;lt;article class="media box has-background-light" v-for="(post, index) in posts" :key="index"&amp;gt;

            &amp;lt;div class="media-content"&amp;gt;
              &amp;lt;div class="content"&amp;gt;
                &amp;lt;p&amp;gt;
                  &amp;lt;p class="title is-4"&amp;gt;
                    &amp;lt;RouterLink :to="{ name: 'full', params: { id: post.id } }"&amp;gt;{{ post.title }}&amp;lt;/RouterLink&amp;gt;

                  &amp;lt;/p&amp;gt;
                  {{ truncateWords(post.body, 30) }}
                &amp;lt;/p&amp;gt;
              &amp;lt;/div&amp;gt;

            &amp;lt;/div&amp;gt;
            &amp;lt;div class="media-right"&amp;gt;
              &amp;lt;figure class="image is-128x128"&amp;gt;
                &amp;lt;img src="../assets/profile.jfif" alt=""&amp;gt;
              &amp;lt;/figure&amp;gt;
            &amp;lt;/div&amp;gt;
          &amp;lt;/article&amp;gt;

    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;
export default {
  data() {
    return {
      posts: []
    }
  },

  methods: {
    async getPosts() {
      try {
        const response = await         this.$http.get('http://127.0.0.1:8000/articles/');
        this.posts = response.data;
        console.log(this.posts)

      } catch (error) {
        console.log(error)

      }
    },

    truncateWords(text, limit) {
      const words = text.split(' ');
      if (words.length &amp;gt; limit) {
        return words.slice(0, limit).join(' ') + '...';
      }
      return text;
    }
  },

  created() {
    this.getPosts();
  },
}
&amp;lt;/script&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setting up the Vue Router&lt;/strong&gt;&lt;br&gt;
In this setup, Vue Router is configured to use the HTML5 history mode for routing. Two routes are defined: one for the home page (/) which corresponds to the ListView component, and another for viewing detailed articles (/articles/:id)which corresponds to the DetailedView component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { createRouter, createWebHistory } from 'vue-router'
import ListView from '../views/ListView.vue'
import DetailedView from '../views/DetailedView.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'home',
      component: ListView
    },
    {
      path: '/articles/:id',
      name: 'full',
      component: DetailedView
    }
  ]
})

export default router

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Detailed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;div class="container"&amp;gt;
    &amp;lt;h1 class="title"&amp;gt;{{ article.title }}&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;{{ article.body }}&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;
export default {
  data() {
    return {
      article: null
    }
  },

  created() {
    this.fetchArticle();
  },

  methods: {
    async fetchArticle() {
      try {
        const id = this.$route.params.id;
        const response = await this.$http.get(`http://127.0.0.1:8000/articles/${id}/`)
        this.article = response.data;

      } catch (error) {
        console.log(error)

      }
    }
  }
}
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The Final Project&lt;/strong&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%2Fsjfd2weo2rj4aa4poeoc.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%2Fsjfd2weo2rj4aa4poeoc.png" alt="Image description" width="602" height="291"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F8jct308z9o1w729pad6f.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%2F8jct308z9o1w729pad6f.png" alt="Image description" width="602" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>django</category>
      <category>vue</category>
      <category>axios</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Is Programming Safe from AI of the Future? AI’s Impact on Programming</title>
      <dc:creator>Stephen (Amedi) Imbira</dc:creator>
      <pubDate>Fri, 10 May 2024 10:12:30 +0000</pubDate>
      <link>https://dev.to/amedi-imbira/is-programming-safe-from-ai-of-the-future-ais-impacton-programming-3fn7</link>
      <guid>https://dev.to/amedi-imbira/is-programming-safe-from-ai-of-the-future-ais-impacton-programming-3fn7</guid>
      <description>&lt;p&gt;In the ever-evolving realm of technology, the rise of AI has sparked both excitement and agitation among software developers. With the advent of advanced AI entities like Cognition AI’s Devin, the spectre of mass layoffs seems inevitable; with nearly 29% of agitated developers fearing the end of their careers, as revealed by a survey conducted by Evans Data Corp. In contrast, other developers are dazzled by the smorgasbord of opportunities offered by AI. The allure of AI to revolutionize coding practices has captivated the imaginations of many developers. &lt;br&gt;
The article ventures into the heart of the debate by delving into the impact of AI in the coding realm, along with the opportunities and challenges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Power of AI in Software Development&lt;/strong&gt;&lt;br&gt;
The impact of AI in coding surged with the introduction of OpenAI’s GPT-3 language model. This remarkable model could generate complete HTML websites from simple prompts, igniting a wave of excitement over the internet. Testimonies flooded in, showcasing how non-coders could build web applications without ever touching a single line of code.&lt;/p&gt;

&lt;p&gt;Since then, the AI field has witnessed an array of breakthroughs. From AI automated coding assistant tools that revolutionized programmers’ productivity to systems now capable of building complete computer programs from natural language descriptions.&lt;/p&gt;

&lt;p&gt;The recent revelation of Cognition AI’s, Devin hailed as the world’s first AI developer, reverberated through the software development realm. According to Cognition, Devin is capable of doing everything that a professional does. As a result, agitated and anxious programmers raised their worries about the future of their careers. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will AI replace human programmers?&lt;/strong&gt;&lt;br&gt;
As we all know, coding is indeed facing disruptive technology. Therefore, AI coding models may indeed replace jobs of low-skilled coders. This is because the role of AI is to automate the low-level tasks. However, experts will likely become even more important as the problem-solving essence of computer programming is likely to remain a largely human endeavor for the foreseeable future. Thus, software engineers will provide architectural vision and direction.&lt;/p&gt;

&lt;p&gt;However, it’s crucial to recognize that while AI may excel at automating routine coding processes, the essence of problem-solving in computer programming remains inherently human. As a result, experts in the field are poised to become even more vital, as their ability to navigate complex challenges and provide architectural vision and direction cannot be replicated by AI – at least not in the foreseeable future.&lt;/p&gt;

&lt;p&gt;In conclusion, AI is a double-edged sword – a powerful tool that both augments and challenges the role of human programmers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opportunities for software developers&lt;/strong&gt;&lt;br&gt;
The integration of AI into software development presents a myriad of opportunities for human programmers. While challenges certainly exist, they serve as fertile ground for innovation and growth within the industry. Concerns regarding the reliability and quality of AI-generated code, as highlighted by a study from the University of Melbourne, underscore the importance of human oversight and rigorous code review processes.&lt;/p&gt;

&lt;p&gt;Instances of AI-generated code producing unreliable or insecure results underscore the indispensable role of human programmers in ensuring the integrity and functionality of software systems. Through meticulous code reviews and hands-on intervention, programmers can mitigate risks and enhance the overall quality of AI-assisted projects.&lt;/p&gt;

&lt;p&gt;Moreover, AI-assisted coding liberates programmers from mundane, repetitive tasks, allowing them to redirect their focus toward higher-level creative problem-solving. By leveraging AI to automate routine processes, programmers can devote more time and energy to tackling complex challenges, innovating new solutions, and driving forward technological advancements.&lt;/p&gt;

&lt;p&gt;However, to fully capitalize on these opportunities, programmers must cultivate a deep understanding of AI technologies and learn to effectively collaborate with AI systems. Embracing AI as a collaborative partner rather than a replacement requires adaptability, curiosity, and a willingness to explore new avenues of development.&lt;/p&gt;

&lt;p&gt;In essence, the integration of AI into software development heralds a new era of possibility and innovation for human programmers. By harnessing the capabilities of AI while retaining human expertise and creativity, developers can unlock the full potential of software development and drive meaningful progress in the field.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
In conclusion, while AI is rapidly transforming the landscape of programming, it is unlikely to replace human programmers. The role of human programmers remains crucial for their creative ways of problem-solving software solutions, which AI cannot replicate. In the future, programming will involve a symbiotic relationship between human programmers and AI.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>Savannah Tales Diaries Day #1</title>
      <dc:creator>Stephen (Amedi) Imbira</dc:creator>
      <pubDate>Wed, 21 Feb 2024 20:21:03 +0000</pubDate>
      <link>https://dev.to/amedi-imbira/savannah-tales-diaries-day-1-32nb</link>
      <guid>https://dev.to/amedi-imbira/savannah-tales-diaries-day-1-32nb</guid>
      <description>&lt;p&gt;What Happened today?&lt;br&gt;
Learned Django data modelling&lt;br&gt;
Focused on the database design, mostly data modelling. &lt;/p&gt;

&lt;p&gt;What can I improve?&lt;br&gt;
Focus and intensity during coding sessions&lt;/p&gt;

</description>
      <category>python</category>
    </item>
    <item>
      <title>Savannah Tales blog project</title>
      <dc:creator>Stephen (Amedi) Imbira</dc:creator>
      <pubDate>Sun, 04 Feb 2024 19:43:12 +0000</pubDate>
      <link>https://dev.to/amedi-imbira/savannah-tales-blog-project-4nb0</link>
      <guid>https://dev.to/amedi-imbira/savannah-tales-blog-project-4nb0</guid>
      <description>&lt;p&gt;I am happy to be starting the Savannah Tales project. An East African blog catered to increase writing opportunities in the region, as well as inspire readers from the region and all around the world. I will be documenting every step of the project. &lt;/p&gt;

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