DuvanVilladiego
  • About me
  • Experience
  • Projects
  • Skills
  • Others
  • Contact

Contact

Currently looking for new opportunities. If you have any questions or simply want to say hello, I will do my best to respond to you.

Duvan.villadiego.oficial@gmail.com

Duvan Villadiego

@duvanvilladiego

Colombia · Remote-friendly · UTC-5

(+57) 304 499 7408

Join my Newsletter

Get articles, ideas, and downloadable resources directly in your inbox.

Designed & Built by Duvan Villadiego

|Privacy Policy
DuvanVilladiego
  • About me
  • Experience
  • Projects
  • Skills
  • Others
  • Contact

Contact

Currently looking for new opportunities. If you have any questions or simply want to say hello, I will do my best to respond to you.

Duvan.villadiego.oficial@gmail.com

Duvan Villadiego

@duvanvilladiego

Colombia · Remote-friendly · UTC-5

(+57) 304 499 7408

Join my Newsletter

Get articles, ideas, and downloadable resources directly in your inbox.

Designed & Built by Duvan Villadiego

|Privacy Policy
DuvanVilladiego
  • About me
  • Experience
  • Projects
  • Skills
  • Others
  • Contact
← Back to Blog
BasicsSoftware Engineering

A Beginner’s Guide to Software Engineering Principles

April 24, 2026 • 3 min read

Introduction

In 2026, software engineering is on everyone’s mind, and for good reason. Most of today’s infrastructure and tools are powered by software. This creates many opportunities in the market, but it also comes with responsibilities and awareness of its social impact, especially for aspiring people who want to study this career. In this article, I will share the basic principles of this profession to help you understand what we do before making a decision. If you are already a student, I hope this also makes your start a little easier.

What is Software Engineering?

If we follow the academic definition, we might find something like this:

“Software engineering is the systematic, disciplined, and quantifiable approach to developing, operating, and maintaining software.”

However, most people associate it with being a developer or programmer. Of course it is related, but IT ISN’T EVERYTHING. To help you understand the difference between these terms, I will share a simple image.

Image

As you can see, there are fundamental differences in their focus areas.

In other words, a software engineer is someone who analyzes, designs, develops, tests, deploys, and maintains software systems, while collaborating with others and following best practices.

Basic Concepts that you should know

  1. The Building Blocks (Logic & Syntax)

Concepts: Programming Language, Variables, Constants, Functions, Algorithms, Data Structures, Abstraction.

Analogy: A Cooking Recipe
The Programming Language is the language the recipe is written in (English, Spanish).
Variables are containers (like a measuring cup) whose contents can change, while Constants are fixed values (like the boiling point of water).
The Algorithm is the step-by-step instruction set, and Functions are pre-learned skills (like "chopping") that you use whenever the recipe calls for them.


2. Blueprints & Design (Architecture)

Concepts: Classes, Interfaces, Software Layers, Software Architecture, Design Patterns, Coupling & Cohesion.

Analogy: Building a House
Architecture is the master blueprint.
Classes are molds for specific parts (like a mold for a brick).
Software Layers are like a home’s systems: plumbing, electrical, and structural. They are kept separate so you can fix a leak without tearing down the roof.
Interfaces are like standard electrical outlets. It doesn't matter what brand your toaster is, as long as it fits the "contract" of the plug.


3. Tools & Ecosystem (The Environment)

Concepts: Platform, SDK, API, Executable, Extensions, Version Control, Database.

Analogy: A Professional Workshop
The Platform is the workbench you work on.
The SDK is the specialized toolkit provided for working with a specific material.
An API is like a service counter: you ask for a specific part, and the clerk gives it to you without you needing to know where it's stored.
The Database is an organized warehouse where raw materials are cataloged and kept for later.


4. The Human Side (Interface & Roles)

Concepts: Frontend, Backend, Full-stack Developer, UI/UX, Stakeholders.

Analogy: A Restaurant
The Frontend is the dining room and the decor.
UI/UX is how comfortable the chairs are and how easy the menu is to read.
The Backend is the kitchen, where the actual "work" happens out of sight.
A Full-stack Developer is the person who can cook the meal, serve the table, and manage the decor.
Stakeholders are everyone from the owner to the hungry customers.


5. The Production Line (Development Life Cycle)

Concepts: SDLC, Testing, Debugging, CI/CD, Code Quality.

Analogy: A Car Manufacturing Plant
The SDLC is the entire process from the first sketch to the car driving off the lot.
Testing is the crash test and safety check.
Debugging is the mechanic identifying why the engine is making a strange noise and fixing it.
CI/CD is the automated assembly line that installs parts and runs safety checks automatically every time a new component is added.


6. System Health & Performance (Non-Functional Requirements)

Concepts: Scalability, Performance, Security, Concurrency.

Analogy: A Major Highway
Performance
is how fast the cars can travel.
Scalability is the ability to add more lanes when traffic increases.
Concurrency is the system's ability to manage thousands of cars moving at the same time without crashes.
Security represents the guardrails, highway patrol, and toll booths that ensure only authorized people are on the road.


Key skills you will need

  • Problem Solving: The ability to break down complex problems into smaller, manageable parts and design efficient solutions.
  • Collaboration: Software is rarely built alone. Engineers work with teams, communicate ideas, review code, and make decisions together.
  • Continuous Learning: Technologies change constantly, so software engineers must continuously learn and adapt to new tools and practices.
💭
I know there are many concepts to take in, and it might feel overwhelming at first. But don’t worry—throughout your career, you will encounter these ideas again and again. Focus on understanding the fundamentals, and over time they will naturally become part of how you think.

Conclusion

Software engineering is a complex profession that involves much more than just writing code. It requires logical thinking, structured design, collaboration, and continuous learning.

At first, the number of concepts may seem overwhelming, but with time and practice, they become tools that help you build real-world solutions.

If you are considering this career, focus on understanding the fundamentals and developing a problem-solving mindset. The tools and technologies will change, but these core principles will stay with you throughout your journey.

💭
It may seem overwhelming at first, but these concepts are easier to understand than they appear.

Contact

Currently looking for new opportunities. If you have any questions or simply want to say hello, I will do my best to respond to you.

Duvan.villadiego.oficial@gmail.com

Duvan Villadiego

@duvanvilladiego

Colombia · Remote-friendly · UTC-5

(+57) 304 499 7408

Join my Newsletter

Get articles, ideas, and downloadable resources directly in your inbox.

Designed & Built by Duvan Villadiego

|Privacy Policy