I need a roadmap for my students who want  to learn .net programming

Anas TINA
Anas TINA used Ask the Experts™
on
Hi,

I am a lab instructor at my university doing Data modeling and programming languages classes.

I need a roadmap for my students who want to learn .net programming using c# from zero to hero.

Topics, Curriculum, Frameworks, ....

Please help me and my students!
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Robb HillSenior .Net Full Stack Developer

Commented:
Well Pluralsight offers that roadmap....and it starts zero to hero:)
Robb HillSenior .Net Full Stack Developer

Commented:
https://www.pluralsight.com/courses/dotnet-csharp-tutorial

You can start here..and then it will build a course
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

How long is this class?

Author

Commented:
6 Months with 3 hours per week.

Author

Commented:
Dear experts,

I do not want paid content such as Pluralight!

Please comment if you have a timeline of how c# evolved from C# 1.0 in 2002 to C# 8.0 in 2019.

and the "free" content related to the features added to the language in each version.

Thanks,
What is your focus? C# in general? Web applications? Windows applications and services?

Try the Microsoft Virtual Academy
https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169?l=Lvld4EQIC_2706218949

Commented:
In all honesty, there are plenty of youtube videos that will provide the *basics*...  With regards to 8.0, once you know the basics Microsoft provides documentation surrounding the new features that are implemented in the language.

-saige-

Author

Commented:
What is your focus? C# in general? Web applications? Windows applications and service?

All of these. Students are expected to be full-stack developers.
Robb HillSenior .Net Full Stack Developer

Commented:
Please comment if you have a timeline of how c# evolved from C# 1.0 in 2002 to C# 8.0 in 2019.

Do you really want to know how the c# syntax changed.....not sure that evolution makes you a hero today.

Not even the evolution of the .net framework.  

I could see explaining how the paradigm shift changed in languages in general and use c# as a focus ....as this shows the difference lets say from the days of pure c , c++ and c#.

I can google that for you.

https://csharpindepth.com/articles/Versions

Have a read.
Robb HillSenior .Net Full Stack Developer

Commented:
Im afraid you are not full stack in 6 months.

Perhaps set a real goal of what they can learn in 6 months.

Were there any pre reqs before taking this class...such as some type of backend technology...or UI framework?

I ask because you now upped this to full stack.

With that being said If you have an intro class with c# and a student has never been coding before.
I would hope they can create a console app, and a winform, and maybe one web form.

But in doing this you would teach some fundamentals of design principles, coding standards.

Commented:
First, which stack do you want to concentrate on?  MEAN, LAMP, etc.???

-saige-
I would start with the Microsoft Virtual Academy. After that I would design tasks that utilize that most magic part of all of this. Searching the Microsoft Literature and utilizing the samples. I would ask here for best practices etc.. and cover that stuff too. Once a student is familiar with the IDE it will be like night and day. I assume there will be some Virtual Academy tutorial for just about every control etc.. Plus I bet Microsoft had focus groups to determine the best way to introduce folks to .net
Robb HillSenior .Net Full Stack Developer

Commented:
it_saige.

if c# full stack...its .NET ....not MEAN or LAMP.

Commented:
@Robb Hill, true but full stack can include components from a wide variety of languages...  In other words, MEAN and LAMP can include .NET components...

-saige-
Robb HillSenior .Net Full Stack Developer

Commented:
A .net Full Stack develper should have all of the following...and maybe more...

OOPS
C#
SQL SERVER
SSRS
ASP dot Net
MVC
BASICS OF THIRD PARTY CONTROLS
WEB SERVICES
WEB APIS
WCF
HTML
CSS
BOOTSTRAP
JAVASCRIPT
JSON
AJAX
JQUERY
ANGULAR JS
BASICS OF UNIT TEST CASES
BASICS OF MANUAL TESTING
BASICS OF TEAM FOUNDATION SERVER
REAL PROJECT - COMPLETE SDLC
Robb HillSenior .Net Full Stack Developer

Commented:
@ITSage  - I guess...but it always seems to me that when you specify those stack names you are referring to Javascript and node.js for serverside implementation....and the mvc component is not .net...but rather angular.

