On Building Communities
Tags: dotnet, csharp
Published: 2020-04-10 19:08:33

Here at DealerOn we have a special kind of environment of enabling each other to pursue our interests and contribute to the effort in a personal way. Part of that is shown through the numerous blog articles written here; each one done by a volunteer and the topics left completely open-ended for us to explore what we think is worth sharing. This principle extends into all our activities from internal hackathons, events, and even the way we share ideas with each other. There is a sense of community involvement which extends past the work itself and drives us.

I first encountered C# early on in 2002 when it was still not even a year old as an official language. I was new to programming but my questions were taken seriously by helpful members of the community. Those moments of helpfulness are what stuck with me throughout my time with the language and I’ve seen the development community around it grow into the great ecosystem that it is today. While this isn’t unique to the .NET, it is an important quality in building a diverse platform.

Along the way I have been lucky to be mentored by many of these talented individuals who are passionate about sharing their work for other people to use. The idea of being able to build tools for other people to use is what caught my interest and ultimately pushed me down a path to learning more. Despite this, it would still take me at least ten years to learn how to develop any original software in C#. The barriers to entry were too high early on and I never stumbled upon the right resources. 

Today, I see whole libraries of videos done by professionals and curated by sites like Pluralsight; there are numerous high quality guides for getting started on the Microsoft docs and blogs themselves; and even YouTube and social media sites like Reddit are now seeing thriving communities for learning how to develop. We have also seen a surge in cooperative development tools. Today I can use Live Share to connect with someone working on a cross-platform app without even leaving the IDE. I can watch them deploy that app to the cloud with a couple clicks and see it automatically provision a server in real time.

With all of these new tools and the lower barriers to entry, I have seen the community come out in force to support learning opportunities. There are now innumerable IRC servers, Discord servers, forums, and other groups out there spending their time mentoring juniors on open-source projects. Not to mention that .NET Core now runs cross-platform, so we can collaborate with users of other operating systems. All of this means more libraries being built, better tutorials being written, with greater access to teachers for those who are new to programming.

The future looks good for the .NET community and Microsoft has clearly been invested in supporting it. Later this year .NET 5 will launch and with it we will all surely have new API surfaces to learn; there will be the usual issues with assemblies and broken references. NuGet packages will need to be updated. StackOverflow will be full of weird issues that everyone keeps running into as they try to migrate their apps. Despite the growing pains, it is up to everyone to help each other out. It’s only through the collective effort of trying, failing, researching, and sharing that we all contribute our shared success.

This has all been a long winded way to say that in a sense, building a community is about investing in individuals. It is not an easy task to build an environment where learning is the default and where failure is seen as an opportunity to improve. I believe that in many ways this philosophy exists at DealerOn and is influenced heavily by the larger .NET community. It’s important that we always ask ourselves how we can give back to the community and how we can make things easier for the next team who comes along. Thanks for listening.