AI
Stop Letting AI Wing It — Take Control of AI Coding
- Important roles: researcher, product manager, architect, engineer, tester
- Goal: understand your role at each one of the steps
- Problem: People want LLMs to be all of those roles in one package
- Carefully read the LLM outputs (you own this part)
- Tip: Plan in ChatGPT rather than IDE-specific tools (pollutes the response with code-specific things that aren’t needed yet).
- Researcher = analyze and create resources to be used later
- Architect = standards and core principles, defined frameworks, basic structure; output is a structure document
- Product Manager = define what you want and work in small steps (incrementally) and easily reason about; output is a product requirements document (PRD)
- Engineer = consume the PRD (the “what”) and create an implementation plan (the “how”)
One section of this course described what deep neural networks are and how they function.
Generative AI Foundations: Getting Started
This course covers various types of generative AI, how it works, when it makes mistakes, and how to get better results from it.
Software development
Breaking Legacy Code Dependencies with Extract and Override
- There are safe techniques to get something in place so you can begin improving your design.
- Extract and override = move an awkward dependency call to an overridable method in a test helper (non-production) class.
- Extract and move (because we have better refactoring tools and language features) = move an awkward dependency call to a local method, make (or find) another class where that new local method should live, move the local method to that class, then have the code under test call that class. (You set the class instance as a field in the class under test and have the instance passed into the constructor.) This gets you to a more separated design sooner, plus you don’t need a test helper class because you can use a substitution framework (e.g., Mockito, NSubstitute).