This is something I wanted to address for quite sometime but never got the time to talk about my opinions/views about it.
I have been reading many articles and watching a few videos on YouTube in which the authors often contemplate about the future of developers and whether their jobs might be replaced.
If you think that's the case, I'd like to share one of my favorite quotes that might change your mindset:
Software is just a tool to help accomplish something for people – many programmers never understood that. Keep your eyes on the delivered value, and don’t over-focus on the specifics of the tools. — John Carmack
Ever since, ChatGPT went viral, I (and some of my team members) thought of incorporating it to help educate myself during development.
Will it ever replace humans?
Just like the quote above, software is just a mere tool that helps accomplish your end goals. It definitely isn't going to replace a developer with years of experience, let alone, a human being but rather, as a tool or learning aid to help accelerate our ways of being productive.
There are tools like GitHub Copilot (powered by ChatGPT) that helps developers in troubleshooting, refactoring and solving well-defined problems but however, I feel it still has a long way to be able to solve really complex problems in which otherwise could be solved by a software developer.
I'd say that it's crucially important for you to know and be aware of the capabilities and potential of AI-based tools but not to worry too much about it's impact in the industry.
In my opinion, I'd say that a developer who knows how to be effective using AI-powered tools as a learning aid are more likely to replace an developer who aren't aware of them at all.
Here's another quote from John Carmack:
If you build full "product skills" and use the best tools for the job, which today might be hand coding, but later maybe AI guiding, you will be probably be fine. — John Carmack
It's important to view yourself as a problem solver who uses technology rather than someone who simply "codes" for a living and would get replaced in the near future.
What many people don't realize is that a software developer isn't someone who only writes code but also someone who solves complex problems and makes critical decisions. From my experience, I can tell you that it takes a lot of decisions to go from design to deployment and that involves a team that's made up of various skillsets that includes project management, design, development, QA and deployment.
Currently, AI might be good at solving well-defined or common problems but it can never replace the decision-making needed for a successful project.
Can we trust it?
Not yet. ChatGPT ain't AGI thus it has limitations such as that it "hallucinates" i.e. comes up with random facts or solutions that aren't even logical to the problem defined. Whereas, if you look for the problem on StackOverflow, you're more likely to copy/paste a solution that's already recommended by the community.
As I had mentioned above, it's quite good at solving well-defined problems and here are a few examples that has helped saved me time:
- Refactoring methods and repetitive code
- Writing a method that validates email using regular expressions
- Writing a simple image gallery component using ReactJS
- Helped me learn new languages and concepts faster
Oh yes, it did make plenty of mistakes but with all that said, I think it's a great time to learn something new.
My take is that to not overestimate the progression of AI in the near future and underestimate it's impact in the distant future.
Hope you liked reading this article.