Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What kind of application should I develop for the purpose of learning right concepts of programming

Tags:

c#

sql

I work as a ERP programmer, mostly with MS SQL and some kind of scripting programming language.

I also wrote some simple projects in C# (a web application for our company and a simple windows service) and I like it very much, so my next job will hopefully be in .NET environment.

Now I'm learning C# from a Wrox book and I went through all the basics chapters. This is all fine and nice, but in my opinion a better way to learn a language is through a real project. So my question is: what kind of application should I write, so that I can use all the fancy-named concepts, like inheritance, delegates, generics, reflection, LINQ,... It would be nice if it also connects to SQL Server.

I thought about personal expense management system or scheduling system. Any other ideas?

like image 494
sventevit Avatar asked Dec 30 '22 22:12

sventevit


2 Answers

Rule number one in such projects: It must be fun thing, or something you expect to profit from it.

When I was in the same place as you (and I mean the same...C#...WROX book...) I went for an engine of text based Adventure Games.
It has everything you described above, and more important I had fun writing it and later see people play it.

So, it really isn't important what you choose, as long as you enjoy it (and it's scope is big enough).

like image 52
Itay Moav -Malimovka Avatar answered Jan 14 '23 13:01

Itay Moav -Malimovka


Any well-designed application could use any or all of those concepts. Language-specific books have a tendency to focus exclusively on language details (for good reason) and generally neglect basic design principles. Another important point is that delegates, generics, reflection, etc. all have their place, but they shouldn't be implemented in an application just "because". That can cause unnecessary complexity.

All of that said, pick a project that interests you. Even better, something that you would actually like to use. Then, before even coding, think about how you should structure the application so that it is easy to modify later and add features. If you're putting all the code in the form/code-behind page, you're probably doing something wrong.

Spend some time learning design patterns. These are "best practices" of organizing code that have developed over time. No need to reinvent the wheel.

Hope this helps.

like image 31
Hans Van Slooten Avatar answered Jan 14 '23 12:01

Hans Van Slooten