Learning to program for the first time (or just picking up a new language) can be frustrating. Many languages have documentation that covers the basic features of the language, and that documentation is usually the best place to start, but once you complete that... What do you do now?
This is one of the most common questions I see beginner developers asking (especially self-taught developers). They learn the basics but they don't know how/where to start on their first actual project. There are tons of ideas that make great starter projects, such as a console math calculator, movie library manager, or file I/O operations (perhaps with csv files).
However, the most important thing about your first project is to choose something that you will actually enjoy and be motivated to complete. If you don't complete your first project in a new programming language, it will likely lead you to resent the language.
Most programmers enjoy video games so why not make a game? Making small games (especially for the console/terminal) is a great way to get started, and it will definitely help you learn a programming language.
My programming language of choice is C#, and in attempts to help more programmers learn how to code C#, I started a GitHub project with game examples implemented as .NET Core (C#) console applications:
GitHub: https://github.com/ZacharyPatten/dotnet-console-games
As of writing this article, I have already implemented 8 games in the GitHub project, and each of them is only a few hundred lines of code. Making a game might be easier than you think.
So if you want to learn C# (or know someone else who does) and making a game sounds fun, I encourage you to give it a shot. Play the games in the GitHub project and pick one you want to try to make. Try to code the game yourself from scratch, but if you ever get stuck, you have a working example to refer to. Then if/when you complete your own version of the game, compare it to the provided example. Your implementation might be better than my version. :)
Good Luck!
Top comments (1)
Game development is a fantastic way to learn programming and systems design. It's been my go to hobby endeavor over the years.