DEV Community

Cover image for Introduction to Prompt Engineering: A Simple Guide to Becoming a Prompt Engineer
Prashant Patil
Prashant Patil

Posted on

Introduction to Prompt Engineering: A Simple Guide to Becoming a Prompt Engineer

When I started learning AI and LLMs, I thought getting good results was mostly about asking better questions.

But prompt engineering is much more than that.

It is about giving an AI model the right instructions, context, examples, constraints, and output format so it can produce useful and reliable results.

In this article, I will explain the important concepts I am learning while going through the Prompt Engineering part of my AI Engineer roadmap.


What is Prompt Engineering?

Prompt engineering is the process of designing instructions for an AI model to get a specific and useful output.

A prompt can contain:

  • Instructions
  • Context
  • Examples
  • Constraints
  • Input data
  • Expected output format

For example, instead of asking:

Tell me about Java.
Enter fullscreen mode Exit fullscreen mode

we can write:

Explain Java to a beginner in simple language.
Use 3 examples.
Keep the answer under 200 words.
Enter fullscreen mode Exit fullscreen mode

The second prompt gives the model much more direction.

That is the basic idea behind prompt engineering.


What Does a Prompt Engineer Do?

A Prompt Engineer works with AI models and designs prompts and workflows that help models perform tasks reliably.

A prompt engineer may work on:

  • Chatbots
  • AI assistants
  • RAG applications
  • Content generation
  • Customer support systems
  • Code generation
  • Data extraction
  • AI agents
  • Structured data generation

Prompt engineering is not just about writing a clever sentence.

It is about designing the interaction between the user, application, and AI model.


1. Input Format

The first thing we need to understand is the input format.

Input format means:

How are we giving information to the model?

For example, our input can be plain text:

Explain this code.
Enter fullscreen mode Exit fullscreen mode

Or structured information:

{
  "language": "Java",
  "code": "System.out.println(\"Hello\");"
}
Enter fullscreen mode Exit fullscreen mode

We can also provide:

  • Text
  • JSON
  • Markdown
  • Images
  • PDFs
  • Audio
  • CSV data
  • Database records

The model can perform differently depending on how clearly the information is provided.

Example

Bad:

Here is some customer information tell me what is wrong
John 25 Mumbai premium no payment
Enter fullscreen mode Exit fullscreen mode

Better:

Customer:
Name: John
Age: 25
Location: Mumbai
Plan: Premium
Payment Status: Unpaid

Find the problem with this customer account.
Enter fullscreen mode Exit fullscreen mode

The second input is easier to understand.

Key idea

Give the model clean and understandable input.


2. System Prompting

A system prompt defines the overall behavior of the AI.

It usually contains high-level instructions that should remain consistent throughout the conversation.

For example:

You are a Java teacher.

Explain programming concepts in simple language.
Use examples whenever possible.
Do not use unnecessary jargon.
Enter fullscreen mode Exit fullscreen mode

Now, when the user asks:

What is inheritance?
Enter fullscreen mode Exit fullscreen mode

the model should answer like a Java teacher.

User Prompt vs System Prompt

System prompt:

You are a helpful SQL tutor.
Enter fullscreen mode Exit fullscreen mode

User prompt:

Explain JOIN in SQL.
Enter fullscreen mode Exit fullscreen mode

The system prompt defines the overall behavior, while the user prompt contains the specific request.

Why is system prompting useful?

It helps maintain consistent behavior across many requests.


3. Role & Behavior

A prompt can tell the model what role it should play and how it should behave.

For example:

You are a senior backend developer.

Review the code carefully.
Point out bugs.
Suggest improvements.
Explain your suggestions simply.
Enter fullscreen mode Exit fullscreen mode

Here we define:

Role:

Senior backend developer
Enter fullscreen mode Exit fullscreen mode

Behavior:

Find bugs
Suggest improvements
Explain clearly
Enter fullscreen mode Exit fullscreen mode

Another example:

You are an interviewer.

Ask one Java interview question at a time.
Wait for my answer before asking the next question.
Enter fullscreen mode Exit fullscreen mode

The role changes how the model approaches the task.

Important

A role does not magically increase the model's knowledge.

It mainly provides context and behavioral direction.


4. Context

Context is the information the model needs to understand the task.

Suppose I ask:

Fix this.
Enter fullscreen mode Exit fullscreen mode

The model doesn't know what "this" refers to.

But this is better:

This React component crashes when the button is clicked.

Here is the code:

[code]

Find the problem and provide the corrected code.
Enter fullscreen mode Exit fullscreen mode

Now the model has context.

Context can include:

  • Previous conversation
  • Documents
  • Database information
  • Retrieved RAG chunks
  • User information
  • Code
  • Business rules

Example

Imagine we are building a customer support chatbot.

We can give the model:

Customer:
Name: Rahul

Order:
ID: 1234
Status: Shipped

Issue:
Customer says the package has not arrived.
Enter fullscreen mode Exit fullscreen mode

The model can now answer based on the provided context.

Key idea

A model can only use information that is available in its context.


5. Constraints

Constraints tell the model what it must or must not do.

For example:

Write a product description.

Rules:
- Maximum 100 words
- Use simple English
- Do not use emojis
- Include 3 features
Enter fullscreen mode Exit fullscreen mode

These are constraints.

Without constraints, the model may generate a long or inconsistent answer.

Common constraints

You can specify:

  • Word limit
  • Tone
  • Language
  • Number of items
  • Allowed information
  • Forbidden information
  • Formatting rules
  • Output structure

Example

Explain REST API.

Constraints:
- Explain for a beginner
- Maximum 150 words
- Use one real-world example
- Do not use complex terminology
Enter fullscreen mode Exit fullscreen mode

Constraints make the output more predictable.


6. Structured Output

Sometimes we don't want a normal paragraph from an AI.

We want a specific structure.

For example:

{
  "name": "John",
  "age": 25,
  "skills": ["Java", "React"]
}
Enter fullscreen mode Exit fullscreen mode

This is called structured output.

Structured output is very useful when the AI response is going directly into an application.

For example:

Extract the following information:

Name
Email
Phone
Skills
Enter fullscreen mode Exit fullscreen mode

Instead of getting:

The person's name is John and his email is john@gmail.com...
Enter fullscreen mode Exit fullscreen mode

we can request:

{
  "name": "John",
  "email": "john@gmail.com",
  "phone": "9876543210",
  "skills": ["Java", "React"]
}
Enter fullscreen mode Exit fullscreen mode

Now our application can easily process the result.

Where is structured output useful?

  • API responses
  • Database insertion
  • Data extraction
  • Form processing
  • Automation
  • AI agents

Prompting Techniques

Now let's look at some common prompting techniques.


7. Zero-Shot Prompting

Zero-shot prompting means asking the model to perform a task without giving examples.

Example:

Classify the sentiment:

"I love this product."
Enter fullscreen mode Exit fullscreen mode

The model must understand the task without seeing an example.

Another example:

Translate this sentence into French:

"I am learning AI."
Enter fullscreen mode Exit fullscreen mode

No example is provided.

That is zero-shot prompting.

When to use it?

Use zero-shot prompting when:

  • The task is simple
  • The model already understands the task
  • You don't need a specific format

Simple idea

No examples → Zero-shot


8. Few-Shot Prompting

Few-shot prompting means giving the model examples before asking it to solve a new problem.

For example:

Text: "I love this phone."
Sentiment: Positive

Text: "This product is terrible."
Sentiment: Negative

Text: "The battery is amazing."
Sentiment:
Enter fullscreen mode Exit fullscreen mode

The model can infer the pattern from the examples.

Why is it useful?

Few-shot prompting can help when:

  • The task is unusual
  • You need a specific output style
  • The model needs to follow a particular pattern
  • Zero-shot results are inconsistent

Simple idea

Give examples → Few-shot


9. Chain-of-Thought (CoT)

Chain-of-thought refers to prompting techniques that encourage a model to reason through a problem step by step.

For example:

Solve the following math problem carefully and provide the key steps used to reach the answer.
Enter fullscreen mode Exit fullscreen mode

This can help with tasks involving:

  • Mathematics
  • Logic
  • Planning
  • Multi-step reasoning

For example:

A product costs ₹100.
It gets a 20% discount.
Then 10% tax is added.

