Contents

Vibe Engineering For Everyone

Contents

I created this guide to help enthusiasts think about how to utilize Generative AI tools for creating software products. Includes some high level overviews of software development and programming necessary for basic usage of these tools and understanding the proper inputs and outputs for the most effective results.

Objective: creating products using AI Tooling by non-IT personnel - enthusiasts, entrepreneurs, etc.

Assumptions: motivated individuals, some basis in technology development (understands basics of software development and product design), willing to invest time in learning and further self-driven education

Approach

These documents will give the reader a general overview of important topics, allowing the reader to then further research each topic on their own using Google search and ChatGPT. The purpose is to give the reader an overview of what’s important and what areas to further research, to help filter out the noise which makes the initial research difficult for a non-IT professional. Jargon, keywords, and “hype” will be utilized in these documents for an important reason - they are keywords that can be used with Google search and ChatGPT to find further information. It is much simpler to do a search on the jargon and keywords, rather than try to explain the actual meaning behind them. The reader over time will be able to understand the real meanings behind these jargon and keywords, but not in the beginning.

Topics

  • Core/Fundamentals (software development and operations)

    • Modern day-to-day business of software development overview
    • MVC - simplified, “single page apps”
    • APIs - simplified
    • Front-end development
    • Back-end development
    • Databases - simplified
    • Cloud & Hosting
    • Deploying, Deployments, CICD
    • Full-stack development
  • Programming

    • Problem solving - First principles, breaking problems down into smaller pieces
    • Lines -> functions -> libraries -> scripts -> applications
    • Variables
    • Conditionals
    • Loops
    • What is a “framework” ? Examples: React, Rails, Next.js
  • Languages

    • Javascript
    • Python
    • Golang
    • SQL
    • Others - PHP, Ruby, Java, C/C++
  • Artificial Intelligence

    • Machine Learning, as a subset of AI
    • Traditional machine learning approaches
    • Generative AI, as a subset of AI
  • Applying Generative AI to business

    • Market compatibility
    • Labor compatibility
    • Data privacy and competition
    • Company structure
    • Outsourcing and labor optimization for business owner
  • Developing software products with Generative AI

    • How is the MVC pattern involved
    • Vibe Coding Vs Vibe Engineering, First principles
    • Copilots vs. Agents
    • Version control
  • Copilot Tooling

    • Some examples
    • Github Copilot
    • Cursor,
    • Bolt.new
    • Midjourney
  • Pompting

    • First principles
    • Importance of long-form content skills, organization, staying on track while diving deep, not getting lost in the conversation
    • Samples - “make this according to file x, y, z”
    • Create a “canvas”
    • Structure your input
    • Specify output format
    • Choose your role
    • Prompt research and exploration - tracking & learning from prompts
  • Resources

Core/Fundamentals (software development and operations)

Modern day-to-day business of software development overview

-Modern day software development is an “assembly” line approach

-Certainly there are 1-person startups and shops that for the sake of efficiency and time, do not necessarily follow the assembly line approach and instead optimize for creativity and personal preference

-Assembly line approach high-level:

  1. Separation of responsibilities/labor
  2. “Environments” - used for quality control - often called “development”, “staging” and “production”. Software development process moves from left to right in this flow and “production” is where the final product lives and the customer interacts with (and ultimately pays for)
  3. Quality control and cyber security is a big component and time sink
  4. Many different roles involved - engineer, product professional, managers for both disciplines, quality control/testing professional (being phased out by automation and AI)

-Cyber security is a growing problem, increasing the cost of software development significantly. There is no solution to this - it will be a “forever” problem.

-Role compression and consolidation, labor specialties continually shifting. Use of AI is taking over some of these roles, compressing and consolidating others. Not clear what is the more important role in the medium to long-term - Engineer vs. Product professional. If AI democratizes the engineering, is the product professional more important? How important is it that the Product professional understands what the AI system is doing and how to evaluate it? Arguments exist that show how this plays out differently in the future.

-This approach is not a requirement. Company’s use this approach to “scale” their business, sometimes needlessly and uneconomically. I would argue that the economics are lopsided more often than not. Some reasons are rational and some are not. Venture capital investment is often a source of causing this needless “scaling”.

