The worst coder in the world tries an AI sidekick
The grand irony of my role here at Stack Overflow is that I work to create great content for developers, but am absolutely hopeless when it comes to programming on my own. Over my four years here, I’ve gained a pretty good understanding of software at the macro level. I can have an intelligent discussion about the value of microservices vs monoliths, strongly typed languages, cloud vs on-prem, or large language models. But asking me to whip up a simple CRUD app is a recipe for disappointment.
[Note to readers: before leaving a comment about someone with no skills wasting your time, refer back to the title and remember that you can’t insult a person who has already completed a perfect self-own.]
Anyway, over the last month, I decided to try diving back in, inspired by a steady stream of posts I saw on social media that showed people writing natural language instructions that today’s AI assistants can transform into working code. Maybe, I thought, my basic understanding of how a web app gets built will allow me to engineer the right prompts, and the AI can handle writing and debugging the actual code.
The app I had in mind is fairly simple: people can list let others know when they are going to be at the local dog park. After some discussion, I found that this is a basic CRUD app:
- Create: a web form where users can input the name of their dog and the time they plan to arrive at the park.
- Read: Other users can see who is planning to visit and what time they’ll be there.
- Update: I’m not even trying to get this fancy! Also, no take-backsies!
- Delete: At the end of each day, the database deletes all entries so the slate is blank for the following morning.
Normally, to get started, I would brush up on my paltry HTML skills and prepare a sacrifice to the JavaScript gods, but, in 2023, I can just ask an AI:
I want to build a single page web app that will allow users to submit their name, their dog's name, and the time they intend to visit the local dog park. After users submit this information, it is displayed for anyone who visits the page. I need front end code and a database on the backend that can store state. First - Please explain how you would create this app using pseudo-code examples. Second - write the code for this app and share it as a single code snippet. First, let me outline the general structure and pseudo-code for the app. Frontend (HTML, CSS, JavaScript) a. Create an HTML form for user input (user's name, dog's name, and intended visit time) b. Style the form using CSS c. Add JavaScript to handle form submission and send data to the backend API Backend (Node.js with Express and a database like MongoDB) a. Set up a Node.js server with Express b. Create API endpoints to handle data submission and retrieval c. Connect to a MongoDB database to store and fetch the submitted data Connect frontend and backend a. Use JavaScript to send data from the frontend to the backend API b. Display the fetched data on the frontend
Ok, let’s drop the code it generated into my WordPress CMS just to take a peek and…by George, it works.
<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dog Park App</title>
<style>
/* Add your CSS styles here */
</style>
</head>
<body>
<h1>Dog Park App</h1>
<form id="dog-park-form">
<input type="text" id="userName" placeholder="Your name" required>
<input type="text" id="dogName" placeholder="Dog's name" required>
<input type="time" id="visitTime" required>
<button type="submit">Submit</button>
</form>
<ul id="visitors-list"></ul>
<script>
// Add your JavaScript code here
</script>
</body>
</html>
Looks a little janky, though. Let’s clean things up.
Edit the code above so that the three text fields are centered on the page and there are three line breaks between the name and time fields.
And just like that, the changes are made. I’ll spare you that code snippet as it’s largely the same.
Looks better, but it’s still missing something. I know!
Modify the code above so that an ASCII image of a dog appears over the text fields for name and time. The ASCII image of the dog is centered on the page.
<!DOCTYPE html>
<html>
<head>
<title>My Webpage</title>
<script>
// This function clears the text area every 24 hours at midnight
function clearText() {
var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();
var seconds = currentTime.getSeconds();
if (hours == 0 && minutes == 0 && seconds == 0) {
document.getElementById("output").value = "";
}
}
</script>
<style>
/* This style centers the text fields and the dog image on the page */
.container {
display: flex;
flex-direction: column;
align-items: center;
}
input[type="text"], textarea {
display: block;
margin: 0 auto;
}
.ascii-dog {
font-size: 50px;
text-align: center;
margin-bottom: 50px;
}
</style>
</head>
<body onload="setInterval('clearText()', 1000);">
<div class="s-code-block container">
<div class="s-code-block ascii-dog">
<pre>
__ _
o'')}____//
\"''''''''\\
\ \
)________\
|_|_|_|_|_|
</pre>
</div>
<label for="name">Name:</label><br>
<input type="text" id="name"><br><br><br>
<label for="time">Time:</label><br>
<input type="text" id="time"><br><br><br>
<button onclick="displayText()">Submit</button><br>
<label for="output">Output:</label><br>
<textarea id="output" rows="5" cols="50" readonly></textarea>
</div>
<script>
// This function displays the text from the input fields in the output area
function displayText() {
var name = document.getElementById("name").value;
var time = document.getElementById("time").value;
var output = document.getElementById("output");
output.value += name + " - " + time + "\n";
}
</script>
</body>
</html>
How sweet it is. This is what mean when they say AI is a tool to unlock human creativity and potential, not to replace us.
So far so good, but the input doesn’t persist. I need some kind of backend to record my state.
I want to add a database to the code above so that I can store the state of the output and display all text submitted to users on the client side. I want the database to contain two rows, one for "name" and one for "time". When users submit a "name" and "time" the database stores this state and it's displayed in the output section. The database clears these rows once a day at midnight Eastern time.
A few seconds later the AI spits back a code block that uses jQuery and PHP with a MySQL database. For a hopeless programmer like me, it’s fascinating to see that I’ve now got access to building blocks in multiple languages. I can’t even master one on my own!
That said, the AI can’t solve the issue of ME being an intractable vortex of bugs and errors, attracting obstacles to functioning code like a magnet picks up nails. I go through the process of setting up an AWS account and following the online tutorial for creating a MySQL database, but can’t actually get it to connect to the workbench.
The AI tries to be kind. I ask it to rewrite the code for a NoSQL database and it helpfully switches from PHP to Node.JS without missing a beat. I spin up a MongoDB Atlas cluster, but am lost again in a sea of error messages.
Eventually I try a clean slate. I start a new dialog with the AI and ask it to create a simple app that will work with Firebase. I’ve learned a few things from my first two attempts, so I understand a little better how the pieces are supposed to fit together. It’s easier for me to work in the terminal and to have a clean file and folder structure. At 9:30pm on a random Tuesday, I’ve got a functioning CRUD app—input your info about your next visit to the dog park, refresh the page and there it is for the world to see.
You can accuse me of talking my book, but in all honesty, there were some things the AI simply couldn’t solve for. It insisted I needed the code below:
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src=“https://www.gstatic.com/firebasejs/9.6.8/firebase-app.js”></script>
<!-- Add Firestore (database) -->
<script src=“https://www.gstatic.com/firebasejs/9.6.8/firebase-firestore.js”></script>
But it didn’t connect that to an error I kept getting:
Uncaught SyntaxError: Unexpected token 'export'
A quick web search and I found the following question and answer pair. Do I understand why deleting that code fixed the issue? Of course not. But it let me get closer to a working solution. (Ed. note – removing this code fixed the error, but caused an issue with the window refreshing when a user clicked the submit button. I later added it back in, and got refresh working, and didn’t encounter the error a second time.)
The AI also had a bunch of ideas about how to solve for this one:
Uncaught SyntaxError: Cannot use import statement outside a module
I tried three or four of its solutions, but we got nowhere. But the web had what I needed. I fed the context of the answer back in and voila, a working web app.
Index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Palatine Bark Play Scheduler</title>
<style>
* {
box-sizing: border-box;
}
.banner {
background-color: #4CAF50;
color: white;
text-align: center;
padding: 1rem;
margin-bottom: 1rem;
}
.container {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
}
form {
display: flex;
flex-direction: column;
align-items: center;
padding: 1rem;
width: 50%;
}
.data-section {
width: 50%;
display: flex;
flex-direction: column;
align-items: center;
}
.data-container {
width: 100%;
padding: 1rem;
text-align: center;
}
img {
max-width: 100%;
height: auto;
margin: 2rem 0;
}
/* Media query for smaller screens */
@media screen and (max-width: 767px) {
form, .data-section {
width: 100%;
}
}
</style>
</head>
<body>
<div class="s-code-block banner">
<h1>Palatine Bark Play Scheduler</h1>
</div>
<div class="s-code-block container">
<form id="data-form">
<label for="name">Your Name:</label>
<input type="text" id="name" required>
<label for="dog-name">Your Dog's Name:</label>
<input type="text" id="dog-name" required>
<label for="time">Time:</label>
<input type="time" id="time" required>
<button type="submit">Submit</button>
<img src="https://firebasestorage.googleapis.com/v0/b/palatine-bark.appspot.com/o/good%20boy.png?alt=media&token=XXXXXXXX" alt="Good Boi" />
</form>
<div class="s-code-block data-section">
<h2>Today's Data</h2>
<div class="s-code-block data-container">
<div id="data-display"></div>
</div>
</div>
</div>
<!-- Firebase App (the core Firebase SDK) -->
<script src="https://www.gstatic.com/firebasejs/9.6.8/firebase-app-compat.js"></script>
<!-- Firebase Firestore -->
<script src="https://www.gstatic.com/firebasejs/9.6.8/firebase-firestore-compat.js"></script>
<!-- Your custom JavaScript file -->
<script type="module" src="app.js"></script>
</body>
</html>
App.js:
// Initialize Firebase
const firebaseConfig = {
apiKey: "MYAPIKey",
authDomain: "coolest-dogpark-scheduler.firebase.com",
projectId: "Bens Awesome Project Goes Here",
storageBucket: "Ben's Bucket",
messagingSenderId: "NUMBERS",
appId: "LOTTA CHARACTERS"
};
// Initialize Firestore (Database)
const app = firebase.initializeApp(firebaseConfig);
const db = firebase.firestore(app);
// Form and data display
const form = document.getElementById('data-form');
const dataDisplay = document.getElementById('data-display');
// Handle form submission
form.addEventListener('submit', async (event) => {
event.preventDefault();
const name = document.getElementById('name').value;
const dogName = document.getElementById('dog-name').value;
const time = document.getElementById('time').value;
const timestamp = firebase.firestore.Timestamp.now();
await db.collection('data').add({ name, dogName, time, timestamp });
// Clear form
form.reset();
location.reload();
});
// Fetch data and display
async function fetchData() {
const today = new Date();
today.setHours(0, 0, 0, 0);
const querySnapshot = await db.collection('data')
.where('timestamp', '>=', firebase.firestore.Timestamp.fromDate(today))
.get();
dataDisplay.innerHTML = '';
querySnapshot.forEach(doc => {
const data = doc.data();
dataDisplay.innerHTML += `<p>${data.name} - ${data.dogName} - ${data.time}</p>`;
});
}
// Call fetchData() initially and whenever the form is submitted
fetchData();
form.addEventListener('submit', fetchData);
Lots of folks are making claims about AI replacing programmers, but for the time being, the effect on my usage was the opposite. The AI was the inspiration to try coding again; it was a springboard that got me going and handled some basics. But it wasn’t enough to get me to the finish line on its own. When things started to get tricky, I was pinging colleagues in chat for help, or searching up error messages and sifting through answers from Stack Overflow, technical documentation, and blog tutorials.
What do you call something that can string together complex concepts and provide useful answers to questions about everything from history to poetry to programming? A friend of mine suggested “thought calculator” and I’ve fallen in love with this phrase. It perfectly captures this new technology’s power, and its limitations.
The AI isn’t sentient or autonomous, as far as we know, but it has a form of intelligence which you can leverage as a tool. Coding is one of its best applications, because it uses textual instructions to produce an objective output. We can argue forever about the quality of an AI’s marketing copy or literary essay, but with programming, setting aside for a moment the important question of code quality, we can test to see if it produces the desired result.
As our CEO announced last week, we’re thinking about ways we can use the power of generative AI to continue building a knowledge community that is open and accessible to all. Some folks protested that it would be wrong for us to train AI on Stack Overflow data, but the reality is lots of people are already doing that. We could sit around and do nothing while other organizations ingest the web into an algorithmic black box, or we could try to build a system where human input is still recognized and rewarded, where the output created by the collaboration of a human and their thought calculator is something everyone can then leverage and learn from.
We are all in the process of figuring out how to use these new tools in a safe and ethical manner. We would love to hear from the community about how you’re approaching the issue. If you’ve been experimenting with AI to help you write code, let us know what you think in the comments. I’ll try to be back in a week or two with an update, once my army of autonomous agents completes my plan for world domination.
Tags: ai, generative AI, worst coder in the world
45 Comments
I now use AI to solve my problems. I am not a professional coder, I just need polite explanations which I get with AI. It’s a big improvement from the big ego power trip lecturers I always find at SO. It maybe true that now the code isn’t perfect but unlike those rude coders it will improve fast and will always be polite.
Hey – glad it’s inspiring you to try coding and helping you get things done. Good luck with your learning journey!
They are passionate about what they do and speak candidly which is why they do not “seem nice”.
Anything of value is done by people like that. The soft-spoken tend to be politicians and theatricians, as presentation is their craft, which is not something you want advice from when creating systems.
Unlike those “rude coders”, AI and nice instructors will always be at least one step away from the actual value. If the only explanation one accepts must be covered in honey instead of pragmatic value, then there may be other issues in their diet.
You are making a lot of baseless and/or demonstrably false blanket statements about people you do not know to argue with someone you also do not know.
Don’t do that.
@Thomas Perhaps if one lacks reading comprehension it will seem as baseless, it’s pretty clear OP prefers “polite” over “correct” and the comment addresses this *demonstrably* incorrect thinking: Politeness has nothing to do with correctness, and preferring one *technical* answer to another based on word palette is flawed, what will result from the exchange is most likely flawed as well. I do not need to have spent time with OP during recess in kindergarten to point this out logically.
Additionally, “beating around the bush”, being indirect and unemotional over issues does show lack of passion, something skilled people often do not share. There is nothing alien about this, if one is in the industry and a human being I do not need to give out names or any citations to elucidate what I’m talking about.
You’re a fool, cut and dry; this is demonstrated by two assertions you make; one of which cannot be validated, and the other which is indicative of hypocrisy or lack of self awareness.
1) “They are passionate about what they do and speak candidly which is why they do not “seem nice”.
Anything of value is done by people like that.”
Try to prove this, you can’t. You are a fool
2) “if one lacks reading comprehension it will seem as baseless, it’s pretty clear OP prefers “polite” over “correct” and the comment addresses this *demonstrably* incorrect thinking: Politeness has nothing to do with correctness, and preferring one *technical* answer to another based on word palette is flawed, what will result from the exchange is most likely flawed as well”
You have demonstrated incorrect thinking by failing to come to the conclusion that what results from and impolite exchange will likely be as flawed as otherwise. If someone with a distinct lack of communication skills, such as a fool like you, were to address someone in a non-constructive manner; it matters little how technically savvy they are or how sound their advice.
@Sans Aesthetic 15 May 23 at 7:08
Let’s first celebrate on reaching the SO comment chain limit, this is an achievement in funpost dialogue.
Sometimes people have all the time in the world to cook a response and this is what one delivers; something buried under insults. Therefore, it requires further distillation and effort on the receiver to see whether the message is indeed correct and have substantial to add or if it is both incorrect and rude (this is a valid state for a message). The reader must be truly interested in order to distill it, otherwise it is merely “window shopping”.
On the topic, dropping insults followed by hollow statements prove nothing other than one is passionate for whatever reason. There is irony because this response has by far been the rudest one; the irony lies in the fact that I still take it seriously despite so; my hypothesis is that you being rude or not has no implication in you being right or wrong. The existence of my response thereby deletes point 2), otherwise my silence would imply such message has no merit in correctness by being rude.
Furthermore, and unfortunately, it seems the retort for 1) is also wrong after being distilled. I’m not here to lecture anyone on human virtue; those who seek good through passion for the good itself are what lead us technically and that is a first principle in this field, hence Thomas being incorrect. All I can offer are examples you can find, rather than “proofs”: Tech Contributors such Linus Torvalds, Richard Stallman, were particularly caustic in their time but that did not make their knowledge and contributions flawed because of so. These people however, are not good political leaders, hence their effective castration by the contemporary open source communities; despite those two being responsible for getting most of these people their jobs. Anedoctally, autistic engineers who are apt in their field but have trouble applying “normal person tact filters” to their communication style may merely *seem* rude to the average neurotypical, who refer to such individuals as “cold and arrogant”.
All in all, coming up with polite, indirect, self-monitored responses take time, effort, social skill, AND the aptitude; hence yours has been the worst reply thus far; it is both wrong and rude, showing it lacks in all these, but at least it exists to challenge something that may not have bee clear enough. Of course, lacking these things this does not make one a bad person, just makes a bad politician, and a bad reader. Many such still live happy lives.
I can see how AI can inspire but I would rather AI assisted then created from scratch. Cause if you don’t understand the code your not going to understand how to fix something on the fly when crap hits the fan. As for being polite, I cried when my first animation assignment in college was torn apart but after that I learned to enjoy constructive criticism. Now I hate when people are coy about critics because you don’t get value from them. Value comes from the guy that flat out tells you “you screwed up, here’s why, and this is how you properly do it in the future. “ Life’s a hard road less traveled by the weak.
I don’t know what Rick meant, but if I wrote that comment I know what I’d have meant. “Rude” does not mean “those who use rude words”. “Rude” means that there are loads of coders that instead of helping others come to establish their own self-esteem (or maybe to quickly gain some rating, I don’t know). Most of the time they don’t read the question in full, hurrying to reply something.
An example from my experience. One of my jobs was to write software for an android-based robot. It was of course one-purpose-device with AOSP without any google services installed on a custom board. I can not count how many times I was adviced to “download a ROM for your phone” and “use google play store instead of creating your own update system”. Which means those “passionate professionals” did not even read what was asked, so highly they value their “professional” opinion.
And then there is another plague… Answering with questions. Or, in other words, thinking of themselves SO high, that they become some sort of “teachers” or “gurus” in their own eyes, giving themselves right to poke their nose where no one asked to. From the same situation with a robot: countless times I asked something like “how to connect to bluetooth device without an android dialog poping out” or “how to silently install apk without closing all apps, going to android settings and giving all the permissions from there”. And countless times I’ve received answers like: “Why on earth would you want that? It is impossible. Hackers would be able to do all sorts of malicious things with that. Users must decide on their own where to connect, why you want to decide it for them?”. So, you see the picture. What “hackers”? What “users”? What “malicious software”? Have I asked something like that? Is it relevant even in slightest?
And, of course, all of it turned out to be possible. And I’ve found how to do it NOT on StackOverflow. And general impression that I’ve got is that StackOverflow is crowded with “developers” with less knowledge than AI, but with unbearable attitude. That is what “rude” is. Or, answering in their tone, “Read any book on children pedagogics, which you clearly haven’t. Any of those will straight away tell you that good attitude and patience are crucial, and without them children literally gain knowledge much, much worse. It’s basic psychology”.
Telling people to “read any book on teaching children” in order to ground this adult communication topic is not likely to take anyone very far rhetorically.
The rudeness I’m acquainted with, and that I was referring to, would be to simply tell people to “RTFM”; which in the robot example is what one should do instead of referring to strangers that owe nothing to nobody as reference for their professional work. There’s also magical irony in being befuddled when having to explain oneself for answers after asking niche questions (that again, nobody is owing them).
Even more magically, getting cookie cutter responses about a particular technology stack that won’t apply for very particular use cases, is precisely what AI is going to be doing. But, they will at least do it in a nice way. Isn’t it?
Ultimately AI will also be barred from explaining specifics to people, as it already is about certain topics. I know my Janitor does not answer questions on how to do specific things with our elevators, because he knows that people, specially those that sound like children, are more likely to hurt themselves with the knowledge than they are to do good.
I’ve started doing similar stuff with ChatGPT. It can quickly create code for macros in Word. However, it sometimes gives advice for features that already exsist inherently.
What are your thoughts on using AI to learn Python or C++ ?
I did a very similar thing with gpt-3.5-turbo. On my own, I made a sqlite3 database of my personal journal and decided I wanted to structure it like a blog. I asked the AI to create an API using Flask, which it wrote completely in less than a minute. Then I asked it to use Jinja templates and html to create a frontend. Again, less than a minute and it was done. But it only worked because I gave it a detailed prompt, telling it exactly which tools I wanted it to use, and what I wanted the finished product to look like. The code I received from the AI still needed a little tweaking but it was easy and it taught me a lot. Amazing! I am only a hobbyist who learned a little programming from Real Python and Stack Overflow.
Will it always be polite though? {smiling nervously)
You’re missing a lot of code in this article, so it’s very confusing. For instance, the following lines:
> And just like that: Sure, here’s the updated code with the changes you requested:
> Looks better, but it’s still missing something. I know!
We felt like it was just a bit too much to stick a lot of huge code blocks in the piece. If you want to check it out, let me know and I’ll make a pastebin.
I agree that it’s a lot, and would make the article extremely long. But considering you keep referencing the code and not showing it, it makes the article extremely confusing for both programmers and non-programmers alike. Either pastebin it (which would probably still make things confusing, since it’s not in-line!), or show relevant sections.
If this were an actual question SO, I’d link you to https://stackoverflow.com/help/minimal-reproducible-example !
Ok – added a bit of the code from the earlier section, let me know if that helps 🙂
The two long code snippets at the end are what I used to make the final app work, so feel free to see if you can reproduce it as your own firebase app 🙂
Your story is like someone who told a compute to paint a pastoral scene. Ok computer, now add a couple of people having lunch in the meadow. And this was your inspiration to try painting again.
Rubbish. You didn’t “try coding”. You didn’t code anything. Pick up a paint brush and paint something and eventually you will get better. Same goes for coding Ben. It takes time and patience. Maybe that’s not your cup of tea? That’s ok! The world does not need more people diving into things their not really interested in investing time to learn just because an AI makes it easy to feel like they accomplished something.
I only see bad things coming from this. Like all those Chinese animators losing their jobs.
As the world’s worst coder, I accept your criticism with gusto.
I agree, it wasn’t coding so much as prompting and stitching things together. Still, I feel like I actually learned a lot in the process, both about how code works, how to implement certain things in Javascript, how to work with a CLI in the terminal, and how to connect a front and back end.
Whether we like it or not, these tools are available, and getting more powerful at with astonishing speed. A lot of folks are going to use them to try building software, or for creating illustrations. Practitioners will have to adapt to this. Our goal is to keep humans and the knowledge of experts at the center, and to recognize the folks who provided the data that powers these systems.
He didn’t want to “code”, Billy. He wanted a list of dog walks. Do you see the difference here? (Specifically Ben maybe wanted to code, but he was writing an article, so it is an exception). The same as in your example, I would have wanted a painting of a pastoral scene to mount on the wall, not brushes and paint.
Why would anyone google things? It is not a real research. Go smell paper! Go to the central library and search in books and archives. Or even better, go and ask real people. In most cases, most people want a result, not to engage in some process. That is why we buy things in stores. Not all of us know how, want to or are able to graw vegetables, craft things from metal or wood, sew clothes etc.
Yes, basic scripting (not “high-profile programming”) is becoming a common thing. And it is long due to. Everyone will be happy if 60-years-old accountant will power up her spreadsheets with scripts written by AI, instead of NOT learning it herself and of course NOT hiring an overpriced coder to do it for her. It is a win-win situation.
Except for… you? If your top skill is to write what AI writes… Well, sad for you. Seventy years ago drivers were an elite profession, now everyone can drive a car and they even want to lower a minimal age. And in the future, cars will maybe drive themselves.
What I want to say is, if thousand chinese animators drawing some idiotic netflix series like [insert what you hate here] in inhuman conditions for half of yan will lose their jobs… I can only hope it will happen faster.
> …a system where human input is still recognized and rewarded, where the output created by the collaboration of a human and their thought calculator is something everyone can then leverage and learn from.
I really like that!
The collaborative potential between humans and our “thought calculators” is huge, and I hope that that becomes the consensus.
Also, you’re an excellent communicator, taking negative comments and flipping them on their heads. Nicely done!
Thanks! Hope you are enjoying your newfound thought calculator as well 🙂
Dear AI: I need to host that MySQL database somewhere. Please find some leaked AWS credentials and put the database on that account. Give me the connection string for it.
Careful now – in the end – you are likely to be liable for what your autonomous agent does at your command 😉
Liable for things like “The grand irony of … blah blah blah … world domination?”
Where are the fields for dog compatibility, ie; Dippy will kill Zippy,
and other people compatibility, ie; if I have to deal with that jerk, Ziller, Zippy’s owner I will lose it!
This is super interesting to read, and I am indeed someone who knows how to code (in many languages –including the ones in this post).
In the big picture, I think the primary problem with what the AI is telling you is that it isn’t giving you very good tools, and some of its actual code is whack. Not to mention there’s no understanding of writing tests here or a solid process.
It’s kind of just sloppily throwing different answers at you. Setting up MySQL on AWS yourself? That’s crazy — why not just use RDS instead?
“This function clears the text area every 24 hours at midnight” — who asked for that? Is that even something you want or need or is it just throwing this suggestion at you?
Switching between PHP and Node.js willy nilly? Seems like an irresponsible way to teach someone.
As far as code goes, I’d classify this style of coding a “Javascript soup” era of JS.
When you work within a pre-determined paradigm/framework — like Rails or NextJS— you’re not struggling with “basic” stuff like getting connections to work and scratching your head as to why the wires don’t connect.
So while it’s all very interesting, what I think the AI is failing at here is not providing answers– the answers are fine — it’s failing at providing you an good education.
A good educator would sit you down with a toolkit and say: “We’re gonna build this with X, Y, and Z and first take these steps to setup your environment and set yourself up for success” but instead the AI has just thrown a bunch of Javascript soup at you and said “here you put the pieces together.”
You’re honestly probably a perfectly competent coder you just don’t have the tools and environment to be successful. Sadly, this is an all-too-common theme in the industry now.
I asked it to clear the data every 24 hours so that the display listing the dogs coming to play at the park is refreshed each day.
Javascript Soup is definitely my coding style.
I could learn this kind of stuff on my own and then code without AI, but I’ve never been good at it. I’ve made the bet that I’m better off focusing on being a great writer and marketer than a decent novice coder.
The new wave of AI tools got me inspired to see what’s possible. It was a fun experience and if I continue, I’ll probably be adding more and more of my own knowledge and coding along the way.
I have 2 questions;
1. What is this AI that you used?
2. Do you think I could use it to make a professional site to display my “skills”?
I used GPT4 and yes, you could use it to make a professional website, although you would probably have an easier time building a nice looking website to simply display media (text, pictures, video, etc) using a service like WordPress or SquareSpace.
I have a premedical background but chose my bachelor’s program to be Cyber security. When i get programming assignments (in C language) i try to do them on my own but chat gpt helps me by introducing me to new features which will help make my code better, still the code it sometimes provide me has multiple errors which i have to correct on my own. So if you’re just copying from chat gpt then it won’t do you any good, but like the author said it can help you make your code better.
Thanks for sharing. I agree, it’s very nice if you work in a field where programming isn’t your main job, but adding that ability helps you level up or improve in your work.
The article raised two questions for me:
How much time have you spend to create this app?
How much prompts text you had to write vs result amount of code text?
The quality of code is arguable, so I am wondering if it is at least faster and less typing that direct coding 😉
I spent WAY too long creating this basic app. Even with an AI assistant, I’m not going to replace a good coder or a CS student anytime soon.
For me, it let me create something that previously was beyond my abilities. Would it have been faster to study Javascript or go through some Firebase tutorials and create the app on my own? Not sure.
Anecdotally, I see seasoned programmers writing pieces and sharing thoughts on social media saying they feel AI assistants can provide a major productivity boost. In those cases, it’s taking care of boring work they know how to do, but can just as easily solve in today’s world with a well constructed prompt to an AI system.
The problem is, it was not really a “basic” app. It was an app that performs a function that seems “basic” intuitively, like a simple painting of, say, sea waves can seem simple to a non-artist: it’s just water and sky, what is not simple about it?
In this case, app has client-server relations, which is not, of course, the most sophisticated programming issue, but in the “general area” of software it is by far the most complex field. The easiest would be something like “command-line tic-tac-toe”, which does not require any software installation and can be provided by a single code block. Add features like “save game state” or “field size choosing” and complexity will sky-rocket.
So we see that AI did not consider these things as it suggested Node.js and mongodb where you could simply use basic php to save data to a file: sqlite or even just text file (because you clean it everyday). Maybe you should have had some kind of conversation with it beforehand, where it could have explained all needed concepts (because IT courses usually spend weeks on databases and such).
I look forward to the day when AI replaces self-righteous journalists, screenwriters, directors, editors, actors, etc.
It will be refreshing to read articles and watch news broadcasts which don’t contain heaping helpings of condescension and implied moral superiority, in addition to mountains of misconceptions on subjects where the author clearly lacks any depth of knowledge. An AI will be capable of providing the facts in a news story without imposing its own self-importance into the content and won’t feel the need to omit facts, report inaccurate information as fact, or inject its own morality into the narrative of the story. How refreshing would the world be if the news we received wasn’t drowned in a journalist’s opinions and we were allowed to make up our own minds on a subject, because we were given complete and accurate information?
Movies/ TV Shows would also be created to be as entertaining as possible for the consumer, in order to appeal to the widest possible audience interested in the genre/subject, instead of being social engineering tools, designed primarily to force opinions of questionable morality down the throats of an unsuspecting public, in order to transform society into a pack of mindless drones to be used by the ruling elite.
Any bets on which job gets replaced first: coding or journalism?
lol coding is not even close to be replaced by AI … just try building a decent game with any engine..
Agree, coders are not going to be replaced anytime soon, especially not by me, even if I do have an AI helper.
I’ve seen a few examples of folks saying GPT-4 is capable of building games with the complexity of roughly Flappy Bird.
journalism cannot be replaced (at least in the U.S.) simply because it no longer exists. If you believe otherwise, you have successfully been deceived by the multi trillion dollar state-run new media industry that calls itself such to create the illusion of journalism.
It is really interesting reading some of the very strong reactions to this article. I suspect some of the reaction is born of fear. The AI’s (I’ve had Bing and ChatGPt write code for me) are clearly not up to the task of reliably writing production code yet, but what will they be like next year, in five years, or even in ten years? What the AIs have achieved is phenomenal, and this is only the early days, the initial pace of change will be fast. Will they replace coders? For sure, in some sense they will. But AIs will only ever be tools. Someone will always have to define the problem, craft a well written instruction, and then follow up with well crafted modification instructions. It will still be coding, but at a far higher level, and the language will be a human one.
From the coding aspect, the future is exciting, I hate how slowly I code, and AI programmers creating building blocks for me can only be a good thing. However from a societal aspect I’m not so sanguine. “The Realist” above says “It will be refreshing to read articles and watch news broadcasts which don’t contain heaping helpings of condescension and implied moral superiority”. I don’t think many AIs will deliver such pure, honest journalism, especially when large corporations are involved. It is possible the articles will be somewhat free from moral superiority or other human artefacts, however they will contain far more sinister content. Articles from financially motivated organisations will include instructions similar to “Please write all articles in a way that keeps the reader engaged in our content while also driving the reader to consider products that we are paid to promote. All such influencing must be done ins a subtle and undetectable way”. We have already seen this in how the feeds of multiple social media platforms use addictive content to keep people engaged to ensure ads get viewed. This sort of bad behaviour is not yet regulated, so will be rife in the early days, especially in cultures where money, or other drivers, are more important than human welfare. Until regulation catches up, AI behaviour is going to make life very interesting.
If you tried this application in the UK you’d be in all sorts of trouble – Google ‘dogging’ if you don’t know why…
I can’t imagine not being able to build that again. I also think the reason you can’t code is because you aren’t perseverant enough. Perseverance is code to programming.
Hi people, I have an interest time reading this article, thank you Ben for sharing your experiences and for your honesty, saying that I want to share my opinion as a profesional programmer (I started coding with Pascal 5.5 and MS-DOS 5.0 … yes you can ask! … the dinosaurs was alive too :p XD).
The new AI tools are amazing and but also has a lot of risks and make a lot easier that every body think that coding, design, test and all other steps used in the process of create an app or a SaaS or what ever you want “it’s very simple” because an AI can help you … this will guide you directly to a “Confirmation Bias” (more info in Humane technology center).
I’m not against the AI but right now there is a crazy race between the big techs to release the best AI, and they are doing an excellent job, but this is to risky to don’t stop to think about how this will reshape the society, for everyone who has more than 40 years old and don’t have a tech background will be a lot of uncertainty about work because a lot of repetitive jobs will be vanished just like that….yes a lot new will pop up but not every body will be able to make the jump.
The new AI are very useful to help people to research, because can process a lot more information than everyone of us in a fraction of the time but they don’t have the ability to think, to understand if is helping to someone to make a bomb, not even has the capacity of analyze an detect a bug in a code until you tells to look for it and if you are not very specific, the AI will find you one or two bugs and will ignore all the others in the same line, not to mention that nothing stop it to make damage to every body else, they don’t have the Three laws of Robotics, do you know what I mean?
Please this is only my opinion, I don’t try to be rude with anyone, but I saw (and I made programs on it) how the computer power raise from an Intel 80286 with one Core 25Mhz of clock, without a Math Co-processor, with only 640kb of ram and 40Mb of HDD to become the AMD Ryzen 5 with a lots pf Cores, 16Gb of Ram and 1TB of NVMe disk … now the technology and the skills needed for a simple Jr programmer are a lot more complex and he/she need a lot of extra hours of study and practice to get the minimum skills needed to get a basic job … the AI can help? …yes but can destroy to depend of who own it and what are the final goal.
Thank a lot for all the answers, was a very interesting reading.