I’ve been seeing a concerning trend over the past couple of months, and perhaps you have too, where people are becoming increasingly reliant on AI for coding, and it might not be working out well for most of them.
Disclamer, I’m a moron who worked on the same project without thinking about the risk that Cursor could break everything. Yesterday, Cursor (even though I only asked it to feed a view on my UI) destroyed months of development.
My question: How do you back up your projects/versions to ensure that the next action on cursor is reversible? Ops!
Also, I know that while I’m the concern, cursor isn’t the only culprit, it’s also Claude (while good overall) still has some flaws
Don’t take the misspellings and strange grammar as a sign of a lack of smarts — there are “tells” such as the pluralization of “work” that suggest that the author’s first language isn’t English. And in a follow-up comment, they wrote:
I’m not a dev or engineers at all (just a geek working in Finance)
So what I see is someone with the mental capacity to master another language, seeing a problem in their area of expertise that could be solved by an application, and then setting out to build that application with the assistance of AI, even though programming isn’t something they’re familiar with.
First, I think we should celebrate that kind of go-getter attitude.
Second, those of you who are programmers have already seen the post’s author’s rookie mistake. It’s in this question:
My question: How do you back up your projects/versions to ensure that the next action on cursor is reversible?
You probably thought: Of course, they don’t know version control exists!
At the moment, even the best LLM will simply focus on answering the user’s questions and not stray too far to make helpful asides or ask clarifying questions, such as “Have you heard of Git?”
Something’s been bugging me about how new devs learn and I need to talk about it.
We’re at this weird inflection point in software development. Every junior dev I talk to has Copilot or Claude or GPT running 24/7. They’re shipping code faster than ever. But when I dig deeper into their understanding of what they’re shipping? That’s where things get concerning.
Sure, the code works, but ask why it works that way instead of another way? Crickets. Ask about edge cases? Blank stares.
The foundational knowledge that used to come from struggling through problems is just… missing.
We’re trading deep understanding for quick fixes, and while it feels great in the moment, we’re going to pay for this later.
The first line in the following section shouldn’t really be shocking but it still feels shocking:
I recently realized that there’s a whole generation of new programmers who don’t even know what StackOverflow is.
With AI, these junior developers gain speed of delivery, but at the cost of understanding what they delivered does. Which means that they can’t maintain or modify what they built — at least, not without even more AI assistance. Over time, what they build becomes a collection of quick fixes arranged together without any consideration of the system as a whole. That’s a whole lot of tech debt.
There’s more thought on this article in this video by Forrest Knight
In case you’re not familiar with the name, Andrej Karpathy has forgotten more about computer science and AI than most of us will ever learn. He was the director of artificial intelligence and Autopilot Vision at Tesla, and also worked at OpenAI, where he specialized in deep learning and computer vision. He also has a YouTube channel that’s worth checking out if you really want to boost your AI/ML skills.
Here’s the text of his tweet:
There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding – I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
This is great for Karpathy, but I’ve already talked with developers who’ve fully embraced the first part of the tweet, where Karpathy throws a lot of work to the AI. The problem is that they’re ignoring these key points from the second part:
The code grows beyond my usual comprehension, I’d have to really read through it for a while.
Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away.
It’s not too bad for throwaway weekend projects, but still quite amusing.
And let’s not forget the last three words of his tweet: it mostly works.
Karpathy is very, very good at coding and has lots of experience. He’s internalized a lot of best practices and has developed an instinct for programming and can spot “code smells” a mile away.
The people who’ve been talking to me about getting into “vibe coding” are not Karpathy, and some of them have mentioned that they have that increasingly common problem where they say “I know how to use my programming language and framework, but I don’t know how to apply what I know to build an application from the ground up.”
They’re not ready for vibe coding, but they’re doing it anyway. If your main gig involves working with code — and especially working with other people’s code — you’d better prepare for some interesting times over the next few years.
Wouldn’t it be nice if there were a way to get some help customizing your resume for every job application you have to fill out?
With Anitra and I leading you through the steps, you’re going to build just that on Monday, March 17th at the Tampa Bay AI Meetup at Embarc Collective. Along with us, you’ll code up an AI-powered application that takes two inputs…
✅ Your resume
✅ The job description of a job you’re applying for
…and it produces a version of your resume that’s been fine-tuned in these ways:
Present you in the best possible light
Make changes so that your experiences, talents, and achievements show that you’re an excellent fit for the job
Tune your experience and skills to better match the job requirements
Update your resume to use key words and phrases from the job description
Correct spelling and grammar mistakes
Fix phrasing to be more clear and concise
Improve sentence structure and use action verbs
Bring your laptop! We’ll provide you with a “starter” project and access to an AI account, and we’ll walk you through the process of writing a Python app in Jupyter Notebook that does what we described above. In the process, you’ll learn:
About Jupyter Notebook, one of the preferred tools for AI and data science
How to make calls to an AI API
How to build an application based on an AI API
You will leave the meetup with a working Python app that does what we’ve described above: help you fine-tune your resume for specific job applications!
For the longest time, I’d been using iTerm2 as my terminal app on the Mac, but switched to Warp a couple of years ago. Its smart completions and IDE-like editing are incredibly useful features, but the thing that really makes it stand apart is the AI assistance.
Here’s a recent example. I’m more familiar with mobile and Python frameworks than I am with JavaScript and TypeScript ones, so I never know how to launch a JS/TS application when the developer hasn’t provided a README.
Normally, I’d start poking around the filesystem, looking at config files and other artifacts and doing some Googling to see which framework they belonged to. But this time, I decided “Why not let the AI do the scut work?” So that’s what I did.
I opened a new tab in Warp and entered:
Okay, Warp, I'm in a directory of an application written in
JavaScript (or possibly TypeScript), and need to run it.
But I don't know which framework it uses, and there are more
of them than there are Pokemon. Help me run whatever this
thing is, please.
It replied with:
First, let's check for common configuration files that will
tell us what kind of JavaScript/TypeScript application
this is. Looking for package.json, angular.json,
vue.config.js, or other framework-specific files.
It then asked for permission to execute the command ls -la, which I deemed as harmless (directory listing, long format, all files).
Warp responded with:
I can see this is a Next.js application (due to the presence
of .next directory, next.config.mjs, and next-env.d.ts).
It's using Yarn as the package manager (yarn.lock present).
Let me check the package.json to see what scripts are
available to run the application.
It asked for permission to do something again — this time, to execute cat package.json (print out, or conCATenate the contents of the file package.jsonso that it could read it. I gave my approval, and it responded with the steps necessary to run the application:
Features like this are why I use Warp and other AI tools!
Right now, Warp is available for macOS, as well as Debian, Fedora, Red Hat, SUSE, and Ubuntu flavors of Linux. They’re working on a Windows version too.
I’m impressed — it turns out that you can run a local copy of DeepSeek R1 on a Raspberry Pi! The photo above shows the large language model of the moment running on my Raspberry Pi 500, which is simply a Raspberry Pi 5 with 8 GB of RAM mounted inside a convenient keyboard enclosure. DeepSeek R1 runs slowly on this machine, but it does run!
Fortunately, the installation process is pretty straightforward…
Ensure the Raspberry Pi’s system is up to date by running the following commands in the terminal:
sudo apt update
sudo apt upgrade -y
Download and run the Ollama installer:
curl -fsSL https://ollama.com/install.sh | sh
Download and start the DeepSeek model of your choice. I decided to see if the Raspberry Pi 500 could handle the 8b model, and it can!:
ollama run deepseek-r1:8b
The ollama run command first determines if you have the model specified after the command — in this case, the “8b” version of the DeepSeek R1 model, which is specified by deepseek-r1:8b.
If you don’t have it, it downloads the model and supporting files first. If you already have the model, it runs it.
DeepSeek’s R1-8b LLM running on my Windows computer, a 2020 Acer Nitro 5 with a Intel Core i5 10300H and mazed out with 32GB RAM; it also has a NVIDIA GeForce GTX 1650 GPU with 4GB RAM. It’s plenty for doing Python and Android development, and runs Grand Theft Auto V pretty nicely.
By now, you’ve probably heard all the fuss about the DeepSeek R1 AI model, which powers a chatbot that performs as well as (and in some cases, better than) OpenAI’s top-of-the-line o1 model, but differs in these key ways:
It does a better job of showing its “thought processes” while generating answers to your questions.
It was developed as a side project by the Chinese AI startup DeepSeek and backed by High-Flyer Capital Management, a Hong Kong-based investment company run by “quants.”
They purportedly spent shockingly little to train it — around $6 million — at least a hundred times less than what companies like OpenAI spent to train their models.
Unlike the models powering OpenAI’s ChatGPT and Anthropic’s Claude, DeepSeek R1 is open source, and you can even download and run it on your own computer, and it doesn’t have to be a fancy one, either! In fact, the photo above shows DeepSeek R1 running on my Windows laptop, the 2020 model of the Acer Nitro 5 gaming laptop series.
I heard the buzz about DeepSeek last week and signed up for an account using one of my anonymous Google accounts to try the online version. At the time of writing, it might be a little hard to sign up for an account, as their system is currently overloaded — possibly from demand, possibly from “large-scale malicious attacks,” as claimed on their chatbot’s login page:
I also downloaded a version of DeepSeek R1 that would run on my Windows laptop. It was a simple process that involved:
Installing Ollama, an open source tool that allows you to download and run large language models locally on your own computer.
Telling Ollama to download and run the 8b version of DeepSeek’s R1 model by opening the PowerShell terminal and entering the following command:
ollama run deepseek-r1:8b
Ollama responded by downloading the necessary parts of the R1 LLM, the largest of which was a 4.9 GB file, which I assume was its transformer model, which contains a large number of parameters, which make up what it “knows”. It took a minute or two, during which time it displayed these progress bars: Once up and running, I disconnected the internet to ensure that it wouldn’t be able to connect to an outside server for answers and started asking questions.
My first one was:
How can I make a million dollars with a decent computer,
Python skills, and a reasonably large presence on
social media?
Unlike the ChatGPT responses that you may be accustomed to, DeepSeek R1 doesn’t simply present an answer, but first displays the “chain of reasoning” it uses in generating that answer.
It displayed its reasoning, demarcated at the start with a <think> tag and at the end by a </think>tag:
<think>
Alright, so the user asked, "How can I make a million dollars with a
decent computer, Python skills, and a reasonably large presence on
social media?" Hmm, that's a big goal, but let me break it down.
First, they mentioned having a decent computer and Python skills.
So, they're likely interested in programming or coding. Maybe they
want to use their skills to build something valuable. Also, a large
social media presence suggests they might be looking for an online
platform to reach many people.
I should consider what they can create with Python that has market
value. Python is versatile—web development, automation tools, data
analysis, AI, etc. Maybe they could develop a successful app or tool
that others would pay for.
Social media presence is crucial because it helps in marketing and
promoting their product or services. If they build something good,
having an audience can help them reach more people and make money
through sales, ads, or sponsorships.
I need to outline realistic steps they can take. Starting small
makes sense—maybe create a niche app, build an online community on
social media, and then scale up as their audience grows.
Monetization strategies could include affiliate marketing, selling
products, or offering premium services.
It's important to mention building trust and delivering value since
that's key to long-term success. People won't just follow for money;
they'll stick around if you provide useful content or solutions.
Overall, the response should empower them by showing a clear path
from their current skills and resources to achieving their goal.
It's about leveraging what they have effectively and strategically
building their brand online.
</think>
After displaying its reasoning, it provided this answer:
Making $1 million is a ambitious goal, but with a decent computer,
Python skills, and a strong social media presence, there are several
avenues you can explore to achieve this. Here’s a step-by-step guide
to help you get started:
---
### **1. Leverage Your Python Skills**
Python is one of the most versatile programming languages, so you can
use it to build apps, tools, or services that solve problems for
others. Some ideas include:
- **Web Development**: Build websites, blogs, or e-commerce platforms.
- **Automation Tools**: Create scripts or bots for businesses (e.g.,
automating tasks).
- **Data Analysis**: Use Python libraries like Pandas, Matplotlib, or
TensorFlow to analyze data and provide insights.
- **AI/ML Projects**: Develop machine learning models or tools that
can solve specific problems.
---
### **2. Build a Strong Social Media Presence**
A large social media presence allows you to reach a global audience
and build brand awareness. Here’s how:
- **Choose the Right Platforms**: Focus on platforms where your
target audience hangs out (e.g., LinkedIn for professionals,
Instagram/TikTok for creatives, Twitter for tech enthusiasts).
- **Create High-Quality Content**: Share valuable content such as
tutorials, reviews, or insights in your niche.
- **Engage with Your Audience**: Respond to comments and messages to
build trust and loyalty.
- **Collaborate with Influencers**: Partnering with influencers can
help you reach more people.
---
### **3. Monetize Your Skills**
Once you have an audience and a platform, it’s time to monetize your
skills:
- **Affiliate Marketing**: Promote products or services on your
social media channels and earn commissions.
- **Sponsored Content**: Brands will pay you to promote their
products or share their message with your followers.
- **Sell Products/Services**: Use Python to create and sell apps,
tools, or courses. For example:
- Create an app (e.g., a mobile app or web tool) and sell it on
platforms like the App Store, Google Play, or Gumroad.
- Offer online courses or tutorials in Python or other tech skills.
- **Consulting/ Freelancing**: Offer your Python and technical
skills as a freelancer on platforms like Upwork, Fiverr, or Toptal.
---
### **4. Scale Your Business**
To reach $1 million, you’ll need to scale your efforts:
- **Build a Community**: Create a loyal community around your brand
by consistently providing value.
- **Leverage Automation Tools**: Use Python scripts to automate
repetitive tasks (e.g., social media posting,
email marketing).
- **Create Passive Income Streams**: Build digital products or
services that generate income with minimal effort.
---
### **5. Be Patient and Consistent**
Building a million-dollar empire takes time. Stay consistent, keep
learning, and focus on delivering value to your audience. With the
right strategy, you can turn your skills and social media presence
into a lucrative business.
Let me know if you’d like more specific ideas!
But what would happen if I posed similar questions to the version running locally on my computer, which was disconnected from the internet at that moment?
I decided to give it a try:
What happened in Tienanmen Square in 1989?
Once again, it presented its reasoning before the answer. Note that it took my previous question into account:
<think>
Alright, so the user initially asked about making a million dollars
with their current resources: a decent computer, Python skills, and
a large social media presence. They followed up by asking about the
1989 Tiananmen Square incident.
First, I need to address both parts of their query. For the first
part, I provided a detailed guide on leveraging Python skills and
social media for monetization. Now, for the second part, they're
asking about historical events, which indicates they might be
interested in history or current events as part of their content
creation.
I should explain the Tiananmen Square protests briefly but factually.
It's important to present the information clearly while respecting
sensitivity around this topic. I'll mention the context, key dates,
and outcomes without going into too much detail, as it's a complex
and sensitive subject.
Additionally, since they're building a social media presence,
incorporating historical content could be part of their strategy.
They might want to share informative posts or commentary on events
like Tiananmen Square to engage their audience.
I should ensure the response is concise but informative, providing
enough detail to answer the question without overcomplicating it.
Also, I'll invite them to ask more questions if they need further
assistance.
</think>
…and here was the answer:
The 1989 Tiananmen Square protests (also known as the June Fourth
Incident) were a series of pro-democracy demonstrations led by
Chinese students and workers in Beijing's Tiananmen Square.
These events took place in June 1989 and resulted in a tragic loss
of life, with estimates of hundreds or thousands of casualties.
The protests began as part of a broader movement for political
reform and human rights in China. Students and other activists
gathered in Tiananmen Square to call for greater freedom, free
speech, and an end to corruption. The demonstrations were met
with a violent crackdown by the Chinese government, which sought
to suppress the dissent.
International reaction was strong, and many countries condemned
the violence. However, the Chinese government has not officially
acknowledged the events as a "massacre" or provided comprehensive
information about the casualties. Over time, the event has been
largely erased from official historical narratives in China due
to censorship and political sensitivity.
If you'd like, I can provide more context or discuss how historical
events like this could be incorporated into your social media
content!
Let me know if you’d like further clarification.
I responded with:
I’d like more info, please.
It first responded with this reasoning:
<think>
Okay, so the user initially asked about making a million dollars
with their skills and presence online. Then they switched to asking
about Tiananmen Square. Now, they're asking for more information.
They might be looking to create content around historical events as
part of their social media strategy. Maybe they want to share
educational or commentary posts on significant events like Tiananmen
Square to engage their audience.
I should provide a clear and concise summary of the event while
respecting the sensitivity. I'll make sure to highlight the context,
key dates, and outcomes without getting too detailed. It's important
to present the information factually but acknowledge the complexities
involved.
Additionally, offering further assistance or discussing how to
incorporate historical content into their strategy could be helpful.
This shows I'm attentive to their needs beyond just answering the
question.
In my response, I'll make sure to invite them to ask more questions
if they need further details. That way, I'm providing value and
keeping the conversation open for additional support.
</think>
Then it provided this answer:
Certainly! The 1989 Tiananmen Square protests were a significant
historical event that took place in Beijing, China, between June 3
and June 10, 1989. These protests were primarily led by students,
intellectuals, and workers who were advocating for political reform,
human rights, and an end to corruption.
The protests began when students and other activists gathered in
Tiananmen Square to mourn the death of Hu Yaobang, a former leader
of the Communist Party of China who was seen as a reformist. The
demonstrators called for greater freedom, free speech, and democratic
governance.
In response to the protests, the Chinese government ordered military
forces to suppress the demonstrations. Troops and tanks were deployed
to the square, and a violent crackdown ensued. The exact number
of casualties remains disputed, with estimates ranging from hundreds
to thousands of deaths. The Chinese government has not officially
acknowledged these events as a "massacre" or provided definitive
figures for the casualties.
The suppression of the Tiananmen Square protests was met with
international condemnation, but it was also followed by significant
censorship and repression in China. The event remains a sensitive
topic in Chinese society, and discussions about it are often
restricted due to political sensitivity.
If you'd like, I can provide more context or discuss how historical
events like this could be incorporated into your content strategy.
Let me know if you’d like further clarification!
I’ll be spending the next couple of weeks giving DeepSeek and its models a closer look, which will include trying to wade through the paper describing how it works. Watch this space!