-Watch this famous podcast of Pieter Levels describing how he is adverse to the assembly line approach to software development and does everything himself. The “1-man company”. https://www.youtube.com/watch?v=zqeRS9LiREA . He is creator of multiple large websites including nomads.com which generates him substantial income every month.

MVC - simplified

-MVC - model view controller - fancy way of saying: there is a visual layer and a logic/data layer to the software application and they should be separated.

-purpose - separate presentation logic from business logic. Why? Separation of responsibilities, ongoing cost of future maintenance, realities of modern day labor market of IT Professionals. Part of the “assembly line” approach.

-what does this look like? Simple diagram here:

https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fdrive.google.com/uc?id=1bEgI1Bo8Lbw-lBj_SgCnCD5mnDhZFzxj

APIs (Application Programming Interface)

-what is an API? It is a way of designing a computer program that is optimized for structured inputs and outputs, that is useful in various ways: Separation of roles and responsibilities - labor and cost optimization, first principles thinking Increasingly important in the modern software world where machines are talking to machines, and no human is involved Many companies are obsessed with the idea of developing all software as “APIs”, whether that is rational or not

-Structuring a computer program as an API does have it’s benefits in some situations, but not everything should be an API

-Many AI applications are available to the end-user as exclusively an API

-ChatGPT is simply a website front-end that is available to a user, and the website sits in front-end of the API that is the foundation model of ChatGPT (versions such as gpt-4.0, gpt-4.5, 01, 03-mini, etc).

-what does this look like in the application diagram?

https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fdrive.google.com/uc?id=17txSBfZN1LWSzcx4jQRtRZ5U9dMR8WcX

-Why is this important to the reader? Reader will encounter the term “API” throughout research and study efforts. Separate the hype from the reality. Understand that this is simply an architectural pattern for professional software development that can enable benefits in terms of costs, development, maintenance, security, and first principles thinking. But it is not a required direction to pursue in personal software projects.

-Summary of benefits - efficiency, first principles, separation of labor, cost optimizations, machine-to-machine communications

Front End Development

-This has become a development and labor specialty.

-There are front-end developers that focus exclusively on the “front-end” which is what a human customer sees. Modern day software development has become increasingly complex to the point where a developer often specializes in front-end or back-end development.

-This became increasingly important in the years of ~2005->2025 when websites evolved from simple static pages in the 90’s to full-blown web-based applications such as Facebook, Instagram, Gmail, etc.

-This (front-end development) is not as important if the customer is a machine or an AI agent - in fact - a visual interface to a product can be friction for a machine and/or AI customer.

-Before the advent of AI, when all customers were human, front-end development was very important.

-We may see front-end development become less important if more business is conducted autonomously by AI agents, working for their human masters. Think of audio-based personal assistants such as Her, the 2013 Spike Jonze film. https://en.wikipedia.org/wiki/Her_(2013_film)

Back end Development

-Back end development is focused on the portions of a computer software program that are not visible to a human user. This includes the algorithms and calculations, computer servers, databases, cyber security.

Databases

-Databases, which can be considered part of “back end development” are special computer programs that hold information.

-These became increasingly important as more of the software world came to revolve around data and information.

-These specialized computer programs store data in an optimized and efficient manner that enables storing large amounts of data, quickly accessing the data, and separating the data between customers.

-Without databases, this functionality would have to be continually re-created by developers for every single computer program they write and would lead to disaster.

-There exists many open-source (“free”) and enterprise (“paid”) versions of databases such as PostgreSQL (“free”) and Oracle (“paid”). The differences between these are numerous, but for most entrepreneurs, the better approach is an open-source and free solution such as PostgreSQL.

-Developers have a “religious” affinity to databases. As an entrepreneur, from a practical standpoint in terms of availability of labor pool and long term cost management, stick to PostgreSQL for the beginning of your journey (and perhaps forever), unless you are a professional and have good reasons for pursuing a different tool and vendor (of which there are many..)

Cloud & Hosting

-Computer software programs need to “live” on a computer, otherwise they are not available to be run for any practical purpose. Software, in the form of written computer code, can be on a piece of paper but that does not enable it to be run and produce an output for a user. This is where “hosting” and “cloud” come into play.

-Cloud - often synonymous with “hyper scalers” (Amazon, Google, Microsoft) is a global computer network run by a computer where “housing” for computer programs is “rented” to a software developer. These are increasingly complex services that enable rental of all forms of computation in addition to computer programs - they also rent storage space, databases, front-ends, back-ends, and everything in between. A professional software developer, often a “back end developer”, understands the various product offerings of a cloud provider and how to develop software that “lives” on the cloud.

