Skip to main content
GameDev.net gamedev.net
🔒 Locked

Which path is good for learning C# today ?

Started by _Kaven_ Jun 10, 2015 at 6:49 PM 5 replies 6.9k views
Original Post
_Kaven_
_Kaven_

I want to learn C# today. I want to know how I can make my learning as efficient as possible to learn the right way... ive been told by some programmer that I shouldn't learn windows forms or web form and concentrate right off on WPF and Asp.net mvc5 ... I don't know if I wanna do backend + database or web dev yet, I did some C++ 12 years ago still remember my concept ( class, pointers etc ) I can study 10hrs a day for over a year maybe 2 years my goal is to get a good grasp of the language to reach junior level inside theses 2 years. What would be the best path for me ?

1) Should I study a bit of winform (for legacy) and then WPF later on ?

2) or concentrate on the rest like backend with SQL database, wcf, ado etc and get a solid grasp of C# 5.0 on backend project

3) or go the web dev way and ignore wpf... asp.net mvc5 html5, css3, javascript etc

4) can someone explain to me how well C# and Asp.Net MVC5 stack up againt angular and the rest of the others web dev tech ?

Am I learning yesterday technology if I go the microsoft way ? everyone seem to be big on angular, javascript, html5 etc and don't seem to use lots of C#

thank you very much for your time french man from quebec

Mederick

ChaosEngine
ChaosEngine

Before I answer your questions, I have a few for you:

  • What is your goal?

Learn C#, yes, but to what end? What do you want to do with it? Game programming? Business apps?

  • How much programming experience do you have?

You said you did C++ 12 years ago, but you didn't say how much or if you've done anything since. If you're a reasonably competent programmer, (i.e. you've done at least one decent sized project), 2 years at 10 hours a day is complete overkill to learn C#. You should really be able to pick up most of the basics in under a month, especially if you're familiar with C++ or java.

So to answer your questions:

  1. Winforms is still very popular and it can be useful for putting together quick UIs. If you know any Win32, it's very easy to use, but unless you plan to make Windows specific UIs, you don't need to know it.
  2. If you plan to do any business related work in C#, you need to know how to query and update a database. The latest mechanism is the Entity Framework, so you should definitely learn that.
  3. WPF is a dead horse IMO. Microsoft have all but abandoned it. I would definitely choose HTML5 over it for a LOB app.
  4. ASP.net is an ok solution. IMHO, it's not great for frontend, so I would go the angular/ember/react route instead, but it's very nice for developing RESTful web APIs.

Technology (particularly business UIs) change all the time. C# is still a valid option, but at some point (maybe 5 years, maybe 20) you will have to abandon it and move on to something else. Never be afraid to learn something new.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
_Kaven_
_Kaven_

My goal is to have a good grasp of C# maybe study 10hrs a day for a long while to see where I get, junior lv or intermediate lv etc inside 2 years... after apply for jobs and build my way up from there... I don't know my goal was to do windows programs and then learn database especially with wpf or windows forms but everyone except you told me to not learn windows forms learn wpf instead...

some others told me I could forget .Net all together and learn Html5, Javascript, Css3 etc and go that route I could have a great career like that too but web dev doesn't seem to pay super well and it seem like I am more interested in doing some SQL and Oracle database work I will see not sure yet like I said I haven't programmed in a long while I still remember my concept class pointers and all that stuff related to it some stuffs is vague and the new things like linq, some advanced method stuff still elude me when I read C# code for fun but I understand a good bunch... right now im studying my MCSE in networking on windows server 2012 and vmware exchange etc but I wanted to go back to programming to see if I still love it more so that's why I ask

what worry me the most is the outsourcing of programming to india and most of the programming jobs seem to be temporary or contract based you do the programs and then you leave etc it's not like in the 2000's anymore etc networking and system engineers seem more stable at least security jobs wize etc but what interest me the most is learning the new C# stuff and xamarin seem pretty amazing you can leverage all your code on all the major platform and redo the ui etc that's why I thought C# would be a better long term choice over Java and spring that path etc


I may stop my study for a month and program for like 70hrs a week for a month or 2 see where it goes...but lots of ppl are saying different things to me so I am not sure whats the best path or most efficient way to learn which programming language today ... That's why I need advices from professional programmers

Alpha_ProgDes
Alpha_ProgDes

Here's a different approach. Pick something to create like a calculator, calendar, hangman, 'wheel of fortune'. And use c# to create one, any, or all of those programs. To make it easier, make it a console app, so you become familiar with the language.

Once you can do that, then you can worry about whether you should learn Winforms, WPF, or Back End Web Development.

And I agree with ChaosEngine, 10 hours a day to study C# is not unwise at all. 2 to 4 max, IMO.

This sounds like a Beginner's question. It should be moved to For beginners really.

Beginner in Game Development?  Read here. And read here.  
WozNZ
WozNZ

Yep, forget the 10hr a day study target. You will burn out or just not take things in. Program/study while you are having fun and after that point take a break. When you do come back later or the next day you get more done.

While WPF is dead it has been reborn in a similar form with the new Windows Store apps (Although you could argue that is still born lol). They use a variant of xaml etc that builds on WPF but it has been pushed to a lower level in the windows stack so that it is also first class for C++ and JS.

C# is a constantly changing language, the core basics are OO in nature but after linq was introduced (C#3 ?) it has started a slow transformation into F# lol Many of the language tweaks that are in the pipeline are geared around functional style code, for the better, so also worth learning a little about that mindset imho.

As stated above by the others, pick a small project and write it. Doing is the best way of learning. When you have finished take a step back and look at where you did things wrong or how they could have been better. Look for big complex functions and how they could have been split up etc

Most of all have fun with code :)

_Kaven_
_Kaven_

But why programmers are saying things like WPF and Winforms are dead if they are still in job post or used on legacy applications how a guy can support or work on that applications if he doesn't know them ? Are you saying JAVA would be a better language to learn to develop business applications or have a longer / more stable career because it seem JAVA is around since a long time ago and trying to be like C# more and more ....

WozNZ
WozNZ

The reason people say WinForms and WPF are dead is because Microsoft have discarded them in preference of new techniques. Yes there will be jobs out there maintaining legacy code that make use of them for a long time but is that where you want to be.

MS have a long history of doing this. Take Database tools. We have been through ODBC, RDO, ADO, ADO.NET.... You can still develop in raw ODBC or using RDO but you would never want to start a new project in it.

I would say learn C# over Java. C# should have a good future now Microsoft have really become open source friendly now Steve SHOUTING Balmer has left. With all the work they are putting into Core.NET, Rosyln and the like (Linux, Mac support etc) I have the feel that C# will finally become the language Java always wanted to be.

C# is really moving to backend development imho, it is a great place for it and it carries out the task sooo well. HTML5 and JS are the real future of client software

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.