"Good explanation, but now what?" - Thoughts on getting people started with .NET

I was listening to a .NET Rocks! episode with Ian Cooper about starting a .NET Renaissance, analogous to the Java Renaissance started in 2011 after the decline in usage of the language. Ian lists plenty of evidence for a similar decline in C# usage, and what might have replaced it, in his blog post, so I won’t get into that, but there is another aspect which I want to talk about. One of the problems briefly mentioned in the podcast is the ‘leaky bucket’ problem: it is inevitable to ‘lose’ some developers to other platforms, so unless we fill up the bucket with new ones, usage of C# is going to decline to zero at some point.

There are multiple ways to fill that bucket: showing people who left that we can do all the cool stuff (running on Linux, being blazingly fast, being open source) now too, or showing people who failed with other problems that we can deliver what they need. But the way I want to focus on is getting people completely new to programming to use .NET, since it is something I’ve tried to do before and something I feel C# has lacked in since forever. Yes, there are people who start their programming journey with .NET: my first real programming language was Visual Basic, but I don’t think we should count on people being like me. It’s 2017 and I use a Lumia; I rest my case.

Let’s be honest: C# is a Microsoft technology, of course it’s not one of the cool beginner languages. It’s uncool by definition. Yes, there are probably languages that are simply easier to start with (it depends on your definition of easy), but in that case, we should at least be level with Java, and I don’t feel like we are. You’ll find more Java tutorials on YouTube than videos on C#. I was comparing Computer Science programs at universities in the Netherlands, and almost every one of them teaches Java, and none teaches C#. Even more anecdotally: a friend of mine started programming and he chose Java. Yes, I’ve talked to him, laughed at him, repelled some myths about Visual Studio, but he didn’t switch. C# is just uncool.

We can’t do much about the fact that C# is a Microsoft technology. It’s also why the enterprisy developers, the traditional .NET crowd, love C#. It’s backed by a strong company, with a great track record on backward compatibility and long term support. This enterprisy focus has also heavily influenced the C# learning materials, which are designed to throw huge amounts of information at you, Jump Start style, so you know everything as fast as possible and go on with writing the software you should’ve finished last week. This kind of education is great if you know what you want to build, or what you have to build, but for people who are getting into programming as a hobby, it misses a lot of guidance and examples.

I know this because I’ve created such Jump Start-like content myself: in 2015 I published some videos on C# on the Dutch website JorCademy, a website mostly focused on getting children into programming, but we know it’s watched by people of all ages. Most of the feedback I got on my videos was something along the point of “that’s a very good explanation, very thorough, and easy to understand, but I’m missing some examples of what I can do with it.” Roughly said: “Good explanation, but now what?” And I feel like this applies not only to my videos but also to the larger stage of C# learning materials.

On the contrary, the web is full of content to get you started with all the cool languages, with short videos, and quick demos. They lack the deep explanations I’ve come to love about our content. I really believe the best way to learn something is to get a deep understanding of the underlying stack, but it turns out people are excited to get coding quickly and don’t want to sit through a twenty-minute monologue about the pros and cons of compiling vs interpreting and how JIT is different from both. Historically .NET just hasn’t been a platform for getting started quickly, and you had plenty of time for such lectures because Visual Studio needed another 6 hours to install anyway. And maybe Visual Studio isn’t the most beginner friendly program:

Luckily times have changed and with .NET Core and Visual Studio Code, you have your code running in ten minutes and a full-blown editing experience with IntelliSense and debugging in another ten, across Windows, macOS, and Linux. .NET has everything to be a good platform for beginners and getting people excited about programming, now we just need to get a good tutorial out there. But what would that look like?

Ideas for a ‘cool’ C# tutorial

First of all, as I said before, I’m a little torn on this. I understand people are excited to get started quickly, but I still want to share the full picture with background information so you’re not entirely dependent on magic. A way to balance these two extremes would be to have a regular course, which covers just the minimum you need to know to get something running quickly, and some extra material that goes deeper into the matter, provides reasons for, and gives insights into why things work the way they do. Links to this deep-dive content can start appearing very early in the course - preferably in a very subtle way, like with a ‘But why?’-link in the margin - and be more heavily promoted in later stages, maybe with inline suggestions. However, the regular course should always be followable without consulting the deep-dive material.

