Resources for learning .NET | A .NET Learning Path

For those who are new to .NET, this is a quick guide to get started to becoming a .NET developer and start you heading in the right direction. Of course, you’ll want to dive deeper into many of the topics in this post. 

Where to start

It can be daunting just looking at all the technologies and languages that are out there to dig into. For those who want to code in .NET, a good place to start is by learning about the software in the .NET family. This will give you information on what is available and why you might want to use it (see “more links” below). 

Next up: pick a language: C#, F#, or Visual Basic. Once you’ve got a grip on the language, focus on one or more areas of development specialty: backend, web, desktop, cloud, or mobile. A common path is something similar to this: language-> speciality (e.g., UI or backend) -> adjacent technologies (e.g., Azure, DevOps, Product Management). You will likely need to know some of the surrounding technologies to varying degrees. So you’ll need to learn them concurrently while learning your chosen language. As this happens, you may find that you enjoy specializing in one or more areas.

Consider what kind of products you want to build, or what you want to do with a programming language. Do you want to build web or mobile apps, or focus on mega-computing in the cloud? Remember, you’re not marrying these choices, it’s common to move around and work in one area then another.

Choose one (or more) from each row in the following graphic:

You might run into confusion about some of .NET’s naming, for example, .NET Framework vs .NET (also called .NET Core). .NET’s history reveals why, but the gist of it is that .NET Framework is the original .NET from the early 2000’s. What’s called .NET now was .NET Core when it was released in 2014. .NET (Core) is a more modern version of the .NET Framework. There is some overlap between the two as well as some incompatibilities. So unless you have a specific reason to start with .NET Framework, go with .NET (sometimes referred to as .NET Core). 

More links:

Learn a .NET language

.NET Supports multiple languages, including C#, F#, and Visual basic. C# is the most popular and most samples and learning material online are in C#. However, Visual Basic has roots that go back before .NET, and there are some high-paying career options available for developers who can work on legacy VB systems. Both C# and VB are object-oriented programming languages that can be adapted to a variety of computing scenarios. F# is a functional programming language and is a good niche to work in solving interesting problems, particularly in finance, data analysis, or scientific endeavors. 

While working and learning in .NET, you’ll find that understanding general principles of programming, building digital products, software development, and the like will help you become a better .NET developer. Additionally, knowing programming concepts such as Object-Oriented Programming (OOP), since C# and VB are OOP languages. Some helpful resources that apply to .programming but aren’t part of .NET are as follows:

A great way to learn to code is by reading code just as much as writing code. Comb through some OSS projects at the .NET Foundation and try to read the code from popular projects. You may even want to contribute to some yourself if you can. 

More links:

Specializations and .NET Adjacent Technologies

There are many other technologies that work with .NET that you should familiarize yourself with. Knowing database design basics is a great skill if you write enterprise software. UX design, product management, Agile  & Scrum. Many .NET full stack developers use JavaScript libraries for the user interfaces such as Vue, React, or Knockout. Full stack and web developers need familiarity, if not proficiency, with HTML, CSS, and JavaScript

Building software takes more than writing code. Software must be compiled, assembled, and shipped in whole or part. It must be tested to verify it works and works with other software. Some developers move into DevOps and work with Docker, Kubernetes or other container technologies to assist in building, shipping, and managing software. And of course – someone has to manage the developers and product. Some developers move into product design or management.

A really important tech for programmers is the cloud, so consider Azure or AWS as a viable backend for .NET software, as well as software written in other languages.

As you learn to write code, get yourself setup with a GitHub account and learn the basics of Git and GitHub if you haven’t already. GitHub & Git aren’t programming languages, but rather tools for managing your code called Version Control Software. Every programmer needs some type of VCS regardless of the languages they write in. GitHub is the most popular, and is a great way to showcase your portfolio so you can land that job!

Resources

This is in no way a comprehensive list, but rather a nice place of mostly free resources to start. There are hundreds of free or inexpensive courses on Udemy. The ones here show ones that are popular with high ratings, but do explore their course catalog and choose which works best for you. Pluralsight and LinkedIn Learning are also popular video learning platforms for .NET. 

I write a .NET newsletter filled with tutorials, tips, tricks, and fun stuff:

Books, magazines, and book subscriptions (some free, some not):

YouTube/Streaming Channels:

Get yourself hooked into the .NET ecosystem by joining Twitter and searching for folks tweeting under the following hashtags. Don’t forget to check out other popular programming related hashtags you see while looking for these.

Dotnet, c#, .NET, .NET Core, Programming, Software Development

Find and follow people on Twitter and connect on LinkedIn with those who are working as developers and  Developer Advocates. Developer Advocates (aka Avocados 🥑), are in the people at various tech companies who help and mentor and teach others in the tech industry. They’ll help you succeed

Join LinkedIn and connect with those in the industry. Don’t be afraid to post to people who know you’re new and are looking for guidance. Most folks are happy to connect with newcomers and provide some programming or career advice.

In the meantime, if you don’t have one, get yourself a mentor. A mentor gives guidance and answers questions about the topic agreed upon. It could be general career advice as well as technical advice. 

Consider taking software development classes at a college if possible. Online or in-person, it doesn’t matter. Classrooms give structured direction with a knowledgeable person who is often an expert (as always there are exceptions). Unfortunately for many, formal classes are cost prohibitive. However, many great universities now offer free software development classes online. 

Conclusion

Showing up is half the battle. And now you’ve got enough goods to get started, so get out there and do it! In addition to what’s here, Use Google, YouTube, and Bing to search for books, courses, blogs, videos and other learning materials. Twitter is an excellent place to ask questions and get a variety of responses from around the world. And keep in mind, you won’t learn all there is to know from visiting the links in this single blog post. You must make a concerted effort and frequently practice to become a competent software developer (i.e., reading and writing code) even more than you need to watch videos or read books.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.