Calculate the final price.
Enter fullscreen mode Exit fullscreen mode

A step-by-step approach can reduce mistakes compared with simply guessing the final answer.

Important point

For applications, you usually care about the correct result and useful explanation, not exposing private internal reasoning.

A practical prompt can ask for:

Give the answer and a concise explanation of the main steps.
Enter fullscreen mode Exit fullscreen mode

10. ReAct

ReAct stands for:

Reason + Act

It is a pattern where an AI model reasons about a task and then performs actions using tools.

For example, imagine asking:

What is the weather in Pune today?
Enter fullscreen mode Exit fullscreen mode

The model may need to:

Understand request
        ↓
Use weather tool
        ↓
Get weather data
        ↓
Answer user
Enter fullscreen mode Exit fullscreen mode

Another example:

Find the cheapest flight from Mumbai to Delhi.
Enter fullscreen mode Exit fullscreen mode

The AI might:

Understand request
        ↓
Call flight search tool
        ↓
Compare results
        ↓
Return answer
Enter fullscreen mode Exit fullscreen mode

This is especially important for AI agents.

ReAct vs normal prompting

Normal prompt:

Answer the question.
Enter fullscreen mode Exit fullscreen mode

ReAct-style workflow:

Understand the task.
Use the appropriate tool when needed.
Use the tool result.
Then provide the answer.
Enter fullscreen mode Exit fullscreen mode

Model Interaction

Prompt engineering is not only about the prompt itself.

We also need to understand how our application communicates with an AI model.

Three important concepts are:

  • Function Calling
  • Prompt Caching
  • Streaming Responses

11. Function Calling

Function calling allows an AI model to request that our application execute a specific function.

Imagine we have a function:

getWeather(city)
Enter fullscreen mode Exit fullscreen mode

The user says:

What's the weather in Pune?
Enter fullscreen mode Exit fullscreen mode

The model can determine that it needs the weather function.

The flow becomes:

User
  ↓
AI Model
  ↓
Function Call
  ↓
getWeather("Pune")
  ↓
Weather Result
  ↓
AI Model
  ↓
Final Answer
Enter fullscreen mode Exit fullscreen mode

The important part is that the model is not directly executing your backend code.

Your application receives the requested function call, executes it, and sends the result back to the model.

Example

The model might generate something like:

{
  "name": "getWeather",
  "arguments": {
    "city": "Pune"
  }
}
Enter fullscreen mode Exit fullscreen mode

Your backend executes the function.

This is the foundation of many AI agents.

Where is function calling useful?

  • Weather applications
  • Database queries
  • Booking systems
  • Payment systems
  • Search
  • External APIs
  • Automation
  • AI agents

12. Prompt Caching

Large prompts can contain the same information again and again.

For example, imagine an AI coding assistant always sends:

Large system instructions
+
Company documentation
+
Coding guidelines
+
User question
Enter fullscreen mode Exit fullscreen mode

The first three parts may stay almost unchanged.

Sending all of that repeatedly can increase:

  • Latency
  • Cost
  • Processing requirements

Prompt caching allows reusable prompt content to be cached by supported AI systems.

The general idea is:

First request:
System Prompt + Documentation + User Question

Later request:
Cached Prompt Content + New User Question
Enter fullscreen mode Exit fullscreen mode

This can make repeated AI requests more efficient, depending on the model provider and caching mechanism.

When is prompt caching useful?

Especially when applications repeatedly send:

  • Large system prompts
  • Documentation
  • Long instructions
  • Repeated context
  • Large static content

13. Streaming Responses

Normally, an AI application might wait until the complete response is generated.

For example:

User asks question
        ↓
Model generates entire answer
        ↓
Application receives answer
        ↓
Answer appears
Enter fullscreen mode Exit fullscreen mode

With streaming, the model sends the response piece by piece.

User asks question
        ↓
Model starts generating
        ↓
"Hello"
        ↓
"Hello, here"
        ↓
"Hello, here is"
        ↓
"Hello, here is the answer..."
Enter fullscreen mode Exit fullscreen mode

This makes the application feel much faster.

Where is streaming useful?

You see it commonly in:

  • Chat applications
  • AI coding tools
  • AI writing tools
  • Customer support bots
  • Voice interfaces

