This is a step-by-step guide for C# junior programmers to enhance their programming skills.
I have seen this Reddit post where a junior asks about what should he do to enhance his .NET skill. I remember when I was an entry-level .NET programmer and I had the same question several years ago.
Malcolm Gladwell wrote about the 10000 hours rule. This rule means that you need 10000 hours to master a skill. This is true but you can achieve it faster if you know which path to follow.
Here is a list of tips and resources that can help you to take your skill to the next level.
Follow C# Tutorials and Courses
You should start a new daily habit: watch and follow programming courses. You must invest time in your education.
As a junior programmer, your main objective is to learn as much as you can from any source.
Pluralsight Video Courses
Ask your boss if there is a way to get a Pluralsight subscription.
On Pluralsight there are tons of C# and .NET courses. You can test first your C# skills and then you can take the recommended video courses. You can see how good you are compared to other programmers.
There are several paths that you can follow. For example, you can start with the basics of C#, then go to the C# development best practices.
In the end, you can follow the courses about Azure for developers.
As a senior developer, I still use Pluralsight. This way I keep in touch with new technologies.
Mosh Hamedani C# and ASP.NET Courses
I am a big fan of Mosh Hamedani. When I was a junior, I have started to watch his courses. After, three of his courses my skills improved so much that my colleagues started to consider me an expert.
Mosh Hamedani doesn’t just teach you how to program. He teaches how to become a better programmer. Even if you are a senior programmer, Mosh can improve your coding skills.
He gives you a lot of tips and tricks on how to write better code faster.
Star with these courses:
- The Ultimate C# Mastery Series
- Learn the fundamentals of C#:
- Learn OOP principles
- Advance topics: Lambda, LINQ, Delegates, Async, Generic
- Unit testing
- The Ultimate Git Mastery Course
- The Ultimate Full-stack .NET Developer Bundle
- SQL Course
- ASP.NET MVC
- Entity Framework
- Clean Coding and Refactoring
Mosh Hamedani is one of the most popular C# programmers on YouTube. Check his channel because he offers a lot of great tutorials for free, like this one:
In my opinion, Mosh Hamedani is the ultimate programming teacher. Check all his courses because he constantly updates his library.
Codecademy C# and ASP.NET Courses
Codecademy is a platform useful for people who don’t have programming skills. This is a great way to start if you don’t have a computer science degree.
The cool part of Codecademy is that the theory and the practice part are in the same window. For example, when you learn about lists, you also have to do some exercises in the built-in ide:
Microsoft Learn is the platform where you can find courses related to the Microsoft ecosystem.
Follow step-by-step courses, where you can code an application and learn at the same time.
Microsoft Learn is similar to Codecademy but is free. For programmers without a technical background, I recommend Codecademy.
You can filter courses by level of experience.
Check the Nuget Libraries
I have seen many programmers that spend so much time doing a task for which is there a library.
Once, a programmer from my team build a micro-ORM that was similar to Dapper. He spent 2 months on a thing that you can get in 2 seconds.
Usually, a popular library has been tested by many other programmers and is used in multiple projects. In case a package is open-source, then this means that the code was improved by other programmers in the past. Also, every time a bug is spotted, the community tries to solve it.
Check my article about 11 C# libraries for developers. There you can find the most popular libraries that .NET developers use.
Then you can check the Nuget repository and sort the dependencies by the number of downloads. At least, you should know the most downloaded libraries out there.
Another great resource is this Github repository. It contains a list of tools, libraries, frameworks, and other resources for .NET programmers.
Read Blogs of Experienced Programmers
Several programmers keep a blog where they share their thoughts about the technology and present cool things that can help other programmers.
My advice is to start with the blog written by the .NET team: .NET Blog (microsoft.com).
Subscribe to a Programming Newsletter
Newsletters are a great way to keep in touch with the news from the .NET world.
I am subscribed to the weekly C# Digest and ASP.NET Core News. Sometimes, I don’t read the weekly email and the folder gets pretty big. When I am waiting for the doctor or I am in line for something, I open my phone and start reading.
Ask for Help and Code Review
Pair programming is a great way to learn skills that you cannot easily learn. For example, you are stuck, no answer from StackOverflow helps. A colleague can look at your code and help you. Usually, your colleague solves this issue in a matter of seconds.
At my first job, I was assigned to a senior developer that teach me a lot of stuff. Every time I asked him for a code review, he spent time ensuring that I follow all the guidelines. If something was wrong, he explained to me and ask me to rewrite some part of the code. This is a thing that only someone experienced can do.
Start or Participate In An Open-Source Project
This one is the best method to get a multitude number of skills: from basic C# to more advanced topics like Continous Delivery.
By starting your project, you will achieve the next level of programming.
An open-source project is available to anyone, so you will receive suggestions that can improve your code.
If you don’t know what project to start, you can also try to improve the existing libraries. You can fork a repository and start to improve the existing code of a library. You can then create a pull request and your code might be accepted.
One of my friends succeeded to improve the dotnet repository. His name is in the contributor lists.
A big benefit of open source code is that it learns you how to write code and collaborate with other programmers from all over the world.
Another benefit is that you can show your GitHub account to your potential employer.
Take a C# Ceritification
Taking certification requires gaining some skills.
Ask your employer if they can offer paid certifications. Most of them give benefits related to these. A certified programmer is more valuable for them.
In the past, Microsoft offered a lot of certifications related to C#, like Exam 70-483: Programming in C#.
Microsoft retired most development exams, but you can take Azure Certifications:
Microsoft offers learning paths to gain the skills required for the exams.
Participate at .NET Conferences and Events
At a .NET conference, you can see where the technology evolves. You can create a vision where to focus in the future.
The top programmers participate in these events. So, you can get a workshop from someone with more experience.
Microsoft hosts several conferences about programming. Check this page to see the upcoming ones.
The more you talk about programming, the more you become a programmer.
Check the local programming meetups. You can speak with other programmers and build relations with them.
Learn How to Search For the Answer
As a junior programmer, you will receive a lot of errors. Maybe you don’t remember which method to call.
The first thing, when you are stuck, is to search on Google for the answer.
When you search you should include the error description, without unnecessary messages.
If you want to get only the StackOverflow pages, search on Google with this operator:
error message site:stackoverflow.com
If you want to search only for pages that include a particular keyword include quotes:
Conclusions for juniors
In the end, you must be proactive:
- Try to help your colleagues.
- Read every article that seems interesting.
- Check the newer versions of the technologies.
- Improve your code and applications. Don’t know how to start? Improve the speed of the application and the security.