Latest / DevQuestions with Tim Corey / 237. How To Modernize Your Skills as a C# Developer
Transcript
- 0:00SPEAKER_01: What should you do to modernize your skills as a C developer?
- 0:05SPEAKER_01: That's a great question.
- 0:06SPEAKER_01: Technology is always changing.
- 0:08SPEAKER_01: And while you don't want to just chase after the latest shiny thing, you should keep your skills up to date in today's job market.
- 0:16SPEAKER_01: Whether you want to get ahead of your current job or you want to improve your current code base, or you want a new job in software development, modernizing your skills is an important step.
- 0:29SPEAKER_01: In this episode of DevQuestions, we'll talk about the four ways to improve your existing C sharp skills as well as the five modern technologies that you should be learning.
- 0:47SPEAKER_00: Welcome to the DevQuestiPast with Tim Corey.
- 0:51SPEAKER_01: Software development is more than just writing code.
- 0:54SPEAKER_01: So let's talk about the rest of it.
- 0:56SPEAKER_01: Specifically, let's talk about how to modernize your development skills in an ever-changing market.
- 1:02SPEAKER_01: And let's start with how you can improve your C sharp skills themselves.
- 1:07SPEAKER_01: I always recommend people go deeper in the language before they branch out into other technologies.
- 1:13SPEAKER_01: This is also true for modernizing your skills.
- 1:16SPEAKER_01: Before you add new tech, look to modernize your C sharp skills first.
- 1:20SPEAKER_01: Here are the four ways to modernize your C sharp skills.
- 1:23SPEAKER_01: Number one, learn about the new features in.NET.
- 1:27SPEAKER_01: Every year in November, we get a new version of.NET.
- 1:31SPEAKER_01: And while some people don't love that, the reality is that's what's happening.
- 1:36SPEAKER_01: Whether you like it or not, we're going to get a new version of.NET every year.
- 1:40SPEAKER_01: So learn about it.
- 1:41SPEAKER_01: Learn about why you should move to the next version, what benefits there are so you can make informed decisions and help your company move forward and say, yes, this is a good one to move to, or let's hold off a year.
- 1:53SPEAKER_01: Also, learn about the new features, the new ways things are done.
- 1:57SPEAKER_01: Learn about the new techniques and things that make your code more efficient, more effective, and cleaner and easier to read.
- 2:06SPEAKER_01: It's not just about the new shiny features, it's about doing things better with the newer versions.
- 2:13SPEAKER_01: Being able to do that and show an employer that will help you move forward because it's not just about where your employer currently is or where your future employer currently is, but where they want to be.
- 2:26SPEAKER_01: So being able to advise them on where they want to be and what to do and what to avoid is a really valuable skill.
- 2:35SPEAKER_01: Number two, learn to evaluate your code's performance.
- 2:40SPEAKER_01: This is something that really changes over the years, but it's really something that people miss.
- 2:46SPEAKER_01: They write code and say it works or it doesn't work.
- 2:50SPEAKER_01: And so they put code in production that says they say, yes, that worked.
- 2:54SPEAKER_01: But a huge skill and a really the next level up for developers is learning to evaluate your code's performance.
- 3:04SPEAKER_01: Not just does it work, but does it work well?
- 3:08SPEAKER_01: If you are working with a company that's putting their code into the cloud, where performance matters, where you're gonna pay based upon performance, or if you're working with a company where scale matters, where you want to be able to service more customers and supply a better system, a better result to your customers.
- 3:31SPEAKER_01: Well, the way to do that is to have better performance.
- 3:34SPEAKER_01: So knowing how to evaluate your code's performance is really valuable.
- 3:39SPEAKER_01: Not just saying, oh, I've memorized that these things are more performant, because the answer to most software development is it depends.
- 3:49SPEAKER_01: And that that thing that you think is more performant?
- 3:52SPEAKER_01: Well, it is in certain circumstances, and it's actually less performant in others.
- 3:57SPEAKER_01: For example, just running everything async is not the solution.
- 4:02SPEAKER_01: In fact, it can be detrimental to your code's performance to do that.
- 4:06SPEAKER_01: So when do you use async?
- 4:08SPEAKER_01: Well, you need to start learning those things, but also learning how to evaluate the results and say, yes, by changing this method over to be asynchronous, we have per uh improved performance, not just that we have changed something, right?
- 4:24SPEAKER_01: So knowing how to evaluate your performance will take your skills to the next level.
- 4:30SPEAKER_01: Number three, learn how to use minimal APIs.
- 4:34SPEAKER_01: And again, you may say, well, Tim, my employer is not using those.
- 4:38SPEAKER_01: That's okay.
- 4:39SPEAKER_01: Learn now because it's not about what you're doing currently.
- 4:43SPEAKER_01: We're talking about modernizing your skills.
- 4:45SPEAKER_01: And when you modernize your skills, you sometimes want to move ahead of the industry so that when they start to catch up, you're there to help them do so.
- 4:56SPEAKER_01: Okay?
- 4:56SPEAKER_01: So it's not about just catching up with the industry.
- 5:00SPEAKER_01: It's about saying, where are things going?
- 5:03SPEAKER_01: And one of the things that's really valuable to a lot of employers is the ability to create RESTful APIs.
- 5:09SPEAKER_01: Knowing how to write RESTful APIs, knowing how to manage and build up on minimal or restful APIs is important.
- 5:18SPEAKER_01: Well, one of the things you want to come back to is not just how to write an API, but how to do so in a performant manner.
- 5:28SPEAKER_01: And technically, minimal APIs are a bit more performant, but that's not the real big thing.
- 5:34SPEAKER_01: They're also a lot cleaner in a lot of situations, not every situation.
- 5:39SPEAKER_01: This is where it depends again.
- 5:41SPEAKER_01: It's always going to depend on the situation.
- 5:44SPEAKER_01: But knowing how to use minimal APIs, knowing how to write them well, knowing how to make them performant, that's going to be a big plus on your resume.
- 5:55SPEAKER_01: Or when it comes time to talk to your boss about your skills.
- 5:59SPEAKER_01: So that's the third thing I would recommend when it comes to C sharp.
- 6:04SPEAKER_01: Number four is learn how to build a web app in Blazor web apps.
- 6:10SPEAKER_01: And again, we're talking about jumping ahead of the market a bit.
- 6:14SPEAKER_01: When you look at jobs today, you will see things like, like I said, RESTful APIs.
- 6:19SPEAKER_01: You're jumping ahead of minimal APIs.
- 6:22SPEAKER_01: You'll see things like ASP.NET Core.
- 6:25SPEAKER_01: Well, what is that?
- 6:26SPEAKER_01: That includes Blazor, but it also includes MVC and API and Razor pages.
- 6:33SPEAKER_01: So by learning Blazor web apps, you're kind of jumping ahead of the market because the market won't be there yet.
- 6:41SPEAKER_01: It's coming.
- 6:42SPEAKER_01: But what does Blazor Web Apps give us?
- 6:45SPEAKER_01: Well, it gives us this mixture of server side and client side applications that we can pick and choose and make a very performant web app.
- 6:56SPEAKER_01: So by learning this and being prepared with this, you will have the skills and experience necessary to say, I think this is a good solution for Blazor Web Apps.
- 7:06SPEAKER_01: Or I think we should do this inside of Blazor Web Apps to solve that problem effectively, while also leaving us open to the ability for the ability to further expand what we're doing by adding these pieces later.
- 7:21SPEAKER_01: You're thinking ahead of the company, you're thinking ahead of the curve, and you're saying, I'm prepared to take you to the next step.
- 7:30SPEAKER_01: Okay.
- 7:31SPEAKER_01: So those are the four things I think inside of C Sharp you should be doing to modernize your C sharp skills.
- 7:37SPEAKER_01: Prepare yourself to be ahead of the curve a little bit when it comes to enterprise and corporations and business in general, because those organizations tend to move a little slower.
- 7:49SPEAKER_01: And so by getting ahead a bit with certain technologies, you can be ready to help them move to the next step.
- 7:58SPEAKER_01: Now, let's talk about five modern technologies you should be learning as well.
- 8:04SPEAKER_01: And by the way, I have gone through hundreds of job postings on Indeed and other places where I've looked at what are people actually asking for?
- 8:15SPEAKER_01: What are people looking for for C sharp developers, for.NET developers?
- 8:19SPEAKER_01: What do they want as well?
- 8:22SPEAKER_01: Because what you want to do is you want to set yourself apart as being a great C sharp developer.
- 8:28SPEAKER_01: But sometimes you'll be compared with other great C sharp developers, or at least on paper, great C sharp developers.
- 8:35SPEAKER_01: So how do businesses decide?
- 8:37SPEAKER_01: Well, they also look at secondary things and say, hey, this person does C sharp.
- 8:42SPEAKER_01: That's great.
- 8:42SPEAKER_01: That's what I'm looking for.
- 8:43SPEAKER_01: But they also do this other thing, and we're looking for that too.
- 8:48SPEAKER_01: I could hire one person that gives me two different skills.
- 8:52SPEAKER_01: That's kind of awesome.
- 8:53SPEAKER_01: And so having additional skills that complement your primary skill is very important.
- 9:00SPEAKER_01: So based upon what I've seen in the industry, based upon my conversations with people about what they're looking for when it comes to these positions, here are the five modern technologies you should be learning.
- 9:12SPEAKER_01: Number one, DevOps.
- 9:13SPEAKER_01: So learning things like GitHub Actions or the CI CD process in general, uh, learning about Azure DevOps and that whole platform, learning how to write YAML, learning how to create automated environments so that when you say, hey, I've got this new pull request, it automatically stands up a new environment to test that pull request.
- 9:38SPEAKER_01: Things like that are huge because while this used to be a separate job, right?
- 9:44SPEAKER_01: It used to be a separate network team or the server team that took your code and deployed it.
- 9:51SPEAKER_01: Now it's starting to bring its way into the software developers realm where you might be writing code, but you're also writing the automation systems to take that code and put it into the various environments.
- 10:07SPEAKER_01: So learning how to do that well will be a valuable skill.
- 10:11SPEAKER_01: Number two, modern SQL.
- 10:14SPEAKER_01: Okay.
- 10:15SPEAKER_01: So not just simple queries.
- 10:17SPEAKER_01: That's great if you can write a select star from table, but that's not nearly enough.
- 10:22SPEAKER_01: Here's what I'm talking about.
- 10:24SPEAKER_01: Learn to do performance evaluations on SQL code.
- 10:29SPEAKER_01: Okay.
- 10:30SPEAKER_01: Learn to write more performant queries.
- 10:33SPEAKER_01: Now, why?
- 10:35SPEAKER_01: First of all, when it comes to C Sharp, SQL kind of connects with it pretty easily.
- 10:40SPEAKER_01: You'll see a lot of business environments that have C Sharp will have Microsoft SQL.
- 10:45SPEAKER_01: So learning though that connection is valuable.
- 10:49SPEAKER_01: But going beyond just I can write a select star to I can write performant SQL, I can evaluate the performance of SQL and write better queries based upon actual information, hugely valuable.
- 11:01SPEAKER_01: You may have heard the term accidental DBA.
- 11:05SPEAKER_01: And what this term is about is the fact that organizations might start off with just developers and they want to build an app.
- 11:14SPEAKER_01: And they kind of forget about the fact that the primary purpose of an application is data.
- 11:20SPEAKER_01: It's to capture data, it's to process data, it's to display data.
- 11:25SPEAKER_01: You know, the full crud action.
- 11:27SPEAKER_01: That's the primary purpose for most applications, is just data.
- 11:31SPEAKER_01: And yet that's a thing they don't really focus on.
- 11:34SPEAKER_01: They focus on let's get the UI in place, let's build the business logic, let's create all these things.
- 11:40SPEAKER_01: And they kind of leave the database as just, well, anybody can do a database, right?
- 11:45SPEAKER_01: Because it's just a bunch of tables that you put data into.
- 11:48SPEAKER_01: It's a lot more than that.
- 11:50SPEAKER_01: But what happens is organizations figure this out and they go, ooh, we need someone to maintain this database, someone to look out for problems, to administer it, to kind of help us maintain and protect our data.
- 12:06SPEAKER_01: And usually what happens is there's one person on the team who knows a little bit of SQL or a little more than everybody else.
- 12:14SPEAKER_01: And they become the database administrator accidentally.
- 12:18SPEAKER_01: They're still a developer sometimes, but they take on more and more SQL responsibilities.
- 12:23SPEAKER_01: And sometimes that turns into they're just a SQL administrator, but sometimes they're kind of both.
- 12:31SPEAKER_01: But here's the real kicker.
- 12:34SPEAKER_01: When it comes to who's the most valuable employee in the department, it's not going to be the person who can do one thing, but the person who can do multiple.
- 12:43SPEAKER_01: It's if you have a whole bunch of people that are doing just one task and you're over here doing the one task plus a critical task that no one else can do, that's pretty valuable.
- 12:53SPEAKER_01: So while maybe you don't want to be a SQL developer or SQL DBA full time, having the ability to write good performant SQL data access code and performant queries and be able to test those things will set you apart.
- 13:10SPEAKER_01: It will give you a leg up in this industry.
- 13:14SPEAKER_01: This is what employers are looking for.
- 13:16SPEAKER_01: When they put secondary skills, Microsoft SQL, yeah, it's great to see, yeah, I can write a query.
- 13:22SPEAKER_01: But to be able to say, yeah, I can evaluate which query is better and tell you how to improve the performance of your database.
- 13:31SPEAKER_01: Because when it comes down to it, it doesn't matter how great your application is.
- 13:35SPEAKER_01: If your database is slow, your application is going to look slow.
- 13:40SPEAKER_01: So knowing how to manage that is really important.
- 13:44SPEAKER_01: Number three is containers.
- 13:48SPEAKER_01: Learn how to containerize your app, learn how to work with third-party containers, and learn how to get containers to work with each other.
- 13:57SPEAKER_01: Now, this can be Docker, and on your local machine it probably will be Docker desktop and just playing around with containers.
- 14:04SPEAKER_01: But some people ask the question, well, why?
- 14:06SPEAKER_01: Why are containers so valuable?
- 14:08SPEAKER_01: It seems like it's just a flash in the pan, you know, shiny object thing.
- 14:14SPEAKER_01: We don't really need it, right?
- 14:15SPEAKER_01: Well, actually, no, containers are the way the industry is going.
- 14:20SPEAKER_01: Okay.
- 14:21SPEAKER_01: So if you were to put your web application on Azure web apps and say, hey, I got this code, put it on Azure Web Apps.
- 14:30SPEAKER_01: That's great.
- 14:30SPEAKER_01: Guess what you're actually doing behind the scenes?
- 14:33SPEAKER_01: You're taking your code and putting it into a container that then runs on Azure Web Apps.
- 14:38SPEAKER_01: And you might say, well, no, I chose the just code option.
- 14:41SPEAKER_01: Yep.
- 14:42SPEAKER_01: Microsoft wrapped that code in a container or wrapped a container around that code and then deployed that container.
- 14:48SPEAKER_01: Because the way the cloud works is containers.
- 14:51SPEAKER_01: And so they use containers a lot.
- 14:54SPEAKER_01: But it's not just, okay, we put our code in a container and it just works.
- 14:59SPEAKER_01: There's more to it.
- 15:00SPEAKER_01: For instance, when you are testing your application, I encourage you to have a full testing environment locally.
- 15:08SPEAKER_01: A testing environment that mimics the production environment as closely as possible, all the way down to the data.
- 15:15SPEAKER_01: So how would you do that?
- 15:17SPEAKER_01: Well, containers makes it very easy.
- 15:20SPEAKER_01: For instance, do you want to be running three different database servers on your computer full time?
- 15:27SPEAKER_01: Well, no, that'd be a performance detriment, right?
- 15:31SPEAKER_01: But if you're testing three different applications, they each have a different database server that they need.
- 15:36SPEAKER_01: And some of them need other things like Redis and other third-party products.
- 15:41SPEAKER_01: Well, that's a lot to have running on your computer and trying to install those things, get them working together, make sure they don't step on each other's toes, worrying about ports and all the rest.
- 15:50SPEAKER_01: Don't do any of that.
- 15:52SPEAKER_01: Use containers.
- 15:53SPEAKER_01: If you want a SQL Server on your computer, you can have one running in less than five minutes, including the download time, by running one Docker command.
- 16:02SPEAKER_01: And when you're done, you can turn it off or delete it.
- 16:06SPEAKER_01: So it's very easy to spin up containers for what you need and then turn them back off.
- 16:11SPEAKER_01: That is really valuable for the local development process that makes you faster as a developer.
- 16:18SPEAKER_01: But then the idea that you can containerize your apps is hugely valuable as well because the fact that you can put your app in a container and then it shouldn't have any change to it.
- 16:31SPEAKER_01: Because a container, an image of a container, an image, is going to be read-only, which means that it will be the same a year from now as it is right now.
- 16:41SPEAKER_01: So you can do some really cool things like you can be running an old version of.NET in Azure.
- 16:48SPEAKER_01: People tell me all the time, well, you know, Microsoft's moving.NET forward so fast that we don't have time to update and they're kicking us out of the cloud because we have old versions of.NET.
- 16:58SPEAKER_01: Not true.
- 16:59SPEAKER_01: You can wrap your application in a container and run old versions of.NET in the cloud, not a problem.
- 17:06SPEAKER_01: So there are things you can do with containers that are really powerful beyond just microservices and other things like that.
- 17:13SPEAKER_01: You can do some really powerful things to make your development process faster, to make your organization faster and more automated, and to protect your applications against long-term change.
- 17:25SPEAKER_01: So containers is number three.
- 17:27SPEAKER_01: Number four is one that is overlooked a lot.
- 17:32SPEAKER_01: And that is HTML5 and CSS3.
- 17:35SPEAKER_01: I've kind of lumped those together.
- 17:37SPEAKER_01: Now, those numbers are important because people often say, oh yeah, I know, I know HTML.
- 17:43SPEAKER_01: That's simple.
- 17:44SPEAKER_01: No, no, no.
- 17:44SPEAKER_01: I don't want you to just know HTML.
- 17:46SPEAKER_01: I want you to know modern HTML, not just divs and HTAGs.
- 17:51SPEAKER_01: I want you to know how to use the correct tag based upon what the layout of your page should be.
- 17:58SPEAKER_01: I want your pages to be accessible.
- 18:00SPEAKER_01: When it comes to CSS, I don't want you to be saying, oh, it's so hard to center a div when there's at least three easy ways to center a div on a web page, horizontally and vertically, using CSS3, modern CSS.
- 18:17SPEAKER_01: So learning how modern web works will really set you apart because it's not about just writing a website that looks good on a desktop, but one that is responsive, one that works well with screen readers, one that is accessible, one that works well with things like Google and other search engines when it browses through it, one that is going to actually rank higher in Google and other search engines because it's set up well for SEO.
- 18:49SPEAKER_01: Learning modern web development isn't just about learning a JavaScript framework or learning about Blazor.
- 18:58SPEAKER_01: It's about learning the fundamentals of HTML and CSS.
- 19:02SPEAKER_01: Okay, so that's number four.
- 19:04SPEAKER_01: Number five is learn Azure.
- 19:07SPEAKER_01: I could say any cloud, but I have a real preference for Azure because of the fact that it's much safer to learn as a new developer.
- 19:16SPEAKER_01: It's easier to make sure that you're not overspending money or spending money at all.
- 19:21SPEAKER_01: It gives you a lot of free services that are free for life so you can get started right away and not have to worry about getting charged later.
- 19:30SPEAKER_01: There's a lot of good monitoring programs in place to help you.
- 19:34SPEAKER_01: So learn how to use Azure.
- 19:36SPEAKER_01: Learn how to save money with Azure.
- 19:39SPEAKER_01: Again, I'll hear people tell me, well, the cloud's so expensive.
- 19:43SPEAKER_01: Everyone's moving out of the cloud.
- 19:44SPEAKER_01: Well, that's not true.
- 19:46SPEAKER_01: Actually, a lot of people are moving to the cloud successfully.
- 19:49SPEAKER_01: But the people that are moving out of the cloud, that's a couple reasons why.
- 19:52SPEAKER_01: One is yes, you can save money moving out of the cloud if you meet a very specific criteria.
- 20:01SPEAKER_01: Okay.
- 20:02SPEAKER_01: There are some cases where you're big enough that moving out of the cloud will be cheaper.
- 20:07SPEAKER_01: But for the most part, it's the second reason, which is you misunderstood, first of all, how the cloud worked and how to use it well, and then what you're actually getting when you move locally.
- 20:20SPEAKER_01: Because you're not getting a lot of services that you got in the cloud.
- 20:24SPEAKER_01: And maybe you didn't want them, but those things are security and more security and more security that you don't get when you are local.
- 20:33SPEAKER_01: So learn how to use Azure to save money.
- 20:36SPEAKER_01: This is one of my big wins at one of my companies I worked for is we took our product, which we were a software as a service, we took it out of one hosting center where we're hosting on just a full server.
- 20:49SPEAKER_01: And we took it out of there and put it in the cloud and saved lots of money.
- 20:54SPEAKER_01: Well, when you do that and at the same time make your app more performant, more reliable, and have better backups and better security around it, that tends to be a big win for you at your job.
- 21:06SPEAKER_01: So knowing how to save money in the cloud is huge.
- 21:10SPEAKER_01: Knowing what services are best for each situation is also valuable.
- 21:15SPEAKER_01: So when your boss says, you know, we need to put this web page somewhere, we need to put this web application somewhere, and you say, Well, there's virtual machines in the cloud, right?
- 21:24SPEAKER_01: You just cost your company a lot of money and yourself a lot of credibility.
- 21:29SPEAKER_01: But if you said, hey, you know, there are virtual machines, but they're very expensive for what we're looking for, how about we look at an Azure web app?
- 21:36SPEAKER_01: Or, you know what?
- 21:37SPEAKER_01: It's just a static website with HPML, CSS, and JavaScript.
- 21:40SPEAKER_01: Why don't we put it in an Azure static web app and it's basically nothing to host it?
- 21:46SPEAKER_01: Or we could look at container apps, or we could look at a bunch of other solutions based upon what it is.
- 21:54SPEAKER_01: Knowing the different options and knowing when one is good versus another is a huge benefit.
- 22:00SPEAKER_01: Because when you come across Azure and say, well, there's there's one option, well, first of all, there's not, there's a lot.
- 22:05SPEAKER_01: But when you tell your boss, listen, here's your five options.
- 22:10SPEAKER_01: I recommend number three because it's the cheapest for what we want to do.
- 22:15SPEAKER_01: That's a different story.
- 22:17SPEAKER_01: Now all of a sudden, you're coming across as knowledgeable, you're giving your boss options, and you know what those options are.
- 22:25SPEAKER_01: So also learn how to scale in Azure.
- 22:28SPEAKER_01: So learn how to save money, learn which services are best for each situation, and then learn how to scale.
- 22:35SPEAKER_01: Those three things inside of Azure or really any cloud provider, um, knowing how to do those three things will set you up for success and it will set your company up for success.
- 22:46SPEAKER_01: It will put you into a more of a leadership position when you come across as actually knowledgeable of the subject.
- 22:54SPEAKER_01: Okay, so modernizing your skills doesn't mean learning flashy technologies.
- 22:59SPEAKER_01: It means you evaluate what the current market needs as well as what will be around for a while, and then you move in that direction.
- 23:07SPEAKER_01: So learning these four C sharp skills and the five modern technologies will set you up for immediate and long-term success.
- 23:15SPEAKER_01: Thanks for listening, and as always, I am Tim Corey.
- 23:19SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 23:22SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to I amtimcorey.com and enroll in a course.