Hooked on .NET
With Andrew Stellman
Welcome back 👋
Hello dear reader! I do hope you have had a delightful May.
I have been busy and have some updates for you. I have decided to take a break from developer advocacy and will be working full time on an indie game project with my husband.
I have almost completed a Game Producer training course which has been most insightful and I’m very excited to be embarking on this journey.
If you’d like to follow along, I stream both game development and game production on my Twitch channel. I have decided to pause the newsletter again as my time will be sunk into the game development side of things, but I appreciate you all nonetheless.
For this issue, I am delighted to have Andrew Stellman as guest author. Andrew coauthored Head First C# , a book that I believe helped me nab my first developer role.
Andrew is a developer, architect, speaker, Agile coach, project manager, world-recognized expert in transforming and improving software organizations, and expert in building better software. He is an author and international speaker with top-selling books in software development and project management.
Andrew is focused on helping people learn to code, improve their projects, and enhance their teams. Over the past 30 years, he’s architected and built large-scale software systems, managed international software teams, and consulted for companies, schools, and non-profit organizations. He has been referred to as “one of the industry’s best and brightest" (Dr. Dobb’s Journal, 2006). He’s had the privilege of working with some pretty amazing teams during that time, and likes to think that he’s learned a few things from them.
Andrew’s books (coauthored with Jennifer Greene and published by O’Reilly Media) include Head First C#, Learning Agile, Head First Agile, Beautiful Teams, Head First PMP, and Applied Software Project Management.
You can contact Andrew at https://www.stellman-greene.com.
Andrew’s Thoughts
Great developers keep learning.
C# and .NET look a lot different than they did when I first started using them almost 20 years ago. C#, for example, continues to gain new features, like records, lambdas, await/async. But the way we use C# is new, too. Method chaining has been around since the 1970s and we could have done it with C# 1.0, but it was rarely used in C# until LINQ was introduced.
My job, as the author of Head First C# and other books about software engineering and working with teams, is to help people become great developers, and part of that means helping them get comfortable keeping up with the C# and .NET as they keep growing. I’ve spent a lot of time thinking about how we learn new technology concepts, tools, and ways of working. I’ve got a few basic ideas that I’ve always stuck with.
It’s funny to say this, as an author, but you can’t actually learn to code from a book, or a video, or a class. Those things can give you valuable information, and help you learn important concepts, techniques, or ideas. But for most of us, there’s only one way we really learn, in a way that it sticks in our brains: by writing lots of code.
The trouble with writing code to learn is that you can’t just write the same code over and over again. It’s difficult to find a code equivalent to playing scales on an instrument, practicing sketches, or vocal, dance, or acting exercises, because all code does something, and a big part of writing code is solving problems in order to get the code to do that thing.
The actual physical work of entering the code into a computer is just a matter of typing. For example, a really good developer might spend hours working on a piece of code. If you printed it out, handed it to them, and asked them to type that code back in, it would probably only take a few minutes. So what did they do for the rest of the time? They were thinking about the problem the code is supposed to solve.
The hardest part of writing Head First C# is giving learners lots of practice. The Head First formula, which switches between visually rich learning, pencil-and-paper puzzles, and writing code, helps a lot. But the biggest challenge for me over the years has been giving our learners as much coding practice as possible. My job is to create coding exercises that lay out a specific problem for a learner to solve. When they write the code and solve the problem, they get practice with the concept that they just read about. The part of the book that teaches about the new idea doesn’t actually get it to stick. It’s only by writing code to use that new knowledge that a learner gets to the “a-ha!” moment where they really understand it. My goal, by the end of the book, is to help our learners get self-sufficient, so they can learn to teach themselves new ideas. Being a lifelong learner is the best way to become a great developer.
Great developers are lifelong learners. As C# and .NET evolve, so do the ways we use them. While books, videos, and classes provide valuable information, the real learning happens when you write code. It’s not just about typing; it’s about solving problems and understanding the ‘why’ behind the code. So keep coding, keep experimenting, and embrace the ‘a-ha!’ moments that come with practice. Happy coding!
The 5th edition of Head First C# will be published by O’Reilly Media in summer 2024. Keep your eye on our GitHub page for updates and free downloads: https://github.com/head-first-csharp/fifth-edition
Andrew’s recommendations
- There are so many amazing new features in C#, but I think my favorite right now is [Collection Expressions[(https://devblogs.microsoft.com/dotnet/refactor-your-code-with-collection-expressions/)
- If you loved learning about Unity with our Head First C# Unity Labs, you absolutely need to check out Unity Development Cookbook, 2nd Edition
- Check out .NET MAUI: Navigating the Cross-Platform Code Seas with Maddy Montaquila – and I want to give a big shout out to Maddy and her team, who were so incredibly supportive and helpful of my efforts to get .NET MAUI into Head First C#
- AI is such a hot topic right now! But there are a lot of traps you can fall into. Check out GitHub Copilot and AI for Developers: Potential and Pitfalls with Scott Hanselman and Mark Downie
- And keep an eye out for my next O’Reilly Live Training course, Prompting Copilot and ChatGPT for Code, which will be streaming September 6, 2024 at 10am-12pm PT.
What’s new and exciting?
- Everyone’s talking about .NET Aspire right now - we have previously and I have a great (IMO!) intro video to it: Cloud-native apps with .NET Aspire
- Debugging Enhancements in .NET 8
What to read 📖
Thoughts about primary constructors: 3 pros and 5 cons - I’ve just started using primary constructors and so far I like them for simple classes and it was insightful to read about the gotchas Andrew has discovered
9 Things You Didn’t Know About JetBrains Rider’s NuGet Support - as I get more into game development I’ve been using Rider exclusively - although I don’t use NuGet packages, many of you do, so check out this post by Khalid.
What to listen to 🗣
Episode 1900 with Scott Hanselman! - .NET Rocks has produced 1900 podcasts!! They celebrate this milestone with none other than Scott Hanselman. Enjoy!
The Magic of DAPR with Cecil Phillip - DAPR is a really interesting proposition for cloud development. DAPR community lead, Cecil tell us about the magic of it all.
What to watch 📺
The Bulkhead Pattern: How To Make Your System Fault-tolerant - I love learning new patterns for better software development and stumbled across this video by Derek Comartin on the bulkhead pattern.
New LINQ Methods in .NET 9 🚀 - I’m a fan of LINQ, when it’s thoughtfully implemented. In this video Patrick gives some easy to understand demos on the new LINQ methods all whilst parenting!
Adding Fingerprint Or Face Recognition To Your .NET MAUI App - something we all take for granted is the biometrics on our devices! Gerald shows how to add biometrics to your .NET MAUI app.
ME, Live on stream!! I’ll be live on Twitch.
Where to see me next 😎
-
VS Live! Online workshop - Building cloud-ready, resilient systems in .NET - June 4th to 5th
-
NDC Oslo - 2-day workshop and session - June 10th to 14th
-
KCDC - workshop with Alyssa Nicholl - June 26th to 28th
Before you go 👋
I do hope you’ve enjoyed the articles, videos, and podcasts we’ve shared with you.
Until the next time - thanks for reading!
Layla.