-Cloud development and “rent” is an increasingly complex subject, and many developers do not understand it well. This leads to hugely expensive bills to software developers from the hyper scalers. Many professionals consider this a “tax” on modern day software businesses. A good backend developer will save you money in this regard, and an inexperienced developer can cause you bankruptcy in this regard.

Deploying, Deployments, CICD

-In the modern day “assembly line” of software development, deployment is a method of bringing software to different environments “development”, “production”, as well as various cloud environments, components and services. This is an advanced topic. People such as Pieter Levels (Digital nomad life explained | Pieter Levels and Lex Fridman) fully disregard this area for various reasons - lack of professional training, focus on speed of product development, etc. Regardless, this area is important in professional software development for scaling a business but is often (and for good reason) disregarded by non-professionals.

-This area is not a requirement for a non-professional, but an understanding of the domain is hugely beneficial to them.

Full Stack Development

-A full-stack developer, a term that you may encounter, implies that a developer understands both the front-end and back-end development equally well and can develop the entire solution to a business problem independently. This is very misunderstood by professionals and non-professionals alike.

-Developers understand one or the other better. A full-stack developer often has basic competency in one and deeper competency in the other.

Programming

-Programming is about problem solving and delivering a solution to a business need and/or user desire.

-Programming hugely benefits from first principles thinking - breaking a large problem down into it’s components and solving each independently. This approach has many benefits including long-term maintainability and costs management. It can often mean the difference between success and failure of the business.

Computer program source code can look like this, in order of least complexity to highest complexity: Lines -> functions -> libraries -> scripts -> applications

Computer programs are mostly made up of the following low-level components (each come in several different variations, which depend on the programming language, but are largely equivalent):

-If you can just understand the above 3, you are 80% there to understanding how a computer program works.. A computer program is often just the 3 above concepts, repeated thousands of times, across many files, and “stiched” together to solve a business problem.

-A professional programmer understands the above 3 components on a deep level, and all the variations and methods of how to use them.

-A computer programmer has a intuitive and mental model approach to taking a business problem and converting it to a piece of computer software that utilizes the above 3 components, in a repetitive and iterative way, to solve that problem. They further understand how to automate the testing, monitoring and ongoing adaptation and maintenance of this computer software program as the business continues to operate as well as change in the course of doing business.

-What is a “framework” ? Examples: React, Rails, Next.js. Often times you will come across literature where programmers discuss using a “framework”. This is an abstraction on top of an existing computer language (such as Javascript, Python, C++) that allows a programmer to re-use common pre-packaged pieces of source code (often composed of the above 3 components described, thousands of times), to implement commonly used features in software projects. Every “framework” is different, and can often be as complex as learning the original programming language. Be careful of framework selection for solving a business problem, as it will constrain your future business approaches in terms of costs, labor specialities and costs optimization, and management of your technology operations in general.

Languages

-Programming languages come in many different forms. Developers often choose one or another to solve a business problem based on personal preference. Often companies do not choose this in a logical or rational manner - including the largest companies today. These decisions are often made on a micro-level by the software programmers within a company - often the first hired, or the first put on a project - and they are made for no other reason than for personal preference and/or what the programmer actually knows. These decisions are sometimes disastrous for a business in the long-run.

-There are hundreds if not thousands of possible programming languages in existence. Any can be used. We will discuss a few of the most common and popular in 2025:

Javascript - a popular language in 2025. Evolved from a web-site/front-end only technology to be used in all parts of the stack, including back end. It is not particularly well suited for data processing and/or AI development. It has a large labor pool. Relatively easy to learn.

Python - a popular language in 2025. Well suited to back end development including servers, data processing and AI. Not well suited for front-end development, however, it is certainly possible. Relatively easy to learn.

Golang - a language invented by Google. Not as popular as the above two, however, it is well suited for API development and very fast and scalable machine-to-machine communications. Relatively easy to learn.

SQL - a language used by databases specifically focused on storage, processing and retrieval of data. It is not used for front-end development at all. Analysts, AI, and data professionals at large are well versed in SQL. Among the oldest of programming languages and still widely used today.

