Comments

Critical stuff that every junior C# developer must know

A common question I often get from my students at Udemy 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.

This is a good book to get you started:
Data Structures and Algorithms Made Easy

If you get stuck on some parts, don’t get discouraged. Move on. Just make sure you understand the basics of lists, stacks, queues, trees and hashtables. Try to implement each of these data structures using plain C# (arrays, loops, conditionals) without using LINQ or .NET collections. Implement a couple of search and sort 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 on Udemy.

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 to start with front-end development and then move to back-end development, which would make you a full-stack developer.

Here is a comprehensive tutorial I’ve published on Udemy blog to get you started. I’ll show you how to build a simple application with CRUD operations using ASP.NET MVC5 and Entity Framework6:

A Step-by-Step ASP.NET MVC Tutorial for Beginners

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.

 

Related Posts

Tags: , ,

28 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?

  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 ??

Leave a Reply