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

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!
Anas TINAAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Robb HillSenior .Net Full Stack DeveloperCommented:
Well Pluralsight offers that roadmap....and it starts zero to hero:)
Robb HillSenior .Net Full Stack DeveloperCommented:
https://www.pluralsight.com/courses/dotnet-csharp-tutorial

You can start here..and then it will build a course
Your Guide to Achieving IT Business Success

The IT Service Excellence Tool Kit has best practices to keep your clients happy and business booming. Inside, you’ll find everything you need to increase client satisfaction and retention, become more competitive, and increase your overall success.

hilltopCommented:
How long is this class?
Anas TINAAuthor Commented:
6 Months with 3 hours per week.
Anas TINAAuthor 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,
hilltopCommented:
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
it_saigeDeveloperCommented:
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-
Anas TINAAuthor 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 DeveloperCommented:
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 DeveloperCommented:
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.
it_saigeDeveloperCommented:
First, which stack do you want to concentrate on?  MEAN, LAMP, etc.???

-saige-
hilltopCommented:
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 DeveloperCommented:
it_saige.

if c# full stack...its .NET ....not MEAN or LAMP.
it_saigeDeveloperCommented:
@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 DeveloperCommented:
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 DeveloperCommented:
@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
hilltopCommented:
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!
it_saigeDeveloperCommented:
@Robb Hill, I completely  agree, but the versatility sort of muddy the waters...

-saige-
Robb HillSenior .Net Full Stack DeveloperCommented:
@Saige - I agree.....muddy full stack then  :)
Anas TINAAuthor 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 DeveloperCommented:
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/
hilltopCommented:
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.
hilltopCommented:
If you really want to do them a service teach C, C++.
kaufmed   ( ⚆ _ ⚆ )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.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
lenamtlCommented:
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.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming

From novice to tech pro — start learning today.