Instead of waiting for the entire response, the user can start reading immediately.


How These Concepts Work Together

The most important thing I learned is that these concepts are not isolated.

A real AI application might use all of them together.

For example, imagine an AI customer support agent.

Step 1: System Prompt

You are a customer support assistant.
Enter fullscreen mode Exit fullscreen mode

Step 2: Context

Customer:
Name: Rahul

Order:
1234
Status: Shipped
Enter fullscreen mode Exit fullscreen mode

Step 3: Constraints

Keep the answer under 100 words.
Do not promise refunds without verification.
Enter fullscreen mode Exit fullscreen mode

Step 4: Structured Output

The model returns:

{
  "intent": "order_tracking",
  "response": "Your order has been shipped."
}
Enter fullscreen mode Exit fullscreen mode

Step 5: Function Calling

If more information is needed:

getOrderStatus(1234)
Enter fullscreen mode Exit fullscreen mode

Step 6: Streaming

The final response is shown to the user as it is generated.

This is how prompt engineering becomes part of a complete AI system.


A Simple Prompt Engineering Framework

When writing a prompt, I use a simple structure:

Role
+
Task
+
Context
+
Constraints
+
Output Format
Enter fullscreen mode Exit fullscreen mode

For example:

Role:
You are a Java interview coach.

Task:
Review my answer.

Context:
I am preparing for a fresher Java interview.

Constraints:
- Keep the explanation simple.
- Point out incorrect concepts.
- Give a better answer.

Output Format:
1. What I said
2. What is wrong
3. Improved answer
Enter fullscreen mode Exit fullscreen mode

This is much more reliable than simply writing:

Check my Java answer.
Enter fullscreen mode Exit fullscreen mode

Bad Prompt vs Better Prompt

Bad Prompt

Write a LinkedIn post about AI.
Enter fullscreen mode Exit fullscreen mode

This gives the model very little direction.

Better Prompt

You are a technical content writer.

Write a LinkedIn post about prompt engineering.

Audience:
Software developers who are new to AI.

Requirements:
- Start with a strong hook.
- Explain one practical concept.
- Use simple English.
- Maximum 150 words.
- End with a question.

Do not use excessive emojis.
Enter fullscreen mode Exit fullscreen mode

The second prompt clearly defines the task.


Common Prompt Engineering Mistakes

1. Being too vague

Bad:

Explain React.
Enter fullscreen mode Exit fullscreen mode

Better:

Explain React components to a beginner with one simple example.
Enter fullscreen mode Exit fullscreen mode

2. Giving too much unnecessary information

More context is not always better.

If the model does not need the information, don't include it.

Good prompts provide relevant context, not everything.


3. Not defining the output format

Instead of:

Analyze this customer.
Enter fullscreen mode Exit fullscreen mode

Try:

Return:

{
  "problem": "",
  "severity": "",
  "solution": ""
}
Enter fullscreen mode Exit fullscreen mode

4. Mixing multiple goals

Bad:

Explain Java, create interview questions, fix my code, and make a study plan.
Enter fullscreen mode Exit fullscreen mode

This is several tasks at once.

Better:

First explain Java inheritance.
Then wait for my response.
Enter fullscreen mode Exit fullscreen mode

Breaking complex workflows into clear steps often improves reliability.


Prompt Engineering vs AI Engineering

Prompt engineering is one part of building AI applications.

An AI engineer may also work with:

  • Python
  • LLM APIs
  • RAG
  • Embeddings
  • Vector databases
  • Function calling
  • AI agents
  • Evaluation
  • Model deployment
  • Backend systems

Prompt engineering focuses heavily on how we instruct and interact with models.

AI engineering focuses on building the complete AI-powered system.

Both overlap heavily.


What Should You Learn First?

I would learn the concepts in roughly this order:

Prompt Basics
      ↓
Input Format
      ↓
System Prompting
      ↓
Role & Behavior
      ↓
Context
      ↓
Constraints
      ↓
Structured Output
      ↓
Zero-Shot
      ↓
Few-Shot
      ↓
Chain-of-Thought
      ↓
ReAct
      ↓
Function Calling
      ↓
Prompt Caching
      ↓
