Prompt Patterns for Developers (Vibe Coding)
arigaram
Now is the era of development using AI. To create better, more accurate code and documents by better utilizing AI, methods are needed, so we propose suitable ones.
초급
prompt engineering
Problematization (문제화) is a term also translated as problem posing, problem framing, problem setting, or problem definition. This concept involves questioning known facts (like requests or common sense) from a new perspective, defining the problem, and devising methods to solve it. Problematization should be the starting point for all development, yet it remains insufficiently discussed within the field. Performing projects or developing programs is, in essence, planning to solve problems. This means they are related to problematization. To solve a problem, it must first be clearly defined. However, problems are mostly presented as vague requests. Therefore, the ability to transform vague requests into clear problems is essential to reduce unnecessary 'development waste,' facilitate smooth collaboration, and accurately grasp users' true needs. This lecture helps train 'the thinking of problem construction' through practical examples and tools.
28 learners
How to uncover the real issues in requests, requirements, user feedback, and code reviews
How to formulate real problems into structured problems using problem statement formulas, etc.
How to find the root cause of the problem
A philosophical concept, 'problematization,' discerning essence from phenomena
Various tools for 'problematization'.
A starting point for collaboration, requirements analysis, and code reviews for new and junior developers!
Basic competencies recommended for all team members to prevent 'development waste' from a PM/PO perspective!
Basic competencies related to collaboration tools, soft skills, problem-solving abilities, and more!
"The project proposal is too vague, so I don't know what I'm supposed to create."
"I received feedback in the review, but I don't have a clear sense of exactly where I need to make changes."
"Now that I'm actually trying to write the code... what was I trying to solve again?"
"When I asked a question, they responded back with 'So what's the problem?'"
The core of all this confusion is because we failed to define the problem accurately. Developers constantly face problems. However, the right solution begins only when we can look at the problem accurately and define it properly.
Ambiguous Requirements: Junior developers often receive unclear requirements in projects. For example, when given vague instructions like "create a widget," they become confused about what specific functionality needs to be implemented. According to developer-focused blogs, new hires experience confusion due to "vague instructions" and lack of sufficient guidance (codeanywhere.com).
Lack of experience: With limited work experience, they struggle to systematically break down problems or find necessary information on their own. As a real example, one junior developer had difficulty judging how much they should try to solve independently and only learned to ask questions after attempting solutions for excessively long periods (rachsmith.com). This uncertainty leads to anxiety (imposter syndrome) that hinders learning and collaboration.
Communication Gap: Without sufficient domain knowledge or business context, it's impossible to accurately identify the core issues in requirements. The development community also points out that lack of domain knowledge leads to requirement misunderstandings (kedin.com), which in turn results in incorrect implementations and rework.
Practical thinking methods for clarifying ambiguous requirements and defining core problems
Questioning Techniques to Extract Problems from Requirements
5 Criteria That Make a 'Problem' Truly Problematic
The skill of building rapport with other team members through communication
Schematic methods for 'defining' and 'structuring' problems
The skill of asking precise follow-up questions during code reviews, planning meetings, and task handoffs
15 Key Patterns
When what the client or planner says is too vague and you don't know what to build
Example: "The UX is not great", "It's slow", "Please make it more intuitive"
→ A state lacking the power to transform requests into problems
Request: "Please make the UX better"
Response: "They're just asking me to make the UX better.....what does that even mean?"
"Have you ever been stumped by the phrase 'just make it more intuitive'? The skill of turning vague requests into clear problems starts now."
The ability to analyze and structure problems is not yet familiar
When it remains at the level of merely taking dictation from the planner
→ Skills to define problems independently are needed
Request: 'OO' feature - currently undecided. Will be determined soon.
Response: "Is it okay to proceed with development in the current state where several features remain undecided?"
"Are you just building what you're told to build? Grow into a developer who can interpret requirements and define problems on your own."
Good at implementing features, but unable to explain why those features are needed
There are difficulties in designing the purpose and problem context of development
→ Developer → Problem Solver → Someone who wants to grow into a Problem Setter
Request: Button size + 10 pixels
Response: "Well... I just thought it would be good to make it that way..."
"If you can implement features but can't explain the reasoning behind them? Now is the time when you need thinking that penetrates to the essence of problems."
There's a lot of talk going back and forth, but no consensus is formed on "what the problem is"
Feedback is repetitive, or communication conflicts occur frequently
→ People who want to structure different languages and establish a foundation for collaboration
Request: "Please make it feel more intuitive"
Response: "Why do designers always talk about some kind of 'feeling'...?"
"Do you feel like you can't communicate with planners? When you organize each other's language into 'problems,' collaboration changes."
A developer growing into a role that should define problems and provide direction
The ability to structure vague requests into actionable team tasks is needed
→ Problem setting is the beginning of leadership
Request: According to the structure of [Information Request > Cause > User Situation]...
Response: "How should we define this to make it a team assignment?"
"The ability to structure vague requests into actionable tasks - this is your first step toward becoming a developer who leads a team."
This course is essential for all developers who have the concern of "I can write code, but I don't know what to build."
It can be said that this is an essential skill especially for junior developers from new hires to those with 3 years of experience.
Requirements Gathering Questions: Posts asking "How do you gather and analyze requirements?" from newcomers and job seekers frequently appear on developer forums and Reddit. For example, a computer science student sought advice from senior developers, asking "How do you collect stakeholder requirements in practice?" (reddit.com). This shows the demand for learning how to obtain clear requirements in real projects.
Role Emphasis: According to advice from experienced developers, the core of software development is "Problem definition", and it is mentioned that true experts need the ability to accurately define requirements (medium.com). Opinions emphasizing the importance of problem definition like this are frequently found in developer communities as well.
Educational Necessity: Korean developer blogs identify problem definition ability as a "fundamental skill" (medium.com), pointing out that when analyzing data or designing systems, defining the problem to be solved first is essential rather than focusing on tools (inflearn.com, velog.io). These articles highlight the necessity of problem definition skills for learners.
Practical-based thinking approach:
Structured around real problem cases encountered in actual collaboration
Short and Clear Lectures:
Each lesson is typically structured to be within 10 minutes (with some exceptions), enabling highly immersive learning
Structured Thinking Training:
A slide-centered lecture that visually organizes the 'thought process' of defining problems
Practical Examples:
Recording conversation methods that turn vague feedback and abstract planning into clear problems
What is Problem Setting – The Starting Point of Problem Solving
Ambiguous requests, where did it go wrong?
5 Criteria That Make a Problem Truly a Problem
The Art of Asking "So What's the Problem?" Differently
Code reviews, planning, schedule coordination… all the moments where problem definition is used
You can structure and organize even confusing requests on your own
You can become a developer who gets to the core with just one question
You can reduce unnecessary misunderstandings during work collaboration and lead accurate conversations
Review feedback can also be converted into solvable problems rather than simple criticism
A developer's work always begins with receiving a 'request'. However, most requests are vague and ambiguous. If you can't transform this into a precise problem, the planning goes awry, development spins its wheels, and schedules fall behind.
Example: "Please make the button a bit bigger" →→ Why? For whom? What's the problem?
For new developers or juniors, the most difficult part is not simple implementation, but the ability to determine 'what should be implemented'. This course addresses exactly that point.
Requirements analysis, code reviews, communication, discussions with PMs… all of these flow smoothly when you define problems well. This course trains you in the thinking method of listening and extracting the essence.
Rather than theory without practice, we provide problem statement formulas, feedback criteria, and questioning techniques that you can immediately apply in real work situations.
In summary, this course helps you become a developer capable of making clear judgments and communicating effectively without stopping in front of questions like "Why do we need to develop this?" and "Is this really a problem?"
🎯 In today's developer market, 'developers who can think' like this grow the fastest.
Now, become a developer who excels at problem definition rather than just problem solving.
You must be able to see problems accurately for solutions and growth to begin.
Who is this course right for?
A developer who wants to foster the ability to independently think and determine what the true problem is, rather than just implementing given requests.
Planners, Designers, PM/POs aiming to set team direction amid vague requirements and opinions, and communicate smoothly with developers.
366
Learners
17
Reviews
1
Answers
4.6
Rating
17
Courses
IT가 취미이자 직업인 사람입니다.
다양한 저술, 번역, 자문, 개발, 강의 경력이 있습니다.
All
72 lectures ∙ (17hr 16min)
Course Materials:
$42.90
Check out other courses by the instructor!
Explore other courses in the same field!