← Back to Articles

What I Learned from Using AI for 2 Years Straight

When I first cracked open my laptop to experiment with AI, I had no idea it would become my sidekick for the next two years. The promise was simple: a tool that could answer questions, write code, design graphics, and even coach me through my own learning curve. What unfolded was a mix of excitement, frustration, and a growing understanding that AI is as much a mirror of our expectations as it is a set of algorithms.

The First Taste of AI

I was a mid‑career developer who had spent the last decade building apps in JavaScript, React, and Python. One rainy Thursday, I stumbled upon ChatGPT’s beta and decided to ask it to refactor a legacy function. The response came back in less than a minute, formatted in clean code, with comments that explained the logic. I stared at the screen and thought, “This is almost too good.” That single experiment made me curious about the limits of what AI could do for me in everyday work.

The next day, I set up a GitHub Actions workflow that would prompt the model to write unit tests for any new code I pushed. Within hours, I had a suite of tests that caught a few edge cases I never considered. The feeling of watching my code improve without having to write a single line of test manually was intoxicating.

Turning Ideas into Code (AI as Code Helper)

After a month of experimenting, I started to rely on AI for more than quick fixes. When I was stuck on a tricky recursion problem for a new feature, I typed a brief description into the chat. The AI generated a skeleton, suggested variable names, and even gave me a step‑by‑step explanation of why the recursion would terminate.

I began to document each interaction, noting the prompt structure that yielded the best results. One pattern I discovered was to ask for “a minimal, fully functional example” and then tweak it. I found that the model was great at generating boilerplate, but my own edits were essential to make it production‑ready. In one case, I used AI to build a microservice in Go that handled image uploads. The initial code was correct, but I had to manually adjust the concurrency logic to avoid a race condition that the AI missed.

The real value emerged when I started using AI to prototype new APIs. I could describe an endpoint, and the model would spit out a FastAPI route with proper validation, authentication stubs, and even sample responses. I logged each prototype and later used them as the foundation for full development. This approach cut my initial design time from days to hours.

Creative Writing: From Draft to Draft

I’m not a novelist, but I have a habit of writing long‑form content for my tech blog. AI became a kind of brainstorming partner. I’d give it a headline and a few bullet points about what I wanted to cover. The model would churn out a full first draft in about ten minutes.

I remember a week I was stuck on a post about “micro‑services pitfalls.” I fed the AI a list of pitfalls I’d encountered and asked it to structure an article. The result was a 1,800‑word piece that included anecdotes, code snippets, and even a witty anecdote about a deployment that went wrong because of a missing health check. I could see the skeleton, but the AI’s “voice” was slightly generic. I then went back to inject my own voice and tweak the humor.

The real magic came when I used AI to rewrite sections in different tones. I had a technical post that felt too dry for a casual audience. I asked the model to rewrite a paragraph in a conversational style, and the new version read like a friend explaining a concept over coffee. I saved those prompts and reused them for future posts, turning them into a small library of tone‑shifting templates.

Data Analysis: Numbers, Not Numbers

In my data‑science side projects, I often work with datasets that are too large to handle comfortably in my head. AI helped me write SQL queries and pandas scripts with minimal effort. One night, I had a CSV of 500,000 rows of user interactions and needed a quick summary of engagement per feature. I asked the model for a pandas script that calculated the average session length per feature and plotted a bar chart. The script ran in under a minute, and the resulting plot was ready to drop into a slide deck.

I also used AI to debug data pipelines. When a Spark job failed with a cryptic error, I pasted the stack trace into the chat and asked for a diagnosis. The AI pointed out a common mistake: a missing broadcast variable. I fixed the issue, and the job ran smoothly. I learned to use the AI as a first‑line debugger before digging deeper.

One project involved predicting churn for a SaaS product. I fed the model a brief description of the features and asked for a basic logistic regression pipeline. The model gave me a ready‑to‑run scikit‑learn script. I added my own cross‑validation logic, and we reached an 85% accuracy, something I hadn’t achieved in previous attempts.