Streaming
Enter fullscreen mode Exit fullscreen mode

The important thing is not memorizing definitions.

Try building small projects.

For example:

1. AI text classifier
2. AI JSON extractor
3. AI interview bot
4. AI chatbot
5. AI tool-calling assistant
6. AI agent
Enter fullscreen mode Exit fullscreen mode

You will understand prompt engineering much faster by building these.


Practical Prompt Template

Here is a template I can reuse for many tasks:

You are [ROLE].

Your task is to [TASK].

Context:
[CONTEXT]

Requirements:
- [REQUIREMENT 1]
- [REQUIREMENT 2]
- [REQUIREMENT 3]

Constraints:
- [CONSTRAINT 1]
- [CONSTRAINT 2]

Output format:
[EXPECTED FORMAT]
Enter fullscreen mode Exit fullscreen mode

For example:

You are a senior Java developer.

Your task is to review my Java code.

Context:
I am preparing for a Java interview.

Requirements:
- Find bugs.
- Explain the problem.
- Suggest improvements.

Constraints:
- Use simple English.
- Keep the explanation concise.

Output format:
1. Problem
2. Why it happens
3. Fixed code
4. Interview tip
Enter fullscreen mode Exit fullscreen mode

Prompt Engineering Cheat Sheet

Concept Simple Meaning
Input Format How information is given to the model
System Prompting High-level instructions for model behavior
Role & Behavior Defines who the AI should act as and how it should behave
Context Information needed to solve the task
Constraints Rules the model must follow
Structured Output Returning data in a predictable format like JSON
Zero-Shot Solve the task without examples
Few-Shot Give examples before the task
Chain-of-Thought Encourage step-by-step reasoning
ReAct Combine reasoning with actions/tools
Function Calling Let the model request application functions
Prompt Caching Reuse repeated prompt content efficiently
Streaming Receive the response piece by piece

Frequently Asked Questions

Is prompt engineering just writing good questions?

No.

Prompt engineering includes designing instructions, context, constraints, examples, output formats, tool interactions, and model workflows.


Do I need to be good at coding to learn prompt engineering?

Not necessarily.

You can learn the fundamentals without programming.

However, coding becomes very useful when you start working with:

  • APIs
  • Function calling
  • AI agents
  • RAG
  • Structured outputs
  • Production AI applications

Is prompt engineering still useful when AI models become better?

Yes.

Better models can understand prompts more effectively, but applications still need to define:

  • What the model should do
  • What information it can use
  • What tools it can call
  • What output the application expects
  • What rules it must follow

The focus may shift from writing clever prompts to designing reliable AI systems, but the underlying skills remain useful.


Final Thoughts

Prompt engineering looks simple at first:

Write a prompt → Get an answer
Enter fullscreen mode Exit fullscreen mode

But real-world AI applications are more like:

Input
  ↓
System Instructions
  ↓
Context
  ↓
Prompt
  ↓
Model
  ↓
Tool Calls
  ↓
Structured Output
  ↓
Application
  ↓
User
Enter fullscreen mode Exit fullscreen mode

That is why I think learning prompt engineering is a good starting point for anyone who wants to work with LLMs.

You don't need to memorize hundreds of prompting tricks.

First understand the fundamentals:

Input → Instructions → Context → Constraints → Output → Model Interaction

Once these concepts are clear, topics like RAG, AI agents, function calling, and LLM applications become much easier to understand.


Key Takeaway

Prompt engineering is not about finding a magic prompt. It is about designing a clear and reliable way for humans, applications, and AI models to communicate.

And that is the foundation of building useful AI applications.


Prompt Engineering Roadmap

Prompt Engineering
│
├── Input Format
├── System Prompting
├── Role & Behavior
├── Context
├── Constraints
├── Structured Output
│
├── Prompting Techniques
│   ├── Zero-Shot
│   ├── Few-Shot
│   ├── Chain-of-Thought
│   └── ReAct
│
└── Model Interaction
    ├── Function Calling
    ├── Prompt Caching
    └── Streaming Responses
Enter fullscreen mode Exit fullscreen mode

Tags

#ai #promptengineering #llm #artificialintelligence #machinelearning #aiengineer #generativeai #programming

Top comments (0)