Sign in

Top writer in Technology | Backend Web Developer | bennettgarner.com

Writing code is a craft. Practice your skills and sharpen your tools to be the best programmer you can be.

If you’ve spent any time working in or learning about software development, chances are you’ve heard of the classic book The Pragmatic Programmer by Andrew Hunt and David Thomas.

You likely know a lot of the stories and terms from the book. Hunt and Thomas introduced the world to rubber duck debugging and code katas. They also popularized ideas like don’t repeat yourself (DRY) and early iterations of what would come to be known as agile development.

So, you probably…


Building a REST API in Django is so super easy. In this tutorial, we’ll walk through the steps to get your first API up and running.

(This post is part of a series where I teach how to deploy a React front end on a Django back end. However, nothing in this post is React specific. Whatever your API needs, read on!)

[Just want to see some source code? My pleasure: https://github.com/bennett39/drf_tutorial]

Why REST API?

Before we get to the code, it’s worth considering why you would want to build an API. …


What's your use case? Those variables aren't needed for deployment to GCP, but if you're using them they could be configured in almost any way you want.


The most productive developers I know all have something in common. They know how to use Vim.

Welcome to Vim

I’m not telling you to switch to using Vim all the time (although you could). But in this article, I’ll argue why learning a 30-year-old text editor is important if you want to get good at software development.

The Case for Vim

Vim is:

  • Incredibly fast to use (once you learn it) — Vim commands all come from the keyboard, and they allow you to edit entire words, lines, or paragraphs of text with individual commands. …


Take advantage of aliases to become more productive

The best developers I know all maintain a list of Bash aliases to make their lives easier. It’s one of the signs of a good developer — how much can you automate the tasks you do repeatedly?

Bash aliases are super easy to create, too! It’s low-hanging fruit to reduce your time, typing, and mental energy while coding. In this post, I’ll explain why every developer should have a list of aliases, how to do it, and the ten I’ve found most useful.

Why should I use Bash aliases?

Bash aliases are a major key to my productivity as a developer. …


Meetings ruin your productivity. If you’re a developer building complex applications, you should follow the Maker Schedule.

My Big Problem

As a software developer, I hate meetings. If you’ve worked as a developer, you probably understand.

To me, meetings feel frustrating and demoralizing. If I have a meeting scheduled, I often feel like I can’t accomplish my coding goals.

You may have noticed this, too. If you have a meeting at 1pm and another at 3pm, the hour in between the meetings feels unproductive. One hour simply isn’t enough to get complex coding work done.

As a developer, a meeting costs you a…


I recently got a good question from a reader:

Using Vue CLI, how we can use Django data in Vue? Suppose I have a pandas dataframe or dictionary I want to pass to the Vue app, how to do it?

Two Approaches to Passing Data

If you’re using Vue with Django as I’ve described, there are two ways to pass data to your components:

1. Expose an API for your data and use fetch or axios inside your Vue component. (Usually inside the mounted() method)

2. Pass the data in via the Django view/template and then set it as a prop on your vue component…


Great ideas! When you're learning to code, I believe it's so important to start small.

Build interesting projects using what you already know - not following a tutorial. These are great examples.

I wrote a whole post about this idea: https://levelup.gitconnected.com/learning-python-start-small-29d15881f780

And I wrote a series of posts making a tic-tac-toe game with the same motivation as your post. Your readers might find it interesting:

https://bennettgarner.medium.com/tic-tac-toe-series-starting-small-with-python-86e2f49db797

Thanks for writing your article! I wholeheartedly agree.


Build a full-stack website running on Django

Different-colored folders
Different-colored folders
Photo by Andrew Pons on Unsplash.

Starting to use Vue.js within a Django project is pretty straightforward.

If you just want to build a few simple Vue components and drop them into your Django app, you can do it the simple way — inline. I’ve written a whole Vue + Django tutorial demonstrating that approach:

But inline JavaScript/CSS is limited, and that approach will only get you so far. I’ve learned this firsthand by building apps with Vue and Django.

Django Can Play Nice With the Vue CLI and Webpack

In order to get the most out of Vue, you’ll probably want to use the Vue CLI and .vue files. These tools enable you to create…


It’s incredibly easy to start developing in Django

Getting started with Django is super fast and easy!

Known as “the web framework for perfectionists with deadlines,” Django powers some of the biggest websites in the world.

I write about Django a lot, and this post is my ultimate resource for getting started with Django from scratch.

Steps to Get Started with Django

  1. Create a virtual environment (optional, but highly recommended)
  2. Install Django
  3. Create a project

For the Visual Learners

Here’s a video of me doing these steps for a project:

1.1 Virtual Environment

First, consider creating a new virtual environment for your project so you can manage your dependencies separately.

I use pyenv and pyenv-virtualenv for my environments:

$ pyenv…

Bennett Garner

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store