For video content, and let’s be honest, all the cool kids watch videos, the extra content could first be suggested via a YouTube suggested link, without any references inside the video itself. In later stages, the presenter can point out the deep-dives and encourage people to watch them when they become more relevant.

The regular course should focus heavily on examples and code, and in the case of videos, PowerPoint should be banned. Death by PowerPoint is very common, and it’s definitely not fitting for a ‘cool’ tutorial. The deep-dive material can sometimes divert from these rules, but even there a live sketched diagram is probably better than a pre-baked slide. In order to get a coherent series, the examples should be related to each other, with each one building on the previous. Since we’re shooting for a full cross platform tutorial, the examples should be command line applications, as full cross-platform UI isn’t a thing (yet). Maybe we could progress into web applications, but easy hosting for .NET Core is hard to find; Zeit Now is pretty easy, but it does require you to create a Docker container.

So what can we build as a command line application, later progress into a web app, start really simple and build out to a complicated program? Chatbots! They work well on the command line, they can be built out into web apps, we could introduce the Bot Framework, but even Hello world! can be considered a (pretty dumb) bot. Bots might even pass the ‘cool’ test (even though Microsoft is investing in it), making it the ideal category for examples in our ‘cool’ tutorial.

Now we just need to make something like that. If you have any suggestions or want to help, please let me know! I’ll see what I can do, stay tuned. 😉

Thanks for reading! Enjoyed this post? Please share it with your friends using the buttons below! Have some questions? Comments can be found below too! And on a final note: grammar corrections are always welcome! English is not my primary language, but that’s not a reason to don’t learn how to use the language correctly.

Share Comments

My favorite podcasts

I enjoy listening to podcasts. Where others listen to music with everything they do, I much prefer people talking and learning something along the way. Here’s a list of my favorite podcasts, for developers, for techies and some for everyone.

For developers

There are a ton of developer podcasts out there, but there are four that I keep listening to:

Hanselminutes

Subtitled Fresh Air for Developers, Hanselminutes by Scott Hanselman is exactly that. Every week a new 30 minutes episode gets published, in which Scott interviews, developers, other people in the tech industry, or his wife. Sometimes that leads to a great technical discussion, at other times it’s more of a lifestyle podcast. Scott asks all the right questions and makes sure his audience is staying with him, by clarifying all acronyms. A very refreshing podcast.

Listen to Hanselminutes: website, feed

The Stack Overflow Podcast

Hosted by Joel Spolsky, the CEO of Stack Overflow, and his team, the Stack Overflow Podcast gives insight into the inner workings of the Stack Overflow company and great interviews with SO employees or developers outside the company, as a part of the Developer Story. With returning segments like Joel’s rant, the one-minute tech review (which is rarely 1 minute), discussion of the news, the preparation of a Stack Overflow Constitution (you can vote too!), and games like Start-up or Shut up or Stump Nick Craver, this podcast is an hilarious addition to every developer’s podcast library.

Listen to The Stack Overflow Podcast: website, SoundCloud, feed

.NET Rocks

In over 1400 episodes since 2002, thanks to their rapid release schedule of 2, previously 3, one-hour episodes every week, Carl Franklin and Richard Campbell discuss all topics related to development with their guests. Mostly with a focus on .NET and Microsoft technologies, but they’ll also keep you up to date on the web front-end, design, cloud architectures, containers and more. Every episode Carl will share something interesting he found on the web in Better No Framework, and a wide variety of technology will get discussed when the guests get asked what they would buy with $5000. A must-listen for every .NET developer.

Listen to .NET Rocks: website, feed

MS Dev Show

