Comments

Critical stuff that every junior C# developer must know

A common question I often get from my students is:

Mosh, I just got my first junior level C# job. What advice do you have for me? What are some critical stuff I need to learn?

So, whether you’re looking for your first junior C# job, or you just got one, this post will give you an overview of the kind of skills that you need to be familiar with as a junior C# developer. I’ve tried to put it in a “learning path” that would give you direction, whether you want to build web or desktop applications.

Before getting into details, I need to clarify something: as a junior, you’re not expected to know everything! No one does, even many senior developers! The world of programming is so big and it’s constantly getting bigger. So, every developer has strengths in some specific areas based on the projects they have worked on.

For each skill, I’ve added one or more links to good resources I have found. If you know better resources, please let me know and I’ll update the post.

Core Skills

Whether you want to focus on building desktop or windows apps, here are a few key things that you must know.

path2.001

Data Structures and Algorithms

If you don’t have a computer science degree, I strongly recommend you to spend only one month and study data structures and algorithms. These are the alphabets of programming. Sure you can skip this and jump straight into web development stuff, but trust me, there is a difference between a programmer who has been exposed to data structures and algorithms and one who hasn’t. This stuff help you think like a programmer.

You may be surprised that most big companies like Microsoft, Apple and Amazon dedicate a significant part (if not all) of their technical interviews to data structures and algorithms, not ASP.NET 5 or WPF! Because they just want to see if you can think like a programmer or not.

I recently published a comprehensive 3-part course on this topic. Unlike most books and courses out there, you don’t need to be a math genius to take this course. Plus, the course is fun and very practical.
Ultimate Data Structures and Algorithms

Databases

SQL Server is the most commonly used Relational Database Management System (DBMS) amongst .NET developers. Make sure you’re familiar with the basics of relational databases and how to create tables, views and stored procedures in SQL Server.

T-SQL is the query language we use to query or modify data in a SQL Server database. Make sure you know your SELECT, INSERT, UPDATE, DELETE, JOIN and GROUP BY.

Zero to Hero with Microsoft SQL Server 2014
T-SQL Step by Step

O/RMs

When using a relational database, we often use an Object/Relational Mapper (O/RM) to save or load objects in a database. There are many O/RMs out there including Entity Framework, nHibernate, Dapper, PetaPoco, etc, but Entity Framework is the most commonly used amongst many teams.

Getting Started with Entity Framework 7

I also have a comprehensive 6-hour Entity Framework course.

For Web Development

Building web applications is fundamentally different from building desktop applications. A web application at a minimum includes two parts: one that runs in the user’s browser (front-end), and one that runs on the server (back-end). As you view web pages in your browser, click on buttons and links, a request is sent from your browser to the server. The request is processed on the server, some data fetched from or written to the database and results are returned to your browser.

Web developers are often classified in three groups:

  • Front-end developers
  • Back-end developers
  • Full-stack developers: those who do both the front-end and the back-end

You should choose one of these paths depending on your interests. Full-stack developers often have more job opportunities because they can do both the front-end and the back-end.

As a front-end developer, you need to be familiar with basics of HTML, CSS and Javascript at a minimum.

HTML is the markup language we use to build structure for a web page. Unlike programming languages like C#, it doesn’t have logic.With the structure in place, we use CSS to make the page beautiful. CSS is all about styles (colors, padding, borders, fonts, etc). And finally we use Javascript to add behaviour to a webpage: what happens when you click a button or drag-and-drop an element.

HTML & CSS for Beginners
Learn to Code HTML & CSS
HTML5 & CSS Fundamentals on Channel9
Javascript on Code Academy

path3.001

