Quick Guide & Tips

💻   Accessing Utils File and Helper Functions

In each notebook on the top menu:

1:   Click on "File"

2:   Then, click on "Open"

You will be able to see all the notebook files for the lesson, including any helper functions used in the notebook on the left sidebar. See the following image for the steps above.


🔄   Reset User Workspace

If you need to reset your workspace to its original state, follow these quick steps:

1:   Access the Menu: Look for the three-dot menu (⋮) in the top-right corner of the notebook toolbar.

2:   Restore Original Version: Click on "Restore Original Version" from the dropdown menu.

For more detailed instructions, please visit our Reset Workspace Guide.


💻   Downloading Notebooks

In each notebook on the top menu:

1:   Click on "File"

2:   Then, click on "Download as"

3:   Then, click on "Notebook (.ipynb)"


💻   Uploading Your Files

After following the steps shown in the previous section ("File" => "Open"), then click on "Upload" button to upload your files.


📗   See Your Progress

Once you enroll in this course—or any other short course on the DeepLearning.AI platform—and open it, you can click on 'My Learning' at the top right corner of the desktop view. There, you will be able to see all the short courses you have enrolled in and your progress in each one.

Additionally, your progress in each short course is displayed at the bottom-left corner of the learning page for each course (desktop view).


📱   Features to Use

🎞   Adjust Video Speed: Click on the gear icon (⚙) on the video and then from the Speed option, choose your desired video speed.

🗣   Captions (English and Spanish): Click on the gear icon (⚙) on the video and then from the Captions option, choose to see the captions either in English or Spanish.

🔅   Video Quality: If you do not have access to high-speed internet, click on the gear icon (⚙) on the video and then from Quality, choose the quality that works the best for your Internet speed.

🖥   Picture in Picture (PiP): This feature allows you to continue watching the video when you switch to another browser tab or window. Click on the small rectangle shape on the video to go to PiP mode.

√   Hide and Unhide Lesson Navigation Menu: If you do not have a large screen, you may click on the small hamburger icon beside the title of the course to hide the left-side navigation menu. You can then unhide it by clicking on the same icon again.


🧑   Efficient Learning Tips

The following tips can help you have an efficient learning experience with this short course and other courses.

🧑   Create a Dedicated Study Space: Establish a quiet, organized workspace free from distractions. A dedicated learning environment can significantly improve concentration and overall learning efficiency.

📅   Develop a Consistent Learning Schedule: Consistency is key to learning. Set out specific times in your day for study and make it a routine. Consistent study times help build a habit and improve information retention.

Tip: Set a recurring event and reminder in your calendar, with clear action items, to get regular notifications about your study plans and goals.

☕   Take Regular Breaks: Include short breaks in your study sessions. The Pomodoro Technique, which involves studying for 25 minutes followed by a 5-minute break, can be particularly effective.

💬   Engage with the Community: Participate in forums, discussions, and group activities. Engaging with peers can provide additional insights, create a sense of community, and make learning more enjoyable.

✍   Practice Active Learning: Don't just read or run notebooks or watch the material. Engage actively by taking notes, summarizing what you learn, teaching the concept to someone else, or applying the knowledge in your practical projects.


📚   Enroll in Other Short Courses

Keep learning by enrolling in other short courses. We add new short courses regularly. Visit DeepLearning.AI Short Courses page to see our latest courses and begin learning new topics. 👇

👉👉 🔗 DeepLearning.AI – All Short Courses [+]


🙂   Let Us Know What You Think

Your feedback helps us know what you liked and didn't like about the course. We read all your feedback and use them to improve this course and future courses. Please submit your feedback by clicking on "Course Feedback" option at the bottom of the lessons list menu (desktop view).

Also, you are more than welcome to join our community 👉👉 🔗 DeepLearning.AI Forum


Sign in

Or, sign in with your email
Email
Password
Forgot password?
Don't have an account? Create account
By signing up, you agree to our Terms Of Use and Privacy Policy

Create Your Account

Or, sign up with your email
Email Address

Already have an account? Sign in here!

By signing up, you agree to our Terms Of Use and Privacy Policy

Choose Your Plan

MonthlyYearly

Change Your Plan

Your subscription plan will change at the end of your current billing period. You’ll continue to have access to your current plan until then.

Learn More

Welcome back!

Hi ,

We'd like to know you better so we can create more relevant courses. What do you do for work?

Course Syllabus

DeepLearning.AI
  • Explore Courses
  • Membership
  • Community
    • Forum
    • Events
    • Ambassadors
    • Ambassador Spotlight
  • My Learning
