DEV Community

Programming Entry Level: how to backend

Understanding how to Backend for Beginners

So, you've learned some programming basics – awesome! Now you're wondering what's next? A lot of people talk about "the backend," but what is it? And how do you even start learning it? This post will break down the fundamentals in a way that's easy to understand, even if you're just starting out. Knowing the backend is a huge plus when applying for junior developer roles, as many interviews will touch on these concepts.

Understanding "how to backend"

Imagine you're ordering food at a restaurant. The frontend is everything you see – the menu, the tables, the waiter. You interact with these things directly. The backend is the kitchen. You don't see it, but it's where all the work happens to get your food prepared. It handles the ingredients, cooking, and making sure everything is correct.

In software, the backend is the part of an application that handles data storage, processing, and logic. It's the engine that powers the frontend (what the user sees and interacts with). It's responsible for things like:

  • Storing user information: Like usernames, passwords, and profiles.
  • Managing data: Like products in an online store, or posts on a social media platform.
  • Handling requests: When you click a button on a website, the frontend sends a request to the backend to do something.
  • Ensuring security: Protecting sensitive data from unauthorized access.

Think of it like this: the frontend asks for things, and the backend provides them.

Here's a simple diagram to illustrate:

graph LR
    A[Frontend (User Interface)] --> B(Backend (Server & Database));
    B --> C[Database (Data Storage)];
Enter fullscreen mode Exit fullscreen mode

This diagram shows the flow of information. The frontend sends requests to the backend, which then interacts with the database to retrieve or store data.

Basic Code Example

Let's look at a very simple example using Python and a framework called Flask. Flask is a lightweight framework that makes building backends easier. We'll create a simple "Hello, World!" backend.

First, you'll need to install Flask:

pip install flask
Enter fullscreen mode Exit fullscreen mode

Now, here's the code:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Let's break this down:

  1. from flask import Flask: This line imports the Flask class from the flask library. We need this to create our web application.
  2. app = Flask(__name__): This creates an instance of the Flask class. __name__ is a special variable that represents the name of the current module.
  3. @app.route("/"): This is a decorator. It tells Flask that the hello_world function should be called when someone visits the root URL ("/") of our application.
  4. def hello_world():: This defines a function called hello_world. This function will be executed when someone visits the root URL.
  5. return "<p>Hello, World!</p>": This line returns the text "

    Hello, World!

    " to the user's browser. The <p> tags tell the browser to display the text as a paragraph.
  6. if __name__ == '__main__':: This ensures that the app.run() line is only executed when the script is run directly (not when it's imported as a module).
  7. app.run(debug=True): This starts the Flask development server. debug=True enables debugging mode, which is helpful for development.

If you run this code, you'll see a message indicating that the server is running. Then, if you open your web browser and go to http://127.0.0.1:5000/, you should see "Hello, World!" displayed on the page.

Common Mistakes or Misunderstandings

Here are a few common mistakes beginners make when starting with the backend:

❌ Incorrect code:

def hello_world():
    print("Hello, World!")
Enter fullscreen mode Exit fullscreen mode

✅ Corrected code:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello_world():
    return "Hello, World!"
Enter fullscreen mode Exit fullscreen mode

Explanation: In Flask, you need to return a string that will be sent to the browser. print() sends output to the console, not the browser.

❌ Incorrect code:

@app.route("/user/<name>")
def greet(name):
    return "Hello, " + name
Enter fullscreen mode Exit fullscreen mode

✅ Corrected code:

from flask import Flask

app = Flask(__name__)

@app.route("/user/<name>")
def greet(name):
    return f"Hello, {name}!"
Enter fullscreen mode Exit fullscreen mode

Explanation: While string concatenation works, using f-strings (formatted string literals) is more readable and efficient in Python.

❌ Incorrect code:

app.run()
Enter fullscreen mode Exit fullscreen mode

✅ Corrected code:

app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

Explanation: Running with debug=True is extremely helpful during development. It provides detailed error messages and automatically reloads the server when you make changes to your code.

Real-World Use Case

Let's build a simple "To-Do List" backend. We'll store the to-do items in a list.

from flask import Flask, request, jsonify

app = Flask(__name__)

todos = []

@app.route('/todos', methods=['GET'])
def get_todos():
    return jsonify(todos)

@app.route('/todos', methods=['POST'])
def add_todo():
    data = request.get_json()
    todos.append(data['task'])
    return jsonify(todos)

if __name__ == '__main__':
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

This backend has two routes:

  • /todos (GET): Returns the current list of to-do items as JSON.
  • /todos (POST): Adds a new to-do item to the list. It expects a JSON payload with a task field.

You can test this using a tool like curl or Postman. For example, to add a to-do item:

curl -X POST -H "Content-Type: application/json" -d '{"task": "Buy groceries"}' http://127.0.0.1:5000/todos
Enter fullscreen mode Exit fullscreen mode

Practice Ideas

Here are some ideas to practice your backend skills:

  1. Simple Calculator: Create a backend that can perform basic arithmetic operations (addition, subtraction, multiplication, division).
  2. Book List: Build a backend to store a list of books, with titles and authors. Allow adding, retrieving, and deleting books.
  3. Basic User Authentication: Implement a simple login/registration system. (This is a bit more challenging, but a great learning experience!)
  4. Quote of the Day: Create a backend that returns a random quote each time it's accessed.
  5. Temperature Converter: Build a backend that converts temperatures between Celsius and Fahrenheit.

Summary

You've now learned the basic concepts of backend development! We've covered what the backend is, how it differs from the frontend, and how to build a simple backend using Python and Flask. You've also seen some common mistakes to avoid and a real-world use case.

Don't be afraid to experiment and build your own projects. The best way to learn is by doing! Next steps could include learning about databases (like PostgreSQL or MySQL), more advanced Flask features, or exploring other backend frameworks like Django. Keep practicing, and you'll be well on your way to becoming a confident backend developer!

Top comments (0)