Others - PHP, Ruby, Java, C/C++ - There are many other programming languages, these are some other common ones. The differences range in labor pool availability, ease of use and learning, speed of execution on a computer.

Artificial Intelligence

-”Machine learning” is a subset of Artificial Intelligence. It has been around for a long time. For example, “machine learning” was used in the 1980’s to create software applications used by credit card companies for identify likelihood of fraud in real-time as credit card transactions hit the Visa network.

-Traditional machine learning approaches - credit card fraud risk management, the ordering of videos and content in Instagram and TikTok, Google search engine results.

-What many people think of AI as in 2025 is “Generative AI” - using a specific algorithm/model called Transformer and was invented by Google. You can read more about it here: https://en.wikipedia.org/wiki/Transformer_(deep_learning_architecture)

-The importance is understanding that a business model can be solved by many different types of AI, not just Generative AI, and that this selection can mean the difference between life and death of a business because of the costs/economics and capabilities involved.

-Generative AI is a hugely expensive endeavor, in all dimensions including cost of personnel as well as computing resources, and should only be attempted if no cheaper solution (“traditional machine learning”) can solve the business problem better.

-Generative AI/Transformers, however, can solve business problems that were previously impossible with the technologies that came before it.

-There is an art to determining how to best and most cost effectively solve a business problem - what AI approach to take - and this can give a business a significant cost advantage which may lead to market dominance in the long run.

Applying Generative AI to business

-What is Generative AI especially well suited to? In 2025, two of the areas and domains it has proven to be exceptionally capable at are: 1) customer service and 2) generating computer software code.