Every week Carl Schweitzer and Jason Young discuss everything related to development on the Microsoft stack with their guests. With coverage of the latest technology news and a game for 4-year-olds at the end, the MS Dev Show is a complete podcast to stay up to date with everything happening in the Microsoft development world. For those who prefer to see faces of the people talking, a video version is hosted on Channel 9.

Listen to the MS Dev Show: website, feed

For all geeks

With a great variety of technology and science.

The New Screen Savers

I’m not old enough, nor American enough, to remember The Screen Savers show on the TechTV channel, but I’m still happy that Leo Laporte revived the show on TWiT.tv with The New Screen Savers. Hosted by Leo, other members of the TWiT crew, and guests, this podcast features the latest in science and technology. Technology questions from listeners get answered in the Call for Help segments, and throughout the show, small segments with tips on technology get shown. I recommend watching the show, as it’s more of a TV-show than a podcast, even though it’s distributed that way.

Watch The New Screen Savers: website

Bonus: .NET Rocks Geek Outs

Every once in a while on .NET Rocks Richard and Carl completely geek out and dive deep into a topic, ranging from hypersonic vehicles, to genetically modified foods and from space elevators to the world energy production. Richard does his research exceptionally well and transfers all that knowledge in a fun conversation, which makes .NET Rocks not only recommended for .NET developers, but every other geek too. If you only want to listen to the Geek Outs, there’s a special feed linked below.

Listen to .NET Rocks Geek Outs: website, feed

For Windows-fans

With four of my favorite Windows-journalists.

Windows Weekly

With Leo Laporte, one of the best podcast producers, and Paul Thurrott and Mary Jo Foley, two of the best Microsoft-journalists, this podcast has been the podcast to stay up to date with Microsoft for many years. They focus mostly on the consumer side of Microsoft products, but don’t be surprised when Mary Jo sneaks in some enterprise news. I usually watch the show live, on TWiT Live.

Listen to Windows Weekly: website, feed

Windows Central Podcast

Windows Central is my go-to site for Windows coverage and I love their podcast. Daniel Rubino and Zac Bowden talk about the latest Windows Insider builds and the newest laptop reviews, and of course the occasional scoop about an unreleased Surface or Lumia. You can watch the show live on their Mixer channel and stay around untill the end to ask your questions. But please, don’t ask about the Surface Phone.

Listen to the Windows Central Podcast: website, feed

For your weekly dose of satire

Because laughing at the news is the only way to survive in this world.

The Bugle

The Bugle is an audio newspaper for a visual world, in which the British Andy Zaltzman talks with fellow comedians from all over the world (even from the lesser hemisphere, 6.7 billion people can’t be wrong) about politics, other world news, and of course cricket. With a forty minutes episode every week, The Bugle gives you all the facts you need to survive in this post-truth world.

Listen to The Bugle: website, feed

For the Dutch-speakinglistening

The Dutch podcast scene isn’t that big, but I’ve found some very good ones.

De Rudi & Freddie Show

Rutger Bregman and Jesse Frederik of the Dutch journalism platform De Correspondent discuss politics, economics, and the workings of the world, in a new episode roughly every other week. They provide genuine insights and suggest improvements that should be made to make the world work better. They can explain the most ridiculous things so everyone understands and sketch a world that you don’t see in the news. This is a podcast everyone should listen to, no matter what your interests are. (As long as you understand Dutch.)

Listen to De Rudi & Freddie Show: website, SoundCloud, feed

De stemming van Vullings en Van Weezel

Because the after-election election hype can go on for months in the Netherlands, Joost Vullings and Max van Weezel give their latest thoughts on the elections of March 2017, and with the results in, they comment on the formation of the new administration. Yes, that’s still going on, and it isn’t done anytime soon either. Highly recommended for those interested in Dutch politics.

Listen to De stemming van Vullings en Van Weezel: website, SoundCloud, feed

Thanks for reading! Enjoyed this post? Please share it with your friends using the buttons below! Have some questions? Comments can be found below too! And on a final note: grammar corrections are always welcome! English is not my primary language, but that’s not a reason to don’t learn how to use the language correctly.

Share Comments