Thumbnail for Brutally honest advice for new .NET Web Developers by Ed Andersen

Brutally honest advice for new .NET Web Developers

Ed Andersen

7m 22s1,288 words~7 min read
YouTube auto captions
Transcript source

YouTube auto captions

This transcript was extracted from YouTube's auto-generated caption track. The transcript below is server-rendered so it can be read, searched, cited, and shared without opening the original YouTube player.

Pull quotes
[0:00]You need to be able to write a console application before you even begin to consider writing a web app of any type.
[0:00]You should not learn Visual Basic .NET ever, today, unless you want to work on horrible legacy code.
[0:00]Once you are ready to move on to web applications, you should learn ASP.NET MVC first, before you do anything else.
[0:00]Don't learn Razor Pages because the patterns in Razor Pages do not map to other web application frameworks, such as Ruby on Rails or Node and so on.
Use this transcript
Related transcript hubs

[0:00]Hi there. I've been a .NET developer for 15 years. I've worked with, interviewed, and hired hundreds of developers over that time. Roll the presentation. The first thing you obviously need to learn is C#. If you don't know C#, you'll get horrendously stuck. You need to be able to write a console application before you even begin to consider writing a web app of any type. And do not attempt to learn Visual Basic .NET or F# as a beginner. You should not learn Visual Basic .NET ever, today, unless you want to work on horrible legacy code. And F# is for people with galaxy brains, and you might not be there yet. Once you are ready to move on to web applications, you should learn ASP.NET MVC first, before you do anything else. Don't learn Razor Pages because the patterns in Razor Pages do not map to other web application frameworks, such as Ruby on Rails or Node and so on. And don't learn Blazor as your first web application framework in .NET. It's an abstraction over an abstraction over an abstraction and you will not learn anything. It is an extremely clever piece of technology but it's not for beginners. It is for people that don't want to learn JavaScript. You can do this after you've learned .NET MVC. And the reason you need to learn .NET MVC is because these three core concepts will be everything in C# and .NET web application frameworks. You need to learn routing, view models and MVVM, and Web API and API controllers. These are the table stakes. Do not move on until you know what these are. The next set of table stakes, obviously, is HTML, CSS, and JavaScript. You also need to know this. These are the basic building blocks of the web, and don't let crazy abstraction layers over this, over these basic technologies, distract you from actually learning the fundamental principles of how web pages are made. And if you do need to learn a single-page application framework, learn React. Don't bother learning anything else. Do not do Angular, and certainly don't try and learn Blazor before you can do MVC. For foundational software architecture concepts, you need to know the following: dependency injection, SOLID code, and be able to write testable code. You don't need to do strict TDD 100% red-green refactor at this stage in your career, but you need to be able to write testable decoupled code. And to help you get there, I've chosen three books that I would consider as bibles for .NET developers. Pro C# 10 with .NET 6, Clean Code by Rob C Martin. Despite his politics, you need to read this book because everybody else in the office will be talking about the contents of this book. And dependency injection in .NET by Mark Seeman. He is a genius. This is a classic book and all the concepts still apply all the way through to the new dependency injection frameworks in .NET Core. For databases, you need to learn SQL Server. 95% of applications using .NET will be in SQL Server. Do not be tempted to try and use Postgres or MySQL at this stage. These are very esoteric options that they'll be very niche, niche companies that use these with .NET. It is actually quite rare out there despite what you might read on Twitter. You can use Entity Framework Core first as your ORM. You might want to experiment with Dapper, but you don't need to. Entity Framework will force you to understand LINQ as well, which is extremely important. And you should also install SQL Server Express on your local Windows machine, so you can get used to SQL Server Management Studio, which you'll be spending a lot of time with in your future career. Speaking of your future career, you do need to be well aware of the types of companies that actually use .NET. So be ready. Don't, don't learn .NET unless you want to work at some of these types of companies. So you got enterprise, big companies, banks, insurance companies and so on, big and stable, may or may not be much fun to work at. There is there's there's quite a few small software companies that were started a long time ago, maybe a decade ago, that use quite old versions of .NET. And they might have updated their stacks and frameworks and so on, but the sad reality is there are not many new startups using .NET today. It is quite rare. I would love to be proven wrong. So in the comments, please write the name of your amazing startup that is using .NET. And I will, I will give you a shout out on this channel. And when you are job hunting, you need to be very careful of job descriptions. Because .NET Core was rebranded to .NET 5. And this was basically a whitewashing laundering operation to hide the facts that .NET Framework existed. And you need to be very careful with job descriptions to make sure that you're not getting a job that uses .NET Framework. So when somebody says, I'm going to hire you for as a .NET Dev, the sad thing is this can mean two different things. It could mean you're a .NET Core .NET 5+ dev, which is great. It's cross-platform. It's in the cloud. Everyone loves it. But it could also mean you're a .NET Framework dev. So check those version numbers very carefully and ask your recruiter what they actually use. And while we're at it, we have some red flags to watch out for if the job description mentions any of these in, in this day and age. Run for the hills. WSDL, SOAP, WCF, Web Forms, or MSMQ. Just don't, just don't entertain these jobs if you want to be sane. Now, this is some old stuff, but there's also some relatively new stuff that you might want to study in your early days as a .NET developer. Don't bother, don't learn this stuff until you can actually build a full stack web application. Event sourcing, CQRS, message bus stuff, Mediatr. All of this you do not need to know, and as a junior developer, you should not be expected to be an expert in it. Some of this is over-engineering for 90% of applications. You just don't need to know it yet until you are very senior. And my last piece of advice before you even consider applying for a job as a .NET developer is build an app. Find something that you want to make and do it in .NET. This is table stakes today. You cannot just be a back-end dev or a front-end dev or a database dev. You need to be full stack with the way, the way interest rates and the market's going today. This is table stakes and it's far more fun if you understand everything that's going on. You need to be able to build an app and get it on the Internet. Use Azure App Service to start. They have a free plan. It's basically built for .NET. Go for that. And only learn Docker once you actually have an app that is running. Right, after all of that, thank you very much for watching. If you have any questions, stick them in the comments, I will gladly respond. And if you thought that was okay, please subscribe so I can make some more videos. And even hit the like button. If you didn't like the video, press the like button three times, which registers your dislike of the video for YouTube's algorithm. Until next time, thanks.

Need another transcript?

Paste any YouTube URL to get a clean transcript in seconds.

Get a Transcript