Welcome to Generative AI for Software Development. Generative AI is helping many software developers write faster, better codes. And just to be clear, this specialization is not about writing generative AI applications. It's about how generative AI can help with software development, whether you're a data scientist, or front-end, or back-end, or full-stack, or mobile, or whatever type of developer. I'm here with Lawrence Moroney, who will be the instructor for these courses. You might be familiar with Lawrence from the TensorFlow courses he had taught with Deep Learning.ai some time back. Lawrence is also the author of more than 30 books, some sci-fi, some programming, many machine learning. And I'm excited to have him teach best practices for how you can write software better using generative AI. Always delighted to be here, Andrew, and to work alongside you and your team. So one of the things that I know you've been thinking about is the impact of generative AI on the day-to-day role of a software developer. How do you feel it's going to impact? What's that going to look like? You know, the thing that surprised me was how much more fun coding is with generative AI than without. Three weeks ago, I was trying to deploy something to the cloud service. I hadn't done it for a while, and I'd forgotten how to do it. And I thought, boy, if I had to go and read that documentation to figure it out, I could have done it. But frankly, it was much faster to prompt an LLM to guide me through the steps, which turned out to be almost correct, to help me pack this up in a docker container, push through the cloud service I was using, and just get the job done. So I find myself looking forward to coding more now that I know I have this coding companion. It's like generative AI buddy to help me along. It's those kind of drudgery tasks sometimes that take away from the joy of solving a particular problem. And when you have that pair of programmers alongside you to help you through those, it does make the overall task a lot more fun. Yeah, and productivity is one thing, all for that. I guess there was a McKinsey study, then a Cisco study that estimated something like 35-ish, maybe more, percentage improvements in productivity boost for code generation and various tasks. So productivity boost is great, all for that. But then the fun, you know, is a big bonus too. Oh, totally. I found myself, I'm sitting down and I'm enjoying coding much more than I had been previously because I'm spending more time thinking about the problem that I'm working on and thinking about how to implement that, solve that problem, as opposed to what do I do for user interface? What do I do for a docker container to push to the cloud and those type of things? It's really fun. So often in the room, on social media, there have been some very strident voices saying, you know, no one ever needs to write code and software engineers will be obsolete because of generative AI. I think we share some of you on that. Yeah, I mean, I honestly think that that viewpoint is wrong. And I'll come out and say that because I think, you know, your expertise as a software developer, if anything, is more important than ever in the age of generative AI, because it can make you have those superpowers, be more effective, be able to solve those domain problems, you know, and have fun while you're doing it. So you can as we've been sharing, so you can have a more fulfilling thing and, you know, just have a better time at work. In fact, what I suspect will happen is if indeed the estimates of, let's say, 35% productivity boost are accurate, then I think what will happen is people that use AI will replace people that don't. But AI won't replace software developers. And when I think about the studies showing meaningful productivity boosts already today, I think with the rapid pace of development, these gains will only expand and get even much bigger over time. So today, we promise to help us explain code, debug code, manage dependencies, all that is great. As we look in the future, with future generations of more agentic technologies, more secure things, I think it actually become more and more productive and more and more fun to have all these tools at your disposal. Oh, absolutely. And I also think that as if the word is shrinkification, the fact that LLMs are getting smaller but still being as effective, I really see that trend continuing and increasing and making, again, the job of a developer that bit easier. So now instead of outsourcing to a third party via a chat bot or those kind of things with your code, you could have an LLM running on your local machine that's trained on your code base, that's an expert on your domain that you can then use as that pair programmer alongside you. And I see that being a major trend. And in addition to that, of course, then many companies won't allow their source code to be shared outside. You can't bring it to chat GPT or cloud or anything like that. But when you have an internal model running on your own development box, that's when, again, I think the floodgates can open on these. For a lot of developers, when we get stuck on a task, both for novices, even for experienced developers, if you're learning something new, you sometimes get stuck. You've got to find a human expert to help you get unstuck. And I really like this analogy of pair programming. You always have a buddy with you now that you can ask a question from right away. And I think compared to waiting a day or whatever to track down that domain expert, not that the LLM always knows every answer, but the fact that your buddy can give you an answer right away, give you some options, I see this helping developers get unstuck. Not all the time, but at least much more rapidly. I found for me personally, sometimes if it's not helping solve the immediate problem, it sparks inspiration. Some of the answers that it gives will help me find a different track that I'm going to follow to be able to fix a particular problem or to go a whole new direction that I hadn't previously thought of. And it's that sparking of inspiration is one of the things that really can make the task more enjoyable. One of the things I really appreciate about insights you brought to our conversations was, I think a lot of us have been using generative AI to help with coding in ad hoc but effective ways. One of the things that I saw you do that I really appreciated was going through, frankly, a lot of tasks that developers have to go through and then to think through best practices, but how can generative AI help with different tasks? So for example, I just had not thought of using generative AI to help with test-driven development, to write tests, until I heard about that from you quite a while back now. But I think those systematic analysis of what are the things you could do, what are the best practices, I really appreciated your thinking that through putting it together for us. Oh, thank you. Thank you. Yeah. And it's like, and another one like in that realm that I love is dependency management, right? Because often bugs, there's nothing wrong with your code, it's just your dependency set. There's something mismatching in there. And to be able to use your friendly pair programmer LLM to help you through that, and has that understanding of dependencies and breaking changes and those types of things to guide you through that, there's a whole lot more to the universe of being a developer than just writing code. And I think having that LLM beside you through all of those tasks is really powerful and fun. Now, we speak about drudgery and not fun. Three years ago, I downloaded some open source code that uses Python 3.12. There's some weird features that I've never used. And then, thank goodness, LLM told me how to modify the code to be compatible with Python 3.10 or whatever it was using. And I think that kind of thing really saves developers a lot of time. And it does know Python 3.10 and Python 3.12 much better than I did. And so it could help me solve the problem quickly. Exactly. Exactly. And so changing tack for a second, we're looking at all these advancements and all these improvements. And what if we were to cast our eye down the road of time and think, what do you think software development will look like in five years with this? I think it's exciting. It feels like syntax is already becoming less important. So that's one fewer thing we need to memorize as much of. And then I think as AI becomes increasingly able to autonomously write code, test it with agentic workflows, AI can write code, test it, debug it. I feel like software developers can operate at a higher and higher level. I think there's plenty of work for us as humans to do to guide and supervise AI for a long time. But then, knowing where the technology is and staying with the technology, even as it matures, I think that'll be critical for us really doing the best work that we can. Sometimes when we start building a system, we start at the whiteboard, right? And we start drawing all these boxes and arrows between them and thinking about the constraints. And given the idea that today we generate code or we generate documentation or we generate test cases and other things from a prompt, it might be very interesting that in the not-too-distant future, those system specification designs that we draw, those boxes on a whiteboard could be the next prompt. And to be able to design systems off of those with multimodal models now being able to recognize imagery and being able to parse that kind of thing, that I can see that going back to that domain expertise, that when you have a domain expertise to solve a particular problem and you can draw the architecture of that, that that architecture can be implicitly turned into code, which would execute. And you may not even be interfacing that much with raw code, right? Unless you want to tweak and debug. And it's like, you know, five years from now, that could be a way that software developers will be even more effective. And it's something that I'm looking forward to. That's in the future. But what do we have today? So in this specialization, so we have three courses. The first thing that we do want to emphasize that this isn't a series of courses on how to build generative AI. This is a series of courses on how to use generative AI to be a better software developer. And the skills that we're looking at building here are really relevant for you in all areas. You know, as we've touched on a little bit already, it's not just coding, it's documentation, dependency management, testing, a little bit of architecture, all of that kind of stuff with Gen AI as your friend. So with these courses, anyone that writes code, we're going to adopt best practices and using generative AI to help with these. Can you say a bit more about what the three courses are about? Sure, sure. So we kind of broke the three courses into themes. So the first course is really for you as an individual software developer. It's going to introduce you a little bit to LLMs and how you can use them as a pair programmer. But then you're going to get into like prompting and system prompting and having an LLM play roles like software tester or any of those kind of roles of the type of people that you'd be working alongside to build better code. The second one then is really when you start thinking about collaboration with other people as a software engineer. You're going to work with testers, you're going to work with people who do documentation, you're going to be working with people who give you dependencies. They may be internal to your company or it might be third party dependencies like Python ones. And, you know, we're going to work through the skills of you being able to use an LLM to just be better at doing all of that. And then in the third and final course, it's like we're really going to take that to the professional software developer level where you can understand the full workflow of building and launching applications from the design phase with design patterns and the famous gang of four patterns through things like data serialization and database management. So that's really the whole idea of this, like to help you start as an individual developer, go on to working in a team and then go on to really being able to deploy professional solutions. And do these courses have any prerequisites? I think the only prerequisite here would be it's good to know a little bit of Python. So if you're a Python developer, it's good. We're also going to touch some other languages like Java and JavaScript, but we'll be primarily working in Python. So lots of things to learn in these courses. And with that, let's jump into how you can use large language models right away to help you with your coding. Let's go on to the next video to get started.
specialization detail
  • Generative AI for Software Development
  • Introduction to Generative AI for Software Development
  • Module 1
Next Lesson
Module 1: Introduction to Generative AI
    Course Introduction
  • Conversation between Laurence Moroney and Andrew Ng
    Video
    ・
    11 mins
  • Course 1 downloadable resources
    Reading
    ・
    2 mins
  • Setting up your Jupyter environment
    Reading
    ・
    10 mins
  • Essential reading: Engage directly with our Jupyter and ChatGPT labs
    Reading
    ・
    2 mins
  • Introduction to Generative AI
  • What is Generative AI?
    Video
    ・
    3 mins
  • AI and machine learning
    Video
    ・
    3 mins
  • Machine learning example
    Video
    ・
    4 mins
  • Quiz 1

    Graded・Quiz

    ・
    15 mins
  • Supervised learning
    Video
    ・
    4 mins
  • Introduction to transformers
    Video
    ・
    2 mins
  • Key transformer concepts
    Video
    ・
    6 mins
  • Quiz 2

    Graded・Quiz

    ・
    15 mins
  • [IMPORTANT] Have questions, issues or ideas? Join our Forum!
    Reading
    ・
    2 mins
  • Next
    Module 2: Pair-coding with an LLM