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. …


Take advantage of aliases to become more productive

Photo by Jan Canty on Unsplash

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

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…


Let’s see if serverless is really better with an AWS Lambda example

Down with the servers (except not really)! — Photo from Wikimedia Commons.

Serverless Has a Bad Reputation

“Serverless” is a hot buzzword, but it often gets an eye roll from the developers I know — especially when mentioned in connection with microservices.

Advocates of serverless say it scales seamlessly to meet demand while not wasting resources if not in use… if you set it up correctly.

On the other hand, many developers see serverless architecture as overly complicated — especially when it comes to rearchitecting existing applications and setting up deployment strategies.

So, who is right? As a developer, you’ll hear a lot of opinions, but my best advice is this: If you’re interested in a new…


If you want to learn to code quickly, you need to stop doing tutorials as soon as possible.

This advice will be controversial and seem counter-intuitive, I know.

Tutorials are a bad way to learn real coding skills.

Don’t get me wrong, tutorials are a great way to learn syntax and common patterns. However, they only show you one way to solve a problem.

Tutorials don’t teach you how to invent solutions to new problems.

Problem solving is the ultimate goal of coding. And there’s no tutorial that will teach you everything you need to know for every situation you encounter in a software development project.

To become a great developer, you need to learn to solve problems…

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