ASP.NET MVC is the dominant framework (amongst C# developers) for building web applications on the server. As an ASP.NET MVC developer, you should still have some basic familiarity with HTML, CSS, and Javascript. So, I’d suggest you start with front-end development and then move to back-end development, which would make you a full-stack developer.

The Complete ASP.NET MVC 5 Course

For Desktop Development

If you want to build desktop applications for Windows, you need a different set of skills than HTML, CSS and Javascript. Even though some are working on using HTML, CSS and Javascript to build desktop applications, it’s still new and 99% of the jobs out there require you to know XAML, WPF or Windows Forms.

 

path3.002

WPF: A Beginner’s Guide

 

If you’re a junior C# developer and have a question, drop a comment below and I’ll do my best to guide you in the right direction. If you’re an experienced C# developer and think I missed something to include in this post, or you know better resources for any of these topics, please let me know. I’ll update the post.

 

Hi! My name is Mosh Hamedani. I’m a software engineer with two decades of experience and I’ve taught over three million people how to code or how to become professional software engineers through my YouTube channel and online courses. It’s my mission to make software engineering accessible to everyone.
Tags: , ,

37 responses to “Critical stuff that every junior C# developer must know”

  1. DrewG says:

    HTML and XML are based on SGML. HTML is not an “XML-based structure” nor is it xml compliant. XHTML can be XML compliant but it is not based on XML. While the syntax is similar it does not do anyone any good to have that misconception. Aside from that, this article is a good start for a junior dev. Cheers

  2. Joe says:

    Happy new year Mosh..
    I just want to say a big thank you for the quality of content that you have been producing.. You have made me start enjoying programming again.
    I can’t wait to register for your asp.net mvc course. Im really looking forward to it
    Keep up the good work..

  3. Jan says:

    Hi Mosh

    I could have used this article a few months ago – would have saved a lot of time as I had to work it out for myself.

    Shold you include JQuery in the Front End section?

    Looking forward to your new ‘Building a real world app’ course.

    Best regards

    Jan

  4. Momir says:

    Thanks, Mosh. It’s exactly what I needed. Learning from your courses as I wish to become junior C# developer. Keep on updating =)

  5. Bob says:

    Thanks for the helpful info.

  6. Andrew says:

    So what’s an intermediate dev gotta know then?

    • admin says:

      That’s the topic for another post! Stay tuned. 🙂

    • Zarz says:

      Or a senior , at least by experience, who is all self taught (no cs degree) and spent way too long on web forms. Seriously, I’d like a list. I haven’t had much I’ve had to do with algorithms in what I’ve done, and I want to back fill what I’d have learned if I’d gotten a CS degree.

  7. Ganesh says:

    Hi Mosh, Happy new year.

    I just wanted to say that I really like your style of teaching. And I am eagerly waiting for your next course on pluralsight.I would like to know if the udemy course (which u said is gonna be 15 hrs long – Cool :-)) will be the same as the Pluralsight course? And may I know when you will have the course on PS?

    Thanks.

    • admin says:

      Hi Ganesh,

      Happy new year to you too! The 15-hour course I told you is for Pluralsight. It comes in 3 parts and I show you how to build a real-world application from A to Z. It’s for someone who has some basic familiarity with ASP.NET MVC. The one I’m going to make for Udemy will be different. I’ll teach ASP.NET MVC from scratch.

  8. Priyanka says:

    Hi Mosh,
    first of all a very happy new year. And this is very important stuff you have mentioned in detail.Thanks so much for this big and great effort.
    This is so much helping.
    Can you please let us know about the post in which you have replied to Ganesh.Regarding Pluralsight??what steps need to follow to learn from it and do we need to purchase another course for Asp.net mvc.??

    Regards
    Priyanka

    • Ganesh says:

      Hi Priyanka.

      This is Ganesh. I thought I might help u on this.

      Iam not sure but I guess there is something called “Visual Studio Dev Essentials”. You can go to http://www.visualstudio.com. Scroll down, register for it (it’s free) and you’d get Pluralsight subscription (6 months validity). Once you are subscribed, either
      thru the link I mentioned, or you have purchased a subscription, you will have full access to all the courses for the duration of the subscription period.

  9. Jeremy says:

    Where would you say SOAP and REST fall on the experience spectrum? I’m only a few months into an internship and am being tasked with developing a SOAP WCF client/service and have no idea where to begin.

  10. Awesome article, Mosh! Great advice. I’ve bookmarked this and shared it with a couple of people that needed this advice. Keep up the good work, man. Happy new year!

  11. Alex says:

    Hi Mosh!

    Due to other commitments, I lost touch with programming about 6 months ago after a year or so of learning and I’m trying to get back into it.

    As much as I love programming and so desperately want to absorb more knowledge of it, and do more with it (and hopefully, land a job as a software engineer someday), I’m struggling to re-train the problem solving part of my brain.

    How best would you reccommend I develop my ‘programming brain’? The problem-solving part. I’m finding myself getting more frustrated when I can’t understand the logic being used, or can’t figure out a logical way to approach a problem and my mind is blank, or can’t think of the right tools in my toolbox to use to solve the problem.

    I’m practicing by attempting as best I can to problem solve & program (such as on /r/dailyprogrammer or your exercises on Udemy), but, sometimes I feel I’m continuously swinging and missing. How else can I improve my ability to problem solve and to think logically?

    Thanks a lot!

    • admin says:

      Hi Alex,

      You’re not alone. There are many in your situation who lost touch with programming for a while but they could get back to it and become successful.

      Re your question, best way to train your programming brain is by reading a book about data structures and algorithms. I already listed a book in my post:

      http://www.amazon.com/Data-Structures-Algorithms-Made-Easy/dp/1468108867/ref=sr_1_1?s=books&ie=UTF8&qid=1451386512&sr=1-1&keywords=data+structures

      If you prefer a more interactive and video-based approach, check out my C# Beginner’s course. There, I walk you through the basics of C# and give you a few exercises on each topic to help you train your programming brain.

      https://www.udemy.com/csharp-tutorial-for-beginners/?couponCode=blog

      All the best my friend!

      • Alex says:

        Hi Mosh,

        Thank you for taking the time to reply. I’m sure your very busy, so I really appreciate it.

        I’m currently half-way through your Intermediate C# course (working through all 3 on Udemy). I’ll be going back over the basic course to revisit exercises however.

        And thank you for the book recommendation. I’ll be purchasing that very soon. I’ve not read into Data Structures and Algorithms yet as it’s a module in my Computer Science Degree’s 3rd year (I’m currently in the final half of the 2nd year) so, I’m both curious and excited to get into it.

        Thanks again.
        Keep up the great work!

  12. minhaj says:

    HI,
    any website or book for practice work which include solved tasks on topics like.. (C# winforms, ASP.net, AJAX toolkit, MVC,entity framework,reporting etc)..

  13. Luilli says:

    Hi Mosh I have been looking a article like this one for years, if I have had article 6 years ago when I started University I would be a very advance developer. This article has become my Bible!! Thanks and please keep with the good work, we need more people like you in the IT community.

  14. Yatharth Sharma says:

    Great Article ! I should have found it before . I am junior C# developer working on MVC from past 2 years. I dont have any direction . It would be very nice if you suggest me something good to be a great programmer 3 years from now

  15. Luilli says:

    Hi Mosh I hope you are doing ok.

    I can’t order the Data Structures and Algorithms Made Easy book from Amazon from where I live, is there any Online Course or eBook you would recommend instead?

    Thanks

  16. Pervaiz Ali says:

    Hello sir,
    I am learning c#, and i have just completed basics of c#, now i am on the way to start oop,. The problem with me that i have weak logics with programs, like i didnt get the logic that how to give array location to object. Would you please help me how to think about logics of programs. And what topics should i study for oop?how to create logics? Please help me in learning . I am getting depressed 🙁

  17. Amr Gamal says:

    Hi ,
    I am studying the 3 courses of .net full stack developer , but i want to know what should i do next ??

    I’m a beginner in Javascript and I don’t know anything about angular js so should I study courses for JS and Angular Js in order to be a professional full stack developer ??

    and also how can i practice these courses to gain more experience ??

  18. Stephen says:

    Hi Mosh,

    Happy new year, I bought 3 of your courses on udemy and I would like to say you’re a great teacher, I hope someday you’ll create a data structures and algorithm course using C#. =D

    Regards,

  19. Fred says:

    Hey Mosh,

    thanks for this article. It’s a good start to know what you need to know as a (junior) C# developer.

    I’d like to ask, if there is something new, you would add to this list nowadays?

    Best regards
    Fred

  20. Yasin Bajwa says:

    Thank you Mosh for Good Work..! But I want to suggest one thing that I am slow learner and your speed of teaching is too much high.Tell before what you going on ,please watch kudvenkat c# on youtube it’s perfect

  21. lutayashafiq says:

    Thank you for educating the world, Very much helpful info here. Full stack development is the way to go
    shafiqlutaaya.ronzag.com

  22. Padma says:

    Hi mosh,

    I am searching for junior .net jobs,can you please make tutorials on Data structures and algorithm..

    Thank you.

  23. William says:

    Hi Mosh,

    This is such a clear guidance and amazing topic! I can always learn something new from you!

    So right now I am kind of in the middle of a junior and an intermediate, so what is your idea of the difference between a junior dev and a senior dev? What should I work towards becoming a senior?

  24. Nouman Malik says:

    My question to Mosh or any experienced programmer is that should i go for mosh’s asp.net mvc course or should i go for asp.net core mvc as i have heard that core is latest and more powerful.
    Regards
    A c# develeper to be

  25. who what says:

    Hi Mosh
    Good post. But really I am seeking an answer that to consider myself as junior developer, there should be some topics I must cover for example for C#. Otherwise, I really distract by people saying that it is a life long learning and at least a year or so you need to spend. If I need to start as a junior .net developer, I must have some syllabus and topics to cover for each (SQL, C#). Am I right to think so??

Leave a Reply

Connect with Me
  • Categories
  • Popular Posts