My .NET Developer Roadmap for 2023

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everybody I'm Nick in this video I'm going to show you my brand new updated roadmap for.net backend Developers for 2023. I did this last year and you really liked it so this year I updated everything reorganized it and I actually streamlined it quite a bit to make it easier to follow and actually used to learn now like with everything in this channel this will be opinionated so if you disagree with some of my choices then please let me know in the comments down below but these are the things that I would use so if you follow this channel because you like the way I write code then this is what I would do now in this video I'm going to talk you through the roadmap and explain why I chose what I chose in each section and then give you some ideas on how you can actually learn the thing listed in that roadmap if you laptop of content and you want to see more make sure you subscribing this notification Bell and for more training check out nickjobses.com now this roadmap actually lives in the GitHub repo which I have linked below if you like it then please give it a start on GitHub it really means a lot it helps people find it as well and actually have two versions one of them is the this version which is a bit of a compact version it has a left and right things and I also have this version which is more streamlined so you only have one column of things and you go all the way down you're gonna find both of them in that GitHub repo I'm going to use this one for this video because it won't spoil what's coming next however this version with both left and right is more Compact and might be easier to use for your own purposes all right so let's start from the beginning and the first thing I want to point out is how this is color coded so the colors of each section doesn't really mean anything is just here for flavor and then the only thing that really means something is the border of its choice so you can see in the legend here that anything surrounded with green is actually a must know and anything with orange is a good to know and I will be explaining why something is chosen as good to know as well because it's not necessarily bad or don't use it it might be just situational your company for example is not using GitHub is using gitlab that doesn't make it look bad it just means that more people are likely to be using GitHub so you should be learning this as a must know so we're starting with just general development skills and this design was last year understand how the web Works HTTP https all that good stuff and then Version Control super important git is the one everyone really uses it has the biggest market share by far and people are using GitHub the most as a way to store the repositories now there's other avenues for example gitlab is one very popular one and some others but they're more situational the one you should know if you are learning how to do those things is GitHub you should know how to use it and then of course git now this is quite different than last year you should learn how to search for Solutions and you have several ways here I added two very interesting ones but first Googling you should know how to Google for a problem and you should know how to pick the right answer usually something from stack Overflow which is why it is here as well as a must know but now we also have Bing search which is the new chat GPS T based search in bing and then charge GPT itself both of these things are good to know because they're heading in the right direction now being set will actually give you better results than charge gbt charge gbt can give you wrong results but learning how to use it is actually good and useful because it will only get better and I strongly believe it will be solving more and more problems as we go so keep an eye on that and then data structures and algorithms now that really depends on what type of work you're planning to do so I'm not going to tell you that is the must know because I didn't know these things when I started and I turned out fine I learned them as I eventually needed to use binary search or a tree or Heap or something so you definitely don't need to know them but eventually you might need to then in C sharp you must learn at least the basics of C sharp 11 and understand how dot net and Dot Net 7 works also knowing how to use the CLI the command line interface is super important and then I recommend looking into cshop12 and.net8 take a look into the future that's what really makes a great developer knowing where we're heading and being ready to adopt those new things as we move forward now we have a bunch of standing principles and we have solid so same responsibility open close list of substitution principle interface aggregation and then dependency invention principle all of them are very important I think the risk of substitution principle for C shop specifically has fallen quite a bit out of favor the other ones are still very relevant and then I also wanted to add a few acronyms here so dry yagnian case don't repeat yourself you aren't gonna need it and keep it simple stupid effectively some practices that keep you on the right track and then you should really dive into asp.net core Basics so web API minimal API please learn that it becomes more and more prevalent as we go understand routing it hasn't changed between all the new ways of doing apis middleware filters attribute configurations super important authentication authorization Independence injection you should definitely know all of these things now in a world that's moving towards Cloud native Technologies more and more rdbms's fall a bit out of favor but still very relevant there's no way I would ever choose to have them as a good to know you must know how they work in my opinion because in some capacity you will use them understand rdbms fundamentals and database design learn the SQL syntax and all its variations depending on which database engine you will be using now store procedures I have it as a good to know but in my opinion it shouldn't even be here in the same way that triggers for example are not here you shouldn't really be using them they lead to bad code and bad practices I just have it just in case someone says hey why don't you have them I wouldn't use them I haven't used all procedures in six years but many people do so I just left them there anyway and then in terms of databases postgres is probably the most popular SQL Server is the most popular with c-sharp developers just because of the Microsoft relationship and then MySQL and Maria idb are very relevant as well these are the two I would focus on some people will tell you SQL Server first in my opinion postgres is a better engine and a more relevant engine and though we're moving into patterns for building apis so rest is still the king of apis it's not going anywhere you should know how to make a rest API with web API minimal apis and fast endpoints I think is a good approach as well I talked about fasting points in this channel definitely check it out now the other two graphql and grpc are more situational they're both excellent in their respective use cases but they're definitely not as much adopted by especially smaller companies as rest bigger companies they're all using graphql you know Twitter Google Facebook all of them are using graphql and if you are to use graphql you should definitely be using it with hot chocolate it's the best Library by far but I understand that graphql is a bit more situational in some scenarios than rest which is just everywhere now in terms of calling your data database or Rams is the way to go so Dapper is my choice of orm my go-to I write my own SQL however EF core is now so so fast I am happy recommending it as I must know as well so whichever one we want to use it's completely up to you both of them are excellent they have different strengths and weaknesses but I'm okay recommending both of these approaches for calling a database then dependency injection you should really know how to use the building di functionality so Microsoft does extensions don't depend as injection and also I think using recruiter is good to know it adds some scanning and decoration capabilities that is lacking from the building di container so I think it's a good to know in my opinion it's a must know but I'll leave it as a good to know because it's more situational and then we have some nosql databases that I think you should know now we have two of them that are Cloud proprietary meaning they only exist in their respective Cloud providers that is AWS dynamodb and Azure Cosmos DB you can build a lot of stuff with these nosql databases but you just can't run them on-prem you have to use a cloud provider but I think you should know one of the two and in fact I have a full AWS course which is free at nickjazzas.com but you can go now and take it covers tons of topics including dynamody wave when you have elasticsearch must know for setting and then ready for caching I've never built a system that doesn't use these two in some capacity or okay maybe not elasticsearch but definitely redis it's just everywhere and then mongodb I would say it's a good to know I wouldn't really recommend it to anyone but many people still use it so I'm gonna leave it here but I'm more of a cloud first person myself so these Services would replace mongodb for me and then in terms of caching you should know how to use the built-in web API or minimal API output caching the new one and then response caching as well and also if you need distributed caching you can use redis with stack exchange dot red is the library made by stack Overflow and then in terms of vlogging you have really two choices that are viable the Microsoft extensions.logging the built-in one and serilog now I've been historically using Siri log because of the collection of syncs it has and how easy it is to just push your data into different Outlets to store them and search them but the building login has really been updated to have some awesome stuff like Source generated logging methods that really eliminate a lot of the performance hits you can take by using login in the first place so both of them I think are a must know and if the building login improves just a little bit more with some extra functionality it will be my go-to for now I'm still using serilog then we have messaging so Azure service bars AWS sqs SNS both the pub sub version and the Q versions highly recommend you know again I'm more of a cloud first person that's why those are a must know for me and then to interact with them knowing how to use mass transit in my opinion must know you should know how it works what it does and why it's so great and now we're going to testing now I'd like to let you know that I have two courses one on unit testing covering really everything and one for integration testing covering everything for that I'm gonna have them Link in the description down below so if you take those you will know everything you need in these two topics now in terms of Frameworks I would highly recommend that you know X unit it's not the only one any unit is very popular as well but X unit is really the go-to nowadays so if you are to know one no X unit if you want to go the extra mile and know both you can use any unit but really X unit is the more popular one now in terms of mocking Frameworks mock is the more popular one I personally prefer and substitute more they both technically do the same thing with different approaches I prefer the programming model of n substitute but if you want to use mock that's absolutely fine I have both of them as must knows but really just pick one and then for sessions I would highly recommend flu intersections it just makes a certain your outcomes so much simpler and then in terms of test data generators bogus is my go-to because it generates realistic fake data autofixor is great as well but it's not as good in my opinion as Burgers now in terms of integration testing you can reuse a lot of the things you learned in unit testing for example sessions or X unit or bogus you can use all of those things in integration testing but you must know how to use the web application Factory that's what drives all your integration tests and you should really also kind of know the abstraction it uses behind the scenes which is test server now I also think that using respawn is good to know respawn is a library that allows you to reset your database to a clean State and it's really useful for integration testing and also I didn't include this here because I Do cover it later but you should also know how to use Docker at this stage to create test containers and also know how to use the library test containers which I have covered in the channel and in my course to create doctor containers just for your integration tests just throw away containers to validate Behavior without having to have a database running at all times then if you need real-time communication signalr is the go-to that's what Bing search is actually using so you know it scales you know it can do the job if you need to go one level deeper then maybe know how websockets work but you don't really need to with signalr in terms of API SDK building libraries so building sdks to interact with apis refit is still my go-to restshop is excellent as well and then I don't know how to pronounce that is another one I've seen really used I'm going to leave it here because it has some nice approaches with testing but really my personal go-to is just refit it does the job it's the simplest to use it's excellent now in terms of task scheduling I recommend using the built-in background service or the inbuild now periodic timer class that is the fifth or sixth timer class but it builds on all the best practices that we've learned now in.net and provides a nice interface to have a repeated task or task scheduling in general then if you need something more grandiose with State and everything then maybe Hank fire is for you I'd say that's good to know I don't think it's must know then taking a look at some.net libraries poly for retries and resiliency excellent fluent validation for validating things like your models or some behaviors again excellent humanizer.com allowing you to humanize the text in your application excellent benchmark.net it should probably be a good to know I'm a bit biased but I'm using brightspark.net a lot to detect how something is performing or how it is degrading over time it's micro benchmarking so not so important but in my opinion you should know how to use it and then you have things like mediator which is good to know many people like it many people hate it I certainly like it but using it with caution where I think it belongs units.net excellent for converting units from let's say kilometers to miles per hour and so on and another time if you need to use a library that deals with time in a very nice way then last but not least I do think that the good c-sharp developer or any programmer really should have some understanding of how devops works and infrastructures code is a nice way to bridge the gap so you should know how to script out or code out your infrastructure and both terraform and pollumi are excellent approaches and really that is it now please understand that if something is not in that list it doesn't mean that you should not learn it this is just my opinion and I would really like to know what your opinion is in the comments down below what do you think I missed or what should I add next year and also I don't want you to be intimidated by this because even though it is long it doesn't mean you need to know everything to be a C sharp developer or a.net developer you can start as a junior learn some of it and then as you evolve learn more and more and more you don't need to finish everything to be a c-sharp or dot net developer so forget this idea it's an iterative process you have to keep learning all the time and coming back to this but really that is all I have for this video thank you so much for watching special thanks to my patreon so make it videos possible if you want to support people you can find the link description down below leave a like if you like this video subscribe or click the like listening the Bell as well and I'll see you in the next video keep coding
Info
Channel: Nick Chapsas
Views: 262,660
Rating: undefined out of 5
Keywords: Elfocrash, elfo, coding, .netcore, dot net, core, C#, how to code, tutorial, development, software engineering, microsoft, microsoft mvp, .net core, nick chapsas, chapsas, dotnet, .net, .net 7, .net roadmap, c# roadmap, roadmap, c# roadmap 2023, c# roadmap 2022, .net roadmap 2022, .net roadmap 2023, roadmap nick chapsas, nick chapsas roadmap
Id: KCBH1fEIrxc
Channel Id: undefined
Length: 14min 54sec (894 seconds)
Published: Thu Mar 09 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.