Design & Aesthetics: Visual Magic

I have a love-hate relationship with design. I’m comfortable coding, but UI design is often a hurdle. AI changed that dynamic. I used a text‑to‑image model to generate mockups based on a prompt like “a dark‑mode dashboard with a minimalist aesthetic.” The outputs were surprisingly polished, giving me a visual starting point that I could import into Figma.

I then used AI to generate CSS snippets for responsive layouts. I would describe the desired layout—“three columns, each with a header, image, and paragraph” – and the model would spit out a CSS grid. I could tweak the spacing, and the result would be a ready‑to‑implement stylesheet.

The process of feeding prompts and iterating quickly with AI reduced my design cycle from weeks to days. I still had to hand‑tune colors and typography, but the bulk of the heavy lifting was automated.

Learning & Skill Building: A Personal Coach

Two years of using AI taught me how to become an efficient learner. I treated AI like a mentor for new languages or frameworks. When I wanted to learn Rust, I asked the model to outline a learning path: “What should I study first, and how can I apply it?” The answer was a week‑long roadmap with project ideas, code examples, and community resources.

I built a personal knowledge base by saving AI’s explanations and code snippets. Whenever I encountered a concept like “monads” or “async/await,” I could copy a prompt, paste it into the chat, and get a clear, concise explanation. I also used AI to create flashcards; I’d give it a list of terms and ask for a question and answer pair. The flashcards were surprisingly accurate, though I still had to double‑check definitions.

One honest moment came when I asked the model to explain the differences between “garbage collection” and “manual memory management.” The response was technically correct, but it omitted the subtle performance implications for real‑world applications. I realized that while the AI was good at summarizing, it sometimes lacked depth on nuanced topics. That led me to cross‑reference AI explanations with authoritative sources.

The Dark Side: Missteps and Misinterpretations

Not everything was smooth sailing. I remember a time I was building a new feature for a production app and asked AI to generate the entire API contract. The model produced a contract that seemed reasonable, but it omitted a critical security header that the team had mandated. Because I trusted the AI blindly, we ran a test that exposed a potential vulnerability. I felt the sting of that oversight and realized the importance of verifying every line AI writes.

Another frustration came from the model’s tendency to hallucinate. I asked for a list of the top five Node.js libraries for handling websockets. The AI listed “Socket.io,” “WS,” “SockJS,” “SocketCluster,” and a fictitious “WebSockify.” I had to fact‑check and discard the made‑up entry. This experience taught me that AI can be a great starting point, but it cannot replace due diligence.

The Human Touch: When AI Falls Short

There are moments when a human perspective is irreplaceable. For instance, when I was preparing a pitch deck for investors, I asked the AI to draft a slide on market opportunity. It provided a clean slide with bullet points and a chart. But the numbers were generic, and the tone felt detached. I realized that the story I wanted to tell—about our early adopters, the pain points they described—required a personal touch that AI couldn’t capture.

In another scenario, I was debugging a race condition in a distributed system. AI suggested common fixes, but the root cause was a subtle interaction between two microservices that had evolved over time. I spent hours tracing logs, and only after manual inspection did I catch the missing lock. AI had helped me frame the problem, but it couldn’t replace the insight gained from reading raw logs.

My Final Takeaway: A Tool, Not a Replacement

Two years of living with AI has taught me that the model is a powerful assistant, but it’s not a replacement for human judgment, creativity, or hard work. It can speed up routine tasks, spark new ideas, and provide a scaffold for complex projects. It can also mislead and oversimplify.

The key is to treat AI as a collaborator—someone you can bounce ideas off of, but not the sole author of your output. I now design my workflow around asking for drafts, generating skeletons, and then investing time in refining, testing, and injecting my own voice.

I’ve seen AI help me write code, design, analyze data, and learn new skills in a fraction of the time it used to take. I’ve also learned that the real value lies in how we use it, not in what it can do on its own. The biggest lesson? Keep your curiosity alive, stay skeptical, and remember that the best results come from the human‑AI partnership rather than any one side.

← More Articles Explore AI Tools →