udemy coupon free march 2015 | C# Performance Tricks: How To Radically Optimize Your Code.

udemy coupon free march 2015 | C# Performance Tricks: How To Radically Optimize Your Code.

An in-depth guide to optimize C# performance that every professional .NET developer must know.

Course Description

Last Update: 14 March 2015
Indispensable for the beginning pro
"How to Write Fast C# Code" is basically the next step for any intermediate C# developer. This is the stuff my teachers never had time for in school, but after applying a couple of these simple tweaks, I got my sluggish methods to run 20 times faster -Niels
Clear, concise and valuableMark takes you through several easy to apply performance tricks in a well-structured course. The videos are clear and easy to follow and provide valuable knowledge for the beginner and intermediate C# programmer - Marco
BEST COURSE CHOICE for beginners and intermediate C# developers who want to take their programming skills to the next level.
This is the BEST COURSE CHOICE for beginners and intermediate C# developers who want to learn how to write clean, elegant and high-performance C# code.
You might have enrolled in an "How to program in C#" course, or learned the language at school or university. But here's a sobering fact: most courses only teach you how to write code, and not how to write great code.
Niels said it best when he wrote in his review:
This is the stuff my teachers never had time for in school
Niels' teachers did the best they could, but the .NET Framework is huge. For any given problem there are 5-10 solutions, and it is not always clear which solution to pick.
For example, let's say you're adding 4 strings together. Should you use string or StringBuilder? If you always use a StringBuilder you get Append() methods all over the place and your code looks very convoluted and hard to read. What to do?
How about storing a collection of values? There's a bewildering array of choices - single or multidimensional arrays, "jagged" arrays, the ArrayList class, generic lists, custom collections, dictionaries... Which one should you pick?
I will help you make those choices
This course will help you out. In a series of bite-sized lectures I will cover all of these issues one by one, and measure the performance of each possible solution. You'll see that some choices have terrible performance, and other seemingly obvious performance optimizations actually don't do much at all.
But wait, there's more! I will not only show you great performance tricks, but also dive into Common Intermediate Code (CIL), the language that the C# compiler compiles to. If this sounds daunting, don't worry! The CIL language is actually very easy to read and understand. I'll take you through the basics in a concise 15-minute lecture.
After completing this course you will be able to read performance optimizations straight out of CIL code, like a pro.
Note: The price will go up as new lectures are added. If you get the course now, you'll get all the new lectures for free!
Meet your instructor
Hi, my name is Mark Farragher and I'm pleased to meet you.
I have worked in IT for almost 20 years in many different roles, including CTO, Online Marketing Specialist, Consultant, Corporate Trainer, Project Manager and Software Developer. I am a serial entrepreneur and have launched two start-ups in The Netherlands.
I worked as a Microsoft Certified Trainer for many years, on the subjects of Visual Basic .NET, C#, ASP.NET, SQL Server, Microsoft CRM and Microsoft BizTalk. I also gave many personalized trainings for Philips, DHL, KPN, Océ and other large companies. 

My most noteworthy training was for the International Criminal Court in The Hague. I trained war-crime investigators in the use of SQL Server to verify witness statements and validate evidence used against war criminals.
Why should you take this course? 
There are many possible reasons for you to take this course:
Maybe you have just completed a beginner-level C# course, and now you want to take your skills to the next level?
Or you might be working on a critical section of code in a C# project, and need to optimize your code as much as possible.
Or maybe you're preparing for a C# related job interview? You need to prepare yourself for any performance-related questions you might get asked.

You are about to lean all the secrets of professional code optimization
In the first section we will cover some fundamental aspects of the .NET Framework, that will help you understand the performance improvements in later sections.
You'll learn the difference between the stack and the heap, and how this can affect the performance of your code. You will also learn what value types and reference types are, how the String class works, and what boxing and unboxing is.
We will end the section with a comprehensive look at Common Intermediate Language (CIL): the “machine language" that C# compiles to. At the end of this lesson you will be able to read and understand simple CIL programs.

Basic optimizations - the low hanging fruit
In this section we'll focus on some easy-to-implement optimizations that can speed up your code by a factor of 100-1000x. We will look at arrays, strings and collection classes, and demonstrate a few simple changes to your code that have a dramatic impact on performance.
We will look at each optimization in turn, both in the C# source code and in the CIL compiled code. I will show you what goes on behind the scenes, and how each optimization changes the CIL code to improve the code performance.
Advanced optimizations
This section will take you into advanced topics such as method inlining, arrays allocated on the stack, and pointer operations. We'll go into the details and show you how these optimizations work, in which scenario's you should use them, and if they are actually worth the effort.
Some programmers swear by the use of 'stackalloc', claiming that this keyword gives your arrays a performance boost. But is this true? This section will show you the answer!
But wait, there's more!
This course already contains over 2 hours of video content, but it's not finished yet. Over the next couple of months I am going to expand the content in this course to at least 4+ hours.
If you enroll in this course now, you will get free access to any future material I add to the course, for life.
You will also be able to send me a message, and ask me for help with any performance-related C# problem you might have. I will answer on weekdays and am available for live calls on Fridays.
With your permission, I will collect the most interesting questions into “Blackboard Friday" sessions, where I will credit you by name on video, discuss your problem and offer solutions. You will get free lifelong access to these sessions.
Finally, I intend to create a range of courses around the topic of becoming a C# professional. Upcoming courses will be on the subject of writing elegant code, interfacing with unmanaged code, and using best patterns and practices.
If you enroll in this course, you will get a minimum 50% discount on all my upcoming courses.

What are the requirements?

  • You should have a laptop with Microsoft Visual Studio, Xamarin Studio or Monodevelop installed.
  • You should be familiar with the C# language
  • That's it!

What am I going to get from this course?

  • Over 19 lectures and 2.5 hours of content!
  • Learn how to write fast C# code from a certified Microsoft trainer from your own desk.
  • Many hours of video content teaching you about memory management, intermediate code, array- and string optimisations, and much more!
  • Suitable for beginner and intermediate programmers and ideal for users who learn faster when shown.
  • Learn which is faster: arrays, collections or generic lists
  • Choose between string and StringBuilder
  • For versus ForEach - which one should you use?
  • Learn the penalty for throwing exceptions, and much much more!

What is the target audience?

  • This course is for beginner and intermediate C# programmers who want to learn how to write clean, fast and concise code
  • Ideal for students who are about to take a job interview, and need to prepare for performance-related questions
  • Are you writing a section of mission-critical code in a large C# project, and need to optimize the performance as much as possible? Then this course is for you too!


Section 1: Intoduction
Course introduction 
My background 
Section 2: Fundamentals of the .NET Framework
The Stack 
The Heap 
Value types 
Reference types 
Boxing and unboxing 
Immutable strings 
Intermediate language 
.NET Framework fundamentals recap 
7 slides
.NET Framework fundamentals quiz
10 questions
Section 3: Basic optimisations: the low-hanging fruit
How to prevent boxing and unboxing 
Fast string concatenation 
Fast collections 
Fast arrays 
Throwing and catching exceptions 
For versus Foreach 
Basic optimizations recap 
6 slides
Basic optimizations quiz
10 questions
Section 4: Advanced optimisations
Arrays on the stack 
Advanced optimisations recap 
1 slide
Advanced optimisations quiz
2 questions