Do Not Start With Shiny Tech! It May Blind You
The previous article in this series on developing with Artificial Intelligence (AI) for learning professionals covered the first steps of the initial setup: fundamental elements and editing your code. The remaining components of the architecture are recommended for working with multiple files and more complex projects. While it may feel like setting up an environment slows you down, believe me, it's a one-time investment worth the effort when you start debugging.
Example
When working with Articulate Storyline, I published the initial course locally, and then used that published folder as the source for my AI-assisted development. I explained to the tool (Windsurf) where the files are, what is republished by Storyline every time (so it shouldn't touch it), and what files it can edit. This way, AI could see the whole project, not only the JS snippet it was writing. It could even "see" the application when I ran it inside Windsurf for direct screenshots or automatic logs.
More examples and end-to-end best practices of code development with AI are coming in the following articles.
In this article, you'll find...
- From Storing To Deployment
- STORE
- PREVIEW (Testing And Debugging)
- DEPLOY
- How To Choose An AI Development Tool
- My Top Recommendations
From Storing To Deployment
Once you've set up your editor of choice and you're connected to an LLM, think about what kind of projects you're going to work on and who your audience will be.
STORE
Even if you're working alone, storing the last functioning version of your source code (along with previous, committed versions) can save you time and frustration. If you plan to collaborate with others on the code or share it with others, then an application dedicated to storing and source control is a must.
One of the most commonly used source control tools is GitHub. The free tier offers both private and public "repos" (geek lingo for a repository of your source code). Your source code is organized into projects with version control, collaboration features, rollback capabilities in case of errors, and documentation explaining the purpose and rationale behind changes.
Note
We're not getting into the weeds of more sophisticated uses of GitHub such as branching, forking, and merging code, but keep in mind that as your needs become more complex, learning how to use GitHub to its full extent will be critical.
In the previous article, we covered the editing part of the code. Using GitHub allows you to set up a local project folder where you keep a "copy" of your source code for editing, experimenting, and iterating until a feature you worked on is stable, so you can update the source code in GitHub.
Working With GitHub
Generally, there are two ways to maintain your code using GitHub:
- GitHub User Interface
- Terminal (commonly referred to as Command Line Interface or CLI)
When would you use which? The graphical interface is user-friendly and is suitable for beginners. It may be slower and limited, but you can visually see what's happening with your code base. The CLI approach is faster and provides more flexibility in handling source control, but it requires more typing. AI dev tools can help you with both. I suggest trying both and seeing what works better for you.
I've been using programming languages for decades, so I prefer CLI. And frankly, just to maintain basic source code, you will only need a couple of lines (adding the changes, commenting, and pushing the code). By the way, if it is set up correctly, AI can also do this for you, directly communicating with GitHub through the terminal.
PREVIEW (Testing And Debugging)
Previewing the results of your code is critical. In fact, you're going to spend way more time in this phase than you think. Preview and test your code as often as possible. There's an art and science to finding out the difference between what you mean to code and what the code does. It's called debugging.
If you had to publish your code every time to deploy it to preview the output, it would take forever to get things done. The AI development tools can help you run the code locally and toggle debugging on and off, allowing you to see where the code breaks or behaves differently than expected. I always have the browser console open to see all warnings and debug messages.
When you see an error, you can copy-paste it back to the AI and ask it to solve it. You can even take a screenshot of the page and simply explain the changes you need. Windsurf has its own controlled browser, for instance, where you can directly send back the screenshot or error messages to the development tool. This can speed up the debugging process.
DEPLOY
The final stage of development is deployment. Deployment means making your software application available for other users. While the local preview is for you, the live deployment version is built for user consumption. How users access your code defines where and how you deploy your application. This could be a simple static web server or a sophisticated environment built for full-blown deployment, such as Vercel.
Deployment also requires previewing, testing, and sometimes debugging. Often, your code is rebuilt at the deployment level for scalability and stability.
- Stating the obvious
You should never hard code keys and secrets in your source code. If anyone gains access to your code, they can view the secrets.
Therefore, keys and secrets such as API tokens are handled differently locally, than when in the deployment stage. Locally, secrets can be stored in a local file that will not be pushed to GitHub (.gitignore) or in your operating system as variables. Meanwhile, in the case of Vercel deployment, for example, these keys are stored as "environment variables" that users will not have access to in the cloud.
Final Word On The End-To-End Process: CI/CD
Two decades ago, a software application typically had one or two releases per year. It took a considerable amount of time to complete the full life cycle of software development, documentation, deployment, and other related tasks. Users had to wait months for any new releases.
Today, software application releases can happen every second. This process is called Continuous Integration (CI)/Continuous Delivery/Deployment (CD). With CI/CD, developers can release fixes or new features when they become ready, without having to wait for a yearly event. However, CI/CD is out of scope for this article. But you can win geek points at cocktail conversations with developers by asking about their CI/CD process.
How To Choose An AI Development Tool
Choosing an AI dev tool by comparing their feature sets and technology architecture would be similar to picking one morning cereal from over 5000 variations by reading everything on every box. You'd probably die of hunger before reducing them to the final three candidates. Not to mention that while cereals are pretty stable, the pace of change for AI is incredible today. So, starting with technology is not a good strategy.
- Stating the obvious
Do not start with technology or features! You'll be overwhelmed. Start with the why!
Why do you want to use AI? What do you want to develop? Don't build solutions and then start searching for problems to match. Start with a problem in mind that is worth solving.
AI can accelerate your production 10x. Making something that is not used 10x faster is still a waste of time. Also, don't automate broken processes or scale ineffective solutions. I once built a full automation of PowerPoint slide building through Visual Basic for Applications to accelerate the process of learning design. Not a proud moment of my career. Build something that has both efficiency and effectiveness values.
Categories Of Questions To Consider
There are hundreds of attributes that describe the diverse landscape of AI development tools. From a learning/enablement perspective, I suggest focusing on the following categories:
- Cost
All about your budget. - Ease of use
On a scale from simple, chat-based vibe coding to "geek-style" command-line with complete control, where are you? - Required tech and coding skills
Previous knowledge and skills required for success. - Complexity of the output
From simple snippets through visual design to multi-file applications. - Control over code
Hands-off convenience to complete control of every single change. - Cross-cutting
Some fundamental elements that cross over categories (security, privacy, integration, collaboration, etc.)
Within the above categories, consider your priorities and needs. Answering specific questions before choosing a tool will help you narrow down the potential development tools. You can download my set of go-to questions and tweak them for your needs [1]. And, yes, many programmers use multiple dev tools, depending on the type of work or the phase of the work.
My Top Recommendations
Based on writing over 6000 lines of code (as of right now), I would suggest playtesting the following tools:
- Simple and quick prototypes, fast idea to example
Lovable or Replit - Free coding assistant for snippets and basic web pages
GitHub Copilot (free), along with ChatGPT for brainstorming. - Development beyond simple snippets and webpages
Windsurf or Cursor
In the following article in this series, I'll share my recommended end-to-end process and best practices. I'll use Windsurf as an example, but keep it general enough so you can apply the best practices for any other AI development tool to elevate your learning game.
References:
[1] AI Dev Tools Selection (L&D/Enablement)
Image Credits:
- The image within the body of the article was created/supplied by the author.