Right, so it's been a minute since I last posted something.
Like many other companies this last year, we weren't spared layoffs. While I still hav...
For further actions, you may consider blocking this person and/or reporting abuse
Thanks for shedding some light on this. IMO AI is yet another tool. And how valuable a tool is, is determined by how we are using it. If your first impulse is to head over to ChatGPT and generate some boilerplate or just break your enter key by accepting all the suggestions by CoPilot (just kidding) of course it potentially leads to declining skills.
So it really comes down to finding the sweet spot between applying your own skills and using AI to do the job. Looks like you should lean more towards your own skills for a while.
Thanks @dasheck0. I totally agree, as with any tool, it's about finding the right balance between use and reliance. My personal experience last week has definitely tipped towards reliance, and what I really wanted to accomplish with this post is to just have others learn from my experience and ensure they aren't making the same mistake. This week I'm making a point of using ChatGPT and CoPilot less.
Yes and this is where I see the value in this article. We have to talk about how such things change the way we work and think. The solution might be simple (or not). But you can only talk about solutions, when you identify the problem.
Much needed topic for sure. I mean I love to write and read code. And there are certain things in soft dev that I take the more purist view, but with AI code generation, I feel it's that old debate about using a calculator or using our heads. It doesn't have to be one or the other, like you mentioned.
Is it making us lazy? Probably, but I hope what it's also doing is freeing our minds to tackle issues that we are much better at solving: gathering user requirements, solving design and security issues, increasing productivity, defining goals, etc. I think software engineers especially, have an unreasonable long list of things to address. It's a list of tasks that other engineering disciplines have divided into at least 3 separate jobs (technician, engineer, architect, safety inspector, etc.)
Thanks for feedback @freddyhm
I like that you raised the calculators as an example, which I also thought about but originally decided against using for the comparisons. But reading this again, and thinking on it a bit, it wasn't so much that the calculator by itself changed peoples behaviour. Rather, it was the ease of access to a calculator on our mobile phones as they became prevalent where I at least started noticing people "becoming lazy" and rather using the tool than their heads, and start even struggling with basic arithmetic.
And I think that is part of what shifted for me recently and made me think about this topic; after paying for ChatGPT and keeping a tab always open, and installing the CoPilot plugin in all of my IDEs and text editors, it's just become too easy to use them; there is no hesitation because there is no resistance.
My hope as well is that using these tools the right way will free up cognitive load from the more dull work so we can focus on the problem areas where humans shine. Like you say, we already have an unreasonably long list of things to address, giving some of that up to a machine will surely help in the long run.
Thanks for sharing, it's an interesting reflection.
It makes me thing about the shift in how people's brains work. People used to be really good at retaining knowledge and there's been a general overall shift away from this. As information is so easy to look up (e.g. Google) people stopped remembering and became adept at finding things instead.
I wonder if the same will happen here? Will we "forget" how to debug and problem solve, instead becoming overly reliant on these tools? Only time will tell...
Personally I don't use CoPilot much (not sure if it's just my SublimeText setup but it only suggests Noddy stuff line by line that I can type more quickly than suggestions appear). Sometimes I'll use chatGPT if I need help getting started or have a problem I'm not sure how best to Google for. But I try to use it for the first hurdle or two and then stop relying on it. I often find myself Yak Shaving if I rely on it too much.
Thanks for the comment @ipwright83 , appreciate the insights.
The "Google effect" / digital amnesia you mention has indeed changed how we store and retrieve information. I do think something similar is happening with problem-solving and debugging skills in the face of advanced AI tools, but then as mentioned and discussed in other comments, it only really becomes a "problem" once access to the tools becomes so easy that we don't even think about it anymore, and I don't think we are there yet.
I personally didn't feel the Google Effect until I had a search engine in my pocket all the time, and didn't start struggling with arithmetic until I had a calculator in my pocket all the time. Smartphones gave us ease of access, which is where I feel things shifted, and I suspect the shift here will be inclusion of AI tools as standard in IDEs and editors.
Out of curiosity:
Do you think you would've solved the problem faster without ChatGPT?
In this particular instance, yes. If I had taken a minute to properly read my code, or just step through it with a debugger, I'd have spotted the issue since it wasn't that complex.
The back and forth between me and ChatGPT and having to sanitize code I give it meant it took longer than needed.
Late to the party here, but you addressed a really salient point. If we rely on AI to the point where we no longer have a good understanding of context, problem-solving will definitely be more difficult. When you write code which is a result of your mind thinking about how to solve a problem, you have context from the get-go, and you give your mind time to process that context further as you type/modify the code. Your brain will be much better able to identify problems after the fact than if you rely on a code generator.
Of course, there's no single "correct" way to go about all this, but it's good to at least be aware of the trade-offs. Nice article!
Thanks for the comment @squidbe, I appreciate the feedback. I like this way of thinking as well, about having the context and taking time to process.
I agree completely that if you thought through and solved the problem yourself initially it's much easier to think and reason about any new problems that come up. Easier to fix my own code I that I kinda understand, than someone else's code (whether AI or StackOverflow) that I just copy-pasta'd.
What I've been focusing on since writing this post is using the tools to make my solutions better, rather than having them solve my problem. So telling it what I did and getting suggestions on improvements. The results have been mixed, I think ChatGPT is getting dumber...
Great post
Interesting thoughts, I feel the same many times lately.
Great post