Let's just ask it.
๐ง๐ปโโ๏ธ You: How can software engineers make the best use of generative AI technologies?
๐ค ChatGPT: To make the best use of generative AI technologies, software engineers can:
- Automate repetitive tasks: Use AI to generate code snippets, documentation, or automate testing and debugging.
- Enhance creativity: Leverage AI for design, brainstorming new ideas, or solving complex problems.
- Improve user experiences: Implement AI in applications for personalized content generation or interactive chatbots.
- Stay updated: Continuously learn about new AI tools and frameworks to stay ahead in the tech space.
- Collaborate and share knowledge: Use AI to facilitate knowledge sharing within teams and improve collaboration on projects.
Thanks for coming to my TED talk. ๐
- Adding tests to existing code ๐ฌ
- You should already know what it does or will be doing ๐
- You should know how to test it, let it provide the bulk of the tests ๐ฆพ
- Rarely has it ever generated tests that just work for me on the first try ๐
- Super Auto Complete ๐ฆน๐ฝโโ๏ธ
- Completions can be as short as a filename, or as complex as a common array reduce operations โป๏ธ
- The longer the completions go on, the worse the AI output gets in terms of the original ask โ๏ธ
- Optimizing existing code or looking for flaws โค๏ธโ๐ฉน
- Ask it to improve your code in some way, like make it DRYer, optimize for speed or reduce loops ๐ฎ
- Typed code will be able to be verified more easily than untyped code ๐งพ
- Best used with Copilot as it will have the context of the workspace ๐ฉป
- Getting unstuck by getting an explination of code, reverse rubber ducky-ing ๐ฆ
- If you need to understand the code quickly, asking the AI to explain it can be helpful ๐ง๐ฟโ๐ซ
- Finding the missing knowledge ๐ต๐ปโโ๏ธ
- When you know a concept exists but not how to execute it, getting the missing keywords to search for can be a huge time saver ๐
- Language Translation: "I know this in Python, but not TypeScript" โ๏ธ
- This tends to work best when the type of languages are similar ๐ฏโโ๏ธ
- Rust to JavaScript tends to be worse than Python to JavaScript ๐
- This tends to work best when the type of languages are similar ๐ฏโโ๏ธ
- PII & Secrets shouldn't be used with anything in the cloud ๐คซ
- You should already know what it does or will be doing ๐
- If you have something you're unsure of, use a local LLM with Ollama ๐ฆ
- Trusting the output without understanding the input ๐ฅ
- ๐จ Dangerous: Getting working code without understanding it and releasing it to others who trust you
- Long code will burn through the context tokens and result in truncated or bad suggestions ๐ฅต
- Reliance on the AI to do the logic for you leaves you with a lack of understanding of both the problem and the solution ๐ถโ๐ซ๏ธ
- Lacking domain knowledge will result in bad suggestions ๐ฅด
- Not understanding the concepts well enough to know when it is halucinating realistic looking problems ๐
- ๐ฉ๐ปโ๐ซ Example: Mike using the Faker API with realistic looking methods that he knows aren't real
- Understanding core programing concepts is a hard requirement, you will need to know what you are asking for and be able to validate it ๐ง
- "Explain it like I'm 5" is a good way to get the AI to explain a concept to you quickly before you dive into the details ๐ฃ
- Ask for the "Most Important Concepts" of a topic to start digging into the new domain ๐
- ๐ง๐ปโโ๏ธ You: "What are the most important concepts of working with a vector database?"
- Tell the AI to return code only to save on context tokens ๐ธ
- High complexity will lead to worse suggestions ๐ตโ๐ซ; break the problem down into smaller parts ๐งฌ
- Write a good comment for the function you want to write
- Use
@workspace
to give it the context of the project
// Q: What is the most efficent way to find the largest number in an array?
// A: You can use the Math.max function to find the largest number in an array
const arr = [1, 2, 3, 4, 5];
const largest = Math.max(...arr);
console.log(largest);
- Install VSCode Copilot extenions if you want to follow along
๐ฌ ASK: Can you please write for me a reusable FFMPEG script that will take take in an audio file and a video file and compress it into an Instagram optimized MP4 video file with its audio stripped, that is cropped to the length of the audio file, and optionally zooms in on the video to fit vertically and will loop the video if it isn't as long as the audio
๐ชฒ BUG: This appears to loop even if the video is more than long enough, we should only loop the video if necessary
โจ FEAT: Fantastic, can we add some debugging for each step like outputting the lengths of the audio and video, if it needs trimmed or if it needs looped
๐ชฒ BUG: Testing the new script, it did not output a video with the audio of the provided file, it kept the audio of the provided video
โจ FEAT: Lets also update the script to optimize for 1080 by 1920 in resolution for Instagram stories
โจ FEAT: Amazing work! ...
tl;dr Allow it assist you, not guide you. ๐ฆค
ใใใใใ๐ฆ๐ฆ๐ฆ๐ฆใใใใใ
ใใใใ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใใใใ
ใใใ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใใใ
ใใใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใใ
ใใใใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใ
ใใใใใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆ
๐ฆ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ
๐ฆ๐ฆ๐ฆ๐ฆ๐ฆใใ๐ฆ๐ฆ๐ฆใใ๐ฆ๐ฆ
๐ฆ๐ฆ๐ฆ๐ฆ๐ฆใใใ๐ฆ๐ฆใใใ๐ฆ
๐ฆ๐ฆ๐ฆ๐ฆ๐ฆใใ๐ฆ๐ฆ๐ฆใใ๐ฆ๐ฆ
๐ฆ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ
ใใใใใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆ
ใใใใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใ
ใใใ๐ฆ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใใ
ใใใ๐ฆ๐ฆ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใใใ
ใใใใ๐ฆใ๐ฆ๐ฆ๐ฆ๐ฆใใใใ
ใใใใใใ๐ฆ๐ฆ๐ฆใใใใใ