-Customer service - there are many software companies offering customer service AI “agents” to replace humans, i.e. Sierra (http://sierra.ai/) . This is because the economics are well aligned, and customer service is a balance between providing a “good-enough” experience to the human customer, while balancing costs to the business. Many businesses are eager to replace relatively expensive human customer service agents with a software program.

-Writing computer code - many business leaders believe that Generative AI can help them replace their hugely expensive human computer programmers. How true this is, remains to be seen. It may be possible, it may not be. Current solutions are not capable of doing this, because as this document attempts to highlight there are many problem solving aspects, decisions, and intuition required in creating software that a Generative AI/Transformer solution cannot achieve. There are many industry experts that have a yes/no opinion on this. Example:

  • Yann Lecunn - Technical Head of Facebook AI - No, cannot replace humans
  • Sam Altman - CEO of OpenAI - Yes, can replace humans
  • Dario Amodei - CEO of Anthropic - Yes, can replace humans

-Take the above with a healthy dose of skepticism, there are business interests and incentives in learning in one direction or another on the topic of AI replacing human programmers

-Regardless, generative AI can decrease the operating costs of almost any business. Alternatively (and ironically), it can also significantly INCREASE the costs of any business if decided and deployed arbitrarily. Once again, this is where a professional human programmer can make or break the business by their micro-decisions.

-Data privacy and competition - one thing that is important to note is that any information you supply to an AI model such as chatgpt (from the company Open AI) is recorded and used to train the AI model, used by all customers of Open AI, from that point forward. Therefore, nothing private or proprietary to your business should ever be sent or discussed with an AI model such as Chatgpt, Anthropic’s Claude, etc. Think of this like you are creating a business to compete with Amazon. Would you call up Amazon Corporation on the telephone, ask to speak to their head of business development, and tell that human how you are planning to compete with Amazon and all the details of your business and your competition plans? Probably not. Supplying this information to an AI model is equivalent. If it must be done for the purposes of your research, obfuscate what you ask so it will have the least likelihood of being useful to anyone except for yourself. Alternatively, there are approaches to running an AI model yourself, on your own computer equipment, without data ever being shared with another company such as Open AI, Anthropic or Amazon, however, this is an advanced topic and out of scope for this document. Your best bet in that regard is to collaborate with a professional human computer programmer.

-Outsourcing and labor optimization for business owners - see the next section “Developing software products with Generative AI” for more details on this, but in short, cost savings can be achieved with these solutions as well as less of a dependence on full-time technology staff.

-Company structure - How will future company structures be impacted by this technology? There are many theories about this in technical and research domains, as well as science fiction. The 2012 movie Cosmopolis with Robert Pattinson (https://en.wikipedia.org/wiki/Cosmopolis_(film) ) details a futuristic company, mostly consisting of just Pattison and an AI Agent that he trained over many years via many humans and capital, that now is one of five global dominating financial trading firms and controls the global stock market of that futuristic world. For a more theoretical report on this, consult the research paper “AI In the Knowledge Economy” (https://arxiv.org/abs/2312.05481) , which is an academic paper and explores the idea of 1-person “super companies” (like Cosmopolis), as well as the different impacts of Copilots vs. Agents on wages, and company structure.

Developing software products with Generative AI

-Why did we discuss front-end, back-end, database above? It gives the reader a structured approach of how to break the computer software program down into smaller pieces when utilizing a Generative AI solution to write the computer software code. Without this breakdown, the output an AI will be junk and unmaintainable in a professional business setting.

-Vibe coding vs Vibe Engineering, what is this?

https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fdrive.google.com/uc?id=16CJMP1GuXPztXJ1G78kKyYPV_2IYfCqx

-In short, garbage in produces garbage out. Unless a first principles approach is taken to working with a Generative AI solution to develop computer software code, what comes out will be utterly unusable in any professional setting.

-This requires thinking about a business problem deeply, breaking it down into pieces, solving each piece independently, and often times using a human to connect these variously developed pieces of computer code together.

-The human is also required to keep the components structured consistently, able to be troubleshooted by a human if needed, and able to be run in a cost-effective manner, often times on a hyper scaler. A Generative AI solution, in 2025 (and for the next several years at least, if not forever), is not capable of doing this autonomously and unsupervised.

-What is the benefit then? Potentially significantly decreased costs for a business venture if used wisely. What previously required many computer programmers to develop, theoretically will require less computer programmers. It will also enable non-computer programmers to prototype and explore solutions to business problems, earlier in the product development lifecycle and for longer, without employing a human computer programmer.

-Human computer programmers, especially in the United States, are very expensive for a business. Generative AI is theoretically an equalizer and may decrease the costs of employing a human computer programmer. However, there are arguments for and against this. It is also possible that Generative AI causes so much more software to be written, and in various levels of quality and professionalism, that the demand for human computer programmers exceeds the number available, and causes the cost of employing a human programmer to be even higher. For example, if every non-technical person is now available to develop a solution to a problem that they imagined and thought up, but without the help of a professional programmer are not able to take that solution to the next level (i.g. Running it for more than a few hundred users concurrently on a hyper scaler cloud) - there will be an incredible demand for human computer programmers that can aid these non-professionals in taking their idea and scaling it to that next market level.

-Finally, Generative AI will also enable a human non-computer programmer to better collaborate and work with a human programmer.

-Copilots vs. Agents - what is an agent? What is a copilot? In 2025, Generative AI is in what we call the “Copilot” phase. Disregard anything you see online about “AI Agents”. That has not been created yet, and many say that the current state of technology is incapable of creating Agents. Regardless, you will see much discussion about Agents as well as claims from various companies that they have created an Agent for you, because they are financially motivated to do so. At the most basic level, a “copilot” is a Generative AI tool that requires a human to supervise and operate (also called “human-in-the-loop”), while an AI Agent is a completely autonomous and unsupervised solution. An AI Agent, also referred to as Artificial General Intelligence (or “AGI”), could potentially be considered a god-like entity and there will be many impacts and consequences to our society once developed. We are not there yet. If you are going to use Generative AI for anything productive and useful in 2025 (and realistically until at least 2030), it will be a copilot solution.

-Version Control - this is a lengthy subject but an important one. In professional software development, a human computer programmer uses something called “version control” to track changes in source code. Arguably, the most popular form of this today is called ‘git’ and Microsoft offers the very popular tool GitHub (http://www.github.com ). Most professional programmers today, use Github on almost a daily basis. Git is important when working with AI models in a prompting session, as it enables the operator to track each source code change made by the AI model, and revert as needed. This is a strategy for how to effectively manage an AI Model’s outputs, which at any point in time due to the probabilistic nature of their very design, are likely to make serious errors and the human operator needs to revert back to an earlier version of the source code and start over from there. Here is a general overview of Version Control (https://en.wikipedia.org/wiki/Version_control ) as it relates to software development. You, the human operator, should act as if you have a human programming team at your disposal and utilize Version Control technology with the AI model, just like the human programming team would use during their day-to-day together.

Copilot Tooling

-This section will give an example of some Generative AI Copilot tools and what they are good for. The author can discuss and show examples of each further.

-Github Copilot - One of the first products in this area, it was released several years ago. Professional programmers utilize it in their version control system (Github) to review software source code, make suggestions and fixes, and in summary - produce small and simple updates to code. It is not effective or capable of answering a general prompt and producing an output. It is not similar to ChatGPT.

-Cursor - Cursor is from an independent software startup. The startup took the idea of Github Copilot, and integrated it with a tool used by professional programmers called an IDE (integrated development environment). This produces the same functionality as if a human were to start a chat session with ChatGPT and ask for source code, however, it is much more productive for a programmer as it significantly decreases the time and cycles between conversion with a AI model and turning those responses into software code that can be effectively and quickly tested and incorporated into the final product source code. This tool can be used with any online available AI model, however, it is most effective with Anthropic’s Claude AI model (not ChatGPT). Anthropic, confusingly, has their own project called Claude CLI. This may become the more effective and productive product in the future, as Anthropic/Claude has the proprietary capabilities and market dominance, while Cursor is simply a middleman and wrapper to Anthropic. For now, Cursor has the better marketing and user interface for a professional programmer, but we expect this to be a hotly contested space in the near future with many competitors as well as Anthropic itself.

-Bolt.new - This is similar to Cursor, however, it is focused on front-end and back-end solutions and is attempting to focus on the “Agent” direction rather than the “Copilot” phase. As discussed elsewhere in this document, Agent technology is not currently possible, so Bolt.new should be viewed as an innovative manner of dealing with Copilot technology in a more autonomous manner and potentially a bit more appealing to a non-professional than Cursor.

-Midjourney - This is not a source code generator, but rather an image generator. It is worth mentioning however, as building a product to solve business needs is about more than just source code. There is also marketing and graphics involved. For example, if you have a website front end to your product, you will need a UI and graphics. Midjourney can be used to create those graphics via “prompting”. Where previously you would need to describe your desired look and feel to a human graphics design, who would then work with a human computer programmer to incorporate those graphics into the website, now these graphics can be created by a solution such as Midjourney.

-For some resources, including video tutorials, of how to use these tools to create finished products, see these links: * Cursor AI “Design Mode” tutorial for web frontend development: https://www.youtube.com/watch?v=CrW1zSZtn1E * Cursor vs github copilot builder.io * Building an app with v0 (ui), bolt and cursor: https://www.youtube.com/watch?v=p0ohq8RX_T4

Prompting

-What is prompting? “Prompting” is talking to a Generative AI model such as ChatGPT and having it respond with an answer. For the purpose of this document, we are focusing on that response being computer program source code to solve a business need.

-Effective prompting employs first principles thinking. https://fs.blog/first-principles/ . We need to break down a problem into bite-sized chunks and work on each chunk with an AI model (at least in 2025). This is currently essential to achieving results.

-A professional programmer, who utilizes prompting effectively to generate computer program source code, will often spend many hours thinking about the business problem, breaking it down into chunks to submit to an AI, and iterating back and forth with the AI on each chunk. They will shape these chunks to be consistent with each other, to evaluate each chunks ability to solve the miniaturized component of the larger business problem, and each chunks ability to work with the rest of the chunks. 80% of the time and effort of this computer programmer may be in this phase of documentation and thinking, while 20% or less is spent in the conversation with the AI. How much time is spent in each phase, as well as the quality and reliability of the output from the AI, is dependent on this spread of effort.

-Much research as well as examples online show that the phase of growth from an amateur to a relative expert in this domain of prompting, follows the path as follows:

  • Amateur
    • quick and successive prompts,
    • Overall volume of prompts high,
    • Lack of cohesion and consistency amongst prompt inputs and outputs
  • Expert
    • well formulated approach to prompts
    • documented history of prompt inputs and outputs
    • Ability to keep track of where in the long-running conversation with the AI model the human is, and the ability to steer the AI model and conversation increasingly on the focus and topic while these sessions, due to the very nature of information exploration and explosion, will naturally tend to go off track

-AI models need constant supervision and guidance to solve problems. However, if the human operator provides this in a systematic and structured manner, they are hugely valuable in terms of output provided. They are a tool, and the quality of that tool depends on the proficiency of the operator.

-What are some general tips for prompting to create computer software programs?

-Structure your inputs - Create extensive documentation to later provide as prompts to an AI model. This is an extensive topic. Read about product requirements documentation here: https://en.wikipedia.org/wiki/Product_requirements_document . In many companies, a formal role, called a Product Manager creates this documentation in the form of a “PRD Doc”, and uses this to align the human computer programmers with the human business stakeholders. In the realm of Generative AI, this is a hugely valuable method of interfacing and prompting with an AI model. Create a PRD, and use that document to discuss with the AI model. It will allow you as the human to consistently stay on track and test your ideas, while shaping your ongoing sessions and outputs from the AI model.

-Similar and related to structuring your inputs to the AI model, structure the outputs from the AI model as well. This can be as simple as telling the AI Model “respond with Python computer source code that uses a for-loop and if-else statement to do x, y, z” to as complex as telling the AI model “respond with Python computer source code that implements an API with the input and output parameters that I have described in my attached PRD Document titled my_project_prd.pdf”.

-Without specific and detailed inputs and outputs submitted and requested to an AI model, respectively, the results obtained will be insufficient and frustrating to a human. This is a large part of why there is so much confusing messaging in the press and news in 2025 about what AI models are capable of and not capable of, and some proponents will say they will replace human jobs while others say they are utterly incapable of that. Interestingly, a large number of human computer programmers will say that AI models are completely incapable of replacing human computer programmers in any reasonable time frame, because of the extensive requirements of thinking, problem solving, and structured inputs and outputs required to effectively use an AI model. Their thought is that this is the domain and speciality of a human computer programmer.

-With that being said, any lay person can achieve significant and serious goals in terms of computer software programs and outputs, if the above methods are utilized effectively. However, the challenge becomes that if that lay person learns much of this domain discussed, they have effectively become a human computer programmer. That is the challenge! Identifying and learning just enough to be productive and efficient in this new era. I, the author, firmly believe this is possible and is the reason I have written this.

-Shape the output of the AI model. For example, supply existing and example computer source code to the AI model and say “create source code that solves business problem x,y,z and looks like the source code I have attached as sample1.py”. Here, I have existing source code, in the file sample1.py. I may have obtained this online, or from a human computer programmer I am collaborating with, or from a previous project. This gives the AI model a “canvas” to work with and focuses their output. This is hugely beneficial. Without direction, the AI model will go off the rails and the output is unpredictable. This is how the current generation of AI models are designed. They are probabilistic, not deterministic.

-Similarly to above, “shape” the output of the AI model by providing a base template of existing computer program source code for the AI model to operate on and update with the outputs. This is an advance topic. But, in short, use a framework that has a command that will create an initial directory and file structure layout. Then tell the AI model to use this directory and files as a guide for insertion of the source code output it generates. This is very productive and serves effectively to keep the AI model on track with consistent and functional source code outputs. Example is Python (computer programmer language) and Flask (python Framework) implement of “Cookie Cutter” (yet a further abstraction, framework, one layer below the Flask framework) here: https://github.com/cookiecutter-flask/cookiecutter-flask . Again, this is why human computer programmers are still necessary at some point in a project, as of 2025, unless the lay person has effectively trained themselves to become 80% of a computer programmer. This, however, is entirely possible and is exemplified by people like Pieter Levels https://www.youtube.com/watch?v=dq3j-NTqJX4 .

-There has been much research that has shown that if you tell the AI model to assume a role, it will be much more effective. This sounds crazy, but it seems to work. For example, specifically tell the AI model in your prompting “You are a python computer programmer in a technology company building x,y,z, and I am the product manager and we are working together. I want the outputs that you give to me to be production ready and able to solve our business problem. I will take these to our business stakeholders and if your output is not satisfactory there will be financial consequences to our business. Please make them reliable, secure in terms of cybersecurity, and economically efficient in terms of u.s. Dollars spent on cloud hosting.”

-When prompting, treat this as a research project like you are in a university level course and have been given the task of writing and delivering a research report by the end of the semester. Thoroughly think about the project, create notes, track your sources of information, document everything. Keep track of your schedule and to-do items. Cross them off when completed. Consult with peers and collaborators on your ideas. Treat the AI model as one of these collaborators. But you, the human, are in the driver’s seat and required to coordinate and marshall all the resources on the project including the AI model, which is just one of the resources at your disposal. The quality and amount of effort spent in this effort, will impact the quality of your ultimate research project.