DEV Community

Andro
Andro

Posted on

Looking for advice on projects to learn c# and .net

Hi there,

A few months ago I decided that I'd like to quit my current field of work and get a job within the software industry. It's a big step for me as I have no background in actual software development, no work experience and last but not least no education in the field.

In the mean time I'm studying as much as possible from the Microsoft Visual studio Academy and am now approaching the point where I'm not sure what direction to follow.

I'd like to work on 1 or 2 projects that would teach me more about software development and be useful in a real world situation.
I'm struggling to come up with these as I lack the experience of working in a company on a daily basis.

Any suggestions and idea's would be greatly appreciated, please keep in mind that I'll be working on these by myself so they have to be realistic goals.

I've worked on real time interactive installations for over 7 years now with programs like Max msp, Touch designer and Processing, so the concepts of basic code,logic and programming is familiar to me.

Thanks for your time.

Top comments (9)

Collapse
 
maccabee profile image
Maccabee

In my experience even in .NET web if still higher priority, be it, mostly, back-end servers or MVC. Less than 10% of positions are looking for WPF/desktop. Though I also enjoyed my time learning it, it's a simple truth.

So a good idea would be to take Kasey's suggestion about a financial forecast but build it in separate parts. An api for the business logic and both a desktop and MVC project for the UI. That would give you a taste of everything .NET.

Collapse
 
androvisuals profile image
Andro

Hi Maccabee,
thanks for taking the time to respond. It's becoming very clear that I'll have to learn to develop some projects which work with MVC, ASP and SQL, database management seems to be a very essential part of the job from what I've seen with looking around for an internship.

Collapse
 
kspeakman profile image
Kasey Speakman

I didn't see you mention knowing HTML5. If that's not already in your tool box, then I would not include web UI in a first project. That will just distract you from learning .NET. (But it's worth putting it next-in-line to learn.)

Instead, I might take learning C# and .NET in phases. Playing with console apps are the first step. (I still make console apps today for small utility functions.) Then maybe a desktop app to get started on your real project. Then split the back-end stuff (saving to database, business logic, etc.) off of the desktop app off into a web API. That will give you practice dealing with API calls and the separation between UI and back end. ASP.NET Core is a good candidate for running the web API -- fast and runs as a console app.

Then maybe look at web UI. If you had to pick a .NET tech for web UI, MVC is worlds better than WebForms. But I find it pretty hard to justify creating a new web app in anything other than HTML5 frameworks. I.e. React, Angular, Vue, etc. -- my personal favorite is Elm. However, these are a whole separate universe from .NET.

For picking a desktop tech, I'll just give you an overview of what's there. The latest one is UWP. But UWP apps only run on Windows 10, which means most companies won't be moving to it anytime soon. WPF is the predecessor to UWP which runs on all supported versions of Windows. Its API differs from UWP, but it uses the same layout language (XAML), so there should be some skill cross-over between them. WinForms is the oldest .NET desktop tech and is nothing like WPF or UWP. I think it is probably simplest to learn, but is considered antiquated.

Good luck.

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

My advice is not to settle for a toy/theoretical project. These often lead you to develop things in a way that theoretical humans "should" want to use and theoretical developers "should" want to maintain. But not actual humans and developers. :) Make something that you find useful.

One personal project I did for practical reasons was to do a financial forecast. I never did strict budgets and balancing. For many years I was basically paycheck-to-paycheck, and I observed that some months seemed to have surplus and some shortage. So I wanted a tool to put in my bills with their due dates, and income with its frequency, and forecast out arbitrarily far to see what my income vs outgoing was. And ultimately use that information to set a realistic budget on non-essentials. And you can answer other questions like "What if I took a job making X ?" "What if I added a car payment?" "What if I put X into savings?". And from the generated forecast, you can see things like: February is worst month at -$500 total, but Nov is best month at +$600. Avg for a year is +$87.

By now, I'm sure this kind of app already exists. But the journey to make it myself had some interesting challenges. And it was very useful to me, not a toy.

Collapse
 
androvisuals profile image
Andro

Hi Kasey,

Thanks for the great response !

I think the things that's been stopping me is that I'm always trying to be as "efficient" as possible so I want to work on a project and develop skills from it which will be useful in a work environment. I think I just have to ease that back some and just get started.

If anyone else has some tips for educational resources or projects I'd be more than happy to hear them.

Collapse
 
georgeoffley profile image
George Offley

Make a video game in Unity!

Collapse
 
androvisuals profile image
Andro

Hi George , thanks for the tip. Already played around with that but I don't think game development will teach me the skills i need to work in the world of software development. Plus making a good game is really hard !

Collapse
 
georgeoffley profile image
George Offley

Doesn't have to be good. In fact most games people make (myself included) suck. It's about knowing how to do it. Another thing you can look into is developing WPF applications using C#. That will allow you to build applications that run directly on Windows. Below is a link of a video I found useful when I started my new job.

youtube.com/watch?v=Vjldip84CXQ&t=...

Thread Thread
 
androvisuals profile image
Andro

Sure thing George, I just think that game development is a very particular branch of work which normally requires a lot of people with different backgrounds. Concept art, coder, musician , 3d or 2d artist etc etc...
Therefore the scope may be a bit too wide to actually learn some areas of focus.
I just started with WPF a few days ago while working on my 1st program, so its been a valuable lesson.
Thanks for the advice !