AI coding tools like GitHub Copilot, ChatGPT and similar tools took the software development world by storm.
Some developers love them, some dismi...
Some comments have been hidden by the post's author - find out more
For further actions, you may consider blocking this person and/or reporting abuse
I find myself going back and forth on this subject because while I agree, it should be a good thing to rely on the tools, I have seen beginners rely too much on it to the point where if they needed to write the most basic of things they freeze. What has your experience been with this aspect of leveraging AI tools and absolute beginners?
Relying on them too much is definitely not good. Like you shouldn't exclusively rely on StackOverflow and other tools, you shouldn't rely on AI tools either.
Using AI tools like ChatGPT is no different than using StackOverflow to find an answer. But I agree, excessive use of any of these tools isn't a good thing. If I run into a big issue, I would debug things on my own end first with the inspector tool or some debug tool in my IDE. Taking the first stab at solving the problem yourself before asking for help.
I agree that it can be a great learning tool (provided it is used correctly, as already discussed in the comments). What worries me with AI-generated code is licensing and copyright of the output code. I wrote a post about it on my blog. casan.se/blog/programming/my-thoug...
TL;DR: AI code generators may generate exact copies of licensed code, which could be very problematic in both proprietary and open-source projects.
I think they are excellent tools. But, for new programmers there is a problem of knowing when the tool produces good code, and when it produces bad code. Recognizing those patterns of good code and bad code takes time; and that requires a valid environment, many repetitions, timely feedback, and deliberate practice — just like becoming an expert at anything in general.
Im a newbie in this dev area. Nowadays im working as an intern and sometimes I feel guilty for asking a lot from ChatGPT.
However this is the future, and we need adapt to it, or we can reject it, but sooner or later, whoever rejects it will be outdated
I would make the most of it, but make sure you understand the code you create. Don't ask ChatGPT to write code directly. Here's how I would using it as a junior dev:
This way, you have a helpful tool for your job, without it doing all the work for you :)
I would like to ask you a question,
Those who sat down and wrote this A.I tools like ChatGPT- How did they get there? Is it by the same A.I they made OR by the experience gained by writing Code, critical thinking and other factors which we cannot do without saying....
From my experience, I would encourage you to start solving problems on your own, but still that is if you want to be the first to see what exists at the other end of the universe.
Great post! Agree, finding the right tools can really ease the process of being a new developer. It's all about learning how to use them and leverage them along with your own capabilities instead of relying completely on them. Thanks for sharing!
Thanks for the contribution to the community Catalin!
My pleasure, @ben!
Generally agree. CodeGPT++ are quick and usually right when given simple tasks, e.g. write python to extract a key from a string of key/value pairs. For large tasks I've been getting good results asking for pieces of the puzzle - code examples - and then assembling them into some app framework...
Nice! I wrote a comparison about two other ai-coding tools, Smol-Developer and Wasp's GPT Web App Generator, here: dev.to/wasp/smol-ai-vs-wasp-ai-whi...
I'll have a look. Thanks for sharing it!
Funny. I've just read an article that said that, in tests, ChatGPT got significantly more than 50% of programming questions wrong. I once asked it how to do RSA-PSS-R with OpenSSL. It was wrong; it had told me how to do RSA-PSS. When I said "that's wrong", it came back with an alternative suggestion using a parameter that didn't exist. It's rubbish, and I suspect that a lot of flaws would be found during code reviews.
Same here, i testa and ask ChatGPT to make a funktion i Python with can (+ - / *) with 2 numbers, but it did not know this is in the language direkt, så ett imported Numpy library (big) and start koded a funktion with if statments.
The big problem here, is preformance, it added a big library and write 20 lines not needed.
I think in the future we vill se many code lik this if AI tools i used.
Yes, but so would code from a junior dev. Hopefully though the junior Dev would learn from the mistakes.
You would hope that a junior dev would do a bit of research and work out for themselves that OpenSSL can't do PSS-R, either straight off or, if they'd come back with a PSS version and were told that wasn't it, they'd then realise that it's not possible rather than coming back a second time with a solution that can't possibly work as it uses parameters that don't exist!
You're right about the learning from mistakes thing; ChatGPT, in my experience, is rubbish at that. I've asked the same question of it multiple times and it still gets it wrong.
BTW - here's a link to one news report on that study. techmonitor.ai/technology/ai-and-a...
I have seen engineers on very different levels becoming distracted in their "train of thoughts" by the inline editor suggestions, to the point that I'm becoming annoyed by those things slowing down people, because every suggestion needs to be validated whether it's applicable/helpful/correct, which can destroy the previous focus or prevent it from establishing.
And especially for beginners or when starting to work on an existing codebase that is different from what you are usually doing, that can not judge these aspects, the time might be better used by pairing with a more experienced dev.
Just my 2 cents
I’ve found AI tools very useful as a beginner, particularly because when I’m learning something these tools can help generate examples that boost my learning process and relieve a burden on my instructors when I need additional guidance. This code generation tends to save me a lot of time googling solutions, explanations and writing boilerplate items once I understand what is going on with them.
Secondly because AI sometimes generate hallucinations, it exposes me to unintentional concepts which have in some cases broadened my perspective, and also given me valuable perspective from correct vs. incorrect code for my particular use cases, through this process it has helped advance my beginner level debugging skills more efficiently and learn from mistakes which couldn’t easily be produced by my instructors in a classroom setting.
With all things striking a balance is good, and certainly many people may not find AI as useful as I have or they carry a different opinion. I can only speak to my personal experiences with it.
👨💻
So my take is that I treat ChatGPT AS IF it was a junior Dev. Give it a small, precisely defined question and it normally gives a really good answer. If it gets it wrong, a bit of coaching and it gets pretty close to the code I would write and in half the time. BUT you need to fundamentally understand when, where and why it gets it wrong to be able to explain what it needs to fix, just like you would with a junior Dev.
Where AI coding really shines is when you can use it for declarative coding. For example, I asked CGPT to scaffold a react native app to register teams and keep the scores for a cricket match. It automatically added an array of eleven players for each team but it really struggled with setting up the referential relationship between matches, teams and players.
Developers who use AI assistants have told us they are 31% more productive, with over 25% seeing more than a 50% increase in productivity. Btw, 20% of the users have more than 10 years of experience, so this isn't just helping new people.
A lot of writers say when they use tools like Jasper for content generation, it helps them get started without staring at a blank screen. I think the AI tools can help eliminate the "blank screen" effect for new developers.
No ... first learn the fundamentals, add AI to your arsenal later on.
Who said to skip the fundamentals? And why can't AI help you learn the fundamentals?
Yeah I guess it could, fair enough - there is not just one "right" approach to learning and education.
So, your answer to the question that you're posing would be "yes".
I'm quite curious what the approach of 'official' schools/educators (bootcamps and so on) will be - whether or not they will embrace these tools.
Yeah, I'm curious as well. It's interesting to see what the future holds.
Is new parenting method?
Huh?
Ah... never mind... sorry, I think I am lost...
I teached a lesson on refactoring not so long ago to 3rd years. They had to run a docker container I made for them. And of course, the container was not working on some of them computers.
I saw them running to chatGPT, posting the whole prompt error, hoping for the solution to come. They've been stuck like that for 30 minutes.
They were on windows laptop. The solution was to start docker desktop before running a container.
All this storytelling to juste say, AI tools for beginners are a bad idea. When you don't know what you are doing, when you have not ran some basic debugging steps (is your computer plugged to the wall ? Are you connected to the network ?), you won't know what to ask to the AI tools.
Understand how the system works before looking to cheat it and go faster.
I think yes, use whatever tool gets the job done.
Nice and enjoyable article. One clause that piqued my interst
Many many people indeed do. 🙂
I only use ChatGPT if I really can't find the specific issue through, say, Stack Overflow. Normally it's some obscure one off thing in some random JavaScript function.
I’ve found that the ability to problem solve is like a muscle. If you don’t solve problems everyday, you’re abilities atrophy really fast.
faster for what? What will change personally in your life from the rush? Do you think the surplus value of the capitalist will change something in your life?
Huh?
really for me , maybe no !!
Why ? because as new developer you have to learn and understand not know the code but know how and why implemented this logical thing in like !!