There seems to be some confusion in the software development world, especially among aspiring developers (and even some seasoned ones as well) about what .NET actually is.
Is it a programming language? A framework? A development platform? If you’re a .NET developer, what exactly does that mean? Do you code in VB.NET, F#, C#, or all three? Is it for desktop apps? Web apps? Static sites? SPA’s? API’s? Azure services?
Ok, so maybe you haven’t asked all those questions, but get a group of people interested in .NET development into the same room and all of these will probably come up, along with a few others I haven’t thought to mention.
The point is, yes, there is some confusion out there when it comes to understanding exactly what .NET is.
Going to the source
I find that when you need to gain understanding about something, especially something that causes a lot of debate (or confusion), it’s best to go straight to the source. So let’s see what Microsoft has to say about it.
At Microsoft’s .NET Learning Center you’ll find the following definition:
.NET is a free, cross-platform, open source developer platform for building many different types of applications.
Yes, you read that right. .NET is free, cross-platform, and open source. These characteristics are not typically what comes to mind when one thinks of Microsoft. It’s also a software development platform. That means it consists of a variety of tools and libraries.
The platform supports development in three different programming languages: C#, F#, and Visual Basic. Do you have to use all three? Of course not. It doesn’t matter which language you code in.
Because .NET is cross-platform compatible, your compiled code will run on any supported operating system. With it you can build websites, servers, console apps, cloud services, desktop apps, and mobile apps.
Debunking the myth
With all that power and flexibility, one might assume that .NET must be an incredibly difficult development platform to learn.
In fact, a couple of years ago, right after I left Coder Foundry, I met with the CEO of a leading coding bootcamp to discuss our shared interests and how we might improve the quality of teaching in the bootcamp industry.
For a coding bootcamp, the belief that you can’t teach new developers something difficult or complex simply shows a lack of faith in your students, a lack of faith in your admissions and preparation processes, and/or a lack of faith in your instructors’ ability to teach.
Speaking from experience
It has been my experience that both students and instructors will live up to your expectations of them when the desire to perform is there, when they alone are accountable for their work, and when they know that they have the faith and support of the entire organization behind them.
But let’s get back to this CEO’s statement about .NET. He reiterated to me the popular notion that .NET is too difficult for new developers to learn, and he’s not the only person I’ve heard it from. It may be a popular belief, but just because something is popular doesn’t make it true.
If you hear this from someone, what that person is really telling you is this: “I don’t code with .NET. In fact, I don’t even understand what .NET is, and I don’t really believe I could learn it if I wanted to, so naturally it’s too difficult for you. But I really know nothing at all about it.”
Don’t take advice from people who tell you .NET is too difficult for you to learn. It’s not. I’ve taught people from all backgrounds, from all walks of life.
I’ve taught people with a lifetime of experience coding microprocessors in C to middle school ESL teachers to cement truck drivers, and the one thing they all have in common is this: they all became successful .NET developers.
The .NET platform is the most powerful and flexible development platform available today, and the need for skilled .NET developers is growing faster than the supply.
Stay tuned for more on this topic.
About the Author
Andrew Jensen has spent more than 25 years in the IT industry and in academia as a business owner, manager and director, corporate trainer, software developer, technical writer, research scientist, teacher, and student. He is the co-founder and CEO of jTEC Web Services and jTEC University, and the author of the curriculum in use at Coder Foundry, a .NET-based coding bootcamp located in Kernersville, North Carolina, USA. His research work, both in the effects of risk on technology acceptance and in IT education through embodied pedagogical agents, has been published in international academic journals and various conference proceedings. Andrew also teaches .NET for OpenClassrooms.
To learn more about OpenClassrooms’ programs where you’ll learn the most in-demand skills in development, data, design and beyond.