I got the email with the link, but clicking it goes to the page, but the part that is presumably the road map says "Restricted Access" and "NetworkError when attempting to fetch resource." That is after a good bit of waiting.
As a senior developer, this video helped me a lot to understand the gaps in my knowledge that I need to fill to be ready for a lead role. Thank you so much for the amazing content.
Hi Govind, where do you work? And what is your designation? Is it .Net Developer? I have 5 years of career gap, and I want to start my career into IT. Is it possible that I get a .Net Developer job in MNC after 5 years of career gap?
SQL stored procedures are beneficial for managing large enterprise database systems due to their ability to encapsulate complex operations, providing a layer of abstraction. They often offer performance advantages over ORM (Object-Relational Mapping) techniques by executing directly on the database server, which can reduce network traffic and improve execution speed.
Agreed, they are definitely a valuable tool in the box. Combined with triggers and scheduled tasks and you can get a lot accomplished without even opening a codebase. Sadly, many projects overuse them for basic tasks.
I couldn't agree less! Payroll processing is an excellent example where you have to process payroll for your entire staff. It's expensive to iterate through withing your program. So, a stored procedure is best suited for this case. Also for some heavy computations, I prefer to do them in stored procedure or function and just return the output back to the user. In summary, a single database call is better as oppose round-tripping for a single bulk operation. @nickchapsas, kindly revisit this. By the way, this video is top-notch ❤❤❤
@@aweklinI assume the angle Nick is looking at this is encapsulating domain behaviour and business rules in the code base and not in the DB, and only using the DB for persistence. I will use stored procedures for DB maintenance work these days. 20 years ago I used sprocs for a lot more, but these days I don’t I try to keep my domain behaviour in the domain.
It's all about perspective. Using a database in a "classic" way? No objections here. But in the context of growing structures and a purpose-dividing approach like CQRS, it's not really relevant. Since Nick mentioned Redis in his roadmap before, the pattern doesn’t seem far-fetched. After all, business logic really shouldn’t be in the persistence layer, so I think it's only fair to consider this perspective. No hard feelings, guys!
Some things require so much data that it only makes sense to process it in the database before sending it over the network, but it is rare I use them these days.
Having in-depth conventional database (=SQL) knowledge is actually very useful these days to fill in the gaps left open by the majority of developers who don't have that knowledge and don't want to bother to begin with. It's a significant competitive edge in the job market. Cloud is something you have to learn anyway, and so does everyone else. The same goes for modern software engineering practices. Being able to write an efficient window function or advanced aggregation in one SQL query to replace some convoluted, bloated backend code or worse, ORM DSL code stretched to its functional limits causing a ton of unnecessary allocations is a valuable skill and will earn you the gratitude of your development peers. Also technological adoption is still a major concern, the more conservative, risk-averse or just plain behind your environment is, the more likely it will be that there is some legacy database with tons of triggers and SPs floating around. It's the COBOL of the 80s and 90's for many enterprises. Also, i don't see a downward trend in SPs and function usage at all, rather the opposite, as Low-Code and Business Intelligence platforms that are database-centric heavily rely on them.
Great idea to do some tutorials about Authentication. This is one thing that hunts me: the more I try to avoid learning it, the more I have to work with it.
As to the language itself, I would add multithreading as a separate topic. Its often overlooked but quite complex topic and not many tutorials go deep enough on this.
Thanks a lot Nick. I would be interested to know why Stored Procedures and Triggers are considered obsolete and anti-pattern, and what's a better up-to-date alternative. Thanks!
As someone who is moderately colorblind, could you use more than color as the differentiator between categories? Something like a check for "must know", plus for "good to know", minus/bar for "alternative", and an X for "not recommended" would immediately make the categories clear. As it stands I can't easily differentiate "must" and "alternative" at a glance.
Hey there,I really dig your roadmap, it's solid. But, feels like something's missing. How about Event Sourcing, Apache Kafka, and MongoDB? Take a peek at how the Fortune 100 giants are using these. With these additions, your roadmap would be spot on perfect 👌🏼.
I would strongly recommend learning Roslyn for every .NET developer, at least the basics to be able to implement a simple standalone analyzer/code rewriter tool.
2 месяца назад
Nick, I used to be a developer long time ago. So thanks for creating this good roadmap and giving us this big point of start.
I'd add Orleans to that list. I've been experimenting with it recently and am quite happy with the end result. I'll be replacing a bunch of custom code with it.
For CI/CD, I think Jenkins is a good selection (I add this comment because Jenkins is not in the roadmap). It is written in Java but it is not specific to Java. It has plugins to integrate with nearly every technology.
I guess it depends on the company you work for. I'm setting up templates for teams to create new applications. Jenkins is in every one of them. At our company, I wouldn't expect Jr to really know it, but mid-level should be able to follow a template. Seniors will probably fix anything left over or handle edge cases. (Leads just need to know someone on the team knows it!) I don't know how many other companies use Jenkins, but where I work it's a "must have".
Modern style programming is really good to know and understand, but I would describe that as both functional as well as composition oriented, which both work well together by the way. Moving away from the old inheritance oriented style is important these days. Also important for matching the SOLID principle and related ideas. A clear separation between your pure, immutable code and your code which performs actions, work can also be great. A way of separation of concerns I would even call it. Reducing all loops in C# however still comes with a considerable performance overhead sometimes. And Spans and stack allocations still do not support Linq and other kinds of IEnumerable based higher order functions these days, because those functions depend on heap allocations and therefore have GC load. Zero cost abstractions are not really a thing in the language yet.
I am at about 30% here. I am not ashamed, though. I do not want to know everything, just what I like doing. The rest will come in time over the course of more projects. Thanks to Nick for getting me into WebApi's and C#. Javascript and Frontend Development does not scratch that 'I want to code' itch for me.
Generally agree with the roadmap, except for the Stored Procedures and Entity Framework part. In my opinion knowing how to work with Stored Procedures can be very beneficial for a lot of tasks and Entity Framework while useful, I would not recommend. You should stay away form it until absolutely necessary. I have seen EF misused every single time and how much performance problems it can bring further down the line once the project is a year or two in development. And so I would recommend sticking to dapper, SQL queries and Stored Procedures instead. While harder and not as user friendly, your future self will thank you for the decision. Never once have I seen a happy Entity Framework story after mid-size project size and a year or two in development.
On a recent project, we decided early on that we would use EF to call Stored Procedures. EF for Data->POCO mappings and SP's for the performance, security and abstractions that they provide.
@@John.Oliver That kind of defeats a lot of benefits EF can provide but still leaves a lot of issues with EF on the table. I can only see this working with a really good team that knows what its doing. But then again, with that kind of team pure EF would work quite well too. Problem is you almost never have a good team especially throughout the project lifetime. Still, I guess hybrid EF is better then pure EF, so good job with that.
If you are following a roadmap to learn, will you be in the position to chose teck stack? A lot of companies use EF, so it's very important to know in your learning path.
@@adriangodoy4610 I am not saying you should not learn it for finding a job (as a developer), I am saying it should not be used in projects from medium size and up, if you care about the longevity and maintenance further down the line (as a lead/architect). Unfortunately many people fall into trap of using EF because it is easy to start with (and use in general), but then later its too late to switch to using something else.
Great roadmap! but what about bigger architectural techniques/patterns like Domain-Driven Design, Clean Architecture, (Modular) Monoliths, Microservices, etc. ? I think these are very useful as well 😀
Thank you young Master Nick. Becoming a mostly self taught developer can be daunting.. this road map def helps me on what i can focus on. I love c# and .net... but i love my macbook and i use vscode as well as .netcli lol doing this when most tutorials are with visual studio can be a pain in the arse. then theres AI where I often see "there wont be a need for developers in 5 years blah blah blah" that also gets me down. . . but Im told as a developer its going to be full of "ups" and "downs". theres also times when im thinking "am i doing too much tutorials? am i relying on AI too much? how the heck did everyone learn before this" but then i do cool shit like making my own api and connecting to sql and now i doing authentication/authorization and think... yea im badass! lol thanks man I appreciate you!
I don't know personally why its call .Net "Roadmap" its more like .Net Topics... If I start from first topic ( git ) what do I commit if I don't know how to code? IMHO it should start from VS/C# ( types, methods, classes etc. )
Hoping that I can help contribute to your C# learning journey! I hope that you enjoy the Getting Started with C# course and I wish you success on your software engineering journey! Big thanks to Nick (the other Nick 😅) for providing this to all of you for free! Excellent opportunity to jump into programming!
I think event sourcing and event stores are getting more and more popular and more usage. Like EventStoreDB and Marten. Also, nothing about system design like event modeling, or event storming, etc.
This list is absolutely massive, and that takes away any value it might have. How do you define “learn”? Have heard of it? Can do basic tasks? Understand the ins and outs? I doubt there’s a single person with full and precise understanding of all of this word salad. Jack of all trades, master of none.
@@spoofer9113 Are you a senior backend engineer? If so, how would you learn all the technologies on the list? Do you really need to know three testing libraries and three mocking libraries? As a senior software engineer, I certainly don’t bother learning everything on that list. If I need something, I’ll most likely figure it out along the way. If I change jobs and end up at a place using a different mocking library, I’ll figure it out in a day.
@Kwpolska no not like that. But to know all the concepts related to it. Let's say DBMS, then you need to know set operations, types of dbms, sql, normalisation, indexes, file organisation, Distributed DBMS which is necessary for NoSQL, etc. Nothing should be left of, everything else will be just byproduct of this. That's how you complete backend.
We use Azure DevOps for CI/CD. We use DevOps for almost everything to be honest. Back log through to sprints, git repos, pipelines, releases, wiki, test plans. All under one roof and fully integrated out of the box.
Great content @nickchapsas 🔥 It's my experience that good developers also need improved Developer Experience, e.g. through VS Code/Rider extensions/plugins.. Would be nice to see your favorites here as well 😊 (incl. Copilot or whatever assistant you prefer)
This is a great guide but I'm very disappointed on your comment about stored procedure being obsolete. I have worked in many large enterprise environments and all have used stored procedures. Why? Because tuning a stored procedure that contains joins to 15 to 20 tables is something that a human can still do better than an automated tool.
I think it really depends on your systems architecture. If you are saying you have stored procs that join that many tables together then more than likely you have a monolithic application that shares the same db. In a microservice architecture each microservice owns its own data. You would not need to join 15+ tables.
@@EscobarAdventures That makes sense. Whether we like it or not, not all of us are working on microservices. And considering the years of in-house development that has gone on in the past 20 years, monoliths are still a very common application structure.
I was also taken aback with the comment on stored procedures. They allow fine-grained security controls, whereas you have to have very permissive security when using EF Core.
@@DoorThief Absolutely. To be able to create roles in the database and match them to AD groups ensures Finance are not updating HR and Audit are not creating Sales.
In many cases C# 12 is easier, as it got a cleaner syntax. Sure, it's good to know the old ways as well, as you will encounter them. But starting with the modern way to write C# is the way to go.
I love this idea of a roadmap and I'll be passing on to my team, thank you! Some things I would love to see added are... Common design patterns: strategy, decorator, etc. Architectures: NTier, Clean, and Screaming Business logic patterns: Transaction script, Active Record, DDD Other: CQRS and Event Sourcing
Curious on your thoughts on something like OData in terms of REST apis. I started using it recently as a full-stack dev that also writes angular UIs to let me have simple APIs but flexible UIs, mainly things like data grids tied into CRUD operations
Can you make a video on how to get a job in big tech companies using dotnet tech stack? I usually observe videos on other frameworks but not .net, kindly make one.
If you do any videos on .NET Authentication/Authorisation, I'd very much appreciate it if you could cover SAML auth. It's something I have really struggled with for the last few years as there doesn't seem to be a lot of information available (that I could find, anyway!)
Hi Nick, great content as always I have been trying to get access to the AWS for C# developers course on Dometrain, but every time I register I never get the email, I use the same email I have for my member area on Dometrain but it does not work. What else can I do to get it? I can pay but I do not see an option on Dometrain to do so
This is intimidating. I’m an experienced Windows C# dev, and for 90% of this chart I barely know more than the name and idea of each.How can I ever get up to speed on web dev without spending years?
I don’t think you need to. You’ll learn what you need to know when you need to know it, you don’t need to know everything in advance. Any job listings I’ve seen would only ask for a tiny fraction of this stuff.
Huh, I know surprisingly many of those. Not sure I agree with not recommending stored procedures, but triggers are pure evil and should be avoided at all costs. I worked on a system that used them a lot and it was torture.
To the people fighting for stored procedures in the comments: do y'all actually enjoy using them? They've been absolute maintenance nightmares in organizations I've personally seen leverage them. I can't help but feel like if there's a point where that layer of abstraction between the application and the database becomes an appealing option then that's a symptom of a larger problem.
No Jenkins? What is the state of jenkins compared with it's alternatives in 2024? Lately I'm not responsible for writing the CI/CD pipelines at work, and, for personal projects, I don't have anything that needs it, but a few years ago I used jenkins on a project and it was really easy to setup and learn it. Recently I gave a quick look into azure pipelines and it felt a bit too abstract on how it works (felt like I don't have much control on how things are build/deployed... but I didn't had too much time to learn it, I may be wrong)
Curious on how you only included API documentation, and not Documentation as a key aspect (as it really is). So I would include some KB product/solution or so.
Hey Nick! I heard about you on Reddit and others recommended your C# course for beginners. I tried searching on Google but couldn't find it. Do you still have the C# course for absolute beginners that you can share?
What is missing? - Bicep for IaC And then the whole idea of understanding networks and www. Basics of TCP, at least HTTP is required knowledge these days.
As a lead, 100% on this. This is pretty much what I teach my developers now, but I did add a few from your list. I would say though that you should at least have an understanding of stored procedures as you will likely have legacy applications that use them. I agree with the statement that they are an anti-pattern at this point.
I been using Azure cloud for some time but I get the feeling I should get some of it's certificates... which one you think I should start with knowing I'm more into dev side or what's the AZ- path to follow?
Is the free Getting Started with C# offer over? When I follow the link I see it's $108.89. It would've been a nice one for a colleague who's thinking of transitioning to be a developer.
Hi I think this is too much, is so frustrating, I've spent several years learning and this seems endless. Additionally, when learn something new for several months and come back to the other things you've learned, you feel it has been forgotten, what to do with that? And why not to use mappers?
guys i nead honest reply from developers working in .net technology. Is it worth learning .net in 2024 as per future perspective, will it vanish in few years or should i try into data science or data engineering
Learning multiple programming languages would I definitely see as a general roadmap item. Helps to understand things and see things in context. And yes, I would also love to find a Rust roadmap too somewhere. I have become Rustacean too. But it's still a different specialization from dotnet developer. 😂 I see this video for myself as mainly about everything else which is NOT just my favourite programming language, but all about the tools around it. And at least I know that I can still improve several things. So this is really useful.
Get the roadmap: mailchi.mp/dometrain/roadmap2024
I got the email with the link, but clicking it goes to the page, but the part that is presumably the road map says "Restricted Access" and "NetworkError when attempting to fetch resource." That is after a good bit of waiting.
,, ca@
Didn't get the email. I have registered twice
OO
I didn't the email!
As a senior developer, this video helped me a lot to understand the gaps in my knowledge that I need to fill to be ready for a lead role. Thank you so much for the amazing content.
Hi Govind, where do you work? And what is your designation? Is it .Net Developer? I have 5 years of career gap, and I want to start my career into IT. Is it possible that I get a .Net Developer job in MNC after 5 years of career gap?
Did you get an answer RosePainter??@@rosepainting8775
SQL stored procedures are beneficial for managing large enterprise database systems due to their ability to encapsulate complex operations, providing a layer of abstraction. They often offer performance advantages over ORM (Object-Relational Mapping) techniques by executing directly on the database server, which can reduce network traffic and improve execution speed.
Agreed, they are definitely a valuable tool in the box. Combined with triggers and scheduled tasks and you can get a lot accomplished without even opening a codebase. Sadly, many projects overuse them for basic tasks.
I couldn't agree less!
Payroll processing is an excellent example where you have to process payroll for your entire staff. It's expensive to iterate through withing your program. So, a stored procedure is best suited for this case. Also for some heavy computations, I prefer to do them in stored procedure or function and just return the output back to the user.
In summary, a single database call is better as oppose round-tripping for a single bulk operation.
@nickchapsas, kindly revisit this. By the way, this video is top-notch ❤❤❤
@@aweklinI assume the angle Nick is looking at this is encapsulating domain behaviour and business rules in the code base and not in the DB, and only using the DB for persistence. I will use stored procedures for DB maintenance work these days. 20 years ago I used sprocs for a lot more, but these days I don’t I try to keep my domain behaviour in the domain.
It's all about perspective. Using a database in a "classic" way? No objections here. But in the context of growing structures and a purpose-dividing approach like CQRS, it's not really relevant. Since Nick mentioned Redis in his roadmap before, the pattern doesn’t seem far-fetched. After all, business logic really shouldn’t be in the persistence layer, so I think it's only fair to consider this perspective. No hard feelings, guys!
Some things require so much data that it only makes sense to process it in the database before sending it over the network, but it is rare I use them these days.
Having in-depth conventional database (=SQL) knowledge is actually very useful these days to fill in the gaps left open by the majority of developers who don't have that knowledge and don't want to bother to begin with. It's a significant competitive edge in the job market.
Cloud is something you have to learn anyway, and so does everyone else. The same goes for modern software engineering practices.
Being able to write an efficient window function or advanced aggregation in one SQL query to replace some convoluted, bloated backend code or worse, ORM DSL code stretched to its functional limits causing a ton of unnecessary allocations is a valuable skill and will earn you the gratitude of your development peers.
Also technological adoption is still a major concern, the more conservative, risk-averse or just plain behind your environment is, the more likely it will be that there is some legacy database with tons of triggers and SPs floating around. It's the COBOL of the 80s and 90's for many enterprises.
Also, i don't see a downward trend in SPs and function usage at all, rather the opposite, as Low-Code and Business Intelligence platforms that are database-centric heavily rely on them.
Great Roadmap. Even as a Senior I see much places where I could improve my knowledge.
Great idea to do some tutorials about Authentication. This is one thing that hunts me: the more I try to avoid learning it, the more I have to work with it.
As to the language itself, I would add multithreading as a separate topic. Its often overlooked but quite complex topic and not many tutorials go deep enough on this.
I wish you could mark which skills are related to junior, which are mid and which are senior, thanks for your great content
That's a great idea actually. I'll see how I can incorporate it in the legend
Should you use another color for each topic and include it as part of the legend? @@nickchapsas
@@nickchapsas I'm waiting
Thanks a lot Nick. I would be interested to know why Stored Procedures and Triggers are considered obsolete and anti-pattern, and what's a better up-to-date alternative. Thanks!
Cause he saying shit at this point ..
As someone who is moderately colorblind, could you use more than color as the differentiator between categories? Something like a check for "must know", plus for "good to know", minus/bar for "alternative", and an X for "not recommended" would immediately make the categories clear. As it stands I can't easily differentiate "must" and "alternative" at a glance.
I tried to but the site we are using to generate the roadmap didn't have that option.
@@nickchapsas Understandable. Hopefully something the site can support in the future. Thanks for trying!
You might use Unicode symbols.@@nickchapsas
Hey there,I really dig your roadmap, it's solid. But, feels like something's missing. How about Event Sourcing, Apache Kafka, and MongoDB? Take a peek at how the Fortune 100 giants are using these. With these additions, your roadmap would be spot on perfect 👌🏼.
I would strongly recommend learning Roslyn for every .NET developer, at least the basics to be able to implement a simple standalone analyzer/code rewriter tool.
Nick, I used to be a developer long time ago. So thanks for creating this good roadmap and giving us this big point of start.
I'd add Orleans to that list. I've been experimenting with it recently and am quite happy with the end result. I'll be replacing a bunch of custom code with it.
For CI/CD, I think Jenkins is a good selection (I add this comment because Jenkins is not in the roadmap). It is written in Java but it is not specific to Java. It has plugins to integrate with nearly every technology.
I guess it depends on the company you work for. I'm setting up templates for teams to create new applications. Jenkins is in every one of them. At our company, I wouldn't expect Jr to really know it, but mid-level should be able to follow a template. Seniors will probably fix anything left over or handle edge cases. (Leads just need to know someone on the team knows it!) I don't know how many other companies use Jenkins, but where I work it's a "must have".
c# functional programming, I think, deserves to be mentioned, but I don't know where
Modern style programming is really good to know and understand, but I would describe that as both functional as well as composition oriented, which both work well together by the way. Moving away from the old inheritance oriented style is important these days. Also important for matching the SOLID principle and related ideas.
A clear separation between your pure, immutable code and your code which performs actions, work can also be great. A way of separation of concerns I would even call it.
Reducing all loops in C# however still comes with a considerable performance overhead sometimes. And Spans and stack allocations still do not support Linq and other kinds of IEnumerable based higher order functions these days, because those functions depend on heap allocations and therefore have GC load. Zero cost abstractions are not really a thing in the language yet.
I am at about 30% here. I am not ashamed, though. I do not want to know everything, just what I like doing. The rest will come in time over the course of more projects. Thanks to Nick for getting me into WebApi's and C#. Javascript and Frontend Development does not scratch that 'I want to code' itch for me.
Informative video Nick!
Any chance you could make the roadmap downloadable to PDF?
Your roadmap looks pretty decent. I'd add Coravel in addition to Hangfire.
8:36 - Just FYI, Grafana is not a part of the ELK stack :) It's Kibana
You're right, it's the other -ana that I was thinking about
8:32 Where's the part about API SDK Libraries and Task Scheduling?
9:48 There's also a skip
As mentioned in the beginning, some sections will be skipped
Generally agree with the roadmap, except for the Stored Procedures and Entity Framework part. In my opinion knowing how to work with Stored Procedures can be very beneficial for a lot of tasks and Entity Framework while useful, I would not recommend. You should stay away form it until absolutely necessary.
I have seen EF misused every single time and how much performance problems it can bring further down the line once the project is a year or two in development. And so I would recommend sticking to dapper, SQL queries and Stored Procedures instead. While harder and not as user friendly, your future self will thank you for the decision.
Never once have I seen a happy Entity Framework story after mid-size project size and a year or two in development.
On a recent project, we decided early on that we would use EF to call Stored Procedures. EF for Data->POCO mappings and SP's for the performance, security and abstractions that they provide.
@@John.Oliver That kind of defeats a lot of benefits EF can provide but still leaves a lot of issues with EF on the table. I can only see this working with a really good team that knows what its doing. But then again, with that kind of team pure EF would work quite well too. Problem is you almost never have a good team especially throughout the project lifetime.
Still, I guess hybrid EF is better then pure EF, so good job with that.
If you are following a roadmap to learn, will you be in the position to chose teck stack? A lot of companies use EF, so it's very important to know in your learning path.
@@adriangodoy4610 I am not saying you should not learn it for finding a job (as a developer), I am saying it should not be used in projects from medium size and up, if you care about the longevity and maintenance further down the line (as a lead/architect).
Unfortunately many people fall into trap of using EF because it is easy to start with (and use in general), but then later its too late to switch to using something else.
Hi Nick, how about Bicep for Infrastructure as Code? 🤔
Great summary, only I personally miss jaeger, helm, dapr and OpenTofu, but cool roadmap anyway!
Great roadmap! but what about bigger architectural techniques/patterns like Domain-Driven Design, Clean Architecture, (Modular) Monoliths, Microservices, etc. ? I think these are very useful as well 😀
Ok. I'm 80% there, now I just need to learn what is this "Azure"
hehehe
It is something related with "the internet".
Just a small service. Not confusing at all /s
It's a place where you dump your code.
Something to do with weather I have heard, you know clouds and stuff.
Thank you young Master Nick. Becoming a mostly self taught developer can be daunting.. this road map def helps me on what i can focus on. I love c# and .net... but i love my macbook and i use vscode as well as .netcli lol doing this when most tutorials are with visual studio can be a pain in the arse. then theres AI where I often see "there wont be a need for developers in 5 years blah blah blah" that also gets me down. . . but Im told as a developer its going to be full of "ups" and "downs". theres also times when im thinking "am i doing too much tutorials? am i relying on AI too much? how the heck did everyone learn before this" but then i do cool shit like making my own api and connecting to sql and now i doing authentication/authorization and think... yea im badass! lol
thanks man I appreciate you!
I don't know personally why its call .Net "Roadmap" its more like .Net Topics...
If I start from first topic ( git ) what do I commit if I don't know how to code?
IMHO it should start from VS/C# ( types, methods, classes etc. )
I will be on this road map thank you nick
Hoping that I can help contribute to your C# learning journey! I hope that you enjoy the Getting Started with C# course and I wish you success on your software engineering journey!
Big thanks to Nick (the other Nick 😅) for providing this to all of you for free! Excellent opportunity to jump into programming!
I think event sourcing and event stores are getting more and more popular and more usage. Like EventStoreDB and Marten.
Also, nothing about system design like event modeling, or event storming, etc.
Very useful roadmap, thanks a lot
Hi nick - how about that mic drop at the end about not using mappers - pls do a video on that 😊
I'd suggest you to encourage people to not only seek high-pay jobs with paths like these (outstanding btw), but going indie too
This list is absolutely massive, and that takes away any value it might have. How do you define “learn”? Have heard of it? Can do basic tasks? Understand the ins and outs? I doubt there’s a single person with full and precise understanding of all of this word salad. Jack of all trades, master of none.
Yeah agreed. This is like an entire department
senior backend engineers do try learn all of this one by one, this is how they grow their skillsets.
@@spoofer9113 Are you a senior backend engineer? If so, how would you learn all the technologies on the list? Do you really need to know three testing libraries and three mocking libraries?
As a senior software engineer, I certainly don’t bother learning everything on that list. If I need something, I’ll most likely figure it out along the way. If I change jobs and end up at a place using a different mocking library, I’ll figure it out in a day.
@Kwpolska no not like that. But to know all the concepts related to it. Let's say DBMS, then you need to know set operations, types of dbms, sql, normalisation, indexes, file organisation, Distributed DBMS which is necessary for NoSQL, etc. Nothing should be left of, everything else will be just byproduct of this. That's how you complete backend.
No mention of Jenkins for CD/CI, I'm thinking of using it where I work but wonder if there's a better alternative now.
We use Azure DevOps for CI/CD. We use DevOps for almost everything to be honest. Back log through to sprints, git repos, pipelines, releases, wiki, test plans. All under one roof and fully integrated out of the box.
We use Jenkins for CI/CD. I don't know how many other companies do.
Great content @nickchapsas 🔥 It's my experience that good developers also need improved Developer Experience, e.g. through VS Code/Rider extensions/plugins.. Would be nice to see your favorites here as well 😊 (incl. Copilot or whatever assistant you prefer)
This is a great guide but I'm very disappointed on your comment about stored procedure being obsolete. I have worked in many large enterprise environments and all have used stored procedures. Why? Because tuning a stored procedure that contains joins to 15 to 20 tables is something that a human can still do better than an automated tool.
I think it really depends on your systems architecture. If you are saying you have stored procs that join that many tables together then more than likely you have a monolithic application that shares the same db. In a microservice architecture each microservice owns its own data. You would not need to join 15+ tables.
@@EscobarAdventures That makes sense.
Whether we like it or not, not all of us are working on microservices. And considering the years of in-house development that has gone on in the past 20 years, monoliths are still a very common application structure.
I was also taken aback with the comment on stored procedures. They allow fine-grained security controls, whereas you have to have very permissive security when using EF Core.
@@DoorThief Absolutely. To be able to create roles in the database and match them to AD groups ensures Finance are not updating HR and Audit are not creating Sales.
#0 Q's Dee@@DoorThief
What about FsCheck for random generation of property based testing? Is that covered by test data libraries you mentioned already
Should I learn C# 12 or I can stop on something simpler, like C# 8?
You should be up to speed with the features of the latest C# version
In many cases C# 12 is easier, as it got a cleaner syntax. Sure, it's good to know the old ways as well, as you will encounter them. But starting with the modern way to write C# is the way to go.
I love this idea of a roadmap and I'll be passing on to my team, thank you! Some things I would love to see added are...
Common design patterns: strategy, decorator, etc.
Architectures: NTier, Clean, and Screaming
Business logic patterns: Transaction script, Active Record, DDD
Other: CQRS and Event Sourcing
Good video, thanks for the info.
After the free access to the c# course , this is what i was looking for, thank you!
Interested! 🙂 Could you please let me know what I missed (free C# course)
@@jonathancumini6183 the c# course was free till the end of March if i am not wrong
Curious on your thoughts on something like OData in terms of REST apis. I started using it recently as a full-stack dev that also writes angular UIs to let me have simple APIs but flexible UIs, mainly things like data grids tied into CRUD operations
Just came to this thought that I should not use mapper. But I am still thinking about how to organize this part of my code in a better way
Can you make a video on how to get a job in big tech companies using dotnet tech stack?
I usually observe videos on other frameworks but not .net, kindly make one.
Great content. Thanks.
Do you have any similar roadmap for Front End developer?
Surprisingly, I am familiar with 95% of these topics and consider myself an intermediate.
If you do any videos on .NET Authentication/Authorisation, I'd very much appreciate it if you could cover SAML auth. It's something I have really struggled with for the last few years as there doesn't seem to be a lot of information available (that I could find, anyway!)
Could you explain how a "good-to-know" item might have a "must" child?
Thanks alot nick for such informative video, It really helped me alot and also the information you provided is really great.
Can I ask which tool is used to create this nice roadmap ? Thanks.
Hi Nick, great content as always I have been trying to get access to the AWS for C# developers course on Dometrain, but every time I register I never get the email, I use the same email I have for my member area on Dometrain but it does not work. What else can I do to get it? I can pay but I do not see an option on Dometrain to do so
Can you please email contact@dometrain.com
Thank You. What the alternatives for using Triggers (Ex: INSTEAD OF INSERT Trigger ) ?
I think Bicep should also be included
Nick, i want to see how Your previous year went in terms of finishing roadmap :3
This is intimidating. I’m an experienced Windows C# dev, and for 90% of this chart I barely know more than the name and idea of each.How can I ever get up to speed on web dev without spending years?
I don’t think you need to. You’ll learn what you need to know when you need to know it, you don’t need to know everything in advance. Any job listings I’ve seen would only ask for a tiny fraction of this stuff.
Learning by doing is the best thing to do.
It took me about 2 years, but I can check everything off now.
is Moq really good to learn with all stuff going on with that right now?
Hey Nick, how can I pay for some of your courses if I can't use any of the available payment methods? Your courses are really cool btw
Huh, I know surprisingly many of those.
Not sure I agree with not recommending stored procedures, but triggers are pure evil and should be avoided at all costs. I worked on a system that used them a lot and it was torture.
Love that all the "free resources" are just links to $100 courses :)
Do I need to skip all the built library of C# and stay focused on FCL or aka Nuget Package Library ?
To the people fighting for stored procedures in the comments: do y'all actually enjoy using them? They've been absolute maintenance nightmares in organizations I've personally seen leverage them. I can't help but feel like if there's a point where that layer of abstraction between the application and the database becomes an appealing option then that's a symptom of a larger problem.
No Jenkins? What is the state of jenkins compared with it's alternatives in 2024?
Lately I'm not responsible for writing the CI/CD pipelines at work, and, for personal projects, I don't have anything that needs it, but a few years ago I used jenkins on a project and it was really easy to setup and learn it.
Recently I gave a quick look into azure pipelines and it felt a bit too abstract on how it works (felt like I don't have much control on how things are build/deployed... but I didn't had too much time to learn it, I may be wrong)
You're doing a great job with this. Thank you for contribution 🔥
Why do you prefer NSubstitute over FakeItEasy?
Can you recommend a course to become the senior .net? thank you
Always informative. Thanx Nick👍
Will there be asynchronous course in the future?
Curious on how you only included API documentation, and not Documentation as a key aspect (as it really is). So I would include some KB product/solution or so.
well explained!
Thanks
K9s? Bold of you to think that a TUI won't scare away dotnet devs.
You have a typo "Fire store". Also, no Sentry?
thank you
awesome
Hey Nick! I heard about you on Reddit and others recommended your C# course for beginners. I tried searching on Google but couldn't find it. Do you still have the C# course for absolute beginners that you can share?
What is missing?
- Bicep for IaC
And then the whole idea of understanding networks and www. Basics of TCP, at least HTTP is required knowledge these days.
This whole list for people, who live for work. It is the best visualization of the reason why I want to leave software development.
Bited!
Logging : Nlog
Missed or ... [color] ?
I don't see NLog used very much, mostly Serilog and nowadays Open telemetry is getting a lot of traction..
As a lead, 100% on this. This is pretty much what I teach my developers now, but I did add a few from your list. I would say though that you should at least have an understanding of stored procedures as you will likely have legacy applications that use them. I agree with the statement that they are an anti-pattern at this point.
Nodatime library is missing
Do you have a course that allows to learn the entire roadmap? Thanks for sharing.
Nice!
I been using Azure cloud for some time but I get the feeling I should get some of it's certificates... which one you think I should start with knowing I'm more into dev side or what's the AZ- path to follow?
Check out GPS' channel for that: www.youtube.com/@MadeByGPS
@@nickchapsas Thank you! Greetings from Morocco 🇲🇦 💯
Is the free Getting Started with C# offer over? When I follow the link I see it's $108.89. It would've been a nice one for a colleague who's thinking of transitioning to be a developer.
Hi,Please tell me about the course From Zero to Hero: REST APIs in .NET
Is it net 8?
It’s 7 but nothing changes between 7 and 8
Hi friends, learn the basics of stored procedures, at least to pass interviews.
C# is GOATED
No blazor or front-end technologies ?
he did say backend
Thanks for roadmap, it's really helpful . But when I register on the free C# course in dometrain, it does not send back mail .
Email contact@dometrain.com
If a developer knows all these, atleast the green one, he is the entire dev team !
😂
What about the new MSTest Runner :)
Hi I think this is too much, is so frustrating, I've spent several years learning and this seems endless. Additionally, when learn something new for several months and come back to the other things you've learned, you feel it has been forgotten, what to do with that? And why not to use mappers?
I'm surprised you didn't cover LLM frameworks like Semantic Kernel
Roslyn for code analysis and generation
Hello!
guys i nead honest reply from developers working in .net technology. Is it worth learning .net in 2024 as per future perspective, will it vanish in few years or should i try into data science or data engineering
No rust huh? 😅
Learning multiple programming languages would I definitely see as a general roadmap item. Helps to understand things and see things in context.
And yes, I would also love to find a Rust roadmap too somewhere. I have become Rustacean too. But it's still a different specialization from dotnet developer. 😂
I see this video for myself as mainly about everything else which is NOT just my favourite programming language, but all about the tools around it. And at least I know that I can still improve several things. So this is really useful.
Did you missed Schedulers? , Coravel, ...
shoutout to Coravel for sure