Either way....I think a Senior Full Stack....should be versatile in .net stack, and I guess they call it Jamstack
Actually, the Virtual Academy is closing June 10, 2019 so you would need to see

Microsoft Learn
https://docs.microsoft.com/en-us/learn/

Ah, Ahhh Azure!

Commented:
@Robb Hill, I completely  agree, but the versatility sort of muddy the waters...

-saige-
Robb HillSenior .Net Full Stack Developer

Commented:
@Saige - I agree.....muddy full stack then  :)

Author

Commented:
WCF, Threading, Design Patterns, Solution Architecture, Aspect OPs, SOA .... and the list expands!

I know there is no magical solution, BUT -at least- I want to do the best for my students.

I am an engineer and will come back with a plan or roadmap!
Robb HillSenior .Net Full Stack Developer

Commented:
Anas Tina:

Determine what you want them to create by the end of your course.

Then determine what they need to learn to get to that conclusion.

Start with a tangible goal...such as:
something on this site.

Then determine how you build a class.

These can be fun too.

https://www.geeksforgeeks.org/computer-science-projects/
Its a huge task with limited time. A huge portion of your time will be devoted to learning the IDE and basics. As for retention I'm sure most of the IDE stuff will not stick if they are not using it, The tools to find answers, and the ability to utilize samples etc.. should stick.
If you really want to do them a service teach C, C++.
Glanced up at my screen and thought I had coded the Matrix...  Turns out, I just fell asleep on the keyboard.
Most Valuable Expert 2011
Top Expert 2015
Commented:
So I'm going to be a "Debbie Downer" and agree with some of the other experts:  3 hours a week for 24 weeks is nowhere near enough time to teach the concepts you have listed. You can probably get someone to an "entry level" full stack developer in that time, but you need to forgo some of the items you listed.

I would suggest focusing on:
MVC (and/or Web API) - High level: the design pattern, in-depth: Microsoft's implementation of the designer pattern (i.e. ASP.NET MVC)
HTTP protocol - High level introduction. Knowing the protocol can make writing and debugging applications easier.
Javascript - Becoming more prominent for data-entry applications (read up on SPAs).
CSS - Bootstrap is nice to learn, but learning the fundamentals of CSS would be more beneficial.
SQL (the language) - Is mostly universal across databases--learn it once and you can query (almost) any RDMS
SQL Server - Assuming you're going MS stack--teach some of it's basic features
Asynchronous Programming - And in .NET/Javascript land:  async/await. Async programming is more relatable to the the web world than threading is.
Entity Framework - MAYBE--EF is nice, but it does come with a learning curve. It may not be feasible to teach in your given time frame
SOA - I wouldn't spend a huge amount of time talking about this other than at a high level what it is.

I would not focus on:
WCF - Unless you have very specific interoperability requirements for a system, WCF is full of cruft. WCF is great in that you can set up a web service in 10 minutes, but when it breaks, it breaks hard. You spend the next 3 days tweaking random config file settings until you find the magic one that makes the service work again.
Threading - It's nice to know that threading exists, but you're probably not going to need it for the stuff your new web developers will be writing. Threading is a huge, and complicated topic.
Design Patterns - They're great. BUT, those new to learning design patterns have the tendency to apply patterns everywhere, even when they might not make sense. Part of learning design patterns is learning when they are appropriate. It is very easy to over complicate a system by using too many design patterns, or using design patterns incorrectly.

Anecdotally, the bosses at my office always think that sending us to week-long technology training classes is somehow increasing our productivity. Here's what traditionally happens at those:  The "slower" students in the class ask the most questions, and the most off-track questions; so then the instructor spends the majority of the teaching period answering those questions. So then you only cover 3/4 of the scheduled material. And after the training ends, you don't actually use any of the stuff you "learned" until 6 months down the road...but by then you've forgotten everything the instructor said. So then you fire up the old Google and end up searching for the stuff that you spent a week learning 6 months ago. So the reality of it is:  experience ends up being the best teacher. This is not to dissuade you from teaching your students; rather, keep your focus narrow, and don't try to cover more than is manageable.
Hi,

you can check on  Udemy www.udemy.com 
some courses are free or very low price and you can check all curriculum listing for free so you can get inspiration to create yours.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial