AI is here. How is it changing the way developers work?
Large language models (LLMs) can autocomplete code, translate code from one programming language to another, provide documentation quickly, and more. These tools can save time and effort when used effectively. As AI becomes a standard part of the development stack, programmers need to rethink how they manage their time.?
To help you prepare for the future, GitHub’s The ReadME Project Senior Editor Klint Finley spoke with two LLM power-users about how AI coding tools are transforming their work.
Meet the panelists
Claudio Wunder is a Senior Engineer at HubSpot, a core contributor to Node.js, and a member of the GNOME Foundation and the OpenJS Foundation. He presented how to use GitHub Copilot to find edge cases in your code base at GitHub Universe 2022.
Chrissy LeMaire is a front-end developer, PowerShell developer, SQL Server expert, and the creator and maintainer of dbatools , the popular PowerShell module for SQL Server professionals. She’s the co-author of the forthcoming book Generative AI for the IT Pro . Originally from Louisiana, she currently works and lives in Europe.
Klint: How are AI coding tools changing your workflow?
Claudio: Funny enough, I would say my workflow hasn't changed. GitHub Copilot is embedded in the code editor I've been using for many years. I can use it without getting distracted from what I'm already doing. I don't have to open different things. So it feels like nothing's changed, I just got more productive.
Chrissy: There's a saying: If you do something more than twice you should automate it. I use LLMs to automate all sorts of things. For example, PowerShell lets you format long, otherwise unreadable commands as hash tables so they're more readable. It's called "splatting." I have a dedicated ChatGPT Assistant to convert long commands into splats. Being able to quickly do all of these sorts of things without thinking about it has completely changed the way I work.
Klint: Are there any areas you find yourself spending less time on now? More time?
Claudio: I spend more time planning my applications and less time coding and debugging now. LLMs can really give life to the "rubber duck " idea, where you explain an idea or a problem out loud to help you think it through. When you tell an LLM what you're thinking, you get feedback and suggestions. I spend less time figuring things out through trial and error, and more time making sure my code is secure and performant.?
Chrissy: Exactly! I spend less time doing grunt work and more time just talking. It makes coding more fun. I don't dread getting started anymore. When you start a project, you have to set up all sorts of things. It takes a while before you get to the exciting parts. Now I let the LLM do it for me. With AI coding, it starts out exciting. It's also nice for revisiting projects I haven't touched in a while. For example, updating dependencies can be tedious work. Now I can just tell an LLM which dependency changed and ask it to update my code for me.
Klint: What specific tasks or problems do you find AI tools most helpful for?
Claudio: In addition to what we've talked about already, I would add generating tests. Everything that isn't complex logic.
Chrissy: I use AI tools for all sorts of system admin tasks. I'm even writing a book about it! LLMs also help when learning new technologies. I just transitioned from a career in DevOps into a new role as a front-end developer. It made switching from writing mostly PowerShell and SQL to writing mostly JavaScript much less stressful. Otherwise I would have had to spend much more time context switching and looking things up. I was able to be productive more quickly.
Klint: Are there tasks where you prefer not to use AI coding tools? Why?
Claudio: LLMs are there to assist you. Do not expect them to create an end-to-end app for you. Also, I wouldn't use them to write code in a language I don't know myself. You won't know if it's safe; you could introduce security issues, performance issues, or memory issues. I agree LLMs are good for education, but you still need to understand what they're doing. Sometimes Copilot will use new JavaScript features I'm not familiar with. When I see something like that I ask it to explain, and it often displays the documentation for the feature. It can definitely speed up the learning process, but you can't become too reliant.
Chrissy: I agree with that. AI is a learning aid, not a substitute for learning.
Klint: How do AI coding tools affect collaboration with your team members?
Chrissy: It’s made documentation a lot easier, which makes it easier for other people to jump into a code base. I was able to go through some JavaScript and have an LLM generate JSDoc-formatted documentation based on function names and parameters with something like 95% accuracy. My team really loved that.
领英推荐
Claudio: AI has helped speed up my work and make better use of my time, which might leave more time to collaborate, but it's not necessarily a direct relationship.
Klint: What advice would you give other engineers to get the most out of LLM coding assistants?
Chrissy: First make sure your company's policy allows you to use AI before diving in. Also, check the policies of the tools you want to use. When GitHub Copilot was first released, many people were worried that it would train on the code they wrote. It was a huge relief when I learned that not only does GitHub not train on your code, but it doesn't even transmit your code . Other than that, I would say: Start out with small chunks. LLMs can’t write a whole book, but they can write a paragraph. Start by generating individual functions.
Claudio: Open lots of files. The more context an LLM has from the workspace, the better the chances are that it will generate useful code for you. When you use LLMs, you have to be very clear on what you're asking. Give it examples of the output you're going for, otherwise it's just guessing. Always validate what it does. You, as a developer, should ultimately be the one running the ship, so check and then double-check what the LLM is doing.
Klint: What skills do you think will be more important in the future? How are you preparing?
Chrissy: Every single day I look for opportunities to add something AI related to my resume. I used to think you had to know a lot of math to do AI, but you don’t. I use ML.NET and Math.NET Numerics in my PowerShell apps. PowerShell isn't popular for AI right now, but these are proofs of concepts that help me understand the concepts. Then I can learn to use them in Python, instead of having to learn both AI and Python at the same time.
Claudio: As our responsibilities as developers shift more towards high-level tasks, communication skills will be even more important. Fortunately, though LLMs require you to communicate, that requirement helps you practice your writing skills. We'll also need to focus less on how specific frameworks work and more on the fundamentals of computer science. Even if LLMs are able to generate entire applications in the future, you will need to evaluate the code. We could become more like supervisors. You should ask "Why did you do this?" "Why this way?"
Poll request results
In our last newsletter , focused on the joy of open source maintainership, we asked you, as a maintainer, about your strongest motivation for staying engaged with your open source projects. The top results were neck and neck: 36.4% of you said that solving your own problems is your primary motivation. That's not surprising considering how many open source projects begin as ways for a developer to scratch their own itch. Another 35.7% said it was the pure joy of programming. A lot of those projects really are labors of love! Serving the community came in third with 19.8%. Only 8.1% said that open source maintainership is part of their paid work. Now sure would be a good time to support some of your favorite open source projects with GitHub Sponsors
2024 open source software funding survey
Speaking of sponsoring open source development: We're working with the Linux Foundation and researchers from Harvard University to learn to more about how organizations fund, contribute to, or support open source software projects. We're hoping to hear from open source program offices, heads of engineering, C-level executives, and other individuals with a solid understanding of their organization's open source engagement. If this is you, please take the survey to help create an open source ecosystem we all want to thrive.
The ReadME Project is a GitHub platform dedicated to highlighting the best from the open source software community—the people and tech behind projects you use every day. Sign up for a monthly newsletter to receive new stories, best practices and opinions developed for The ReadME Project, as well as great listens and reads from around the community.
--
2 个月Am new here, am still trying to have ideas on how LinkedIn works, please their anyone to enlighten me
--
2 个月Am new here, am still trying to have ideas on how LinkedIn works, please their anyone to enlighten me
Aspiring Data Scientist/#BuildwithAI 2024 Hackathon with GenAI Ambassador for Europe and Africa/#BuildwithAI 2024 Hackathon with GenAI Mentor/GenAI Pioneer/
2 个月Thanks for sharing.
Nada especial
3 个月Vey very good????
Graphics designer
4 个月Good point!