Learning Paths

Are you confused about where to start and what course to take? Let me make it super simple for you.

First, decide if you want to focus on the web or mobile development for the next 12 months. Don’t try to be a jack of all trades! Focus on one path for now, and you can always learn the other path later.

Web Development Path

If you want to build applications that run in the browser, you need to choose between being a front-end, back-end, or a full-stack developer. What is the difference?

Front-end Development

Front-end developers build the front-end or the client side of web applications. That is the part that runs in the browser, the part that the user sees and interacts with. If you want to become a front-end developer, you need to master HTML, CSS, JavaScript first.

Once you master the fundamentals,  you should learn about one of the leading front-end frameworks/libraries for building web applications. The top 3 frameworks are AngularReact and Vue. Currently, I only have a course on Angular.

Back-end Development

Back-end developers build the back-end or the server side of web applications. That is the part that is in charge of all the processing and data storage. There are various stacks for building backends. I have courses on .NET and Node.js stacks.

.NET developers use C#, Node.js developers use JavaScript. For now, pick one stack and stick to it. Don’t try to learn too many things at once.

Building Back-ends with Node.js

Assuming that you know the fundamentals of JavaScript, you can take my Node course and learn how to build backends with Node, Express, and MongoDB:

Building Back-ends with .NET 

As a .NET developer, you must master C# first. Here are the courses I have for learning C#:

Depending on your skill level, you may start from C# Basics, or if you already know the fundamentals well, you may fast forward to C# Intermediate or C# Advanced courses. It really depends on you. Look at the table of contents for each course. Are there topics that you don’t know well? Be sure to take the corresponding course and fill in the gaps. If you don’t know C# well, you’ll waste a lot more time down the track.

Also, no matter how good your C# skills are, you need to know how to write clean code and refactor poorly-written code into readable and maintainable code. So, I highly recommend you to take my clean code course:

Finally, you need to learn about ASP.NET MVC, which is a framework for building the server-side of applications. There are two types of ASP.NET MVC frameworks out there. One is ASP.NET MVC 5, the other is ASP.NET Core. What’s the difference?

ASP.NET MVC 5 is for Windows only and is used in most enterprise applications out there. Chances are where you work (or where you’re going to work) they have at least one application built with ASP.NET MVC 5.

ASP.NET Core is the next generation of ASP.NET MVC 5. Initially, it was called ASP.NET MVC 6, but Microsoft decided to change the name and start from version 1 because it’s the first cross-platform version of ASP.NET MVC. It can run on Windows, macOS, and Linux. If you’re a non-Windows user, you’d love ASP.NET Core. You don’t need to run Windows in a virtual machine anymore! You can build and deploy ASP.NET applications on your Mac or Linux machines.

All the fundamentals in this framework are the same as the previous version, ASP.NET MVC 5. There are some subtle differences that you can quickly pick up if you take my ASP.NET Core course:

In this course, I assume you’re already familiar with ASP.NET MVC 5 and want to get up to speed with ASP.NET Core. We use ASP.NET Core to build APIs and Angular to build the front-end of a vehicle listing application.

If you want to reach senior levels of coding, you should also master unit testing. It is a skill that is expected of every senior developer:

Full-stack Development

Full-stack developers know both the front-end and the back-end, and for that very reason, they have better salaries. So, if you want to become a full-stack developer, take all the courses in the front-end and the back-end categories.


Mobile Development Path

If you’re a C# developer, you can use your C# skills and build native, cross-platforms with Xamarin. First, make sure that you know your C# well. Take my C# courses in the following order:

Depending on your skill level, you may start from C# Basics, or if you already know the fundamentals well, you may fast forward to C# Intermediate or C# Advanced courses. It really depends on you. Look at the table of contents for each of these courses. Are there topics that you don’t know well? Be sure to take the corresponding course and master your C#. If you don’t know C# well, you’ll waste a lot more time down the track.

