Is it easy to build an airplane? Of course it is: I can learn to make paper airplanes very quickly. But what’s the next step if I want to build a real airplane one day? For example, I can build a radio-controlled airplane. Is it easy to develop software? Sure: I can quickly learn to write a few small console programs. But what’s the next step? I have an idea…

Programming is super easy. First, I get a programming language, for example python or C#. Then I have a look at some videos and I am ready to write my first programs. It takes just a few minutes or hours. Or is programming not quite so easy after all? At Microsoft, for example, sometimes several 1,000 developers are involved in a project (see “Welcome to the Engineering@Microsoft Blog”). And usually these developers have years of training behind them.

Let me start with an analogy: Suppose I want to learn how to build something that flies. Then it’s also super simple at first. I take a piece of paper, watch a few videos, and after a few minutes I’ve built a paper airplane, and it flies. But that’s only the very first step. Because, of course, there are much more complex airplanes: gliders, propeller planes, jets, passenger planes. And if you want to design such airplanes, you have to know much, much more.

So if you want to participate in the development of a real airplane, you need a lot more knowledge than for building a paper airplane. But how do you go on if you’ve already built a few good paper airplanes and want to learn more? You can’t try to build a two-seat propeller plane next. That step would be much too big. A good option is: You build a remote controlled model airplane. Thereby you can learn a lot, which is also relevant for bigger airplanes. And if you do something wrong, nobody gets hurt - except your wallet, because you have to repair your plane.

It’s similar with software development: It’s easy to write a few console programs and learn some first things. But then the next step is not easy. It’s very hard to write an app or game next. You then have to learn so many things at the same time that you just can’t get a handle on it. You need something that is harder than a console program but easier than a real, full-fledged game.

My suggestion: In the following series of articles I explain how to program a small graphical computer game. The game is a bit more complicated, so I can use it to explain step by step how to program with C# and some other things that are important in software development. This will not be an app to publish yet, that would be too difficult to start. But this game is a good start to explain tools and concepts that are also important for the development of larger programs.

So I’m doing something similar here for software development as an RC aircraft for aircraft construction:

On the left side, the discussed stages of the aircraft construction are displayed. On the right side, the discussed stages of software development are shown. On the left, one stage is described as RC aircraft and is accompanied by a small picture showing a child piloting an RC aircraft. The analog stage on the right is labeled "I try this" with a small picture showing hexagons.

In the next post, it starts.

Previous Post
Cache data in memory and update it regularly via a background service (.NET Core MinimalAPI example)
Next Post
Learn C# step by step, the HexaFour Game (h4-01)