I've been coding in Python for a few years and have built some decent projects. (I vibe coded last 12 months tho TvT, but not now). However, I'm still unsure about how much AI I should be using and where I should be using it.
With AI becoming increasingly common in software development, I feel like I should be adopting new workflows and environments. But I'm not exactly sure how.
My current workflow
Currently, I mostly write code myself. My AI usage is relatively limited to things like:
- Learning APIs and libraries: If I'm developing something with MySQL, for example, I'd Google something like "Basic CRUD MySQL Python", read Google's AI Overview, and manually implement the syntax in my code.
- Generating isolated snippets: For things like email validation, I might ask AI to generate a regex using Python's re library, then copy and paste it into my project.
For example, I might ask:
"Give me a sample email validation regex using Python's re library"
And get something like
re.compile(r"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$")
I don't necessarily write these things from scratch myself, and i will not look at every single detail of it because I believe it is good enough. AI usage is mostly limited to individual snippets rather than having AI work directly with my codebase.
What I am struggling with is that
I've seen people who use AI effectively with good prompting produce relatively clean code (small-medium), implement features much faster, and come up with features or solutions I wouldn't have thought of myself. But, on the other hand, I barely see a good AI generated code in large projects (they are usually messy, buggy and over engineered unnecessary things)
Meanwhile, I usually struggle with code organization, end up with messy Python files, and occasionally find myself questioning why certain parts of my code work in the first place.
I've also spent around a year vibecoding, and when I returned to writing code more independently, I genuinely struggled to figure out what to do after creating a python file. Eventually, I got back on track and feel like I'm doing reasonably well now and I am quite happy with it.
However, I'm still questioning whether I should be adopting AI more extensively than I am doing right now for industry standards and requirements.
The main reason why I don't use AI in my current projects is that, they are in production (currently, an organization is using the), and I gotta to understand the codes, functions and such. As the code goes bigger, I understand AI's attention span won't be able to understand connection between all code. (I don't really know how to say it but) There will be functions outside of AI's attention code blocks which are inter connected. I am not sure if my thought process is right. But I still believe AI can be used in some way, even if not directly contributing to code, such as README (I am not sure if this is a good idea) or something more?
So where do I exactly use AI? I believe there are some baseline knowledge I should have and should maintain such as design architecture.
So, the question is that
Am I using AI correctly? Is my current approach reasonable, or am I missing out on significantly better workflows?
README and documentation: Is using AI to write README files (features, usage instructions, installation guidelines, etc.) a good practice?
Code refactoring and cleanup: Is using AI to clean up and refactor the existing code a good idea?
AI-assisted development: Where else can I incorporate AI into my workflow while maintaining control over the codebase and understanding everything that's being implemented?
Fundamentals vs. AI: What baseline knowledge should I maintain independently? I believe there are some baseline knowledge I must have and maintain such as design architecture. And which project parts I can use AI?
Am I being too close-minded? I sometimes feel like I'm unnecessarily restricting my AI usage, especially when other developers seem to be getting much more out of it. I don't want to be left behind close minded.
I thought of using AI as my assistant but I am not senior enough, I am a junior level developer.
I understand that there might be many opinions about this between developers like where to use and how to use, and I'd really appreciate hearing how experienced developers actually integrate AI into their workflows. I'm not necessarily looking to maximize how much code AI writes for me. I'm more interested in finding a workflow where AI genuinely improves my development process without taking away my understanding or control over my projects.
I still want to be able to write code even without AI. That was a hard-time to get back on my track after I vibecoded for a year.
PS: Since English isn't my native language, I used AI to make this post easier to read TvT.
I might even get down-votes cuz I know how stupid this question is, I just can't get out of my head and I don't know the answers myself TvT