Once you master C#, take my Xamarin course:


Did you find the answer to your question on this page? If not, let me know in the comments box below and I’ll do my best to guide you in the right direction.

17 responses to “Learning Paths”

  1. Elijah says:

    Hi Mosh,

    Maybe it’s a slight digress,but what is the future of C?I see C# and C++ everywhere and not C.

    I would like to learn more of programming.Is my C knowledge outdated?

    • Tyler Gabb says:

      But C `is` everywhere! Its what the Linux framework is written in, and most of modern IT software infrastructure uses C as a backbone.

  2. Wong Chuin Hun says:

    Hi Mosh, I have been following your course over Udemy, i am looking around for xamarin.forms based on real actual project like not sure if you can start a full course like that in Xamarin.Forms as this is more practical to learn and faster to learn as it follows actual project especially the UI part which most of the programmers like me struggle.

    Thank you for hearing me out.

  3. Sanjay Jaiswal says:

    Hi Mosh,
    I started following your courses on udemy and loved it a lot…hats off to you..

  4. Sniger Snellius says:

    Hi Mosh,
    I have a more general question, but first my background:
    I am data scientist and the natural choice (at least in my filed) is to stick with python. I really love this language. While enhancing my skills I found also Frameworks like Django and Flask, which are (at least for me) pretty handy.

    Now to my question:
    Are there advantages in using C# over python or is it just a matter of taste and background of the developer? I think to remember that Google also uses some python for backend stuff.

    I would be glad to hear your opinion about that!


  5. vahab says:

    Hi Mosh I from Iran and i can’t buy your course so you tell me how can i do?

  6. adhilaloolu says:

    Hai Sir.. I just saw your website and I am always trying to make mobile App development.But unfortunately I failed.So I want to get the course about mobile app which you said above Csharp and xamarin.Thankyou!

  7. Hi Mosh,

    I am learning a ton about Controller Resources and Mapping through your Udemy course: Build A Real-world Application with Aspnet-Core and Angular 2/4.

    ***I can submit a pull request to the Github site, but you should amend the package.json to upgrade to the typescript package ^2.3.4.

    Have a great evening.

    -Phil Neiman

  8. Daniyal Awan says:

    Mosh Please make a course on MEAN stack … i would love that .. Thanks for all your effort !!

  9. Sanket Harkare says:

    Hey Mosh, I have started with Angular 4 course. Where do we have an option to download the course and watch it later?

  10. Liridon says:

    Hey Mosh, well done for your job till now :). I have a question, is there any Xamarin advanced course to come ?
    If yes please let me know .

    Kind Regards

  11. Mark Mcdougal says:

    Hi Mosh – I really like your concise, thorough, and informative teaching style, as well as your emphasis on excellent coding practices, I’ve been through your C# Beg, and interim courses, taking the adv course, and plan on taking all 12. Thanks for your good work! I do have a general question about your emphasis on exceptions. Why would you ever want to halt program flow and throw up a thick and confusing message, then stop the program; when you have the option to compartmentalize the error (Like TryParse) and merely put up a simple and informative message (Such as “Enter only numbers, please 🙂 ” and continue program flow? What am I missing? And gee, while I have you on the line, 🙂 why won’t JetBrains recognize your coursework as one of their approved institutions for granting a resharper student license? You’ve reached more students with positive comments about resharper than any university… 🙂

  12. Ekber Celilov says:

    Hi Mosh.I have a question about mobile app development,lets suppose my mobile app needs to connect to database for login system or something.Should i learn the Entity Framework?

  13. Rajeev says:

    Hi Mosh,

    I am not able to start the Object Oriented programming in JavaScript course even though I am enrolled in it ($50 yearly subscription ). Could you please let me know whether its live or not?

  14. hassan moustafa says:

    Hi Mosh, I want to start learning Node js so does your Node course concentrate on building api only or it will teach me all the fundamentals of Node js including APIs ?

Leave a Reply