BrandGhost

Actionable AI for Software Engineers - Principal Software Engineering Manager AMA

This is an AMA livestream! Come with your questions about programming, software engineering, career progression, etc... Happy to help share my experiences and insights! Today we focus on: AI for Software Engineers
View Transcript
almost ready there too many platforms all at once let's get this going one sec one sec and I want to make sure that I can see LinkedIn messages sometimes I don't come through in the chat and I don't like leaving people hanging there so we'll get that pulled up in just a moment cool um and I want to get my newsletter ready because I'm going to be going through some topics from that as well so I'll get that primed so if you're getting onto the stream if you're watching this and it's recorded the topic today is going to be AI for software developers yep I see awesome thanks guys I do see the LinkedIn messages that's perfect and hey Steve good morning to you it's evening here good to see you so let me get one more second I'm going to put the link to my newsletter if you want to read along for the topics again no pressure anything like that it's just going to be the same topics um and I'm going to try to do a little there's not going to be like live coding in the sense where I'm like teaching people how to code but we are going to talk about AI for developers right so I want to be able to go through a little bit of code as well just to show people um like if you're not using it what you can be using it for because I think that's super important that's kind of you know one of the one of the goals of the article itself was to be able to talk through some of that stuff so if you're new to the live streams that I do uh it's Monday night for me so I will refer to it as the Monday night live streams um if you're new to this type of thing I do encourage you to be asking questions and stuff like that I will be watching the chat as I'm blabbing away here so I would rather spend my time answering your questions than me just blabbing at you I think it's the whole point is like I can go record YouTube videos and stuff like that folks can go watch them but this is a chance where we can talk and engage and stuff like that so feel free to jump in the chat like I said I will be watching uh you can ask questions you can offer your own perspective we try to call stuff out as I'm going um if I do end up showing my screen and stuff and the text is too small anything like that just you know uh showed at me in the chat like I said I'll be watching so if that sounds good then I'll get into it and hello on Instagram I can see your comments so I will say hello back so you you know I'm here awesome stuff okay so I had a couple of different ways that I wanted to look at AI for software developers and to have you used I have not used planex no if you want to kind of describe what planex is I'd love to hear more about it um so the the framing for all of this uh is I mean for software developers I think the there's a lot of uncertainty going on right so of course we have a pretty challenging job market right now for folks that are getting into industry people that have been laid off uh you know I I don't want to kind of focus this talk on that I just want to kind of frame up that there is a lot of uncertainty then we layer in things like AI right there was I mean a huge scare I guess for lots of people uh some people maybe not such a big scare but this idea of like Devon Ai and AI coming to take all the programmer jobs because we can just use AI to code everything the CEO of Nvidia is saying I don't know what the date was I think he said like in 5 years or something we won't need software Engineers kind of thing like I think people are hearing this kind of stuff and having a lot of uncertainty and I think it's fair that they do right like if you're if you're hearing this stuff and you're new to Industry especially it's going to be like oh crap like what am I getting myself into here my was my time should I do something else um you know did I focus all of my time and energy into the wrong field like I get it um but my stance on this kind of thing is just like any technology right um I would say if you're the kind of person that is very complacent and you do not want to to kind of get on board with the technology um you're not willing to have like a growth mindset and look at things and kind of just like get outside of your comfort zone then I would say regardless of AI it will be some other technology that probably gets you to a point where you might feel like you're obsolete okay so it's not AI specific in my opinion that's going to be the thing that causes you to go out of your job like it will be some type of Technology change some type of shift in whatever landscape for uh your role that you're in that will eventually obsolete you if you're not willing to kind of grow with how things are going so AI definitely puts a a pretty big uh impact on that right because it affects many Industries and of course uh people like software Engineers can be affected by that kind of thing so the goal of this talk is to look at ways that we can leverage Ai and I'm going to talk about some things that you shouldn't do my opinion um and in my article they are emphasized heavily I think I three or four times I repeat the same thing like don't do this but the goal here is to show you things that you can do things that will hopefully help you leverage Ai and that way you are kind of in this position that as AI Trends and stuff are moving forward you should be able to jump on board and leverage them so this is not going to be about building things with AI as the foundation as in we're not going to go build a web app together and then like jam AI into it like that's not the point it's more from a productivity perspective so just from a a framing that sound good let me know I'm just checking out the chat here so um planex is a CLI llm augmented project making thingy awesome was mucking around with it last night it was too too easily stepping on landmines but it was kind of neat preview and Devon type tools okay cool yeah like I mean there's going to be a ton of this stuff right like tons of things to kind of Kickstart uh things based on on AI so no I have not heard of this one though so for folks that are reading through the chat or just listen to what I'm saying planex maybe is something uh interesting to look at hey X coding on Twitch thanks for joining definitely seeing you around happy that you're back cool okay so the the next part of the article is kind of going through some different things that we can start to do and I wanted to start with some Junior developer type things because I thought like from my own experience having people reach out to me or things that I've read where people are saying hey like I'm trying to get into to the industry people keep saying go build projects is the best way to learn but like I don't know what to go build right this is a very common thing I've done a shut out for John Cricut on these live streams a few times but John cricet has coding challenges. FYI I will put that into the chat as well if you're not familiar FYI sorry I don't know if the chat is going to every platform so I apologize but it's coding challenges. FYI John cricet has an awesome newsletter and it's focused on basically just building things so he'll have a different thing that you can go build it's not constrained to any programming language but it's a great example of like hey just go try building something it's going to be uncomfortable it's probably not going to be super easy but that's the whole point you can chip away at it you can try different things out it's just something to go practice right you're not going to finish one of those projects and say hey I can go sell it for a million bucks like that's not the goal the goal is to learn so one of the things that I thought I wrote a Blog article about this last year at some point maybe almost a year ago now about um project ideas right so instead of and I'm not saying don't go look at John's newsletter I absolutely think you should check it out but if you're always kind of feeling like hey I don't know what's a good fit or even if you had some examples from say coding challenges how can we refine that how can we see like what some next steps are so what I'm going to do and I haven't I'm not a great prompt engineer if I can even use that phrase um I'm going to go over to chat gbt and I'll share my screen in just a second once I'm in there and what we're going to do is look at prompting chat GPT to come up with some ideas that could be useful for projects and full disclaimer I haven't actually tried this before but I know that if you're good at prompting I guarantee you could get some results that would be helpful for you so in one moment here I'm just going to get my screen shared I just want to make sure I got some stuff out of the way sorry one of my windows doesn't have a minimize bar which is super annoying there we go it was a dialogue that was pulled up so okay uh get my screen shared over here give me one sec I will disappear for a moment and then I will come right back I promise and here I am cool so you can see I'm in chat GPT here but something that we could go do is think about the skills that you have or the skills that you want to go after um sorry on Instagram it's uh cutting out a lot of the the feed so um I guess it's most of what's in chat jpt but I think other platforms you're probably seeing the whole window but you could say to chat jpt something like I'm a new software developer I'm looking for a good project and here's in my opinion something you're going to want to focus on is like what the goal of your project is because if you're not framing this thing up um if you're not framing this the right way it might think that you're trying like is it a business like what are you trying to do here right but I want to remind people the goal here is learning so I'm looking for a good project to learn some basic programming skills um and where you might need to kind of deviate on this is some people will say like hey I know that I want to try building um some websites I want to build with web Tech other people might say no like mobile apps for sure or I want to go build games whatever it happens to be right you might know the things you want to do you might know the languages or the text Stacks but some people won't know any of that some people know all of it so this is where you get to get inventive and I don't it's going to be hard to make this really generic right but let's let's pick something and kind of roll with it one Challenge from oh yeah so X coding was looking at coding challenges so one challeng is one Challenge from that newsletter is build your own shell so he said done that awesome yeah there's lots of really cool ones that John Cricket has so I do recommend you check it out um okay so looking for a good project to learn some basic programming skills um I'd like to focus on web development again tune this for whatever you'd like right um I think JavaScript or typescript would be good to use again you might not know that you might even ask chat GPT like to suggest a language to use uh yeah X coding I think you can post links in the chat I'm okay if you do it I think they will work you can try it out um so like the part that I'm getting at here that I have highlighted is like these are details you either might want to provide or you might want to ask okay so that's up to you and obviously like I said I'm not a good prompt engineer here but you can play around with this to get different results and we might try to tune this in our conversation with Chad GPD here so um I don't know what popular Frameworks are and something to think about when we go ask chat GPT to go suggest popular Frameworks is um we want to figure and this is up to you but if you're uh say you're considering that you want to be employable right I want to go make a project that's going to teach me some employable skills and Frameworks you can ask chat gbt for that kind of thing but because of the information it has and the time frame if you're thinking about this you might say well I want the most recent thing right it might not know so you might want to go do a search on the side and give chat GPT that information like hey um these are the top three Frameworks I'm seeing but the point I'm getting at here is that you can start to combine your own little bit of research which I recommend you do of course and you can leverage chat GPT to get creative so I don't know what popular Frameworks are I'm not going to feed this thing any extra information we'll kind of see what it comes up with um but I would like to make sure they align with what uh recruiters at tech companies are looking for please recommend let's start with three project ideas for me to try building for my beginner and we'll give that a shot it's just something to start with right it's not going to be perfect I can get R to it and we'll kind of let this spit out what it has to say and we're going to go through it briefly because I have other things in the the newsletter that I want to go through but I think this is important to to kind of go through um so it's still writing out some stuff here cool so it's all done I'm going to go back up to the top and we're going to read through what we got going on um a personal blog website is a pretty common one so I have seen this and if I scroll quickly yeah all three of these are very popular things uh and I'm not surprised that chat jpt came up with three things that I see all of the time but what it did that's really cool and you can tune this again to your liking but it gave some recommendations about text stacks and languages and you can tune this again like if you were like no I don't want to use nodejs which I see here right maybe from your own research you wanted to go learn a different technology you can go tell it here's what I want to use like I said you can go refine this so first one says a a personal blog website you're going to get some HTML CSS and JavaScript I think this is a pretty popular um combo for people right especially HTML and CSS a lot of people uh starting in front and work they basically focus on HTML and CSS for a long time and then they try to get some scripting and stuff going because these two things this is not programming um I'm not trying to r on anyone's parade but these things are not programmed um but as soon as you get into some scripting and stuff like that and have some logic then you are starting to write some programs so nothing wrong with starting here right but as soon as you start getting some scripting and stuff in place then you are building logic and writing programs so it's a nice stepping stone for sure um it calls out the Frameworks and libraries in this case it's saying hey you might want to check out using react for the front end of this so you can use JavaScript or typescript and if you were brand new and you're like what are these things right like I why did it what's react what is Javascript or typescript they seem like similar things based on their names you can either go ask chat GPT for more information or start searching online right so the goal of using chat GPT this way I'm going to keep repeating myself because I think it's important to hear is not to go chat GPT said so I guess I better go off and just do whatever it says the goal is to say hey chat GPT gave me a start stting Point either you don't know about it and you should go do a bit of research before continuing on or you feel that you know better and you want to tell Chad gbt and see how it might tune things a little bit differently um so same thing with node.js you might read that and say like what's the JS part maybe that's JavaScript right says with Express well what the heck is Express so you can go look into this kind of stuff um maybe the the phrase or word database is familiar to you but you're like I don't know what is right um using Mongoose for object modeling very nice um so again you might say hey this actually seems like a cool one and it's going to talk about the skills orn which is even even better give you some guidance but you might say this is actually pretty cool I did a little bit of reading I understand these things but you know what I don't think mongod DB from what I was reading about everyone seems to be talking about postgress I don't know what postgress is but everyone's talking about it so maybe postgress would be better for me and you could maybe go take this and say hey chat GPT based on option one could we try like what would happen if we wanted to use postgress instead of mongodb let's actually try that right just to I'm not going to go maybe I won't go through all these just because it's a little bit Overkill but um we can say hey uh I won't say hey to chat GPT it's too casual um based on option one I'd like to try this project but use post instead DB what will this change or the design and goals right so you can if you don't know you can go ask it right and we'll see it's wrting a lot of stuff again I'm not going to go through all the details cuz I just want to show you guys some of like the patterns and stuff that you can play around with this is a huge set of results wow okay starting from the top um so instead of using a a nosql database like mongodb you'll use a relational database and again if you're brand new you might go oh man what am I getting myself into here like what are the what are these things so you can keep asking chat GPT to explain these things or you can start searching on the internet because now you might say well it's one or the other well which one do I want what's what's better right it's a comparison so automatically what's better and it's not that there's going to be one that's better or worse they're just different things so you might go do some research on this and maybe you'll want to ask chat gbt like maybe you can't find a good answer online about what's a better option for I'm going to use air quotes here like employee ability like what are people looking for when they're they're trying to hire so you can try asking and get it to explain more but the point in all of this is just ideation and I want to be clear about that it's not to say here's the absolute best answer or anything like that this is just to get you off your butt starting to code something and one last thing I'll say about this is if we go back up to these projects if you were like this sounds cool but like that just seems overwhelming like that's just too much stuff going on like can I start smaller one thing you could do is say base on the first can we scope it down to be a smaller so I'm just telling chat GPT hey that sounds cool but like it might be a little bit too much now it is going ahead and giving you even more stuff and it's it's even writing code um when that's going to be a little bit more that we'll get into in a moment um now I might as well mention it because it is spitting out so much code here but when you're doing this kind of thing with chat gbt I want to caution you that the the goal in doing all of this is not to have ai go do all of the work for you when you're trying to learn stuff and I want to be very clear about that because it's the exact same let's pretend you have a sibling okay so you want to get into software engineering and you have a sibling that is I don't know let's let's assume they're older or else this is super unfair but they're they're 15 years older than you and they've been a software engineer for 15 years and your goal was to learn software engineering right and you're like I want to go build stuff but hey like hey sibling you got 15 years can you just build it for me and they're like sure and they do it in a day and they give it to you like what did you get out of that you got a personal website based on this project right but you didn't learn anything from it so I want to caution you like it's okay to take code Snippets and stuff from chat GPT or stack Overflow and stuff like that but you do want to make sure you're spending time getting stuck figuring things out because that's what you need to do to learn I can't overstate that you don't just want the answers even though it might seem like you do you don't just want the answers you actually want to spend time getting stuck learning moving through stuff it's it's actually so I I mean this totally seriously it's something that I have to coach even other Engineers that are in Industry so in let's all give you a situation if we have team of Engineers right there's going to be people that are more Junior up through maybe like you know principal level so you have a whole range say we bring on a new person to the team that's very Junior when someone is going to help that Junior because that person might be asking for help they're getting stuck on things I have to coach people to say Don't just give that person the answers because when you just give people answers for everything they do they're not learning how to problem solve and they will and it's not their fault they will just keep coming to you for answers you're giving them the shortcut right if this person always answers for me why would I do anything else they're basically doing my job so there's what's the there's a saying like teach a teach a man to fish and like he'll how fish for life kind of thing like you want to get people to learn and that's why I think it's important if you're going to use AI for kickstarting your projects and stuff if your goal is to learn you don't want to say hey chat GPT go code the next file for me spits it out copy paste hey chat gbt go code the next file for me copy paste you just won't learn if you're getting stuck on parts of it absolutely go ask it for help and it's fine if you're copying and pasting the code but you need to spend the time going through it and learning it so I'll shut up about that I wanted to make that point clear um let's go back to the article I'm probably going to share my face again um uh refactoring is another one so I'll jump to this section I just want to have a quick peek at what I wrote here and then I will go back to showing my face Maybe actually Visual Studio we can look at some other code um yeah let me let me go back to my face disappearing act every time I live stream I keep telling people I'm going to fix this and then I don't but here I am um so on refactoring um when we're talking about sort of productivity for software Engineers something to think about is that we can basically speed up doing mundane tasks and refactoring depending on what you're doing can be a very mundane task right um some things that I'll walk through in just a moment I've had situations where I've written out say um I was prototyp I do this a lot a lot of my career's prototyping code and I know the patterns that I want to use in a good design but sometimes I'm just trying to do it fast and it's a total acknowledgement I'm just doing it fast I want to see if I can get a result I'll come back clean it up whatever um maybe I'll just blow the code away because it's not what I want to do but the point is that there's going to be situations where I go ah okay like this was actually mostly working I don't want to fully rewrite it I just want to clean it up and a good example if you're not a c programmer I'll explain it briefly there is something called link l n q in C some people love using it others hate using it depending on how and where you're using it it can be a bit uh less performant so sometimes I have code that I have left around that is link and it's on a hot path of my code and I go ah you know what I should probably change this over to not use Link I can probably squeeze a little bit of performance out of it if I had to sit here and go refactor it myself it's going to be a little it's like just wasted time like the the benefit I'm going to get is pretty minimal especially in my own like hobby projects but I can just ask co-pilot hey go refactor this convert the link to loops and it will do it and then we can ask it for performance optimization so I'm going to jump over to visual studio we'll see if we can do this in a quick example I just want to double check the other sections and do a time check cuz I probably blabbed a little bit too much writing code faster maybe I'll combine a couple of these sections but um because I do want to talk about rubber ducking is one of the last sections and if you heard that phrase and you're like what the heck is Nick talking about stay tuned because it's a real thing but let me get over to visual studio in one second I just got to get this is the the program that was pulling up uh a dialogue and screwing up my whole stream I couldn't close it or I couldn't minimize it rather okay let's go back to full screen there's my face that was quicker this time okay so I'm in Visual Studio I'm going to make a new project it's not going to matter what it is I just need somewhere that I can go write code and have co-pilot be active for me um calling it co-pilot coding I don't know what we're going to build yet probably nothing fancy okay so this isn't an advertisement for co-pilot no one's paying me to say this that would be nice if they did also a Pepsi ad but if someone wanted to pay me from Pepsi that'd be cool too but co-pilot has dramatically changed how I program and if you watch my videos or even some of my live streams when I'm coding you'll see how good it ends up getting and it's not perfect there's a lot of room to go still but it it learns from the patterns that you are coding and if you have things that you're kind of repeating in different files in terms of the shape of your code not exactly you know copy pasting code it really picks up on the style and what you're trying to do so I want to think of a an example here if we had I wanted to show like a link thing that we can go refactor and actually maybe I will just go open something instead of doing it from scratch okay we had a live stream the other day where we were factoring some code let's see if we can go look at this so what this code is doing is not super important but we could say sorry I'm scrolling through here to find a good example this one also might not be good I want I need something a little juicier downloading videos we did this one this was also another live stream bunch of commented code this one's also reasonably refactored I should have prepared better for this right let's go find another one let's go find a gross one that I haven't played around with recently okay where is a good one by the way if folks have questions in the chat please go ahead like I said this is for you guys extension methods this one's innumerables I don't know how old this is okay I also don't like this one I'm just going to go back we're going to build something together and we'll do it quick so I'm going to do we're going to make something that's going to go download something from the internet so we get an HTTP client but see already if you if you're not used to using co-pilot you can see like the basically it's the prediction that's coming up on my screen right if I press tab now it added that line I'm just pressing tab as it comes up okay so it just wrote a little program for us by pressing tab I don't think that this is going to do anything in fact it probably throws an error because GitHub probably needs yeah there we go request for bid by administrative rules so it literally wrote a little program for us that was trying to go to to github's API and go fetch some data for us um so what's something we could do here maybe I can go to my own website and then I don't know we could go run a Rex on some stuff so I'm going to combine some different sections of my article this one's also going to show writing code and leveraging AI in this case co-pilot to do it so I could say um use a RX I'm putting it in a comment just so you'll this is like a way that you can kind of prompt co-pilot and it's like it's even just kind of coming up with what I want to say so I'll press tab there we go thank you co-pilot I can't find okay so there's a program now you'll see that I'm about to go Press Play I have no idea if this works and there's other things that we might want to be asking in just a moment but it literally just r us a program to go find all the links on my homepage and nothing right so did it work what's going on um this is why when you're and this is kind of one of the lessons in the article is can we just trust anything that it's outputting right it made it seem so simple it made it seem so simple I just kept pressing tab it kind of even told us the program it wanted to go right but now it's not working why so it's up to you to go debug and you might know if you're really familiar with regular Expressions you might go oh man like that rex that ain't going to work um so just to double check we did get content coming back right so that's that's the HTML for my website so definitely some links erri saying no it kills me when it autofills incorrectly I wish I could show you it's not doing it on this computer um at least not yet I have a bug in my co-pilot setup that when it has to put parameters on new lines it indents it with a full tab so if I if it autocompletes something and it will show me it properly but if I have to do parameter passing and it passes in say five parameters it indents each one a whole Tab and it keeps going deeper and deeper and I've had it autocomplete stuff where I'm basically just trimming away code for like 30 seconds trying to format it it's exactly what I wanted but I'm just trimming away okay so this Rex isn't working for us and why maybe it's because we got too much going on here with the SL a don't know but we'd have to go ask co-pilot we could do it a different way well that not work do I not have co-pilot chat on this one no maybe I haven't had to do this so I for the record I use two computers when I'm programming I switched over to my gaming machine because my microphone was not working co-pilot chat I don't want to restart Visual Studio okay here's what we can do we're going to flip-flop so usually if you're using co-pilot directly in your IDE which I should have tested before I did this there's co-pilot chat as well and you can basically highlight text and there's usually a menu for it or a shortcut on your keyboard and you can basically prompt co-pilot in a little chat to say hey I'd like you to go refactor this um so what I can do instead is I'm going to bring back over this window we'll go to chat GPT and we'll say the regular regular expression of this code is not finding so we can go tell it something's wrong and it goes into a lot of detail right Mouse click yeah I don't think I don't think that I have the uh the extension installed just to quickly show you I don't think it's in here I do have the extension installed on my other computer but I don't have co-pilot chat here and I don't want to restart visual studio um okay so it's gone ahead and it's given us another regular expression now chat GPT is generally in my experience very good at regular Expressions but regular Expressions no one's good at them no one's good at regular Expressions they're way too complicated like look at this thing look at this disgusting regular expression right it's just awful now I'm going to blindly take this I don't recommend you do that but I'm going to blindly take it and we're going to see if it works now and then actually put some groupings and stuff for us so it found a couple links but I can tell you on my web page I certainly have more than that for for link so it's not perfect but you can see that what it was doing instead of the original one was pulling out the href and the link text itself so basically it was just pulling out links to my YouTube channel great by the way I have a YouTube channel um but the point is with all of this is that you can use it to speed up coding but as you might have seen or noticed if I was someone that was very comfortable writing regular expressions or I knew a quick way to do this I might have just spent like five times the amount of time and effort trying to get it to do something and this is because it's not going to be perfect so this is one of the reminders in the newsletter I repeat over and over and over which is feel free to use this stuff to Kickstart ideas or do very mundane tasks but regardless always check the output you need to always be validating this stuff so if you said like hey I don't know anything about regular Expressions but it happened to find a couple it's probably good I would say like hey like go write tests on this thing right go prove that it works and does what you need right because if it doesn't now you can actually go back to chat GPT and give it the test cases and say hey this isn't look this isn't working here's a test case and you can get it to refine it and you can keep running your tests and maybe that's a good strategy for you regular Expressions suck in the first place they're a nightmare to use but hopefully you get my point here just don't blindly trust what it's saying um I wanted to show a refactoring example and I don't know without co-pilot Chad it's going to be kind of crappy because I want it to be able to do as as it was said in the chat I can usually right click on here and prompt directly in here and say go rewrite this and do something else instead so maybe what I'll do I'll bring this back over and I'll actually tell it instead of using we'll see what it writes so I'll read it out but instead of using a regular expression find a more optimal way to find the URLs now you can see that this is a completely different approach instead of using a regular expression and basically just treating the whole text as raw text and looking for patterns it's actually going to say go parse this thing and we're going to go through and find all the href nodes um and it's using HTML agility pack so it probably yep there it is explains what it is so maybe just to try it out and we'll leave this example right go back to the code I don't have HTML agility pack we'll install it here we go extra curly brace the dreaded extra curly brace okay so as predicted there are a lot more URLs on my on my homepage right so the point here is that we've asked it to do basically the same thing we just said we still want the links just go use a different technique and it gave us a completely different result so you do need to go validate whatever llms are spitting out at you yeah so uh in the chat here so hey Nick in your news this is where I'm going with this next in your newsletter you mentioned not to past company secrets into llms can you explain a bit more about what you mean by that if you're using co-pilot you don't really have control over data which is PM because it used data from the open tabs also there's a li limit here in YouTube chat for characters oh yeah that's okay um thanks Lucas yeah so I want to talk about this part next I'm going to go back to the full camera so apologies cuz I disappear temporarily when this happens and then I will come right back as promised okay um yeah so the next part of the newsletter before I get over to rubber ducking to wrap things up we're going to wrap it up with rubber ducks you when you're using llms and this isn't I should preface this to this is not unique to llms it's just much more pervasive now that we have llms that are basically like give us the answers um if you're using so it's a little bit different for me at Microsoft I'm not I'm not going to go use chat GPT but I have co-pilot at work it's built into everything we use so I'm going to be using co-pilot at work because it's built into our tooling if you are I'm going to use chat GPT as an example here so unless you're working at open AI when you're taking stuff that is private to your company right your source code internal documents anything that is intellectual property about where you're working and you take that you copy it and you paste it into any external tool I don't care if it's an llm any external tool you don't want to do that because now you have to have full trust your company has to have full trust with wherever that data is going and how are you going to guarantee that because you probably can't so don't do it um and that's going to be the same thing for chat GPT right like I said with llms and stuff it's a lot more pervasive just because it's so accessible to us and those things give us answers you're like hey I got this code it's company code I want to rewrite it I want to convert it to a different language that would be a cool experiment we should have said hey go write rewrite this um C code in JavaScript right like you can go do all of that stuff with an llm and it's super powerful but when you're taking intellectual property from outside of your company and putting it into other tools you don't want to do that and I'm not saying it's because chat PT is malicious or some other llm some other company is malicious it's not about being malicious when you're taking intellectual property from inside a boundary and putting it somewhere else no bueno don't do it find a different way and there are techniques you can do but it's going to take more work on your side so for example with the the Rex thing we were doing let's pretend that was proprietary code that I had taken out of the code base and pasted it rating to Chad GPT instead of doing that I could say hey chat GPT I have code like you you describe it I have code that uses a regular expression to go find links could you go rewrite this for me right you find a way to describe it that has nothing to do with intellectual property I think that's critical but you have to do that with anything that you want to be able to transform to put into something like Chachi BT or any external tool so the other thing to mention though is I want to go to Lucas's question more specifically right if you're using co-pilot you don't really have control over data which is passed to the L ofm because it use data from the open tabs so the point that I want to get across here is that um like if you're say you're we're going to refer to your organization you don't get to as an individual unless it's your company you as an individual don't get to make a decision about what's okay to go out into different tools and stuff like that it's generally like a you know company policy security compliance anything like that people are going to have to make decisions about that and if your company has said hey look we want to allow co-pilot we're okay with that we understand the implications of that and and again I'm not you pick co-pilot pick any tool it doesn't matter we're talking about llms here co-pilot's a good example maybe even they say like we're okay if you use chat GPD my point is that you want someone at the organization level to say that has the authority to do this this is okay with our standards but until someone signs off on something like that you want to assume it's not okay you don't want to do it so Lucas to your point like yeah you don't get to control what's sent over so basically if someone in your organization did not approve use of co-pilot don't use it right we have even I I I don't have the list but even at Microsoft um what a couple weeks ago on our team we were talking I can't remember what the tools were sorry this is a terrible example but it's relevant we were talking about like tools like PDF viewers and stuff like that and we were saying like hold on like I can't remember what the program was but like is this actually an approved program that we can go use and outside of work whatever the program was it's like yeah we use this kind of thing all the time but like is it approve for us to use it's a genuine question because now we have to start understanding how our internal data can be handled by these tools so that's really the point so Lucas I don't know I I don't want to feel like I'm glossing over what you're asking so if you would like me to try and uh explain that in a different way I'm happy to try and do so uh but the point was sort of General right it's it's not here's how you sneak around it or anything like that it's more about uh sorry I was waiting to see if luk was going to respond but Sergio had a great comment here for this reason and this is this is a wise prompt engineering technique for this reason at the end of my prompt I always say shh this is a secret that's right you let the llm know that it's a secret and then that way it keeps Hush Hush about your data that's awesome Sergio yeah so the the two like do not do these things from my article that I wrote about was one blindly trusting data or output right you don't want to do that number one because it's probably wrong that's okay because it gives you a really good starting point the second part to that though is especially if you are learning right I I think it's such a cool time I know the job Market's very challenging but it's such a cool time to become a software engineer right now because these types of tools they can go generate code and stuff like that explain things to you this is so wild to me it's such a cool powerful thing but the danger is if you just take what it says and just trust it and you don't do anything else beyond that hey chat GPT go build me a whole website here you go like you're getting things done but you're not necessarily learning how things work to be able to do them for yourself to be more productive and when chat GPT gives you something that you don't understand or it's not working you've not built up the skills to go understand it further so I'm not telling you to not use it for your development or use AI for your development I'm just saying that you want to spend the time understanding what it's outputting so that's one thing do not do the second part was about the company intellectual property don't go doing that okay the last part and by the way uh usually I wrap up at around 10:30 my time so in about 10 more minutes but if folks have questions I'm happy to stay on and just answer questions whether it's about Ai and software development C programming in general software engineering in general please by all means jump in if you have questions um but I'll wrap up with this idea about rubber ducking and I love saying it because for people that haven't heard it before they are probably still going dude what the heck is rubber ducking Thank You Pepsi okay Robert ducking you might not have heard the phrase but I can almost guarantee that you've done this before can you think of a time where you were stuck on a problem and you're like okay it's time I have to go ask for help on this I have to I'm so stuck I just don't know and you finally build up the courage you're like I'm going to go talk to Joe on the team about this or Sally whoever I'm going to go talk to them and you walk up and you go okay Joe sorry to bother you but you have a few minutes I got a problem and Joe's like yeah sure happy to help and you go okay so and you get about five words into describing it and you go oh yeah I figured it out and Joe's looking at you like and you go thanks Joe I'm going to go back to my desk I figured it out thank you and basically Joe solved your problem by doing absolutely nothing nothing and it's fascinating because you were able to solve your problem literally just by explaining what the problem is and most of the time we don't even get through the whole thing and it just clicks out of nowhere so ex coding in the chat saying ask the rubber ducky Joe is the rubber ducky and that's exactly it so the idea I don't know what this phenomenon is called outside of this context so anyone who's into psychology or anything like that there's probably a good phenomenon or a name for this phenomenon but uh I feel like it has something to do with when you are explaining something you basically are re-evaluating what the problem is through a different pathway in your brain and by doing that because now you have to think how how can I explain this to Joe so you literally have to think about it a different way and just by doing that it's a way that you haven't thought of before and it guides you through and you happen to find a different path and come to a solution I'm not a scientist but I think something like that's happening but it's a real thing that happens so where the rubber duck situation comes into play is you get a little rubber duck or you can use any figurine or something else to put on your desk it could even be a Pepsi so you can go put a Pepsi anything you want on your desk and when you're stuck on problems you look at that thing and you talk to it and it seems ridiculous seems ridiculous but how ridiculous was it that Joe could solve your problem without doing anything right it just gives you an opportunity to talk to something and you end up solving problems by doing it so so X coding saying the concept occurs in other fields as well where logic is applied yeah I can imagine so like I've been been stuck in programming for a long time but I could absolutely imagine if you were in any industry and you were stuck on something right you're stuck on something you've been thinking about it you can't solve it and as soon as you go explain it to someone to ask for help you know this doesn't happen all of the time obviously but it happens a significant amount of times uh enough that there is this concept of rubber ducking so that's rubber ducking it is a real thing how does chat gbt work right soing I just see the person and it clicks yes basically if you if you use a person as a rubber duck and enough sometimes in your head you're like I'm looking at Joe I'm mentally preparing what I want to say to Joe and that's enough right you think about what you want to go say and that's enough of a different pathway in your brain that you come up with a solution um actually funny story about this I had an intern six years ago or something like that and very new to programming um in the beginning of her internship I don't I'm I'm not saying this to speak poorly of her cuz she did excellent by the end of her internship ship the beginning of her internship I could tell that she wasn't diving into problem solving as a first step she would get stuck and basically ask for help it's it's exactly what I said earlier right ask for help and if someone gave her help right away then she knew that she could just ask for help and I remember uh working with her mentor and saying hey look like this is a pattern that's coming up and he was like y I observe it too and I said I think we have to do a little bit of a change here so instead of us kind of moving her along let's just actively say like out loud we'll say to her what have you tried so far it's very simple cue that you can use and uh so any level of software engineer that you are right if you are working with other people that come to you and ask for help this is a super easy cue that you can use in your conversations it's not dismissive and it actually helps train people and I'll explain this so you say to someone who's asking for help well what have you tried so far very simple and if they've tried nothing you can either say oh do I need to clarify something for you like maybe it's something you didn't understand and that's why you can't make progress that's fine clarification I think is a good opportunity to just kind of jump into answering things but if it's not they're like no I understand I just don't I don't know what to do I would say we'll go try something and in this particular case with this individual well what had happened was after a few times of doing this I can this was still in the office I can remember her turning in her desk and she would like as soon as we made eye contact it's not like she was turning away in fear but she was like oh like okay I know because she was basically training herself that she had to come up with what she tried so far and she hadn't and she would go do it and by the time that she had tried things by the end of her intern ship and she was in the groove of this she had tried things and she was basically rubber ducking by making eye contact and going that's what I want to say to Nick I think I know what to do and it happened all of the time towards the end of her internship and it was really funny to watch because you could literally watch like all the gears turn on at the same time and she'd solve problems so it's a super cool thing oh wow hey Peter good to see you on it's great that you made it um so that's the idea with rubber ducking and how does AI come into play here well the one of the downfalls with rubber ducking is that if the rubber duck doesn't work right away for you you can keep talking at it but as you might expect the rubber duck never says anything back unless you have a very special rubber duck in which case you might want to get that checked out but the rubber duck doesn't say anything back so sometimes inevitably you get stuck but if you have an llm the really cool thing that you can do is you can basically have the conversation with the llm again don't want to put company IP into the llm this might be a good opportunity even if you're thinking about it in a more abstract sense you might even solve your problem doing that but basically you describe your situation to the llm use it as a rubber duck and it's going to say things back to you so instead of you getting stuck there even after rubber ducking it might give you some other things to think about and you can keep going back and forth and just having a conversation because when you're trying to problem solve like truly you're trying to arrive at an answer of course but how you get to your answer I would say a lot of the time is just as important as the answer itself and you might say well Nick I disagree with that if I just had the answer I wouldn't be wasting time true true statement but if you're understanding how you're getting to that answer the next time you have similar problems you will be faster at solving those problems with repetition right so I do think that it's very valuable to build up the skill of how you navigate and get to the answer and not just find the answer and I think that you can leverage llms in a way that is superior to just rubber ducking if you experiment with this so those were the topics so we saw some some beginner project ideas right so you can ask an llm for some help here's what I'm trying to achieve remember the goal is learning so here's the things trying to achieve whether it's web Tech if it's games if it's mobile servers anything you want give it some context ask if you don't know what language you want to use say hey what what would you recommend by the way there isn't a right or wrong answer the point is that it's going to set you off in some direction to get started and you can ask for a little bit of guidance so it's no different that when people come to me they'll send me a DM and they'll say hey Nick I'm just getting started what's the best programming language to use it's obviously C no I'm just kidding but you know like what's the best one to use and I'm like I for what but people don't even know know that yet like it's just a tool right they just they're looking for shortcuts oh Nick you said um I have to go build projects but I don't know what Tex stack to use I'm like I don't either I don't know what tech stack you want to go use I can't just like I can go tell you things but there's there's no value in that because I don't know what you're trying to achieve right do you want to go learn a tech stack just because okay pick any of them do you want to pick them because certain types of employers are looking for them okay well I mean go do the research you can find that out so it's a like it seems kind of silly but you know you can go ask and llm all the same things that you DM meme I just have different human experiences than the llm so we can ask llms for project ideas we can look at refactoring we can look at generating code in both of those cases we don't want to blindly trust what being spat out by them you do need to understand what's going on and then one of the last things we talked about was rubber ducking as well so a whole bunch of different stuff you can do I think that if you are experimenting with these things trying them out um if you're not able to use llms and stuff like that at work because of different policies and things like that in your side projects in different opportunities I would say try it like in my own personal projects I don't care if an llm is going to learn based on my code sorry for sorry for the people that get uh my the the train data for my code um but like I don't have secrets in there it's uh I don't care take it um but that's a decision I'm comfortable with so whatever but I would recommend if you are comfortable with this sort of thing try it out because if you completely avoid everything that's AI this is personally something I feel like you will probably have regrets about that later because you'll be seeing everyone else using it you'll be seeing it become built into a lot of productivity workflows and if you're kind of resisting that it's happening this is where you might find that some of your skill sets and the processes and things you're doing are becoming obsolete or at least less effective so that's it on the llms you're welcome Yuri thank you for being here I do appreciate that I'm happy to take questions so I'll wait a few more minutes to take questions generally what I do at this point in time because it's the end is unless you have questions I just talk about courses and stuff I have cuz I don't like pitching things I feel kind of gross having to be salesy but oh no where's my face come back there I am um but I do have courses for sale they are on C so if you aren't aware I do have courses on dome train I currently have three I'm a about to go start on the fourth one and there is a fifth one after that both of those other two should be out by the end of this year pretty easily I'm hoping the next one is within uh within a couple months but these two getting started in Deep dive there's a bundle where you can get these discounted together if you've never programmed ever before the getting started in C one takes you through basically never having coded and getting up and running having some basic programs in C the Deep dive Builds on that these together are 11 and 1/2 hours of course material I never promise that people become experts after taking any course because it's impossible you don't get expertise or build Mastery unless you're practicing so in all three of my courses one of the very first things I say is code alongside me and if you code alongside me and that's only 11 and 1 half hours you're still going to need more hours to become an expert so I do think that this will set you off in the right direction I think that you'll be able to build basic applications after these two but expertise will take time so I don't want to set you up with false expectations no one can do that sorry the refactoring one is something that I'm pretty passionate about I've spent a lot of time in startups uh only four years now in big Tech but uh I spent enough time in startups where the code I wrote became the Legacy code which is a a gross feeling but um it's life we spend a lot of time in Legacy code so a lot of time having to refactor Legacy code um when you're rapidly growing as a startup and your code base is rapidly changing because of customer requirements and things like that you're going to have a lot of stuff where you're like this is working but it's got to change how do we keep it alive so refactoring is something I spent a long time doing so I tried to pour that knowledge into this refactoring course but I do have these three available right now like I said two more on the way possibly even a third but I'm talking to Nick chaps is about how we would structure that one so stay tuned for that checking out Peter's comments here so yeah all them are very good with talking about Big Ideas and stuff the problem starts for me when I need more specific knowledge I do agree yep like I spent last week uh talking with GPT about render elements yeah and especially newer things right newer Things become more challenging let me go back to my full camera I won't try to pest through you guys with my courses um here I am so yeah newer things can be like it's not trained on some of that stuff so it doesn't have the knowledge to be able to just share that with you so sometimes it's challenging so using plugin architecture was I'm not going to say that word Peter it's pain in the butt uh so awesome yeah so yeah you're welcome for the videos hopefully they help um but yeah I'm I'm not going to give any spoilers but I'm hoping the coures is help with that kind of stuff too in the future but we'll see um yeah let me know folks if you have any other questions I don't think I see any more across any of the chats I have pulled up Tik tok's trying to end me they said there's no activity guess I didn't have enough people join me on Tik Tok awesome okay well thanks folks I do appreciate you tuning in um I will be doing another one of these next Monday same time and I am trying to do some live streams coding during the week so if you haven't subscribed whether it's on Twitch YouTube LinkedIn Twitter wherever you're watching this I would say if you enjoy this kind of thing and or you want to see live coding do follow along and hopefully you can see when I go live I haven't planned out the live coding sessions like I have this recurring Monday one so it's a little bit more hit and miss but um I try to get on live and code when I'm putting YouTube videos together I found that's been a pretty good strategy like I got to spend the time in the IDE anyway building educational content I might as well have people kind of go alongside me so all right folks thank you so much I appreciate you being here and well

Frequently Asked Questions

What is the main focus of the live stream about AI for software developers?

The main focus of the live stream is to discuss how software developers can leverage AI to enhance their productivity and coding practices. I aim to provide actionable insights on using AI tools effectively, rather than just teaching coding.

How can I come up with project ideas as a beginner software developer?

As a beginner, you can ask AI tools like ChatGPT for project ideas by providing context about your skills and interests. For example, you might say you're looking for beginner web development projects and specify the technologies you're interested in. This can help generate tailored suggestions.

What should I avoid when using AI tools for coding?

You should avoid blindly trusting the output from AI tools. It's important to validate the results and ensure you understand the code being generated. Additionally, never input sensitive company data into AI tools, as this can compromise your organization's intellectual property.

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload