TL; DR:
- NEW COURSE HAS DROPPED!
- AI tool reliance is sweeping!
- Join me for a live stream on Monday, November 18th at 7:00 Pacific
New Course: Getting Promoted as a Software Engineer
I'm happy to announce that Ryan Murphy and I have launched our second course together: Getting Promoted As A Software Engineer! This course is available NOW on Dometrain and both Ryan and I were excited to collaborate on this one. We know that for many software engineers that it's top of mind to understand how to navigate working up through their career levels. We're here to help.
But it gets EVEN BETTER: The Black Friday discounts are LIVE and you can get 40% off (YES, FORTY) with the code BLACKFRIDAY24.
If you're interested in the other courses available on Dometrain, just keep in mind that code works for those too!
What's In This Issue
Exclusive Article: AI Tools Are Wrecking Junior Developers!
Everyone Is Using AI Tools!
We see it all around us, but everyone is jumping on the AI bandwagon -- it's not news anymore. However, it's an interesting paradigm shift that seems to be happening before our eyes.
Earlier this week I made a video responding to a Reddit thread discussing this, and I figured it would be a good newsletter discussion as well:
In the Reddit thread, the original poster talks about a junior developer joining the team and they seemingly can't seem to write any code without using an LLM. They're pretty frustrated by this and questioning what the heck is going on with junior devs these days.
The reality is the AI tools we all have access to allow us to create code faster than ever before. And I chose my words carefully there because I didn't say "Make the best software possible faster than ever before". But truly we can provide some general parameters for software to an LLM and it can come up with a (mostly) working version of something in any language we want.
For new developers, this allows them to leap-frog ahead in terms of things that they can create. Instead of a normal frog, it's like a frog with a jet pack. You might not even need to research a tech stack and you can have functioning code in a matter of minutes.
Are there tradeoffs to consider here though?
Is This Actually A Problem?
We're software engineers, so we know by now that everything has pros and cons. There are always tradeoffs.
The biggest tradeoff I see with heavy reliance on LLMs is the risk of missing out on learning and understanding. And I say that not because LLMs do not allow you to learn and understand, I say that because you can get answers from them without learning and understanding.
In fact, I think this is probably something that many developers with experience at this time are probably getting caught up on. How can we expect junior developers to get ramped up and follow in our footsteps if it seems like they're just cheating and not actually spending time learning?
Aren't we the ones promoting to go build things, get stuck, fail, reflect, iterate, and learn so that we can get better?! How is a junior developer ever going to do that if they can just ask for the answer right away?
On the surface that all seems risky to me, so I'll add a call to action here:
ACTION: If you are using AI tools to build things that you don't fully understand, take some extra time to understand it. Ask the LLM why it made choices. Ask it to explain how things work. Don't just blindly trust and accept -- put in the effort to learn.
With that said though, I am trying to keep an open mind around this -- who is to say that these developers aren't going to end up being far more effective than many of us ever were just because they have access to more advanced tooling? Personally, I am interested in seeing the future of this and how things evolve.
How I'm Using AI Tools
Over the past year, I'm using AI tools more and more heavily. While I haven't built my own AI agent army to code all of my pet projects yet (maybe some day), it's become an integral part of how I write code.
TIP: Copilot for predictive text and code generation can be a HUGE time saver
I remember joking before that I can't code outside of Visual Studio because without the auto-complete, I fall apart. It's true though -- I don't notice how much I rely on the Intellisense in Visual Studio until I don't have easy access to it. It's not that it changes how I think, but it significantly reduces the time needed for me to write my solutions.
I had an eye-opener recently though -- my Copilot plugin stopped working! I realized after using it for only around a year that I have become so accustomed to how it completes my thoughts that even though I had Intellisense, it was an even BIGGER impact than losing something like Intellisense.
TIP: ChatGPT can do wonders with regular expressions!
Nobody likes writing regular expressions. Well, if you do, you're a special breed.
I understand how regular expressions work but I would never call myself an expert. I know that any time I need to use them, I'm going to be messing around trying to nail down the pattern matching for a while. But our good friend ChatGPT I've found does an amazing job at writing regular expressions. When it messes up, I can provide it with more examples to operate on and usually it does a good job of improving.
I even find that it creates regular expressions that I am not familiar with -- so it's a GREAT opportunity to ask it to explain itself.
TIP: Use ChatGPT for creating and optimizing SQL queries!
I know that many .NET developers love using Entity Framework Core, but I can't help that I like having my SQL queries right in front of me! Some day I'll change, but until then, I like using Dapper and writing my own queries.
I've found that I've had pretty good success going back and forth with ChatGPT on moderately complex queries. Because I don't spend the majority of my time writing SQL, it's often that I know what I want to do but recalling the syntax isn't obvious. My good pal, ChatGPT can do it effectively for me though!
I've found that I can get it to debug problematic queries with a relatively good success rate. If I can point out the issues I observe when running the query, it does a pretty good job calling out issues -- including debugging performance challenges and optimizing!
I have certainly had issues with overly complicated queries though. Especially if they get long, I've observed ChatGPT just removing entire portions of the query in some responses like it never existed. Be careful!
Final Thoughts
If you want my personal belief on AI tools being used by juniors:
- I think they are an incredible tool for productivity
- I would encourage people to still be curious and learn more about how things work -- so find ways to do this even if you're heavily using LLMs
Always remember to make sure that you're only using AI tools approved by your company with proprietary information. This could be a big problem if you're forgetting about this.
With that said though, keep playing with tools that make you more effective. Ask questions when you're working with things you don't understand!
- Join me and other software engineers in the private Discord community!
- All of my weekly vlogs are on YouTube!!
- My Code Commute vlogs are on YouTube!!
- Remember to check out my courses, including this awesome discounted bundle for C# developers:
Weekly Recap
It Couldn't Be Easier! AppSettings.json In Console Applications
If you're familiar with ASP NET Core, then you're likely familiar with using appsettings.json files for your applications.
But... What happens if you want to use a console application and have the same type of configuration?
No sweat!
We can enable this functionality with ease -- only a few lines of code!
Switching Careers AFTER Being A Manager? - Principal Software Engineering Manager AMA
Someone had asked me this about being a manager:
Once you've worked as an engineer, working your way through senior levels and then becoming a manager, what happens if you find yourself laid off?
I want to generalize this from being laid off to switching careers.
- Are there even manager roles?
- Should I go back to being an IC?
- Aren't most managers promoted internally?
Let's discuss! I'll share my experiences and I'd love for you to come with YOURS!
As with all livestreams, I'm looking forward to answering YOUR questions! So join me live and ask in the chat, or you can comment now and I can try to get it answered while I stream.
Who The HELL Needs Documentation?! (YOU might...)
You asked - I responded!
What does documentation look like going into greenfield vs existing projects? What kinds of things need to be documented? What the heck are we supposed to do?!
The reality: it depends. But you knew that was coming, didn't you?
LIVE CODING - WordPress Migration to Blazor - PART 4
It's time! WordPress on AWS LightSail has been non-stop problems for nearly 2 years now.
Time for a change.
I'll be looking into using LinkDotNet.Blog by Steven Giesel as my blog engine of choice. But migrations are never easy, so this will be the first of many sessions trying to figure out how I can get my blog setup before going live.
Remember -- I need to keep as many links active as possible so I don't ruin my SEO!
What's the BEST Way to Advance Software Engineering as a College Student?
I get asked this a lot through my primary social accounts and I've talked about this on my main socials... A lot. I think "Best" is the wrong thing to be asking here because it's not qualified. Allow me to explain.
As always, thanks so much for your support! I hope you enjoyed this issue, and I'll see you next week.
Nick “Dev Leader” Cosentino
[email protected]
Socials:
– Blog
– Dev Leader YouTube
– Follow on LinkedIn
– Dev Leader Instagram
P.S. If you enjoyed this newsletter, consider sharing it with your fellow developers!